evd/0000755000176000001440000000000014260547434011071 5ustar ripleyusersevd/NAMESPACE0000644000176000001440000000562714225014531012306 0ustar ripleyusersuseDynLib(evd, .registration = TRUE, .fixes = "C_") export(rextreme,rorder,rrweibull,rnweibull,rfrechet,rgev,rgumbelx,rgpd,rgumbel,rbvevd,rbvalog,rbvamix,rbvaneglog,rbvbilog,rbvct,rbvhr,rbvlog,rbvnegbilog,rbvneglog,rmvevd,rmvlog,rmvalog, dextreme,dorder,drweibull,dnweibull,dfrechet,dgev,dgumbelx,dgpd,dgumbel,dbvevd,dbvalog,dbvamix,dbvaneglog,dbvbilog,dbvct,dbvhr,dbvlog,dbvnegbilog,dbvneglog,dmvevd,dmvlog,dmvalog, pextreme,porder,prweibull,pnweibull,pfrechet,pgev,pgumbelx,pgpd,pgumbel,pbvevd,pbvalog,pbvamix,pbvaneglog,pbvbilog,pbvct,pbvhr,pbvlog,pbvnegbilog,pbvneglog,pmvevd,pmvlog,pmvalog, qextreme,qrweibull,qnweibull,qfrechet,qgev,qgumbelx,qgpd,qgumbel,qcbvnonpar, abvalog,abvamix,abvaneglog,abvbilog,abvct,abvevd,abvhr,abvlog,abvnegbilog,abvneglog,abvnonpar,amvalog,amvevd,amvlog,amvnonpar, hbvalog,hbvamix,hbvaneglog,hbvbilog,hbvct,hbvevd,hbvhr,hbvlog,hbvnegbilog,hbvneglog,fbvalog,fbvamix,fbvaneglog,fbvbilog,fbvcalog,fbvcamix,fbvcaneglog,fbvcbilog,fbvcct,fbvchr,fbvclog,fbvcnegbilog,fbvcneglog,fbvcpot,fbvct,fbvevd,fbvhr,fbvlog,fbvnegbilog,fbvneglog,fbvpbilog,fbvpct,fbvphr,fbvplog,fbvpnegbilog,fbvpneglog,fbvpot,fbvppot,fextreme,fgev,fgev.norm,fgev.quantile,fgumbel,fgumbelx,forder,fpot,fpot.norm,fpot.quantile, bvcpp,bvdens,bvdp,bvh,bvpost.optim,bvqc,bvstart.vals,ccbvevd,evind.test,chiplot,clusters,dens,evmc,exi,exiplot,mar,marma,mma,mrlplot,mtransform,mvalog.check,pp,profile2d,qq,rl,sep.bvdata,std.errors,subsets,tcplot,bvtcplot,tvdepfn) S3method(print, bvevd) S3method(print, bvpot) S3method(print, evd) S3method(print, pot) S3method(plot, bvevd) S3method(plot, bvpot) S3method(plot, uvevd) S3method(plot, gumbelx) S3method(plot, profile.evd) S3method(plot, profile2d.evd) S3method(qq, gev) S3method(qq, pot) S3method(qq, gumbelx) S3method(rl, gev) S3method(rl, pot) S3method(rl, gumbelx) S3method(pp, gev) S3method(pp, pot) S3method(pp, gumbelx) S3method(dens, gev) S3method(dens, pot) S3method(dens, gumbelx) S3method(bvdens, bvevd) S3method(bvdens, bvpot) S3method(bvdp, bvevd) S3method(bvdp, bvpot) S3method(bvh, bvevd) S3method(bvh, bvpot) S3method(bvqc, bvevd) S3method(bvqc, bvpot) S3method(fitted, evd) S3method(logLik, evd) S3method(profile2d, evd) S3method(profile, evd) S3method(std.errors, evd) S3method(vcov, evd) S3method(confint, evd) S3method(anova, evd) S3method(confint, profile.evd) S3method(bvcpp, bvevd) importFrom("grDevices", "chull", "dev.interactive", "heat.colors") importFrom("graphics", "abline", "contour", "image", "lines", "matplot", "par", "plot", "points", "polygon", "rug", "segments", "text") importFrom("stats", "AIC", "anova", "approx", "complete.cases", "dbeta", "density", "deviance", "dnorm", "fitted", "integrate", "na.omit", "optim", "pbeta", "pchisq", "pnorm", "ppoints", "qchisq", "qnorm", "quantile", "rbeta", "rexp", "runif", "spline", "uniroot", "var") evd/data/0000755000176000001440000000000013264344706012002 5ustar ripleyusersevd/data/venice2.rda0000644000176000001440000000456412637167310014033 0ustar ripleyusersuK\E[4q`_5{O%jR4lɰFk)WexduXOd܈|y#?x3}Uu'o^t'_/O{ѽ/|4/~>zf=_Kn8H;? !JުJ>u~)y3x_G\6+Iޫoۉ{s8<\8>lms-{oW[}yZ+ǎ~۵ӏ]][7u]=NvCkKk?Gw;l.$>⧝p߷~vv_z.꿐_ Idͺe}0^7Gay_1.;/k%nWߧwGwq|[ סG%O75 m|?c9oޣyZ=vxG!<"^p{̺mo>1y]U;vp~^Hk?%}Rsv2/zޏd }3/;z^Y5i'~3wo{qv/y6$Z~]ƾ)v'Uk;?Yϣ =ڵk }YF~H:OqN@8~N\w?WK/y6] ~߾JG߹35sKx |=v1^7xy|?"c|owK'3_}R|od~y:Hˮ#3^]}%/ {zg;/ GŮCѯqyw~׆w >? ՞|g]%w7ovmޏU}@vwYA~1:Z}!$98={#'..n$8w~Z]+}Q.!?~ZY{ڇV?ynK6Ow՞~>Wy1;Ew𜼦ޙz]H>hތ{Gb=źϰG~!x_GO|'{{uՙOl}kzs}`1yB2nȞ!s~f{'q'|:?t-y1{"v]nkh{wY߯}ÿ0];.='H߆K#?|W|}.ww}<]G?百տ i/{>HC3%N0_صqI> e۟G1{Q{N0;1>%|Oc~=gWg7pJ7U'_ٙ;|G&XRWў<`1oj{wډ#W!G<ӷ8s} ӏ<oxpn].|1$ޮ?;z׶wCz}g3~-s>/IF|oW?ӏo?;4PRQSXPXRXQXSبp29M܏}\_}ǯޥPꇿuugu׫R^湼9-I)OKyVR^ nq7<)i)Jy^ʋR^ץ\p'wRp'wRp'wRp'wRp'wRpwZpwZpwZpwZpwZpgwVpgwVpgwVpgwVpgwVpw^pw^pw^pw^pw^pwQpwQpwQpwQpwQpwYpwYpwYpwYpwYpWwUpWwUpWwUpWwUpWwUpw]pw]pw]pMW6%_mJڔ|)jSզMW6%_m9_˓R祼(e)Jy]wRpu>.evd/data/oldage.rda0000644000176000001440000000142312637167310013722 0ustar ripleyusers]KHTQƯb04 %">8JPDFZxN >i1a*Vm"ET DH=(rUɝ?;Ӟ祼TKj,J[ ܉^+*~ۅl~B_ϤPz4x@q d~^YU貐-vOL y:wr, Y^3w9`9RLͧ4'8Xm&:f }Q3!oPݡyx+Й>*Ԑȗt"맺nQ.ؗ,?۸V~=@ZC>vwyNݨO~,!oTem~ěP˘*)ί^DA%O ?WOj3 z]?ق o_M9OwMwW6qB^ї 8['׿)tIyt"vOK=Nч*k/WWqn cUcݿIPnwL31Cn0\wbt۱P4d'd7Lv˚7M\>q} 7 n@܀q 7$nHܐ!qC 7$nH܈q#Fč7"nD܈qcč7&nLܘ1qcM7!nB܄ q&Mqmܥqܩ\CߨOzb<evd/data/sealevel.rda0000644000176000001440000000131012637167310014262 0ustar ripleyusers;lP`DZƱ:3"~gt$XөCMU@KZ:3̝; se-bB\e,9Wt7v=˲l,Z{tZΦgәe8{/+[u}WG7=x_]Ty&UÎK oOuݻ1R~Tų˺/Hn먋󿵫>F7 `~Zͥj:_U`y2.NuO[Ó|`}GqM=52k@2~خ$_vL >acd߇Uz~벮h͵g1@~jc>6nc-;%~-aUHkA\3^Hpn ž1NWCq|HZ|H.\Y.H>W\0 \s|6TB|j Q7xx9/6Z~>y| [q;/C?\/QS1ƜM (~?kkUq\G\88u&7/d=ԫȷxOO$?pPD}ĻmC#a]&Za'"1C\ܚ9/:w|z/{}{}T|+wuv9Qu_cقO}u+MWaO.^ӣSg) w0+OǴώA͍O޶$\}nv -Pؑcakaa'ՂW ^-xՂW ^-xՂW ^#x5^#x5^#xMo"x= S> ,mm7;evd/data/sealevel2.rda0000644000176000001440000000134712637167310014356 0ustar ripleyusersՕ?lP'Nc'.tf.KE?C7 NXi"ZJe33ܹ30w\"&{w·%"g;ݳh'tw\˲l7,Ŗ/ =f.lz<ռ ƣXy7>PW3Yeߙ^uw厍a[(zu݋A?͵AOtoG^WOfW=j~[/?ZT|Q~Ε|*]8 %wnUp$>avU} $2 $UIvK P'q?ToM _U}rjb?6n"[臃u;:tGⶱ^qП6GŹ~:@/\o G·oO-\CvtG9Ep_]_uF_a~7D'q93rϦ -ƽJ砘<@mMŴGlr8GÐJ<$!qC 7$nH܈q#Fč7"nD܈qcč7&nLܘ1qcM7!nB܄ q&M7%nJܔ)qSM7%nJ܌q3f͈7#nF܌qs͉7'nNܜ9qswDQXbLfB^t1{bsZeo- evd/data/lossalae.rda0000644000176000001440000002415312637167310014277 0ustar ripleyusers \EsܝI& N^U H2#9 rC h5A#, " ,PC!0D5A'rau~>o__ߪ=Sj={/aE/G.hB+y W|g=38t\e^>}x7mءGpq c>wB?f\\\?~nouyW]}<Ov.Z϶(S\ ϰUoO_u]\Em\yg~E?l<˂s볗ƯWo불nΙ?wqNwqn>yv<>ygG8E7n8댷xs.yq.bݸ}{Ŷ)~g nv3.E[muu]]almE.://:En=x'88/q9[/=Ewzx}x1.jݸй]bWlVįxw6^lpѭW]\E|MU.~z6^߯-Xlet˵gx[Woݸ^?i7ӸE7/ntӍ?t6d=[]=j\f|3}Ͻ[΁Uo7yXzf{7GV+mM~~?+z-[ܺKyou:V~z{n^狷2>`{zWm>jwKW};WjWo_o{>Eo}GٷtwuG\\dƭor}oFqzm׸YnXۿe﹟ҽo~I(ywd/Yk>uY{mڋ]|ldu}Pl>ۇf=ܽn?ݷ7}qݨng~<]Euiĭk#kmG:Q }ߣg>z{/mtzŞ1Nwl;szwu6X֛n߽]7~q}Fyܹ?pub۟Ou≕Os_EysQjûNAnO*Bāq=-5MXj|x>.b בv5yѶSqo g3q?GЇa\Ї.#W`Jc(um7Wq;m5rVp#4\5h_N@*JGW\?J\_80О*QBSN0':XW:juֺ1G hqQ+Ж1ft~=@{,G&0}C;&V_Dnր(ݭCЮH1kalD_1nhgلy7 s>B#\st~`,G3JO kFy?\R T]]FUb| qA|B_֣_1J4n ƴfբF[1Jp5KIԡw؀POqy| UIG<'E(¢BߵU!O5֟8pMRډh@4 C!Gل[sjX-yvQCed ½VmD ;A=x;cѦΣq`z sqmñ % 7< }1Zr OE-<8;s sRH5٘Uy\߀y5$IF0^SӶ%.ÿ]d,ըZIs:Pӹ o:0X=lL>N#=}ԁ(>s-Mڵ"ļoXbPΨI8P#0.PyK jq=lVz13g OښarW^'~C۰1/+1jـjш>h81hw+Sg0s0E'rtb/0~v.́Xc#N\:ӏxAm;3&Th0w5^LAUj\/&y m(žI*DQy[ 7aJe-ֶ5Z1Ûm?5^+P7Ecp9䯄%55}ӌua59{1bnx TuP x=G61̡j"́y^z镨J%*aHmFW_fA Fco6b-ju7c_|VmAm8PCp]];pd= ?i֞1X< gơ&aΌG=ǵL2}7}1 MAǾ.]1^?: s s0䕠m)&߂v~RZϸjD5uX4>{5RBD^蟎q>0?=̹ [*75hkߚQ#˴ ˡX{5S-P>3@se4OOƘxctujk51:.pmI{vwgP;L9tc4WVjM?+,Ga| UpuZqעjQ+%\o W%uhG5PݧbcG6?3𭌵ێ8vGz=OQ0C1woFG| b'\ďXۄsaXi0EJC4b4{2bMX XI15m7>v ؎! pdvoxE 簎uz̻n9fKZ:Kc7L]5{v|ޥڑQcSs?{V,59R WkE F ،u{2>m=P5m"̓Q'#1N;y D 9X+Oy˕6B])죆a+E%9{̝q֯Yw=c6x:|=ƶ ~D]\>]J ѿpp2I?Qc=٘7e8]>84f`wýy~ʡ?syxǘUS=NՃvU& @-vAsO{NS'l5=(c3|Zs*j&L,\QVxq#1c;v/cҁJI m#˨5v/8W&Mxn:̛cVyӁC@Lϣ-hwơkc#x; u~kxߘ{C1fg8Յk5֥af2B{1uw gG#4` ?cӽjm]yxPXѶ̛"c%C kT֭V=]藅cWvB 'u; |zCP)8;Jls {zy)0hOY%+:ц<}3Ե폚-wCQұ*ϨBMp2Ƴ 5<9GѧQ :~iKȇaX5NLm.RPe|N.Dzx} %5׋캑 +>G:7J>D FALl{#Q+a|y= mSp03R`B{cNE΄oػGN5TE`c[<]G wB={&}_*cMv`՜ާË1gG`𪾇ZN?~Ʋ}E}׊@q`ڱBjͰt]iFD;<;ogw20?ZP?skSg+b*wSs}܁ڝWNEm@v{a}0哨< µW^hazom=@/jkP-pr{:򧿓 kJwΗa`\,B]<\ C8=O{A}̧<ըŖt?=uǞ{=QP?; #1b̾ {k˝WX/wƧ {pϠvx* s3*CW`x>ri4=qim3si쑮L҅G{GlA=kx`wAw%Ux?C=o_p3wuvOs%l@=aMb/CW^0vv"z/W5xa> l BXO~1X6_NsBk[,š2k8R~߂6,իo/ P7oc\Fnru/}\hQcLϻ}Ӊ\Gu{q[`.?{P+1On˜ bWaxG00|^a-LG.LK%~X1K7?;c,9So^HzAAAAA#?{G:{dGA(E٣8{PYPYPYPYPYYYYYY0Y0Y0Y0Y0YA#rY d9,GA#rY0f9,Ga#rY(e9,G刲Q#rDY(e9,G刳q#rY8g9,GHI#r$Y$ˑd9,GHd>PCÇ|ȧ3l>3l>3l)fȘM1b6lif̦M3f6l4iff0a6l f3f0[l0[l0[l2[l!2[l!2[lE1[lE1[l3[l13[l13[l %̖0[l %̖0[lDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDEK-QDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴDMK4-ѴCK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1CK -1$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KZВ$%- hI@KBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%!- iIHKBZҒ$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDK"ZђD$%-hIDKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$%1-iILKbZӒĴ$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIBKZВ$$% -IhIYRO0Ixl@<H:c{vgfd8?)N139=0^<_s?/?<~{0Mjυ-;Ekv^]w^;~o?`ޏ_{z=wz}7޾z?bXu[?={4?S?+["?//}h5?+x*?}̗F<04 Ww_?o}CyyE|_/[ +|Nz[zM9g}?C!߈waEo(W0?hkVh:EG>OxVW9^M},u 7c}5ǏvُJ17?sn8bIu&'tNe\>ϙ| ?F㷢}.i_Fv+S55Q͍GGyQ|!o<Ɍn] yHQ>dW5Px9XS((swd)~9};߯~ GNy yG !ƗTW8kxʩgM˅CZONA]Ǿ/9 ;勣~э co4p^Tɩq>|!?اŭo~ނy~yXҎ(>sGC|cqގ{N,ݛ-c_ƌfh{g~Ȯnc{йR~sQh^tFz1n,ibV& m4鵽G܌?.7\v}}ExK^ދϺB}lFx$S`~MB?A2L o|h->"Ne7>|~:JFG`b| )1-׸ʃ[mQݎ@evd/data/sask.rda0000644000176000001440000000046712637167310013437 0ustar ripleyusers r0b```b`cd`b2Y#s8ʼn@ h|=`au.BӋ[v9o6w,=TDՎ@Bp lfBh;c~Du"U|Yp.ۂdxߙι b3\9.P}0U"Q[[1D]- <@r9x\'gW|#!AAC@ D]@}ۉPA}G-9C}N73Ј=evd/data/lisbon.rda0000644000176000001440000000021012637167310013746 0ustar ripleyusers r0b```b`cd`b2Y#s1[NfqR~r #P1P8AP:/*πjNd*:;j~Լ4>E3'B?4%evd/data/fox.rda0000644000176000001440000000072212637167310013264 0ustar ripleyusers]=LA (Q!vQ)Sha *?L4X[k5Z[[kebK{6ٛ7üf^q[a k( !K?zG.sĴ1wƤY*wGWݾI24pz~Ҵ]S0kx˫;H7wwah3v^iu7(V>iPCS/v7ő[c077ohÿP7T/=蛄oyB;?M!Y8~Dp"ΑA}ѯgiO'Q|:y157Ow<<>ySyV/ pYC\E#wek_euLw.CUɫ]+3<tE&@zWItI\I\I\I\I\I\I\I\I\I\E\E\E\E\E\E\E\E\E\E\M\M\M\M\M\M\M\M\M\?V7v?9SM\wa{,Q}Q<<^,>b-ӟ[W@lK3ȟx{=}>S^]f?1q<+=n/0W{N z1Hevd/data/failure.rda0000644000176000001440000000022012637167310014110 0ustar ripleyusers r0b```b`cd`b2Y#s1{ZbfNiQ* `h g@ଃTܺB;ОPP0x4B%B@$}IP$:YJ+Cܙ@Hrevd/man/0000755000176000001440000000000014260535126011637 5ustar ripleyusersevd/man/sealevel.Rd0000644000176000001440000000154712637167310013737 0ustar ripleyusers\name{sealevel} \alias{sealevel} \title{Annual Sea Level Maxima at Dover and Harwich} \usage{sealevel} \description{ The \code{sealevel} data frame has 81 rows and 2 columns. The columns contain annual sea level maxima from 1912 to 1992 at Dover and Harwich respectively, two sites on the coast of Britain. The row names give the years of observation. There are 39 missing values. } \format{ This data frame contains the following columns: \describe{ \item{dover}{A numeric vector containing annual sea level maxima at Dover, including 9 missing values.} \item{harwich}{A numeric vector containing sea annual level maxima at Harwich, including 30 missing values.} } } \source{ Coles, S. G. and Tawn, J. A. (1990) Statistics of coastal flood prevention. \emph{Phil. Trans. R. Soc. Lond., A} \bold{332}, 457--476. } \keyword{datasets} evd/man/sealevel2.Rd0000644000176000001440000000246612637167310014022 0ustar ripleyusers\name{sealevel2} \alias{sealevel2} \title{Annual Sea Level Maxima at Dover and Harwich with Indicator} \usage{sealevel2} \description{ The \code{sealevel2} data frame has 81 rows and 3 columns. The first two columns contain annual sea level maxima from 1912 to 1992 at Dover and Harwich respectively, two sites on the coast of Britain. The third column is a logical vector denoting whether or not the maxima in a given year are assumed to have derived from the same storm event; this assumption is made if the times of obsevation of the maxima are at most 48 hours apart. The row names give the years of observation. There are 39 missing data values. There are only nine non-missing logical values. } \format{ This data frame contains the following columns: \describe{ \item{dover}{A numeric vector containing annual sea level maxima at Dover, including 9 missing values.} \item{harwich}{A numeric vector containing sea annual level maxima at Harwich, including 30 missing values.} \item{case}{A logical vector denoting whether or not the maxima are assumed to have derived from the same storm event.} } } \source{ Coles, S. G. and Tawn, J. A. (1990) Statistics of coastal flood prevention. \emph{Phil. Trans. R. Soc. Lond., A} \bold{332}, 457--476. } \keyword{datasets} evd/man/evd-internal.Rd0000644000176000001440000000750614225012305014514 0ustar ripleyusers\name{evd-internal} \alias{abvalog} \alias{abvaneglog} \alias{abvhr} \alias{abvlog} \alias{abvneglog} \alias{abvbilog} \alias{abvnegbilog} \alias{abvct} \alias{abvamix} \alias{hbvalog} \alias{hbvaneglog} \alias{hbvhr} \alias{hbvlog} \alias{hbvneglog} \alias{hbvbilog} \alias{hbvnegbilog} \alias{hbvct} \alias{hbvamix} \alias{rbvlog} \alias{rbvalog} \alias{rbvhr} \alias{rbvneglog} \alias{rbvaneglog} \alias{rbvbilog} \alias{rbvnegbilog} \alias{rbvct} \alias{rbvamix} \alias{dbvlog} \alias{dbvalog} \alias{dbvhr} \alias{dbvneglog} \alias{dbvaneglog} \alias{dbvbilog} \alias{dbvnegbilog} \alias{dbvct} \alias{dbvamix} \alias{pbvlog} \alias{pbvalog} \alias{pbvhr} \alias{pbvneglog} \alias{pbvaneglog} \alias{pbvbilog} \alias{pbvnegbilog} \alias{pbvct} \alias{pbvamix} \alias{amvalog} \alias{amvlog} \alias{rmvlog} \alias{rmvalog} \alias{pmvlog} \alias{pmvalog} \alias{dmvlog} \alias{dmvalog} \alias{tvdepfn} \alias{mvalog.check} \alias{subsets} \alias{fgev.quantile} \alias{fgev.norm} \alias{fpot.quantile} \alias{fpot.norm} \alias{fbvlog} \alias{fbvalog} \alias{fbvhr} \alias{fbvneglog} \alias{fbvaneglog} \alias{fbvbilog} \alias{fbvnegbilog} \alias{fbvct} \alias{fbvamix} \alias{fbvcpot} \alias{fbvclog} \alias{fbvcalog} \alias{fbvcaneglog} \alias{fbvcbilog} \alias{fbvcct} \alias{fbvcnegbilog} \alias{fbvcneglog} \alias{fbvchr} \alias{fbvcamix} \alias{fbvppot} \alias{fbvplog} \alias{fbvpbilog} \alias{fbvpct} \alias{fbvpnegbilog} \alias{fbvpneglog} \alias{fbvphr} \alias{bvpost.optim} \alias{bvstart.vals} \alias{sep.bvdata} \alias{dens} \alias{pp} \alias{qq} \alias{rl} \alias{dens.gev} \alias{pp.gev} \alias{qq.gev} \alias{rl.gev} \alias{dens.pot} \alias{pp.pot} \alias{qq.pot} \alias{rl.pot} \alias{dens.gumbelx} \alias{pp.gumbelx} \alias{qq.gumbelx} \alias{rl.gumbelx} \alias{bvcpp} \alias{bvdens} \alias{bvdp} \alias{bvqc} \alias{bvh} \alias{bvcpp.bvevd} \alias{bvdens.bvevd} \alias{bvdp.bvevd} \alias{bvqc.bvevd} \alias{bvh.bvevd} \alias{bvdens.bvpot} \alias{bvdp.bvpot} \alias{bvqc.bvpot} \alias{bvh.bvpot} \title{Internal Functions} \description{ The evd package contains many internal functions that are not designed to be called by the user. Plotting: The generic functions \code{dens}, \code{pp}, \code{qq} and \code{rl} create the diagnostic plots generated by \code{plot.uvevd}. Similarly, \code{bvdens}, \code{bvcpp}, \code{bvdp}, \code{bvqc} and \code{bvh} create the diagnostic plots generated by \code{plot.bvevd} and \code{plot.bvpot}. Distribution: There are internal, simulation, distribution, density, dependence and spectral density functions for separate bivariate and multivariate parametric models, which are called from functions such as \code{abvevd} and \code{pmvevd}. Additionally, the three functions \code{mvalog.check} (checks and transforms asymmetry parameters), \code{subsets} (generates all subsets of a set) and \code{tvdepfn} (plots trivariate dependence functions) are called from functions associated with multivariate distributions. Univariate Fitting: The fitting function \code{fgev} calls the internal functions \code{fgev.quantile} and \code{fgev.norm} for fits under different parameterizations. The fitting function \code{fpot} calls the internal functions \code{fpot.norm} and \code{fpot.quantile}. Bivariate Fitting: For fitting bivariate distributions, internal functions exist for each model. For fitting bivariate threshold models, internal functions exist for the censored and (undocumented) point process likelihoods, and each of these calls a further internal function corresponding to the specified model. The functions \code{bvpost.optim} (post-optimisation processing), \code{bvstart.vals} (starting values) and \code{sep.bvdata} (separation of data) are additionally used in the fitting of bivariate distributions and bivariate threshold models. } \keyword{internal} evd/man/profile.evd.Rd0000644000176000001440000000575114224766050014355 0ustar ripleyusers\name{profile.evd} \alias{profile.evd} \title{Method for Profiling EVD Objects} \description{ Calculate profile traces for fitted models. } \usage{ \method{profile}{evd}(fitted, which = names(fitted$estimate), conf = 0.999, mesh = fitted$std.err[which]/4, xmin = rep(-Inf, length(which)), xmax = rep(Inf, length(which)), convergence = FALSE, method = "BFGS", control = list(maxit = 500), \dots) } \arguments{ \item{fitted}{An object of class \code{"evd"}.} \item{which}{A character vector giving the model parameters that are to be profiled. By default, all parameters are profiled.} \item{conf}{Controls the range over which the parameters are profiled. The profile trace is constructed so that (assuming the usual asymptotic properties hold) profile confidence intervals with confidence coefficients \code{conf} or less can be derived from it.} \item{mesh}{A numeric vector containing one value for each parameter in \code{which}. The values represent the distance between the points profiled. By default \code{mesh} is one quarter of the standard errors. If the fitted object does not contain standard errors the argument must be specified. The argument should also be specified when an estimator is on or close to a parameter boundary, since the approximated ``standard error'' will then be close to zero.} \item{xmin, xmax}{Numeric vectors containing one value for each parameter in \code{which}. Each value represents the theoretical lower/upper bound of the corresponding parameter. The arguments are needed only when a parameter has a lower/upper bound at which the likelihood is non-zero. Do not use these arguments to specify plotting ranges in a subsequent plot (as they are used in the calculation of profile confidence intervals); to do this use \code{xlim} in the call to \code{plot}.} \item{convergence}{Logical; print convergence code after each optimization? (A warning is given for each non-zero convergence code, irrespective of the value of \code{convergence}.)} \item{method}{The optimization method.} \item{control}{Passed to \code{optim}. See \code{\link{optim}} for details.} \item{\dots}{Ignored.} } \value{ An object of class \code{"profile.evd"}, which is a list with an element for each parameter being profiled. The elements are matrices. The first column contains the values of the profiled parameter. The second column contains profile deviances. The remaining columns contain the constrained maximum likelihood estimates for the remaining model parameters. For calculation of profile confidence intervals, use the \code{\link{confint.profile.evd}} function. } \seealso{\code{\link{confint.profile.evd}}, \code{\link{profile2d.evd}}, \code{\link{plot.profile.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{par(mfrow = c(2,2))} \dontrun{cint <- plot(M1P)} \dontrun{cint} } \keyword{models} evd/man/frechet.Rd0000644000176000001440000000333512637167310013554 0ustar ripleyusers\name{frechet} \alias{dfrechet} \alias{pfrechet} \alias{qfrechet} \alias{rfrechet} \title{The Frechet Distribution} \description{ Density function, distribution function, quantile function and random generation for the Frechet distribution with location, scale and shape parameters. } \usage{ dfrechet(x, loc=0, scale=1, shape=1, log = FALSE) pfrechet(q, loc=0, scale=1, shape=1, lower.tail = TRUE) qfrechet(p, loc=0, scale=1, shape=1, lower.tail = TRUE) rfrechet(n, loc=0, scale=1, shape=1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters (can be given as vectors).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The Frechet distribution function with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = \exp\left\{-\left(\frac{z-a}{b}\right)^{-s} \right\}}{G(x) = exp{-[(z-a)/b]^(-s)}} for \eqn{z > a} and zero otherwise, where \eqn{b > 0} and \eqn{s > 0}. } \value{ \code{dfrechet} gives the density function, \code{pfrechet} gives the distribution function, \code{qfrechet} gives the quantile function, and \code{rfrechet} generates random deviates. } \seealso{\code{\link{rgev}}, \code{\link{rgumbel}}, \code{\link{rrweibull}}} \examples{ dfrechet(2:4, 1, 0.5, 0.8) pfrechet(2:4, 1, 0.5, 0.8) qfrechet(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rfrechet(6, 1, 0.5, 0.8) p <- (1:9)/10 pfrechet(qfrechet(p, 1, 2, 0.8), 1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/evind.test.Rd0000644000176000001440000000254212637167310014216 0ustar ripleyusers\name{evind.test} \alias{evind.test} \title{Perform Hypothesis Test Of Independence} \description{ Perform score and likelihood ratio tests of independence for bivariate data, assuming a logistic dependence model as the alternative. } \usage{ evind.test(x, method = c("ratio", "score"), verbose = FALSE) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values.} \item{method}{The test methodology; either \code{"ratio"} for the likelihood ratio test or \code{"score"} for the score test.} \item{verbose}{If \code{TRUE}, shows estimates of the marginal parameters in addition to the dependence parameter.} } \details{ This simple function fits a stationary bivariate logistic model to the data and performs a hypothesis test of \eqn{\code{dep} = 1} versus \eqn{\code{dep} < 1} using the methodology in Tawn (1988). The null distributions for the printed test statistics are chi-squared on one df for the likelihood ratio test, and standard normal for the score test. } \value{ An object of class \code{"htest"}. } \references{ Tawn, J. A. (1988) Bivariate extreme value theory: models and estimation. \emph{Biometrika}, \bold{75}, 397--415. } \seealso{\code{\link{fbvevd}}, \code{\link{t.test}}} \examples{ evind.test(sealevel) evind.test(sealevel, method = "score") } \keyword{htest} evd/man/bvevd.Rd0000644000176000001440000003552712637167310013252 0ustar ripleyusers\name{bvevd} \alias{dbvevd} \alias{pbvevd} \alias{rbvevd} \title{Parametric Bivariate Extreme Value Distributions} \description{ Density function, distribution function and random generation for nine parametric bivariate extreme value models. } \usage{ dbvevd(x, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0, 1, 0), mar2 = mar1, log = FALSE) pbvevd(q, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0, 1, 0), mar2 = mar1, lower.tail = TRUE) rbvevd(n, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0, 1, 0), mar2 = mar1) } \arguments{ \item{x, q}{A vector of length two or a matrix with two columns, in which case the density/distribution is evaluated across the rows.} \item{n}{Number of observations.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{mar1, mar2}{Vectors of length three containing marginal parameters, or matrices with three columns where each column represents a vector of values to be passed to the corresponding marginal parameter.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), the distribution function is returned; the survivor function is returned otherwise.} } \details{ Define \deqn{y_i = y_i(z_i) = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = yi(zi) = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,2}, where the marginal parameters are given by \eqn{\code{mari} = (a_i,b_i,s_i)}{\code{mari} = (ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. In each of the bivariate distributions functions \eqn{G(z_1,z_2)}{G(z1,z2)} given below, the univariate margins are generalized extreme value, so that \eqn{G(z_i) = \exp(-y_i)}{G(zi) = \exp(-yi)} for \eqn{i = 1,2}. If \eqn{1+s_i(z_i-a_i)/b_i \leq 0}{1+si(zi-ai)/bi <= 0} for some \eqn{i = 1,2}, the value \eqn{z_i}{zi} is either greater than the upper end point (if \eqn{s_i < 0}{si < 0}), or less than the lower end point (if \eqn{s_i > 0}{si > 0}), of the \eqn{i}th univariate marginal distribution. \code{model = "log"} (Gumbel, 1960) The bivariate logistic distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z_1,z_2) = \exp\left[-(y_1^{1/r}+y_2^{1/r})^r\right]}{ G(z1,z2) = exp{-[y1^(1/r)+y2^(1/r)]^r}} where \eqn{0 < r \leq 1}{0 < r <= 1}. This is a special case of the bivariate asymmetric logistic model. Complete dependence is obtained in the limit as \eqn{r} approaches zero. Independence is obtained when \eqn{r = 1}. \code{model = "alog"} (Tawn, 1988) The bivariate asymmetric logistic distribution function with parameters \eqn{\code{dep} = r} and \eqn{\code{asy} = (t_1,t_2)}{\code{asy} = (t1,t2)} is \deqn{G(z_1,z_2) = \exp\left\{-(1-t_1)y_1-(1-t_2)y_2- [(t_1y_1)^{1/r}+(t_2y_2)^{1/r}]^r\right\}}{ G(z1,z2) = exp{-(1-t1)y1-(1-t2)y2-[(t1y1)^(1/r)+(t2y2)^(1/r)]^r}} where \eqn{0 < r \leq 1}{0 < r <= 1} and \eqn{0 \leq t_1,t_2 \leq 1}{0 <= t1,t2 <= 1}. When \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} the asymmetric logistic model is equivalent to the logistic model. Independence is obtained when either \eqn{r = 1}, \eqn{t_1 = 0}{t1 = 0} or \eqn{t_2 = 0}{t2 = 0}. Complete dependence is obtained in the limit when \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} and \eqn{r} approaches zero. Different limits occur when \eqn{t_1}{t1} and \eqn{t_2}{t2} are fixed and \eqn{r} approaches zero. \code{model = "hr"} (Husler and Reiss, 1989) The Husler-Reiss distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z_1,z_2) = \exp\left(-y_1\Phi\{r^{-1}+{\textstyle\frac{1}{2}} r[\log(y_1/y_2)]\} - y_2\Phi\{r^{-1}+{\textstyle\frac{1}{2}}r [\log(y_2/y_1)]\}\right)}{ G(z1,z2) = exp(-y1 Phi{r^{-1}+r[log(y1/y2)]/2} - y2 Phi{r^{-1}+r[log(y2/y1)]/2}} where \eqn{\Phi(\cdot)}{Phi()} is the standard normal distribution function and \eqn{r > 0}. Independence is obtained in the limit as \eqn{r} approaches zero. Complete dependence is obtained as \eqn{r} tends to infinity. \code{model = "neglog"} (Galambos, 1975) The bivariate negative logistic distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z_1,z_2) = \exp\left\{-y_1-y_2+ [y_1^{-r}+y_2^{-r}]^{-1/r}\right\}}{ G(z1,z2) = exp{-y1-y2+[y1^(-r)+y2^(-r)]^(-1/r)}} where \eqn{r > 0}. This is a special case of the bivariate asymmetric negative logistic model. Independence is obtained in the limit as \eqn{r} approaches zero. Complete dependence is obtained as \eqn{r} tends to infinity. The earliest reference to this model appears to be Galambos (1975, Section 4). \code{model = "aneglog"} (Joe, 1990) The bivariate asymmetric negative logistic distribution function with parameters parameters \eqn{\code{dep} = r} and \eqn{\code{asy} = (t_1,t_2)}{\code{asy} = (t1,t2)} is \deqn{G(z_1,z_2) = \exp\left\{-y_1-y_2+ [(t_1y_1)^{-r}+(t_2y_2)^{-r}]^{-1/r}\right\}}{ G(z1,z2) = exp{-y1-y2+[(t1y1)^(-r)+(t2y2)^(-r)]^(-1/r)}} where \eqn{r > 0} and \eqn{0 < t_1,t_2 \leq 1}{0 < t1,t2 <= 1}. When \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} the asymmetric negative logistic model is equivalent to the negative logistic model. Independence is obtained in the limit as either \eqn{r}, \eqn{t_1}{t1} or \eqn{t_2}{t2} approaches zero. Complete dependence is obtained in the limit when \eqn{t_1 = t_2 = 1}{t1 = t2 = 1} and \eqn{r} tends to infinity. Different limits occur when \eqn{t_1}{t1} and \eqn{t_2}{t2} are fixed and \eqn{r} tends to infinity. The earliest reference to this model appears to be Joe (1990), who introduces a multivariate extreme value distribution which reduces to \eqn{G(z_1,z_2)}{G(z1,z2)} in the bivariate case. \code{model = "bilog"} (Smith, 1990) The bilogistic distribution function with parameters \eqn{\code{alpha} = \alpha}{\code{alpha} = alpha} and \eqn{\code{beta} = \beta}{\code{beta} = beta} is \deqn{G(z_1,z_2) = \exp\left\{-y_1 q^{1-\alpha} - y_2 (1-q)^{1-\beta}\right\}}{ G(z1,z2) = exp{- y1 q^(1-alpha) - y2 (1-q)^(1-beta)}} where \eqn{q = q(y_1,y_2;\alpha,\beta)}{q = q(y1,y2;alpha,beta)} is the root of the equation \deqn{(1-\alpha) y_1 (1-q)^\beta - (1-\beta) y_2 q^\alpha = 0,}{ (1-alpha) y1 (1-q)^beta - (1-beta) y2 q^alpha = 0,} \eqn{0 < \alpha,\beta < 1}{0 < alpha,beta < 1}. When \eqn{\alpha = \beta}{alpha = beta} the bilogistic model is equivalent to the logistic model with dependence parameter \eqn{\code{dep} = \alpha = \beta}{\code{dep} = alpha = beta}. Complete dependence is obtained in the limit as \eqn{\alpha = \beta}{alpha = beta} approaches zero. Independence is obtained as \eqn{\alpha = \beta}{alpha = beta} approaches one, and when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches one. Different limits occur when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches zero. A bilogistic model is fitted in Smith (1990), where it appears to have been first introduced. \code{model = "negbilog"} (Coles and Tawn, 1994) The negative bilogistic distribution function with parameters \eqn{\code{alpha} = \alpha}{\code{alpha} = alpha} and \eqn{\code{beta} = \beta}{\code{beta} = beta} is \deqn{G(z_1,z_2) = \exp\left\{- y_1 - y_2 + y_1 q^{1+\alpha} + y_2 (1-q)^{1+\beta}\right\}}{ G(z1,z2) = exp{- y1 - y2 + y1 q^(1+alpha) + y2 (1-q)^(1+beta)}} where \eqn{q = q(y_1,y_2;\alpha,\beta)}{q = q(y1,y2;alpha,beta)} is the root of the equation \deqn{(1+\alpha) y_1 q^\alpha - (1+\beta) y_2 (1-q)^\beta = 0,}{ (1+alpha) y1 q^alpha - (1+beta) y2 (1-q)^beta = 0,} \eqn{\alpha > 0}{alpha > 0} and \eqn{\beta > 0}{beta > 0}. When \eqn{\alpha = \beta}{alpha = beta} the negative bilogistic model is equivalent to the negative logistic model with dependence parameter \eqn{\code{dep} = 1/\alpha = 1/\beta}{ \code{dep} = 1/alpha = 1/beta}. Complete dependence is obtained in the limit as \eqn{\alpha = \beta}{alpha = beta} approaches zero. Independence is obtained as \eqn{\alpha = \beta}{alpha = beta} tends to infinity, and when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other tends to infinity. Different limits occur when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches zero. \code{model = "ct"} (Coles and Tawn, 1991) The Coles-Tawn distribution function with parameters \eqn{\code{alpha} = \alpha > 0}{\code{alpha} = alpha > 0} and \eqn{\code{beta} = \beta > 0}{\code{beta} = beta > 0} is \deqn{G(z_1,z_2) = \exp\left\{-y_1 [1 - \mbox{Be}(q;\alpha+1,\beta)] - y_2 \mbox{Be}(q;\alpha,\beta+1) \right\}}{ G(z1,z2) = exp{- y1 [1 - Be(q;alpha+1,beta)] - y2 Be(q;alpha,beta+1)}} where \eqn{q = \alpha y_2 / (\alpha y_2 + \beta y_1)}{ q = alpha y2 / (alpha y2 + beta y1)} and \eqn{\mbox{Be}(q;\alpha,\beta)}{Be(q;alpha,beta)} is the beta distribution function evaluated at \eqn{q} with \eqn{\code{shape1} = \alpha}{\code{shape1} = alpha} and \eqn{\code{shape2} = \beta}{\code{shape2} = beta}. Complete dependence is obtained in the limit as \eqn{\alpha = \beta}{alpha = beta} tends to infinity. Independence is obtained as \eqn{\alpha = \beta}{alpha = beta} approaches zero, and when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other approaches zero. Different limits occur when one of \eqn{\alpha,\beta}{alpha,beta} is fixed and the other tends to infinity. \code{model = "amix"} (Tawn, 1988) The asymmetric mixed distribution function with parameters \eqn{\code{alpha} = \alpha}{\code{alpha} = alpha} and \eqn{\code{beta} = \beta}{\code{beta} = beta} has a dependence function with the following cubic polynomial form. \deqn{A(t) = 1 - (\alpha +\beta)t + \alpha t^2 + \beta t^3}{ A(t) = 1 - (\alpha +\beta)t + \alpha t^2 + \beta t^3} where \eqn{\alpha}{alpha} and \eqn{\alpha + 3\beta}{alpha + 3beta} are non-negative, and where \eqn{\alpha + \beta}{alpha + beta} and \eqn{\alpha + 2\beta}{alpha + 2beta} are less than or equal to one. These constraints imply that beta lies in the interval [-0.5,0.5] and that alpha lies in the interval [0,1.5], though alpha can only be greater than one if beta is negative. The strength of dependence increases for increasing alpha (for fixed beta). Complete dependence cannot be obtained. Independence is obtained when both parameters are zero. For the definition of a dependence function, see \code{\link{abvevd}}. } \value{ \code{dbvevd} gives the density function, \code{pbvevd} gives the distribution function and \code{rbvevd} generates random deviates, for one of nine parametric bivariate extreme value models. } \note{ The logistic and asymmetric logistic models respectively are simulated using bivariate versions of Algorithms 1.1 and 1.2 in Stephenson(2003). All other models are simulated using a root finding algorithm to simulate from the conditional distributions. The simulation of the bilogistic and negative bilogistic models requires a root finding algorithm to evaluate \eqn{q} within the root finding algorithm used to simulate from the conditional distributions. The generation of bilogistic and negative bilogistic random deviates is therefore relatively slow (about 2.8 seconds per 1000 random vectors on a 450MHz PIII, 512Mb RAM). The bilogistic and negative bilogistic models can be represented under a single model, using the integral of the maximum of two beta distributions (Joe, 1997). The Coles-Tawn model is called the Dirichelet model in Coles and Tawn (1991). } \references{ Coles, S. G. and Tawn, J. A. (1991) Modelling extreme multivariate events. \emph{J. Roy. Statist. Soc., B}, \bold{53}, 377--392. Coles, S. G. and Tawn, J. A. (1994) Statistical methods for multivariate extremes: an application to structural design (with discussion). \emph{Appl. Statist.}, \bold{43}, 1--48. Galambos, J. (1975) Order statistics of samples from multivariate distributions. \emph{J. Amer. Statist. Assoc.}, \bold{70}, 674--680. Gumbel, E. J. (1960) Distributions des valeurs extremes en plusieurs dimensions. \emph{Publ. Inst. Statist. Univ. Paris}, \bold{9}, 171--173. Husler, J. and Reiss, R.-D. (1989) Maxima of normal random vectors: between independence and complete dependence. \emph{Statist. Probab. Letters}, \bold{7}, 283--286. Joe, H. (1990) Families of min-stable multivariate exponential and multivariate extreme value distributions. \emph{Statist. Probab. Letters}, \bold{9}, 75--81. Joe, H. (1997) \emph{Multivariate Models and Dependence Concepts}, London: Chapman & Hall. Smith, R. L. (1990) Extreme value theory. In \emph{Handbook of Applicable Mathematics} (ed. W. Ledermann), vol. 7. Chichester: John Wiley, pp. 437--471. Stephenson, A. G. (2003) Simulating multivariate extreme value distributions of logistic type. \emph{Extremes}, \bold{6}(1), 49--60. Tawn, J. A. (1988) Bivariate extreme value theory: models and estimation. \emph{Biometrika}, \bold{75}, 397--415. } \seealso{\code{\link{abvevd}}, \code{\link{rgev}}, \code{\link{rmvevd}}} \examples{ pbvevd(matrix(rep(0:4,2), ncol=2), dep = 0.7, model = "log") pbvevd(c(2,2), dep = 0.7, asy = c(0.6,0.8), model = "alog") pbvevd(c(1,1), dep = 1.7, model = "hr") margins <- cbind(0, 1, seq(-0.5,0.5,0.1)) rbvevd(11, dep = 1.7, model = "hr", mar1 = margins) rbvevd(10, dep = 1.2, model = "neglog", mar1 = c(10, 1, 1)) rbvevd(10, alpha = 0.7, beta = 0.52, model = "bilog") dbvevd(c(0,0), dep = 1.2, asy = c(0.5,0.9), model = "aneglog") dbvevd(c(0,0), alpha = 0.75, beta = 0.5, model = "ct", log = TRUE) dbvevd(c(0,0), alpha = 0.7, beta = 1.52, model = "negbilog") } \keyword{distribution} evd/man/tcplot.Rd0000644000176000001440000001035112637167310013435 0ustar ripleyusers\name{tcplot} \alias{tcplot} \title{Threshold Choice Plot} \description{ Plots of parameter estimates at various thresholds for peaks over threshold modelling, using the Generalized Pareto or Point Process representation. } \usage{ tcplot(data, tlim, model = c("gpd","pp"), pscale = FALSE, cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, nt = 25, which = 1:npar, conf = 0.95, lty = 1, lwd = 1, type = "b", cilty = 1, vci = TRUE, xlab, xlim, ylabs, ylims, ask = nb.fig < length(which) && dev.interactive(), \dots) } \arguments{ \item{data}{A numeric vector.} \item{tlim}{A numeric vector of length two, giving the limits for the thresholds at which the model is fitted.} \item{model}{The model; either \code{"gpd"} (the default) or \code{"pp"}, for the Generalized Pareto or Point Process representations respectively.} \item{pscale}{If \code{TRUE}, then the x-axis gives the threshold exceedance probability rather than the threshold itself.} \item{cmax}{Logical; if \code{FALSE} (the default), the models are fitted using all exceedences over the thresholds. If \code{TRUE}, the models are fitted using cluster maxima, using clusters of exceedences derived from \code{clusters}.} \item{r, ulow, rlow}{Arguments used for the identification of clusters of exceedences (see \code{\link{clusters}}). Ignored if \code{cmax} is \code{FALSE} (the default).} \item{nt}{The number of thresholds at which the model is fitted.} \item{which}{If a subset of the plots is required, specify a subset of the numbers \code{1:npar}, where \code{npar} is the number of parameters, so that \code{npar = 2} when \code{model = "gpd"} (the default) and \code{npar = 3} when \code{model = "pp"}.} \item{conf}{The (pointwise) confidence coefficient for the plotted confidence intervals. Use zero to suppress.} \item{lty, lwd}{The line type and width of the line connecting the parameter estimates.} \item{type}{The form taken by the line connecting the parameter estimates and the points denoting these estimates. Possible values include \code{"b"} (the default) for points joined by lines, \code{"o"} for overplotted points and lines, and \code{"l"} for an unbroken line with no points.} \item{cilty}{The line type of the lines depicting the confidence intervals.} \item{vci}{If \code{TRUE} (the default), confidence intervals are plotted using vertical lines.} \item{xlab, xlim}{Label and limits for the x-axis; if given, these arguments apply to every plot.} \item{ylabs, ylims}{A vector of y-axis labels and a matrix of y-axis limits. If given, \code{ylabs} should have the same length as \code{which}, and \code{ylims} should have two columns and \code{length(which)} rows. If the length of \code{which} is one, then \code{ylims} can be a vector of length two.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{\dots}{Other arguments to be passed to the model fit function \code{fpot}.} } \details{ For each of the \code{nt} thresholds a peaks over threshold model is fitted using the function \code{fpot}. When \code{model = "gpd"} (the default), the maximum likelihood estimates for the shape and the modified scale parameter (modified by subtracting the shape multiplied by the threshold) are plotted against the thresholds. When \code{model = "pp"} the maximum likelihood estimates for the location, scale and shape parameters are plotted against the thresholds. (The modified scale parameter in the \code{"gpd"} case is equivalent to the scale parameter in the \code{"pp"} case.) If the threshold \code{u} is a valid threshold to be used for peaks over threshold modelling, the parameter estimates depicted should be approximately constant above \code{u}. } \value{ A list is invisibly returned. Each component is a matrix with three columns giving parameter estimates and confidence limits. } \author{Stuart Coles and Alec Stephenson} \seealso{\code{\link{fpot}}, \code{\link{mrlplot}}, \code{\link{clusters}}} \examples{ tlim <- c(3.6, 4.2) \dontrun{tcplot(portpirie, tlim)} \dontrun{tcplot(portpirie, tlim, nt = 100, lwd = 3, type = "l")} \dontrun{tcplot(portpirie, tlim, model = "pp")} } \keyword{hplot} evd/man/ocmulgee.Rd0000644000176000001440000000165012637167310013732 0ustar ripleyusers\name{ocmulgee} \alias{ocmulgee} \title{Maximum Annual Flood Discharges of the Ocmulgee River} \usage{ocmulgee} \description{ The \code{ocmulgee} data frame has 40 rows and 2 columns. The columns contain maximum annual flood discharges, in units of 1000 cubed feet per second, from the Ocmulgee River in Georgia, USA at Hawkinsville (upstream) and Macon (downstream), for the years 1910 to 1949. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{hawk}{A numeric vector containing maximum annual flood discharges at Hawkinsville (upstream).} \item{macon}{A numeric vector containing maximum annual flood discharges at Macon (downstream).} } } \source{ Gumbel, E. J. and Goldstein, N. (1964) Analysis of empirical bivariate extremal distributions. \emph{J. Amer. Statist. Assoc.}, \bold{59}, 794--816. } \keyword{datasets} evd/man/fbvpot.Rd0000644000176000001440000002136412637167310013436 0ustar ripleyusers\name{fbvpot} \alias{fbvpot} \alias{print.bvpot} \title{Maximum-likelihood Fitting of Bivariate Extreme Value Distributions to Threshold Exceedances} \description{ Fit models for one of nine parametric bivariate extreme-value distributions using threshold exceedances, allowing any of the parameters to be held fixed if desired. } \usage{ fbvpot(x, threshold, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), likelihood = c("censored", "poisson"), start, \dots, sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A matrix or data frame with two columns. If this contains missing values, those values are treated as if they fell below the corresponding marginal threshold.} \item{threshold}{A vector of two thresholds.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}.} \item{likelihood}{The likelihood model; either \code{"censored"} (the default) or \code{"poisson"}. The \code{"poisson"} method is not recommended. See \bold{Details}.} \item{start}{A named list giving the initial values for all of the parameters in the model. If \code{start} is omitted the routine attempts to find good starting values using marginal maximum likelihood estimators.} \item{\dots}{Additional parameters, either for the bivariate extreme value model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{sym}{Logical; if \code{TRUE}, the dependence structure of the models \code{"alog"}, \code{"aneglog"} or \code{"ct"} are constrained to be symmetric (see \bold{Details}). For all other models, the argument is ignored (and a warning is given).} \item{cshape}{Logical; if \code{TRUE}, a common shape parameter is fitted to each margin.} \item{cscale}{Logical; if \code{TRUE}, a common scale parameter is fitted to each margin, and the default value of \code{cshape} is then \code{TRUE}, so that under this default common marginal parameters are fitted.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ For the \code{"censored"} method bivariate peaks over threshold models are fitted by maximizing the censored likelihood as given in e.g. Section 8.3.1 of Coles(2001). For the \code{"poisson"} method models are fitted using Equation 5.4 of Coles and Tawn (1991), see also Joe, Smith and Weissman (1992). This method is only available for models whose spectral measure does not contain point masses (see {\link{hbvevd}}). It is not recommended as in practice it can produce poor estimates. For either likelihood the margins are modelled using a generalized Pareto distribution for points above the threshold and an empirical model for those below. For the \code{"poisson"} method data lying below both thresholds is not used. For the \code{"censored"} method the number of points lying below both thresholds is used, but the locations of the those points are not. The dependence parameter names are one or more of \code{dep}, \code{asy1}, \code{asy2}, \code{alpha} and \code{beta}, depending on the model selected (see \code{\link{rbvevd}}). The marginal parameter names are \code{scale1} and \code{shape1} for the first margin, and \code{scale2} and \code{shape2} for the second margin. If \code{cshape} is true, the models are constrained so that \code{shape2 = shape1}. The parameter \code{shape2} is then taken to be specified, so that e.g. the common shape parameter can only be fixed at zero using \code{shape1 = 0}, since using \code{shape2 = 0} gives an error. Similar comments apply for \code{cscale}. If \code{sym} is \code{TRUE}, the asymmetric logistic and asymmetric negative logistic models are constrained so that \code{asy2 = asy1}, and the Coles-Tawn model is constrained so that \code{beta = alpha}. The parameter \code{asy2} or \code{beta} is then taken to be specified, so that e.g. the parameters \code{asy1} and \code{asy2} can only be fixed at \code{0.8} using \code{asy1 = 0.8}, since using \code{asy2 = 0.8} gives an error. Bilogistic and negative bilogistic models constrained to symmetry are logistic and negative logistic models respectively. The (symmetric) mixed model (e.g. Tawn, 1998) can be obtained as a special case of the asymmetric logistic or asymmetric mixed models (see \bold{fbvevd}). For numerical reasons the parameters of each model are subject the artificial constraints given in \code{\link{fbvevd}}. } \value{ Returns an object of class \code{c("bvpot","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The functions \code{profile} and \code{profile2d} can be used to obtain deviance profiles. The function \code{anova} compares nested models, and the function \code{AIC} compares non-nested models. There is currently no plot method available. An object of class \code{c("bvpot","evd")} is a list containing the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters that have been fixed at specific values within the optimization.} \item{fixed2}{A vector containing the parameters that have been set to be equal to other model parameters.} \item{param}{A vector containing all parameters (those optimized, those fixed to specific values, and those set to be equal to other model parameters).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{dep.summary}{A value summarizing the strength of dependence in the fitted model (see \bold{fbvevd}).} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{data}{The data passed to the argument \code{x}.} \item{threshold}{The argument \code{threshold}.} \item{n}{The number of rows in \code{x}.} \item{nat}{The vector of length three containing the number of exceedances on the first, second and both margins respectively.} \item{likelihood}{The argument \code{likelihood}.} \item{sym}{The argument \code{sym}.} \item{cmar}{The vector \code{c(cscale, cshape)}.} \item{model}{The argument \code{model}.} \item{call}{The call of the current function.} } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when either of the marginal shape parameters are less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modelling of Extreme Values}, London: Springer--Verlag. Coles, S. G. and Tawn, J. A. (1991) Modelling multivariate extreme events. \emph{J. R. Statist. Soc. B}, \bold{53}, 377--392. Joe, H., Smith, R. L. and Weissman, I. (1992) Bivariate threshold methods for extremes. \emph{J. R. Statist. Soc. B}, \bold{54}, 171--183. Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \author{Chris Ferro and Alec Stephenson} \seealso{\code{\link{abvevd}}, \code{\link{anova.evd}}, \code{\link{fbvevd}}, \code{\link{optim}}, \code{\link{rbvevd}}} \examples{ bvdata <- rbvevd(1000, dep = 0.5, model = "log") u <- apply(bvdata, 2, quantile, probs = 0.9) M1 <- fbvpot(bvdata, u, model = "log") M2 <- fbvpot(bvdata, u, "log", dep = 0.5) anova(M1, M2) } \keyword{models} evd/man/amvnonpar.Rd0000644000176000001440000001265612637167310014143 0ustar ripleyusers\name{amvnonpar} \alias{amvnonpar} \title{Non-parametric Estimates for Dependence Functions of the Multivariate Extreme Value Distribution} \description{ Calculate non-parametric estimates for the dependence function \eqn{A} of the multivariate extreme value distribution and plot the estimated function in the trivariate case. } \usage{ amvnonpar(x = rep(1/d,d), data, d = 3, epmar = FALSE, nsloc = NULL, madj = 0, kmar = NULL, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) } \arguments{ \item{x}{A vector of length \code{d} or a matrix with \code{d} columns, in which case the dependence function is evaluated across the rows (ignored if plot is \code{TRUE}). The elements/rows of the vector/matrix should be positive and should sum to one, or else they should have a positive sum, in which case the rows are rescaled and a warning is given. \eqn{A(1/d,\dots,1/d)} is returned by default since it is often a useful summary of dependence.} \item{data}{A matrix or data frame with \code{d} columns, which may contain missing values.} \item{d}{The dimension; an integer greater than or equal to two. The trivariate case \code{d = 3} is the default.} \item{epmar}{If \code{TRUE}, an empirical transformation of the marginals is performed in preference to marginal parametric GEV estimation, and the \code{nsloc} argument is ignored.} \item{nsloc}{A data frame with the same number of rows as \code{data}, or a list containing \code{d} elements of this type, for linear modelling of the marginal location parameters. In the former case, the argument is applied to all margins. The data frames are treated as covariate matrices, excluding the intercept. Numeric vectors can be given as alternatives to single column data frames. A list can contain \code{NULL} elements for stationary modelling of selected margins.} \item{madj}{Performs marginal adjustments. See \code{\link{abvnonpar}}.} \item{kmar}{In the rare case that the marginal distributions are known, specifies the GEV parameters to be used instead of maximum likelihood estimates.} \item{plot}{Logical; if \code{TRUE}, and the dimension \code{d} is three (the default dimension), the dependence function of a trivariate extreme value distribution is plotted. For plotting in the bivariate case, use \code{\link{abvnonpar}}. If \code{FALSE} (the default), the following arguments are ignored.} \item{col}{A list of colours (see \code{\link{image}}). The first colours in the list represent smaller values, and hence stronger dependence. Each colour represents an equally spaced interval between \code{lower} and one.} \item{blty}{The border line type, for the border that surrounds the triangular image. By default \code{blty} is zero, so no border is plotted. Plotting a border leads to (by default) an increase in \code{grid} (and hence computation time), to ensure that the image fits within it.} \item{grid}{For plotting, the function is evaluated at \code{grid^2} points.} \item{lower}{The minimum value for which colours are plotted. By default \eqn{\code{lower} = 1/3} as this is the theoretical minimum of the dependence function of the trivariate extreme value distribution.} \item{ord}{A vector of length three, which should be a permutation of the set \eqn{\{1,2,3\}}{{1,2,3}}. The points \eqn{(1,0,0)}, \eqn{(0,1,0)} and \eqn{(0,0,1)} (the vertices of the simplex) are depicted clockwise from the top in the order defined by \code{ord}. The argument alters the way in which the function is plotted; it does not change the function definition.} \item{lab}{A character vector of length three, in which case the \code{i}th margin is labelled using the \code{i}th component, or \code{NULL}, in which case no labels are given. By default, \code{lab} is \code{as.character(1:3)}. The actual location of the margins, and hence the labels, is defined by \code{ord}.} \item{lcex}{A numerical value giving the amount by which the labels should be scaled relative to the default. Ignored if \code{lab} is \code{NULL}.} } \note{ The rows of \code{data} that contain missing values are not used in the estimation of the dependence structure, but every non-missing value is used in estimating the margins. The dependence function of the multivariate extreme value distribution is defined in \code{\link{amvevd}}. The function \code{\link{amvevd}} calculates and plots dependence functions of multivariate logistic and multivariate asymmetric logistic models. The estimator plotted or calculated is a multivariate extension of the bivariate Pickands estimator defined in \code{\link{abvnonpar}}. } \value{ A numeric vector of estimates. If plotting, the smallest evaluated estimate is returned invisibly. } \seealso{\code{\link{amvevd}}, \code{\link{abvnonpar}}, \code{\link{fgev}}} \examples{ s5pts <- matrix(rexp(50), nrow = 10, ncol = 5) s5pts <- s5pts/rowSums(s5pts) sdat <- rmvevd(100, dep = 0.6, model = "log", d = 5) amvnonpar(s5pts, sdat, d = 5) \dontrun{amvnonpar(data = sdat, plot = TRUE)} \dontrun{amvnonpar(data = sdat, plot = TRUE, ord = c(2,3,1), lab = LETTERS[1:3])} \dontrun{amvevd(dep = 0.6, model = "log", plot = TRUE)} \dontrun{amvevd(dep = 0.6, model = "log", plot = TRUE, blty = 1)} } \keyword{nonparametric} evd/man/forder.Rd0000644000176000001440000000653712637167310013424 0ustar ripleyusers\name{forder} \alias{forder} \title{Maximum-likelihood Fitting of Order Statistics} \description{ Maximum-likelihood fitting for the distribution of a selected order statistic of a given number of independent variables from a specified distribution. } \usage{ forder(x, start, densfun, distnfun, \dots, distn, mlen = 1, j = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") } \arguments{ \item{x}{A numeric vector.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized.} \item{densfun, distnfun}{Density and distribution function of the specified distribution.} \item{\dots}{Additional parameters, either for the specified distribution or for the optimization function \code{optim}. If parameters of the distribution are included they will be held fixed at the values given (see \bold{Examples}). If parameters of the distribution are not included either here or as a named component in \code{start} they will be held fixed at the default values specified in the corresponding density and distribution functions (assuming they exist; an error will be generated otherwise).} \item{distn}{A character string, optionally specified as an alternative to \code{densfun} and \code{distnfun} such that the density and distribution and functions are formed upon the addition of the prefixes \code{d} and \code{p} respectively.} \item{mlen}{The number of independent variables.} \item{j}{The order statistic, taken as the \code{j}th largest (default) or smallest of \code{mlen}, according to the value of \code{largest}.} \item{largest}{Logical; if \code{TRUE} (default) use the \code{j}th largest order statistic, otherwise use the \code{j}th smallest.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} } \details{ Maximization of the log-likelihood is performed. The estimated standard errors are taken from the observed information, calculated by a numerical approximation. If the density and distribution functions are user defined, the order of the arguments must mimic those in R base (i.e. data first, parameters second). Density functions must have \code{log} arguments. } \value{ Returns an object of class \code{c("extreme","evd")}. This class is defined in \code{\link{fextreme}}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The function \code{anova} compares nested models. } \seealso{\code{\link{anova.evd}}, \code{\link{fextreme}}, \code{\link{optim}}} \examples{ uvd <- rorder(100, qnorm, mean = 0.56, mlen = 365, j = 2) forder(uvd, list(mean = 0, sd = 1), distn = "norm", mlen = 365, j = 2) forder(uvd, list(rate = 1), distn = "exp", mlen = 365, j = 2, method = "Brent", lower=0.01, upper=10) forder(uvd, list(scale = 1), shape = 1, distn = "gamma", mlen = 365, j = 2, method = "Brent", lower=0.01, upper=10) forder(uvd, list(shape = 1, scale = 1), distn = "gamma", mlen = 365, j = 2) } \keyword{models} evd/man/plot.bvpot.Rd0000644000176000001440000000504412637167310014242 0ustar ripleyusers\name{plot.bvpot} \alias{plot.bvpot} \title{Plot Diagnostics for a Bivariate POT EVD Object} \description{ Four plots (selectable by \code{which}) are currently provided: a density plot (1), a dependence function plot (2), a quantile curves plot (3) and a spectral density plot (4). Plot diagnostics for the generalized Pareto peaks-over-threshold margins (selectable by \code{mar} and \code{which}) are also available. } \usage{ \method{plot}{bvpot}(x, mar = 0, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), grid = 50, above = FALSE, levels = NULL, tlty = 1, blty = 3, rev = FALSE, p = seq(0.75, 0.95, 0.05), half = FALSE, \dots) } \arguments{ \item{x}{An object of class \code{"bvpot"}.} \item{mar}{If \code{mar = 1} or \code{mar = 2} diagnostics are given for the first or second generalized Pareto margin respectively.} \item{which}{A subset of the numbers \code{1:4} selecting the plots to be shown. By default all are plotted.} \item{main}{Title of each plot. If given, should be a character vector with the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{grid, levels}{Arguments for the density plot. The data is plotted with a contour plot of the bivariate density of the fitted model in the tail region. The density is evaluated at \code{grid^2} points, and contours are plotted at the values given in the numeric vector \code{levels}. If \code{levels} is \code{NULL} (the default), the routine attempts to find sensible values.} \item{above}{Logical; if \code{TRUE}, only data points above both marginal thresholds are plotted.} \item{tlty}{Line type for the lines identifying the thresholds.} \item{rev, blty}{Arguments to the dependence function plot. See \code{\link{abvevd}}.} \item{p}{Lower tail probabilities for the quantile curves plot. The plot is of the same type as given by the function \code{\link{qcbvnonpar}}, but applied to the parametric bivariate threshold model.} \item{half}{Argument to the spectral density plot. See \code{\link{hbvevd}}.} \item{\dots}{Other arguments to be passed through to plotting functions.} } \seealso{\code{\link{plot.bvevd}}, \code{\link{contour}}, \code{\link{abvnonpar}}, \code{\link{qcbvnonpar}}, \code{\link{hbvevd}}} \examples{ bvdata <- rbvevd(500, dep = 0.6, model = "log") M1 <- fbvpot(bvdata, threshold = c(0,0), model = "log") \dontrun{plot(M1)} \dontrun{plot(M1, mar = 1)} \dontrun{plot(M1, mar = 2)} } \keyword{hplot} evd/man/bvtcplot.Rd0000644000176000001440000000336012637167310013767 0ustar ripleyusers\name{bvtcplot} \alias{bvtcplot} \title{Bivariate Threshold Choice Plot} \description{ Produces a diagnostic plot to assist with threshold choice for bivariate data. } \usage{ bvtcplot(x, spectral = FALSE, xlab, ylab, \dots) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values.} \item{spectral}{If \code{TRUE}, an estimate of the spectral measure is plotted instead of the diagnostic plot.} \item{ylab, xlab}{Graphics parameters.} \item{\dots}{Other arguments to be passed to the plotting function.} } \details{ If \code{spectral} is \code{FALSE} (the default), produces a threshold choice plot as illustrated in Beirlant et al. (2004). With \eqn{n} non-missing bivariate observations, the integers \eqn{k = 1,\dots,n-1}{k = 1,...,n-1} are plotted against the values \eqn{(k/n)r_{(n-k)}}{(k/n)r_(n-k)}, where \eqn{r_{(n-k)}}{r_(n-k)} is the \eqn{(n-k)}th order statistic of the sum of the margins following empirical transformation to standard Frechet. A vertical line is drawn at \code{k0}, where \code{k0} is the largest integer for which the y-axis is above the value two. If \code{spectral} is \code{FALSE}, the largest \code{k0} data points are used to plot an estimate of the spectal measure \eqn{H([0, w])} versus \eqn{w}. } \value{ A list is invisibly returned giving \code{k0} and the values used to produce the plot. } \references{ Beirlant, J., Goegebeur, Y., Segers, J. and Teugels, J. L. (2004) \emph{Statistics of Extremes: Theory and Applications.}, Chichester, England: John Wiley and Sons. } \seealso{\code{\link{fbvpot}}, \code{\link{tcplot}}} \examples{ \dontrun{bvtcplot(lossalae)} \dontrun{bvtcplot(lossalae, spectral = TRUE)} } \keyword{hplot} evd/man/order.Rd0000644000176000001440000000456112637167310013251 0ustar ripleyusers\name{order} \alias{dorder} \alias{porder} \alias{rorder} \title{Distributions of Order Statistics} \description{ Density function, distribution function and random generation for a selected order statistic of a given number of independent variables from a specified distribution. } \usage{ dorder(x, densfun, distnfun, \dots, distn, mlen = 1, j = 1, largest = TRUE, log = FALSE) porder(q, distnfun, \dots, distn, mlen = 1, j = 1, largest = TRUE, lower.tail = TRUE) rorder(n, quantfun, \dots, distn, mlen = 1, j = 1, largest = TRUE) } \arguments{ \item{x, q}{Vector of quantiles.} \item{n}{Number of observations.} \item{densfun, distnfun, quantfun}{Density, distribution and quantile function of the specified distribution. The density function must have a \code{log} argument (a simple wrapper can always be constructed to achieve this).} \item{\dots}{Parameters of the specified distribution.} \item{distn}{A character string, optionally specified as an alternative to \code{densfun}, \code{distnfun} and \code{quantfun} such that the density, distribution and quantile functions are formed upon the addition of the prefixes \code{d}, \code{p} and \code{q} respectively.} \item{mlen}{The number of independent variables.} \item{j}{The order statistic, taken as the \code{j}th largest (default) or smallest of \code{mlen}, according to the value of \code{largest}.} \item{largest}{Logical; if \code{TRUE} (default) use the \code{j}th largest order statistic, otherwise use the \code{j}th smallest.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default) probabilities are P[X <= x], otherwise P[X > x].} } \value{ \code{dorder} gives the density function, \code{porder} gives the distribution function and \code{qorder} gives the quantile function of a selected order statistic from a sample of size \code{mlen}, from a specified distibution. \code{rorder} generates random deviates. } \seealso{\code{\link{rextreme}}, \code{\link{rgev}}} \examples{ dorder(2:4, dnorm, pnorm, mean = 0.5, sd = 1.2, mlen = 5, j = 2) dorder(2:4, distn = "norm", mean = 0.5, sd = 1.2, mlen = 5, j = 2) dorder(2:4, distn = "exp", mlen = 2, j = 2) porder(2:4, distn = "exp", rate = 1.2, mlen = 2, j = 2) rorder(5, qgamma, shape = 1, mlen = 10, j = 2) } \keyword{distribution} evd/man/hbvevd.Rd0000644000176000001440000001017712637167310013414 0ustar ripleyusers\name{hbvevd} \alias{hbvevd} \title{Parametric Spectral Density Functions of Bivariate Extreme Value Models} \description{ Calculate or plot the density \eqn{h} of the spectral measure \eqn{H} on the interval \eqn{(0,1)}, for nine parametric bivariate extreme value models. } \usage{ hbvevd(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), half = FALSE, plot = FALSE, add = FALSE, lty = 1, \dots) } \arguments{ \item{x}{A vector of values at which the function is evaluated (ignored if plot or add is \code{TRUE}). \eqn{h(1/2)} is returned by default.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{half}{Logical; if \code{TRUE} the function is divided by two, corresponding to a spectral measure with total mass one rather than two.} \item{plot}{Logical; if \code{TRUE} the function is plotted. The x and y values used to create the plot are returned invisibly.} \item{add}{Logical; add to an existing plot?} \item{lty}{Line type.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ Any bivariate extreme value distribution can be written as \deqn{G(z_1,z_2) = \exp\left[-\int_0^1 \max\{wy_1, (1-w)y_2\} H(dw)\right]}{G(z1,z2) = exp{-\int_0^1 max(w y1, (1-w) y2) H(dw)}} for some function \eqn{H(\cdot)}{H()} defined on \eqn{[0,1]}, satisfying \deqn{\int_0^1 w H(dw) = \int_0^1 (1-w) H(dw) = 1}{ \int_0^1 w H(dw) = int_0^1 (1-w) H(dw) = 1.} In particular, the total mass of H is two. The functions \eqn{y_1}{y1} and \eqn{y_2}{y2} are as defined in \code{\link{abvevd}}. H is called the spectral measure, with density \eqn{h} on the interval \eqn{(0,1)}. } \section{Point Masses}{ For differentiable models H may have up to two point masses: at zero and one. Assuming that the model parameters are in the interior of the parameter space, we have the following. For the asymmetric logistic and asymmetric negative logistic models the point masses are of size \code{1-asy1} and \code{1-asy2} respectively. For the asymmetric mixed model they are of size \code{1-alpha-beta} and \code{1-alpha-2*beta} respectively. For all other models the point masses are zero. At independence, H has point masses of size one at both zero and one. At complete dependence [a non-differentiable model] H has a single point mass of size two at \eqn{1/2}. In either case, \eqn{h} is zero everywhere. } \value{ \code{hbvevd} calculates or plots the spectral density function \eqn{h} for one of nine parametric bivariate extreme value models, at specified parameter values. } \seealso{\code{\link{abvevd}}, \code{\link{fbvevd}}, \code{\link{rbvevd}}, \code{\link{plot.bvevd}}} \examples{ hbvevd(dep = 2.7, model = "hr") hbvevd(seq(0.25,0.5,0.75), dep = 0.3, asy = c(.7,.9), model = "alog") hbvevd(alpha = 0.3, beta = 1.2, model = "negbi", plot = TRUE) bvdata <- rbvevd(100, dep = 0.7, model = "log") M1 <- fitted(fbvevd(bvdata, model = "log")) hbvevd(dep = M1["dep"], model = "log", plot = TRUE) } \keyword{distribution} evd/man/gumbel.Rd0000644000176000001440000000311412637167310013402 0ustar ripleyusers\name{gumbel} \alias{dgumbel} \alias{pgumbel} \alias{qgumbel} \alias{rgumbel} \title{The Gumbel Distribution} \description{ Density function, distribution function, quantile function and random generation for the Gumbel distribution with location and scale parameters. } \usage{ dgumbel(x, loc=0, scale=1, log = FALSE) pgumbel(q, loc=0, scale=1, lower.tail = TRUE) qgumbel(p, loc=0, scale=1, lower.tail = TRUE) rgumbel(n, loc=0, scale=1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale}{Location and scale parameters (can be given as vectors).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The Gumbel distribution function with parameters \eqn{\code{loc} = a} and \eqn{\code{scale} = b} is \deqn{G(z) = \exp\left\{-\exp\left[-\left(\frac{z-a}{b}\right) \right]\right\}}{G(x) = exp{-exp[-(z-a)/b]}} for all real \eqn{z}, where \eqn{b > 0}. } \value{ \code{dgumbel} gives the density function, \code{pgumbel} gives the distribution function, \code{qgumbel} gives the quantile function, and \code{rgumbel} generates random deviates. } \seealso{\code{\link{rfrechet}}, \code{\link{rgev}}, \code{\link{rrweibull}}} \examples{ dgumbel(-1:2, -1, 0.5) pgumbel(-1:2, -1, 0.5) qgumbel(seq(0.9, 0.6, -0.1), 2, 0.5) rgumbel(6, -1, 0.5) p <- (1:9)/10 pgumbel(qgumbel(p, -1, 2), -1, 2) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/fgev.Rd0000644000176000001440000001732714212006502013053 0ustar ripleyusers\name{fgev} \alias{fgev} \alias{fgumbel} \alias{fitted.evd} \alias{std.errors} \alias{std.errors.evd} \alias{vcov.evd} \alias{print.evd} \alias{logLik.evd} \title{Maximum-likelihood Fitting of the Generalized Extreme Value Distribution} \description{ Maximum-likelihood fitting for the generalized extreme value distribution, including linear modelling of the location parameter, and allowing any of the parameters to be held fixed if desired. } \usage{ fgev(x, start, \dots, nsloc = NULL, prob = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A numeric vector, which may contain missing values.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized. If \code{start} is omitted the routine attempts to find good starting values using moment estimators.} \item{\dots}{Additional parameters, either for the GEV model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{nsloc}{A data frame with the same number of rows as the length of \code{x}, for linear modelling of the location parameter. The data frame is treated as a covariate matrix (excluding the intercept). A numeric vector can be given as an alternative to a single column data frame.} \item{prob}{Controls the parameterization of the model (see \bold{Details}). Should be either \code{NULL} (the default), or a probability in the closed interval [0,1].} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ If \code{prob} is \code{NULL} (the default): For stationary models the parameter names are \code{loc}, \code{scale} and \code{shape}, for the location, scale and shape parameters respectively. For non-stationary models, the parameter names are \code{loc}, \code{loc}\emph{x1}, \dots, \code{loc}\emph{xn}, \code{scale} and \code{shape}, where \emph{x1}, \dots, \emph{xn} are the column names of \code{nsloc}, so that \code{loc} is the intercept of the linear model, and \code{loc}\emph{x1}, \dots, \code{loc}\emph{xn} are the \code{ncol(nsloc)} coefficients. If \code{nsloc} is a vector it is converted into a single column data frame with column name \code{trend}, and hence the associated trend parameter is named \code{loctrend}. If \eqn{\code{prob} = p} is a probability: The fit is performed using a different parameterization. Let \eqn{a}, \eqn{b} and \eqn{s} denote the location, scale and shape parameters of the GEV distribution. For stationary models, the distribution is parameterized using \eqn{(z_p,b,s)}, where \deqn{z_p = a - b/s (1 - (-\log(1 - p))^s)}{ z_p = a - b/s (1 - (-log(1 - p))^s)} is such that \eqn{G(z_p) = 1 - p}, where \eqn{G} is the GEV distribution function. \eqn{\code{prob} = p} is therefore the probability in the upper tail corresponding to the quantile \eqn{z_p}. If \code{prob} is zero, then \eqn{z_p} is the upper end point \eqn{a - b/s}, and \eqn{s} is restricted to the negative (Weibull) axis. If \code{prob} is one, then \eqn{z_p} is the lower end point \eqn{a - b/s}, and \eqn{s} is restricted to the positive (Frechet) axis. The parameter names are \code{quantile}, \code{scale} and \code{shape}, for \eqn{z_p}, \eqn{b} and \eqn{s} respectively. For non-stationary models the parameter \eqn{z_p} is again given by the equation above, but \eqn{a} becomes the intercept of the linear model for the location parameter, so that \code{quantile} replaces (the intercept) \code{loc}, and hence the parameter names are \code{quantile}, \code{loc}\emph{x1}, \dots, \code{loc}\emph{xn}, \code{scale} and \code{shape}, where \emph{x1}, \dots, \emph{xn} are the column names of \code{nsloc}. In either case: For non-stationary fitting it is recommended that the covariates within the linear model for the location parameter are (at least approximately) centered and scaled (i.e.\ that the columns of \code{nsloc} are centered and scaled), particularly if automatic starting values are used, since the starting values for the associated parameters are then zero. } \value{ Returns an object of class \code{c("gev","uvevd","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The functions \code{profile} and \code{profile2d} are used to obtain deviance profiles for the model parameters. In particular, profiles of the quantile \eqn{z_p} can be calculated and plotted when \eqn{\code{prob} = p}. The function \code{anova} compares nested models. The function \code{plot} produces diagnostic plots. An object of class \code{c("gev","uvevd","evd")} is a list containing at most the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters of the model that have been held fixed.} \item{param}{A vector containing all parameters (optimized and fixed).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{data}{The data passed to the argument \code{x}.} \item{tdata}{The data, transformed to stationarity (for non-stationary models).} \item{nsloc}{The argument \code{nsloc}.} \item{n}{The length of \code{x}.} \item{prob}{The argument \code{prob}.} \item{loc}{The location parameter. If \code{prob} is \code{NULL} (the default), this will also be an element of \code{param}.} \item{call}{The call of the current function.} } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when the shape parameter is less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{anova.evd}}, \code{\link{optim}}, \code{\link{plot.uvevd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) trend <- (-49:50)/100 M1 <- fgev(uvdata, nsloc = trend, control = list(trace = 1)) M2 <- fgev(uvdata) M3 <- fgev(uvdata, shape = 0) M4 <- fgev(uvdata, scale = 1, shape = 0) anova(M1, M2, M3, M4) par(mfrow = c(2,2)) plot(M2) \dontrun{M2P <- profile(M2)} \dontrun{plot(M2P)} rnd <- runif(100, min = -.5, max = .5) fgev(uvdata, nsloc = data.frame(trend = trend, random = rnd)) fgev(uvdata, nsloc = data.frame(trend = trend, random = rnd), locrandom = 0) uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata, prob = 0.1) M2 <- fgev(uvdata, prob = 0.01) \dontrun{M1P <- profile(M1, which = "quantile")} \dontrun{M2P <- profile(M2, which = "quantile")} \dontrun{plot(M1P)} \dontrun{plot(M2P)} } \keyword{models} evd/man/rweibull.Rd0000644000176000001440000000500712637167310013757 0ustar ripleyusers\name{rweibull} \alias{drweibull} \alias{prweibull} \alias{qrweibull} \alias{rrweibull} \alias{dnweibull} \alias{pnweibull} \alias{qnweibull} \alias{rnweibull} \title{The Reverse Weibull Distribution} \description{ Density function, distribution function, quantile function and random generation for the reverse (or negative) Weibull distribution with location, scale and shape parameters. } \usage{ drweibull(x, loc=0, scale=1, shape=1, log = FALSE) prweibull(q, loc=0, scale=1, shape=1, lower.tail = TRUE) qrweibull(p, loc=0, scale=1, shape=1, lower.tail = TRUE) rrweibull(n, loc=0, scale=1, shape=1) dnweibull(x, loc=0, scale=1, shape=1, log = FALSE) pnweibull(q, loc=0, scale=1, shape=1, lower.tail = TRUE) qnweibull(p, loc=0, scale=1, shape=1, lower.tail = TRUE) rnweibull(n, loc=0, scale=1, shape=1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters (can be given as vectors).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The reverse (or negative) Weibull distribution function with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = \exp\left\{-\left[-\left(\frac{z-a}{b}\right) \right]^s\right\}}{G(x) = exp{-[-(z-a)/b]^s}} for \eqn{z < a} and one otherwise, where \eqn{b > 0} and \eqn{s > 0}. } \note{ Within extreme value theory the reverse Weibull distibution (also known as the negative Weibull distribution) is often referred to as the Weibull distribution. We make a distinction to avoid confusion with the three-parameter distribution used in survival analysis, which is related by a change of sign to the distribution given above. } \value{ \code{drweibull} and \code{dnweibull} give the density function, \code{prweibull} and \code{pnweibull} give the distribution function, \code{qrweibull} and \code{qnweibull} give the quantile function, \code{rrweibull} and \code{rnweibull} generate random deviates. } \seealso{\code{\link{rfrechet}}, \code{\link{rgev}}, \code{\link{rgumbel}}} \examples{ drweibull(-5:-3, -1, 0.5, 0.8) prweibull(-5:-3, -1, 0.5, 0.8) qrweibull(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rrweibull(6, -1, 0.5, 0.8) p <- (1:9)/10 prweibull(qrweibull(p, -1, 2, 0.8), -1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/mvevd.Rd0000644000176000001440000002162312637167310013255 0ustar ripleyusers\name{mvevd} \alias{pmvevd} \alias{rmvevd} \alias{dmvevd} \title{Parametric Multivariate Extreme Value Distributions} \description{ Density function, distribution function and random generation for the multivariate logistic and multivariate asymmetric logistic models. } \usage{ pmvevd(q, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), lower.tail = TRUE) rmvevd(n, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0)) dmvevd(x, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), log = FALSE) } \arguments{ \item{x, q}{A vector of length \code{d} or a matrix with \code{d} columns, in which case the density/distribution is evaluated across the rows.} \item{n}{Number of observations.} \item{dep}{The dependence parameter(s). For the logistic model, should be a single value. For the asymmetric logistic model, should be a vector of length \eqn{2^d-d-1}, or a single value, in which case the value is used for each of the \eqn{2^d-d-1} parameters (see \bold{Details}).} \item{asy}{The asymmetry parameters for the asymmetric logistic model. Should be a list with \eqn{2^d-1} vector elements containing the asymmetry parameters for each separate component (see \bold{Details}).} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default) or \code{"alog"} (or any unique partial match), for the logistic and asymmetric logistic models respectively.} \item{d}{The dimension.} \item{mar}{A vector of length three containing marginal parameters for every univariate margin, or a matrix with three columns where each column represents a vector of values to be passed to the corresponding marginal parameter. It can also be a list with \code{d} elements, such that each element is either a vector of length three or a matrix with three columns, in which case the \eqn{i}th element represents the marginal parameters on the \eqn{i}th margin.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), the distribution function is returned; the survivor function is returned otherwise.} } \details{ Define \deqn{y_i = y_i(z_i) = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = yi(zi) = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,\ldots,d}{i = 1,\ldots,d}, where the marginal parameters are given by \eqn{(a_i,b_i,s_i)}{(ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. Let \eqn{z = (z_1,z_2,\ldots,z_d)}{z = (z1,z2,\ldots,zd)}. In each of the multivariate distributions functions \eqn{G(z)} given below, the univariate margins are generalized extreme value, so that \eqn{G(z_i) = \exp(-y_i)}{G(zi) = \exp(-yi)} for \eqn{i = 1,\ldots,d}{i = 1,\ldots,d}. If \eqn{1+s_i(z_i-a_i)/b_i \leq 0}{1+si(zi-ai)/bi <= 0} for some \eqn{i = 1,\ldots,d}{i = 1,\ldots,d}, the value \eqn{z_i}{zi} is either greater than the upper end point (if \eqn{s_i < 0}{si < 0}), or less than the lower end point (if \eqn{s_i > 0}{si > 0}), of the \eqn{i}th univariate marginal distribution. \code{model = "log"} (Gumbel, 1960) The \code{d} dimensional multivariate logistic distribution function with parameter \eqn{\code{dep} = r} is \deqn{G(z) = \exp\left\{-\left(\sum\nolimits_{i = 1}^{d} y_i^{1/r}\right)^r\right\}}{ G(z) = exp{-[sum_{i=1}^d yi^(1/r)]^r}} where \eqn{0 < r \leq 1}{0 < r <= 1}. This is a special case of the multivariate asymmetric logistic model. \code{model = "alog"} (Tawn, 1990) Let \eqn{B} be the set of all non-empty subsets of \eqn{\{1,\ldots,d\}}{{1,\ldots,d}}, let \eqn{B_1=\{b \in B:|b|=1\}}{B1={b in B:|b|=1}}, where \eqn{|b|} denotes the number of elements in the set \eqn{b}, and let \eqn{B_{(i)}=\{b \in B:i \in b\}}{B(i)={b in B:i in b}}. The \code{d} dimensional multivariate asymmetric logistic distribution function is \deqn{G(z)=\exp\left\{-\sum\nolimits_{b \in B} \left[\sum\nolimits_ {i\in b}(t_{i,b}y_i)^{1/r_b}\right]^{r_b}\right\},}{G(z) = exp{-sum{b in B} [sum{i in b}(t{i,b}yi)^(1/r{b})]^r{b}},} where the dependence parameters \eqn{r_b\in(0,1]}{r{b} in (0,1]} for all \eqn{b\in B \setminus B_1}{b in B\B1}, and the asymmetry parameters \eqn{t_{i,b}\in[0,1]}{t{i,b} in [0,1]} for all \eqn{b\in B}{b in B} and \eqn{i\in b}{i in b}. The constraints \eqn{\sum_{b \in B_{(i)}}t_{i,b}=1}{sum{b in B(i)} t{i,b}=1} for \eqn{i = 1,\ldots,d} ensure that the marginal distributions are generalized extreme value. Further constraints arise from the possible redundancy of asymmetry parameters in the expansion of the distribution form. Let \eqn{b_{-i_0} = \{i \in b:i \neq i_0\}}{ b_{-i0} = {i in b:i is not i_0}}. If \eqn{r_b = 1}{r{b} = 1} for some \eqn{b\in B \setminus B_1}{b in B\B1} then \eqn{t_{i,b} = 0}{t{i,b} = 0} for all \eqn{i\in b}{i in b}. Furthermore, if for some \eqn{b\in B \setminus B_1}{b in B\B1}, \eqn{t_{i,b} = 0}{t{i,b} = 0} for all \eqn{i\in b_{-i_0}}{i in b_{-i0}}, then \eqn{t_{i_0,b} = 0}{t{i0,b} = 0}. \code{dep} should be a vector of length \eqn{2^d-d-1} which contains \eqn{\{r_b:b\in B \setminus B_1\}}{{r{b}:b in B\B1}}, with the order defined by the natural set ordering on the index. For example, for the trivariate model, \eqn{\code{dep} = (r_{12},r_{13},r_{23},r_{123})}{ \code{dep} = (r{12},r{13},r{23},r{123})}. \code{asy} should be a list with \eqn{2^d-1} elements. Each element is a vector which corresponds to a set \eqn{b\in B}{b in B}, containing \eqn{t_{i,b}}{t{i,b}} for every integer \eqn{i\in b}{i in b}. The elements should be given using the natural set ordering on the \eqn{b\in B}{b in B}, so that the first \eqn{d} elements are vectors of length one corresponding to the sets \eqn{\{1\},\ldots,\{d\}}{{1},\ldots,{d}}, and the last element is a a vector of length \eqn{d}, corresponding to the set \eqn{\{1,\ldots,d\}}{{1,\ldots,d}}. \code{asy} must be constructed to ensure that all constraints are satisfied or an error will occur. } \value{ \code{pmvevd} gives the distribution function, \code{dmvevd} gives the density function and \code{rmvevd} generates random deviates, for the multivariate logistic or multivariate asymmetric logistic model. } \note{ Multivariate extensions of other bivariate models are more complex. A multivariate extension of the Husler-Reiss model exists, involving a multidimensional integral and one parameter for each bivariate margin. Multivariate extensions for the negative logistic model can be derived but are considerably more complex and appear to be less flexible. The ``multivariate negative logistic model'' often presented in the literature (e.g. Kotz \emph{et al}, 2000) is not a valid distribution function and should not be used. The logistic and asymmetric logistic models respectively are simulated using Algorithms 2.1 and 2.2 in Stephenson(2003b). The density function of the logistic model is evaluated using the representation of Shi(1995). The density function of the asymmetric logistic model is evaluated using the representation given in Stephenson(2003a). } \references{ Gumbel, E. J. (1960) Distributions des valeurs extremes en plusieurs dimensions. \emph{Publ. Inst. Statist. Univ. Paris}, \bold{9}, 171--173. Kotz, S. and Balakrishnan, N. and Johnson, N. L. (2000) \emph{Continuous Multivariate Distributions}, vol. 1. New York: John Wiley & Sons, 2nd edn. Shi, D. (1995) Fisher information for a multivariate extreme value distribution. \emph{Biometrika}, \bold{82}(3), 644--649. Stephenson, A. G. (2003a) \emph{Extreme Value Distributions and their Application}. Ph.D. Thesis, Lancaster University, Lancaster, UK. Stephenson, A. G. (2003b) Simulating multivariate extreme value distributions of logistic type. \emph{Extremes}, \bold{6}(1), 49--60. Tawn, J. A. (1990) Modelling multivariate extreme value distributions. \emph{Biometrika}, \bold{77}, 245--253. } \seealso{\code{\link{rbvevd}}, \code{\link{rgev}}} \examples{ pmvevd(matrix(rep(0:4,5), ncol=5), dep = .7, model = "log", d = 5) pmvevd(rep(4,5), dep = .7, model = "log", d = 5) rmvevd(10, dep = .7, model = "log", d = 5) dmvevd(rep(-1,20), dep = .7, model = "log", d = 20, log = TRUE) asy <- list(.4, .1, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.3,.2)) pmvevd(rep(2,3), dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) asy <- list(.4, .0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) rmvevd(10, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) dmvevd(rep(0,3), dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) asy <- list(0, 0, 0, 0, c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(.2,.1,.2), c(.1,.1,.2), c(.3,.4,.1), c(.2,.2,.2), c(.4,.6,.2,.5)) rmvevd(10, dep = .7, asy = asy, model = "alog", d = 4) rmvevd(10, dep = c(rep(1,6), rep(.7,5)), asy = asy, model = "alog", d = 4) } \keyword{distribution} evd/man/oxford.Rd0000644000176000001440000000065312637167310013435 0ustar ripleyusers\name{oxford} \alias{oxford} \title{Annual Maximum Temperatures at Oxford} \usage{oxford} \description{ A numeric vector containing annual maximum temperatures, in degrees Fahrenheit, from 1901 to 1980 at Oxford, England. } \format{A vector containing 80 observations.} \source{ Tabony, R. C. (1983) Extreme value analysis in meteorology. \emph{The Meteorological Magazine} \bold{112}, 77--98. } \keyword{datasets} evd/man/fpot.Rd0000644000176000001440000002177212637167310013111 0ustar ripleyusers\name{fpot} \alias{fpot} \alias{print.pot} \title{Peaks Over Threshold Modelling using the Generalized Pareto or Point Process Representation} \description{ Maximum-likelihood fitting for peaks over threshold modelling, using the Generalized Pareto or Point Process representation, allowing any of the parameters to be held fixed if desired. } \usage{ fpot(x, threshold, model = c("gpd", "pp"), start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, mper = NULL, \dots, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A numeric vector. If this contains missing values, those values are treated as if they fell below the threshold.} \item{threshold}{The threshold.} \item{model}{The model; either \code{"gpd"} (the default) or \code{"pp"}, for the Generalized Pareto or Point Process representations respectively.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized. If \code{start} is omitted the routine attempts to find good starting values using moment estimators.} \item{npp}{The data should contain \code{npp} observations per ``period'', where the return level plot produced by \code{plot.pot} will represent return periods in units of ``periods''. By default \code{npp = length(x)}, so that the ``period'' is the period of time over which the entire data set is collected. It may often be useful to change this default so that more sensible units are used. For example, if yearly periodic units are required, use \code{npp = 365.25} for daily data and \code{npp = 52.18} for weekly data. The argument only makes a difference to the actual fit if \code{mper} is not \code{NULL} or if \code{model = "pp"} (see \bold{Details}).} \item{cmax}{Logical; if \code{FALSE} (the default), the model is fitted using all exceedences over the threshold. If \code{TRUE}, the model is fitted using cluster maxima, using clusters of exceedences derived from \code{clusters}.} \item{r, ulow, rlow}{Arguments used for the identification of clusters of exceedences (see \code{\link{clusters}}). Ignored if \code{cmax} is \code{FALSE} (the default).} \item{mper}{Controls the parameterization of the generalized Pareto model. Should be either \code{NULL} (the default), or a positive number (see \bold{Details}). If \code{mper} is not \code{NULL} and \code{model = "pp"}, an error is returned.} \item{\dots}{Additional parameters, either for the model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ The exeedances over the threshold \code{threshold} (if \code{cmax} is \code{FALSE}) or the maxima of the clusters of exeedances (if \code{cmax} is \code{TRUE}) are (if \code{model = "gpd"}) fitted to a generalized Pareto distribution (GPD) with location \code{threshold}. If \code{model = "pp"} the exceedances are fitted to a non-homogeneous Poisson process (Coles, 2001). If \code{mper} is \code{NULL} (the default), the parameters of the model (if \code{model = "gpd"}) are \code{scale} and \code{shape}, for the scale and shape parameters of the GPD. If \code{model = "pp"} the parameters are \code{loc}, \code{scale} and \code{shape}. Under \code{model = "pp"} the parameters can be interpreted as parameters of the Generalized Extreme Value distribution, fitted to the maxima of \code{npp} random variables. In this case, the value of \code{npp} should be reasonably large. For both characterizations, the shape parameters are equivalent. The scale parameter under the generalized Pareto characterization is equal to \eqn{b + s(u - a)}, where \eqn{a}, \eqn{b} and \eqn{s} are the location, scale and shape parameters under the Point Process characterization, and where \eqn{u} is the threshold. If \eqn{\code{mper} = m} is a positive value, then the generalized Pareto model is reparameterized so that the parameters are \code{rlevel} and \code{shape}, where \code{rlevel} is the \eqn{m} ``period'' return level, where ``period'' is defined via the argument \code{npp}. The \eqn{m} ``period'' return level is defined as follows. Let \eqn{G} be the fitted generalized Pareto distribution function, with location \eqn{\code{threshold} = u}, so that \eqn{1 - G(z)} is the fitted probability of an exceedance over \eqn{z > u} given an exceedance over \eqn{u}. The fitted probability of an exceedance over \eqn{z > u} is therefore \eqn{p(1 - G(z))}, where \eqn{p} is the estimated probabilty of exceeding \eqn{u}, which is given by the empirical proportion of exceedances. The \eqn{m} ``period'' return level \eqn{z_m} satisfies \eqn{p(1 - G(z_m)) = 1/(mN)}, where \eqn{N} is the number of points per period (multiplied by the estimate of the extremal index, if cluster maxima are fitted). In other words, \eqn{z_m} is the quantile of the fitted model that corresponds to the upper tail probability \eqn{1/(mN)}. If \code{mper} is infinite, then \eqn{z_m} is the upper end point, given by \code{threshold} minus \eqn{\code{scale}/\code{shape}}, and the shape parameter is then restricted to be negative. } \value{ Returns an object of class \code{c("pot","uvevd","pot")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The function \code{profile} can be used to obtain deviance profiles for the model parameters. In particular, profiles of the \eqn{m} \code{period} return level \eqn{z_m} can be calculated and plotted when \eqn{\code{mper} = m}. The function \code{anova} compares nested models. The function \code{plot} produces diagnostic plots. An object of class \code{c("pot","uvevd","evd")} is a list containing the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters of the model that have been held fixed.} \item{param}{A vector containing all parameters (optimized and fixed).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{threshold, r, ulow, rlow, npp}{The arguments of the same name.} \item{nhigh}{The number of exceedences (if \code{cmax} is \code{FALSE}) or the number of clusters of exceedences (if \code{cmax} is \code{TRUE}).} \item{nat, pat}{The number and proportion of exceedences.} \item{extind}{The estimate of the extremal index (i.e. \code{nhigh} divided by \code{nat}). If \code{cmax} is \code{FALSE}, this is \code{NULL}.} \item{data}{The data passed to the argument \code{x}.} \item{exceedances}{The exceedences, or the maxima of the clusters of exceedences.} \item{mper}{The argument \code{mper}.} \item{scale}{The scale parameter for the fitted generalized Pareto distribution. If \code{mper} is \code{NULL} and \code{model = "gpd"} (the defaults), this will also be an element of \code{param}.} \item{call}{The call of the current function.} } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when the shape parameter is less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{anova.evd}}, \code{\link{optim}}, \code{\link{plot.uvevd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}, \code{\link{mrlplot}}, \code{\link{tcplot}}} \examples{ uvdata <- rgpd(100, loc = 0, scale = 1.1, shape = 0.2) M1 <- fpot(uvdata, 1) M2 <- fpot(uvdata, 1, shape = 0) anova(M1, M2) par(mfrow = c(2,2)) plot(M1) \dontrun{M1P <- profile(M1)} \dontrun{plot(M1P)} M1 <- fpot(uvdata, 1, mper = 10) M2 <- fpot(uvdata, 1, mper = 100) \dontrun{M1P <- profile(M1, which = "rlevel", conf=0.975, mesh=0.1)} \dontrun{M2P <- profile(M2, which = "rlevel", conf=0.975, mesh=0.1)} \dontrun{plot(M1P)} \dontrun{plot(M2P)} } \keyword{models} evd/man/fgumbelx.Rd0000644000176000001440000001043214225006372013734 0ustar ripleyusers\name{fgumbelx} \alias{fgumbelx} \title{Maximum-likelihood Fitting of the Maximum of Two Gumbel Distributions} \description{ Maximum-likelihood fitting for the maximum of two gumbel distributions, allowing any of the parameters to be held fixed if desired. } \usage{ fgumbelx(x, start, \dots, nsloc1 = NULL, nsloc2 = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A numeric vector, which may contain missing values.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized. If \code{start} is omitted the routine attempts to find good starting values using moment estimators.} \item{\dots}{Additional parameters, either for the fitted model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{nsloc1}{A data frame with the same number of rows as the length of \code{x}, for linear modelling of the location parameter of the first Gumbel distribution. This is not recommended as the model is already complex.} \item{nsloc2}{A data frame with the same number of rows as the length of \code{x}, for linear modelling of the location parameter of the second Gumbel distribution. This is not recommended as the model is already complex.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ For stationary models the parameter names are \code{loc1}, \code{scale1}, \code{loc2} and \code{scale2} for the location and scale parameters of two Gumbel distributions, where \code{loc2} must be greater or equal to \code{loc1}. The likelihood may have multiple local optima and therefore may be difficult to fit properly; the default starting values use a moment based approach, however it is recommended that the user specify multiple different starting values and experiment with different optimization methods. Using non-stationary models with nsloc1 and nsloc2 is not recommended due to the model complexity; the data also cannot be transformed back to stationarity so diagnostic plots will be misleading in this case. } \value{ Returns an object of class \code{c("gumbelx","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The functions \code{profile} and \code{profile2d} are used to obtain deviance profiles for the model parameters. The function \code{anova} compares nested models. The function \code{plot} produces diagnostic plots. An object of class \code{c("gumbelx","evd")} is a list containing at most the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters of the model that have been held fixed.} \item{param}{A vector containing all parameters (optimized and fixed).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{data}{The data passed to the argument \code{x}.} \item{nsloc1}{The argument \code{nsloc1}.} \item{nsloc2}{The argument \code{nsloc2}.} \item{n}{The length of \code{x}.} \item{call}{The call of the current function.} } \section{Warning}{ This function is experimental and involves optimizing over a potentially complex surface. } \seealso{\code{\link{fgev}}, \code{\link{optim}}, \code{\link{rgumbelx}}} \examples{ uvdata <- rgumbelx(100, loc1 = 0, scale1 = 1, loc2 = 1, scale2 = 1) fgumbelx(uvdata, loc1 = 0, scale1 = 1) } \keyword{models} evd/man/chiplot.Rd0000644000176000001440000001654312637167310013603 0ustar ripleyusers\name{chiplot} \alias{chiplot} \title{Dependence Measure Plots} \description{ Plots of estimates of the dependence measures chi and chi-bar for bivariate data. } \usage{ chiplot(data, nq = 100, qlim = NULL, which = 1:2, conf = 0.95, trunc = TRUE, spcases = FALSE, lty = 1, cilty = 2, col = 1, cicol = 1, xlim = c(0,1), ylim1 = c(-1,1), ylim2 = c(-1,1), main1 = "Chi Plot", main2 = "Chi Bar Plot", xlab = "Quantile", ylab1 = "Chi", ylab2 = "Chi Bar", ask = nb.fig < length(which) && dev.interactive(), \dots) } \arguments{ \item{data}{A matrix or data frame with two columns. Rows (observations) with missing values are stripped from the data before any computations are performed.} \item{nq}{The number of quantiles at which the measures are evaluated.} \item{qlim}{The limits of the quantiles at which the measures are evaluated (see \bold{Details}).} \item{which}{If only one plot is required, specify \code{1} for chi and \code{2} for chi-bar.} \item{conf}{The confidence coefficient of the plotted confidence intervals.} \item{trunc}{Logical; truncate the estimates at their theoretical upper and lower bounds?} \item{spcases}{If \code{TRUE}, plots greyed lines corresponding to the special cases of perfect positive/negative dependence and exact independence.} \item{lty, cilty}{Line types for the estimates of the measures and for the confidence intervals respectively. Use zero to supress.} \item{col, cicol}{Colour types for the estimates of the measures and for the confidence intervals respectively.} \item{xlim, xlab}{Limits and labels for the x-axis; they apply to both plots.} \item{ylim1}{Limits for the y-axis of the chi plot. If this is \code{NULL} (the default) the upper limit is one, and the lower limit is the minimum of zero and the smallest plotted value.} \item{ylim2}{Limits for the y-axis of the chi-bar plot.} \item{main1, main2}{The plot titles for the chi and chi-bar plots respectively.} \item{ylab1, ylab2}{The y-axis labels for the chi and chi-bar plots respectively.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{\dots}{Other arguments to be passed to \code{matplot}.} } \details{ These measures are explained in full detail in Coles, Heffernan and Tawn (1999). A brief treatment is also given in Section 8.4 of Coles(2001). A short summary is given as follows. We assume that the data are \emph{iid} random vectors with common bivariate distribution function \eqn{G}, and we define the random vector \eqn{(X,Y)} to be distributed according to \eqn{G}. The chi plot is a plot of \eqn{q} against empirical estimates of \deqn{\chi(q) = 2 - \log(\Pr(F_X(X) < q, F_Y(Y) < q)) / \log(q)}{ chi(q) = 2 - log(Pr(F_X(X) < q, F_Y(Y) < q)) / log(q)} where \eqn{F_X} and \eqn{F_Y} are the marginal distribution functions, and where \eqn{q} is in the interval (0,1). The quantity \eqn{\chi(q)}{chi(q)} is bounded by \deqn{2 - \log(2u - 1)/\log(u) \leq \chi(q) \leq 1}{ 2 - log(2u - 1)/log(u) <= chi(q) <= 1} where the lower bound is interpreted as \code{-Inf} for \eqn{q \leq 1/2}{q <= 1/2} and zero for \eqn{q = 1}. These bounds are reflected in the corresponding estimates. The chi bar plot is a plot of \eqn{q} against empirical estimates of \deqn{\bar{\chi}(q) = 2\log(1-q)/\log(\Pr(F_X(X) > q, F_Y(Y) > q)) - 1}{ chibar(q) = 2log(1-q)/log(Pr(F_X(X) > q, F_Y(Y) > q)) - 1} where \eqn{F_X} and \eqn{F_Y} are the marginal distribution functions, and where \eqn{q} is in the interval (0,1). The quantity \eqn{\bar{\chi}(q)}{chibar(q)} is bounded by \eqn{-1 \leq \bar{\chi}(q) \leq 1}{-1 <= chibar(q) <= 1} and these bounds are reflected in the corresponding estimates. Note that the empirical estimators for \eqn{\chi(q)}{chi(q)} and \eqn{\bar{\chi}(q)}{chibar(q)} are undefined near \eqn{q=0} and \eqn{q=1}. By default the function takes the limits of \eqn{q} so that the plots depicts all values at which the estimators are defined. This can be overridden by the argument \code{qlim}, which must represent a subset of the default values (and these can be determined using the component \code{quantile} of the invisibly returned list; see \bold{Value}). The confidence intervals within the plot assume that observations are independent, and that the marginal distributions are estimated exactly. The intervals are constructed using the delta method; this may lead to poor interval estimates near \eqn{q=0} and \eqn{q=1}. The function \eqn{\chi(q)}{chi(q)} can be interpreted as a quantile dependent measure of dependence. In particular, the sign of \eqn{\chi(q)}{chi(q)} determines whether the variables are positively or negatively associated at quantile level \eqn{q}. By definition, variables are said to be asymptotically independent when \eqn{\chi(1)}{chi(1)} (defined in the limit) is zero. For independent variables, \eqn{\chi(q) = 0}{chi(q) = 0} for all \eqn{q} in (0,1). For perfectly dependent variables, \eqn{\chi(q) = 1}{chi(q) = 1} for all \eqn{q} in (0,1). For bivariate extreme value distributions, \eqn{\chi(q) = 2(1-A(1/2))}{chi(q) = 2(1-A(1/2))} for all \eqn{q} in (0,1), where \eqn{A} is the dependence function, as defined in \code{\link{abvevd}}. If a bivariate threshold model is to be fitted (using \code{\link{fbvpot}}), this plot can therefore act as a threshold identification plot, since e.g. the use of 95\% marginal quantiles as threshold values implies that \eqn{\chi(q)}{chi(q)} should be approximately constant above \eqn{q = 0.95}. The function \eqn{\bar{\chi}(q)}{chibar(q)} can again be interpreted as a quantile dependent measure of dependence; it is most useful within the class of asymptotically independent variables. For asymptotically dependent variables (i.e. those for which \eqn{\chi(1) < 1}{chi(1) < 1}), we have \eqn{\bar{\chi}(1) = 1}{ chibar(1) = 1}, where \eqn{\bar{\chi}(1)}{chibar(1)} is again defined in the limit. For asymptotically independent variables, \eqn{\bar{\chi}(1)}{ chibar(1)} provides a measure that increases with dependence strength. For independent variables \eqn{\bar{\chi}(q) = 0}{chibar(q) = 0} for all \eqn{q} in (0,1), and hence \eqn{\bar{\chi}(1) = 0}{chibar(1) = 0}. } \value{ A list with components \code{quantile}, \code{chi} (if \code{1} is in \code{which}) and \code{chibar} (if \code{2} is in \code{which}) is invisibly returned. The components \code{quantile} and \code{chi} contain those objects that were passed to the formal arguments \code{x} and \code{y} of \code{matplot} in order to create the chi plot. The components \code{quantile} and \code{chibar} contain those objects that were passed to the formal arguments \code{x} and \code{y} of \code{matplot} in order to create the chi-bar plot. } \references{ Coles, S. G., Heffernan, J. and Tawn, J. A. (1999) Dependence measures for extreme value analyses. \emph{Extremes}, \bold{2}, 339--365. Coles, S. G. (2001) \emph{An Introduction to Statistical Modelling of Extreme Values}, London: Springer--Verlag. } \author{Jan Heffernan and Alec Stephenson} \seealso{\code{\link{fbvevd}}, \code{\link{fbvpot}}, \code{\link{matplot}}} \examples{ par(mfrow = c(1,2)) smdat1 <- rbvevd(1000, dep = 0.6, model = "log") smdat2 <- rbvevd(1000, dep = 1, model = "log") chiplot(smdat1) chiplot(smdat2) } \keyword{hplot} evd/man/plot.bvevd.Rd0000644000176000001440000001074613270066762014226 0ustar ripleyusers\name{plot.bvevd} \alias{plot.bvevd} \title{Plot Diagnostics for a Bivariate EVD Object} \description{ Six plots (selectable by \code{which}) are currently provided: two conditional P-P plots (1,2), conditioning on each margin, a density plot (3), a dependence function plot (4), a quantile curves plot (5) and a spectral density plot (6). Plot diagnostics for the generalized extreme value margins (selectable by \code{mar} and \code{which}) are also available. } \usage{ \method{plot}{bvevd}(x, mar = 0, which = 1:6, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, a = 0, grid = 50, legend = TRUE, nplty = 2, blty = 3, method = "cfg", convex = FALSE, rev = FALSE, p = seq(0.75, 0.95, 0.05), mint = 1, half = FALSE, \dots) } \arguments{ \item{x}{An object of class \code{"bvevd"}.} \item{mar}{If \code{mar = 1} or \code{mar = 2} diagnostics are given for the first or second genereralized extreme value margin respectively.} \item{which}{A subset of the numbers \code{1:6} selecting the plots to be shown. By default all are plotted.} \item{main}{Title of each plot. If given, should be a character vector with the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{ci}{Logical; if \code{TRUE} (the default), plot simulated 95\% confidence intervals for the conditional P-P plots.} \item{cilwd}{Line width for confidence interval lines.} \item{a}{Passed through to \code{ppoints} for empirical estimation. Larger values give less probability for extreme events.} \item{grid}{Argument for the density plot. The (possibly transformed) data is plotted with a contour plot of the bivariate density of the fitted model. The density is evaluated at \code{grid^2} points.} \item{legend}{If \code{legend} is \code{TRUE} and if the fitted data contained a third column of mode \code{logical}, then a legend is included in the density and quantile curve plots.} \item{method, convex, rev}{Arguments to the dependence function plot. The dependence function for the fitted model is plotted and (optionally) compared to a non-parameteric estimate. See \code{\link{abvnonpar}} for a description of the arguments.} \item{nplty, blty}{Line types for the dependence function plot. \code{nplty} is the line type of the non-parametric estimate. To omit the non-parametric estimate set \code{nplty} to zero. \code{blty} is the line type of the triangular border. To omit the border estimate set \code{blty} to zero.} \item{p, mint}{Arguments to the quantile curves plot. See \code{\link{qcbvnonpar}} for a description of the plot and the arguments.} \item{half}{Argument to the spectral density plot. See \code{\link{hbvevd}}.} \item{\dots}{Other arguments to be passed through to plotting functions.} } \details{ In all plots we assume that the fitted model is stationary. For non-stationary models the data are transformed to stationarity. The plot then corresponds to the distribution obtained when all covariates are zero. In particular, the density and quanitle curves plots will not plot the original data for non-stationary models. A conditional P-P plot is a P-P plot for the condition distribution function of a bivariate evd object. Let \eqn{G(.|.)} be the conditional distribution of the first margin given the second, under the fitted model. Let \eqn{z_1,\ldots,z_m} be the data used in the fitted model, where \eqn{z_j = (z_{1j}, z_{2j})} for \eqn{j = 1,\ldots,m}. The plot that (by default) is labelled Conditional Plot Two, conditioning on the second margin, consists of the points \deqn{\{(p_i, c_i), i = 1,\ldots,m\}}{ {(p_i, c_i), i = 1,\ldots,m}} where \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}} and \eqn{c_i} is the \eqn{i}th largest value from the sample \eqn{\{G(z_{j1}|z_{j2}), j = 1,\ldots,m\}.}{ {G(z_{j1}|z_{j2}), j = 1,\ldots,m}.} The margins are reversed for Conditional Plot One, so that \eqn{G(.|.)} is the conditional distribution of the second margin given the first. } \seealso{\code{\link{plot.uvevd}}, \code{\link{contour}}, \code{\link{jitter}}, \code{\link{abvnonpar}}, \code{\link{qcbvnonpar}}} \examples{ bvdata <- rbvevd(100, dep = 0.6, model = "log") M1 <- fbvevd(bvdata, model = "log") \dontrun{par(mfrow = c(2,2))} \dontrun{plot(M1, which = 1:5)} \dontrun{plot(M1, mar = 1)} \dontrun{plot(M1, mar = 2)} } \keyword{hplot} evd/man/evmc.Rd0000644000176000001440000000431312637167310013063 0ustar ripleyusers\name{evmc} \alias{evmc} \title{Simulate Markov Chains With Extreme Value Dependence Structures} \description{ Simulation of first order Markov chains, such that each pair of consecutive values has the dependence structure of one of nine parametric bivariate extreme value distributions. } \usage{ evmc(n, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), margins = c("uniform","rweibull","frechet","gumbel")) } \arguments{ \item{n}{Number of observations.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{margins}{The marginal distribution of each value; a character string. Must be either \code{"uniform"} (the default), \code{"rweibull"}, \code{"frechet"} or \code{"gumbel"} (or any unique partial match), for the uniform, standard reverse Weibull, standard Gumbel and standard Frechet distributions respectively.} } \value{ A numeric vector of length \code{n}. } \seealso{\code{\link{marma}}, \code{\link{rbvevd}}} \examples{ evmc(100, alpha = 0.1, beta = 0.1, model = "bilog") evmc(100, dep = 10, model = "hr", margins = "gum") } \keyword{distribution} evd/man/fox.Rd0000644000176000001440000000163012637167310012724 0ustar ripleyusers\name{fox} \alias{fox} \title{Maximum Annual Flood Discharges of the Fox River} \usage{fox} \description{ The \code{fox} data frame has 33 rows and 2 columns. The columns contain maximum annual flood discharges, in units of 1000 cubed feet per second, from the Fox River in Wisconsin, USA at Berlin (upstream) and Wrightstown (downstream), for the years 1918 to 1950. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{berlin}{A numeric vector containing maximum annual flood discharges at Berlin (upstream).} \item{wright}{A numeric vector containing maximum annual flood discharges at Wrightstown (downstream).} } } \source{ Gumbel, E. J. and Mustafi, C. K. (1967) Some analytical properties of bivariate extremal distributions. \emph{J. Amer. Statist. Assoc.}, \bold{62}, 569--588. } \keyword{datasets} evd/man/oldage.Rd0000644000176000001440000000146112637167310013365 0ustar ripleyusers\name{oldage} \alias{oldage} \title{Oldest Ages for Swedish Males and Females} \usage{oldage} \description{ The \code{oldage} data frame has 66 rows and 2 columns. The columns contain the oldest ages at death for men and women in Sweden, for the period 1905--1970. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{men}{A numeric vector containing the oldest ages at death for men.} \item{women}{A numeric vector containing the oldest ages at death for women.} } } \source{ Fransen, A. and Tiago de Oliveira, J. (1984) Statistical choice of univariate extreme models, part II, in \emph{Statistical Extremes and Applications}, J. Tiago de Oliveira ed., 373--394, D. Reidel, Dordrect. } \keyword{datasets} evd/man/confint.evd.Rd0000644000176000001440000000242214224765374014355 0ustar ripleyusers\name{confint.evd} \alias{confint.evd} \alias{confint.profile.evd} \title{Calculate Confidence Intervals} \description{ Calculate profile and Wald confidence intervals of parameters in fitted models. } \usage{ \method{confint}{evd}(object, parm, level = 0.95, \dots) \method{confint}{profile.evd}(object, parm, level = 0.95, \dots) } \arguments{ \item{object}{Either a fitted model object (of class \code{evd}) for Wald confidence intervals, or a profile trace (of class \code{profile.evd}) for profile likelihood confidence intervals.} \item{parm}{A character vector of parameters; a confidence interval is calculated for each parameter. If missing, then intervals are returned for all parameters in the fitted model or profile trace.} \item{level}{A single number giving the confidence level.} \item{\dots}{Not used.} } \value{ A matrix with two columns giving lower and upper confidence limits. For profile confidence intervals, this function assumes that the profile trace is unimodal. If the profile trace is not unimodal then the function will give spurious results. } \seealso{\code{\link{profile.evd}}} \examples{ m1 <- fgev(portpirie) confint(m1) \dontrun{pm1 <- profile(m1)} \dontrun{plot(pm1)} \dontrun{confint(pm1)} } \keyword{manip} evd/man/abvnonpar.Rd0000644000176000001440000001656312637167310014131 0ustar ripleyusers\name{abvnonpar} \alias{abvnonpar} \title{Non-parametric Estimates for Dependence Functions of the Bivariate Extreme Value Distribution} \description{ Calculate or plot non-parametric estimates for the dependence function \eqn{A} of the bivariate extreme value distribution. } \usage{ abvnonpar(x = 0.5, data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, method = c("cfg", "pickands", "tdo", "pot"), k = nrow(data)/4, convex = FALSE, rev = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0, 1), ylim = c(0.5, 1), xlab = "t", ylab = "A(t)", \dots) } \arguments{ \item{x}{A vector of values at which the dependence function is evaluated (ignored if plot or add is \code{TRUE}). \eqn{A(1/2)} is returned by default since it is often a useful summary of dependence.} \item{data}{A matrix or data frame with two columns, which may contain missing values.} \item{epmar}{If \code{TRUE}, an empirical transformation of the marginals is performed in preference to marginal parametric GEV estimation, and the \code{nsloc} arguments are ignored.} \item{nsloc1, nsloc2}{A data frame with the same number of rows as \code{data}, for linear modelling of the location parameter on the first/second margin. The data frames are treated as covariate matrices, excluding the intercept. A numeric vector can be given as an alternative to a single column data frame.} \item{method}{The estimation method (see \bold{Details}). Typically either \code{"cfg"} (the default) or \code{"pickands"}. The method \code{"tdo"} performs poorly and is not recommended. The method \code{"pot"} is for peaks over threshold modelling where only large data values are used for estimation.} \item{k}{An integer parameter for the \code{"pot"} method. Only the largest \code{k} values are used, as described in \code{\link{bvtcplot}}.} \item{convex}{Logical; take the convex minorant?} \item{rev}{Logical; reverse the dependence function? This is equivalent to evaluating the function at \code{1-x}.} \item{madj}{Performs marginal adjustments for the \code{"pickands"} method (see \bold{Details}).} \item{kmar}{In the rare case that the marginal distributions are known, specifies the GEV parameters to be used instead of maximum likelihood estimates.} \item{plot}{Logical; if \code{TRUE} the function is plotted. The x and y values used to create the plot are returned invisibly. If \code{plot} and \code{add} are \code{FALSE} (the default), the arguments following \code{add} are ignored.} \item{add}{Logical; add to an existing plot? The existing plot should have been created using either \code{abvnonpar} or \code{\link{abvevd}}, the latter of which plots (or calculates) the dependence function for a number of parametric models.} \item{lty, blty}{Function and border line types. Set \code{blty} to zero to omit the border.} \item{lwd, blwd}{Function and border line widths.} \item{col}{Line colour.} \item{xlim, ylim}{x and y-axis limits.} \item{xlab, ylab}{x and y-axis labels.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ The dependence function \eqn{A(\cdot)}{A()} of the bivariate extreme value distribution is defined in \code{\link{abvevd}}. Non-parametric estimates are constructed as follows. Suppose \eqn{(z_{i1},z_{i2})} for \eqn{i=1,\ldots,n} are \eqn{n} bivariate observations that are passed using the \code{data} argument. If \code{epmar} is \code{FALSE} (the default), then the marginal parameters of the GEV margins are estimated (under the assumption of independence) and the data is transformed using \deqn{y_{i1} = \{1+\hat{s}_1(z_{i1}-\hat{a}_1)/ \hat{b}_1\}_{+}^{-1/\hat{s}_1}}{ y_{i1} = {1 + s'_1(z_{i1}-a'_1)/b'_1}^(-1/s'_1)} and \deqn{y_{i2} = \{1+\hat{s}_2(z_{i2}-\hat{a}_2)/ \hat{b}_2\}_{+}^{-1/\hat{s}_2}}{ y_{i2} = {1 + s'_2(z_{i2}-a'_2)/b'_2}^(-1/s'_2)} for \eqn{i = 1,\ldots,n}, where \eqn{(\hat{a}_1,\hat{b}_1,\hat{s}_1)}{(a'_1,b'_1,s'_1)} and \eqn{(\hat{a}_2,\hat{b}_2,\hat{s}_2)}{(a'_2,b'_2,s'_2)} are the maximum likelihood estimates for the location, scale and shape parameters on the first and second margins. If \code{nsloc1} or \code{nsloc2} are given, the location parameters may depend on \eqn{i} (see \code{\link{fgev}}). Two different estimators of the dependence function can be implemented. They are defined (on \eqn{0 \leq w \leq 1}{0 <= w <= 1}) as follows. \code{method = "cfg"} (Caperaa, Fougeres and Genest, 1997) \deqn{\log(A_c(w)) = \frac{1}{n} \left\{ \sum_{i=1}^n \log(\max[(1-w)y_{i1}, wy_{i1}]) - (1-w)\sum_{i=1}^n y_{i1} - w \sum_{i=1}^n y_{i2} \right\}}{log(A_c(w)) = 1/n { sum_{i=1}^n log (max[(1-w)y_{i1}, wy_{i1}]) - (1-w)sum_{i=1}^n y_{i1} - w sum_{i=1}^n y_{i2} }} \code{method = "pickands"} (Pickands, 1981) \deqn{A_p(w) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{w}, \frac{y_{i2}}{1-w}\right)\right\}^{-1}}{ A_p(w) = n / {sum_{i=1}^n min[y_{i1}/w, y_{i2}/(1-w)]}} Two variations on the estimator \eqn{A_p(\cdot)}{A_p()} are also implemented. If the argument \code{madj = 1}, an adjustment given in Deheuvels (1991) is applied. If the argument \code{madj = 2}, an adjustment given in Hall and Tajvidi (2000) is applied. These are marginal adjustments; they are only useful when empirical marginal estimation is used. Let \eqn{A_n(\cdot)}{A_n()} be any estimator of \eqn{A(\cdot)}{A()}. None of the estimators satisfy \eqn{\max(w,1-w) \leq A_n(w) \leq 1}{max(w,1-w) <= A_n(w) <= 1} for all \eqn{0\leq w \leq1}{0 <= w <= 1}. An obvious modification is \deqn{A_n^{'}(w) = \min(1, \max\{A_n(w), w, 1-w\}).}{ A'_n(w) = min(1, max{A_n(w), w, 1-w}).} This modification is always implemented. Convex estimators can be derived by taking the convex minorant, which can be achieved by setting \code{convex} to \code{TRUE}. } \note{ I have been asked to point out that Hall and Tajvidi (2000) suggest putting a constrained smoothing spline on their modified Pickands estimator, but this is not done here. } \value{ \code{abvnonpar} calculates or plots a non-parametric estimate of the dependence function of the bivariate extreme value distribution. } \references{ Caperaa, P. Fougeres, A.-L. and Genest, C. (1997) A non-parametric estimation procedure for bivariate extreme value copulas. \emph{Biometrika}, \bold{84}, 567--577. Pickands, J. (1981) Multivariate extreme value distributions. \emph{Proc. 43rd Sess. Int. Statist. Inst.}, \bold{49}, 859--878. Deheuvels, P. (1991) On the limiting behaviour of the Pickands estimator for bivariate extreme-value distributions. \emph{Statist. Probab. Letters}, \bold{12}, 429--439. Hall, P. and Tajvidi, N. (2000) Distribution and dependence-function estimation for bivariate extreme-value distributions. \emph{Bernoulli}, \bold{6}, 835--844. } \seealso{\code{\link{abvevd}}, \code{\link{amvnonpar}}, \code{\link{bvtcplot}}, \code{\link{fgev}}} \examples{ bvdata <- rbvevd(100, dep = 0.7, model = "log") abvnonpar(seq(0, 1, length = 10), data = bvdata, convex = TRUE) abvnonpar(data = bvdata, method = "pick", plot = TRUE) M1 <- fitted(fbvevd(bvdata, model = "log")) abvevd(dep = M1["dep"], model = "log", plot = TRUE) abvnonpar(data = bvdata, add = TRUE, lty = 2) } \keyword{nonparametric} evd/man/venice.Rd0000644000176000001440000000154512637167310013406 0ustar ripleyusers\name{venice} \alias{venice} \title{Largest Sea Levels in Venice} \usage{venice} \description{ The \code{venice} data frame has 51 rows and 10 columns. The jth column contains the jth largest sea levels in Venice, for the years 1931--1981. Only the largest six measurements are available for the year 1935; the corresponding row contains four missing values. The years for each set of measurements are given as row names. A larger version of this data is available in the dataset \code{venice2}. } \format{A data frame with 51 rows and 10 columns.} \source{ Smith, R. L. (1986) Extreme value theory based on the \eqn{r} largest annual events. \emph{Journal of Hydrology}, \bold{86}, 27--43. } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modeling of Extreme Values}. London: Springer-Verlag. } \keyword{datasets} evd/man/abvevd.Rd0000644000176000001440000001122512637167310013400 0ustar ripleyusers\name{abvevd} \alias{abvevd} \title{Parametric Dependence Functions of Bivariate Extreme Value Models} \description{ Calculate or plot the dependence function \eqn{A} for nine parametric bivariate extreme value models. } \usage{ abvevd(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), rev = FALSE, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "t", ylab = "A(t)", \dots) } \arguments{ \item{x}{A vector of values at which the dependence function is evaluated (ignored if plot or add is \code{TRUE}). \eqn{A(1/2)} is returned by default since it is often a useful summary of dependence.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{rev}{Logical; reverse the dependence function? This is equivalent to evaluating the function at \code{1-x}.} \item{plot}{Logical; if \code{TRUE} the function is plotted. The x and y values used to create the plot are returned invisibly. If \code{plot} and \code{add} are \code{FALSE} (the default), the arguments following \code{add} are ignored.} \item{add}{Logical; add to an existing plot? The existing plot should have been created using either \code{abvevd} or \code{\link{abvnonpar}}, the latter of which plots (or calculates) a non-parametric estimate of the dependence function.} \item{lty, blty}{Function and border line types. Set \code{blty} to zero to omit the border.} \item{lwd, blwd}{Function an border line widths.} \item{col}{Line colour.} \item{xlim, ylim}{x and y-axis limits.} \item{xlab, ylab}{x and y-axis labels.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ Any bivariate extreme value distribution can be written as \deqn{G(z_1,z_2) = \exp\left[-(y_1+y_2)A\left( \frac{y_1}{y_1+y_2}\right)\right]}{ G(z1,z2) = exp{-(y1+y2)A[y1/(y1+y2)]}} for some function \eqn{A(\cdot)}{A()} defined on \eqn{[0,1]}, where \deqn{y_i = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,2}, with the (generalized extreme value) marginal parameters given by \eqn{(a_i,b_i,s_i)}{(ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. \eqn{A(\cdot)}{A()} is called (by some authors) the dependence function. It follows that \eqn{A(0)=A(1)=1}, and that \eqn{A(\cdot)}{A()} is a convex function with \eqn{\max(x,1-x) \leq A(x)\leq 1}{max(x,1-x) <= A(x) <= 1} for all \eqn{0\leq x\leq1}{0 <= x <= 1}. The lower and upper limits of \eqn{A} are obtained under complete dependence and independence respectively. \eqn{A(\cdot)}{A()} does not depend on the marginal parameters. Some authors take B(x) = A(1-x) as the dependence function. If the argument \code{rev = TRUE}, then B(x) is plotted/evaluated. } \value{ \code{abvevd} calculates or plots the dependence function for one of nine parametric bivariate extreme value models, at specified parameter values. } \seealso{\code{\link{abvnonpar}}, \code{\link{fbvevd}}, \code{\link{rbvevd}}, \code{\link{amvevd}}} \examples{ abvevd(dep = 2.7, model = "hr") abvevd(seq(0,1,0.25), dep = 0.3, asy = c(.7,.9), model = "alog") abvevd(alpha = 0.3, beta = 1.2, model = "negbi", plot = TRUE) bvdata <- rbvevd(100, dep = 0.7, model = "log") M1 <- fitted(fbvevd(bvdata, model = "log")) abvevd(dep = M1["dep"], model = "log", plot = TRUE) abvnonpar(data = bvdata, add = TRUE, lty = 2) } \keyword{distribution} evd/man/lisbon.Rd0000644000176000001440000000060412637167310013416 0ustar ripleyusers\name{lisbon} \alias{lisbon} \title{Annual Maximum Wind Speeds at Lisbon} \usage{lisbon} \description{ A numeric vector containing annual maximum wind speeds, in kilometers per hour, from 1941 to 1970 at Lisbon, Portugal. } \format{A vector containing 30 observations.} \source{ Tiago de Oliveira, J. (1997) \emph{Statistical Analysis of Extremes.} Pendor. } \keyword{datasets} evd/man/fextreme.Rd0000644000176000001440000000731312637167310013753 0ustar ripleyusers\name{fextreme} \alias{fextreme} \title{Maximum-likelihood Fitting of Maxima and Minima} \description{ Maximum-likelihood fitting for the distribution of the maximum/minimum of a given number of independent variables from a specified distribution. } \usage{ fextreme(x, start, densfun, distnfun, \dots, distn, mlen = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") } \arguments{ \item{x}{A numeric vector.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized.} \item{densfun, distnfun}{Density and distribution function of the specified distribution.} \item{\dots}{Additional parameters, either for the specified distribution or for the optimization function \code{optim}. If parameters of the distribution are included they will be held fixed at the values given (see \bold{Examples}). If parameters of the distribution are not included either here or as a named component in \code{start} they will be held fixed at the default values specified in the corresponding density and distribution functions (assuming they exist; an error will be generated otherwise).} \item{distn}{A character string, optionally specified as an alternative to \code{densfun} and \code{distnfun} such that the density and distribution functions are formed upon the addition of the prefixes \code{d} and \code{p} respectively.} \item{mlen}{The number of independent variables.} \item{largest}{Logical; if \code{TRUE} (default) use maxima, otherwise minima.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} } \details{ Maximization of the log-likelihood is performed. The estimated standard errors are taken from the observed information, calculated by a numerical approximation. If the density and distribution functions are user defined, the order of the arguments must mimic those in R base (i.e. data first, parameters second). Density functions must have \code{log} arguments. } \value{ Returns an object of class \code{c("extreme","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The function \code{anova} compares nested models. An object of class \code{c("extreme","evd")} is a list containing at most the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{call}{The call of the current function.} \item{data}{The data passed to the argument \code{x}.} \item{n}{The length of \code{x}.} } \seealso{\code{\link{anova.evd}}, \code{\link{forder}}, \code{\link{optim}}} \examples{ uvdata <- rextreme(100, qnorm, mean = 0.56, mlen = 365) fextreme(uvdata, list(mean = 0, sd = 1), distn = "norm", mlen = 365) fextreme(uvdata, list(rate = 1), distn = "exp", mlen = 365, method = "Brent", lower=0.01, upper=10) fextreme(uvdata, list(scale = 1), shape = 1, distn = "gamma", mlen = 365, method = "Brent", lower=0.01, upper=10) fextreme(uvdata, list(shape = 1, scale = 1), distn = "gamma", mlen = 365) } \keyword{models} evd/man/anova.evd.Rd0000644000176000001440000000426512637167310014020 0ustar ripleyusers\name{anova.evd} \alias{anova.evd} \title{Compare Nested EVD Objects} \description{ Compute an analysis of deviance table for two or more nested evd objects. } \usage{ \method{anova}{evd}(object, object2, \dots, half = FALSE) } \arguments{ \item{object}{An object of class \code{"evd"}.} \item{object2}{An object of class \code{"evd"} that represents a model nested within \code{object}.} \item{\dots}{Further successively nested objects.} \item{half}{For some non-regular tesing problems the deviance difference is known to be one half of a chi-squared random variable. Set \code{half} to \code{TRUE} in these cases.} } \value{ An object of class \code{c("anova", "data.frame")}, with one row for each model, and the following five columns \item{M.Df}{The number of parameters.} \item{Deviance}{The deviance.} \item{Df}{The number of parameters of the model in the previous row minus the number of parameters.} \item{Chisq}{The deviance minus the deviance of the model in the previous row (or twice this if \code{half} is \code{TRUE}).} \item{Pr(>chisq)}{The p-value calculated by comparing the quantile \code{Chisq} with a chi-squared distribution on \code{Df} degrees of freedom.} } \section{Warning}{ Circumstances may arise such that the asymptotic distribution of the test statistic is not chi-squared. In particular, this occurs when the smaller model is constrained at the edge of the parameter space. It is up to the user recognize this, and to interpret the output correctly. In some cases the asymptotic distribution is known to be one half of a chi-squared; you can set \code{half = TRUE} in these cases. } \seealso{\code{\link{fbvevd}}, \code{\link{fextreme}}, \code{\link{fgev}}, \code{\link{forder}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) trend <- (-49:50)/100 M1 <- fgev(uvdata, nsloc = trend) M2 <- fgev(uvdata) M3 <- fgev(uvdata, shape = 0) anova(M1, M2, M3) bvdata <- rbvevd(100, dep = 0.75, model = "log") M1 <- fbvevd(bvdata, model = "log") M2 <- fbvevd(bvdata, model = "log", dep = 0.75) M3 <- fbvevd(bvdata, model = "log", dep = 1) anova(M1, M2) anova(M1, M3, half = TRUE) } \keyword{models} evd/man/clusters.Rd0000644000176000001440000001077612637167310014007 0ustar ripleyusers\name{clusters} \alias{clusters} \title{Identify Clusters of Exceedences} \description{ Identify clusters of exceedences. } \usage{ clusters(data, u, r = 1, ulow = -Inf, rlow = 1, cmax = FALSE, keep.names = TRUE, plot = FALSE, xdata = seq(along = data), lvals = TRUE, lty = 1, lwd = 1, pch = par("pch"), col = if(n > 250) NULL else "grey", xlab = "Index", ylab = "Data", ...) } \arguments{ \item{data}{A numeric vector, which may contain missing values.} \item{u}{A single value giving the threshold, unless a time varying threshold is used, in which case \code{u} should be a vector of thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied).} \item{r}{A postive integer denoting the clustering interval length. By default the interval length is one.} \item{ulow}{A single value giving the lower threshold, unless a time varying lower threshold is used, in which case \code{ulow} should be a vector of lower thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied). By default there is no lower threshold (or equivalently, the lower threshold is \code{-Inf}).} \item{rlow}{A postive integer denoting the lower clustering interval length. By default the interval length is one.} \item{cmax}{Logical; if \code{FALSE} (the default), a list containing the clusters of exceedences is returned. If \code{TRUE} a numeric vector containing the cluster maxima is returned.} \item{keep.names}{Logical; if \code{FALSE}, the function makes no attempt to retain the names/indices of the observations within the returned object. If \code{data} contains a large number of observations, this can make the function run much faster. The argument is mainly designed for internal use.} \item{plot}{Logical; if \code{TRUE} a plot is given that depicts the identified clusters, and the clusters (if \code{cmax} is \code{FALSE}) or cluster maxima (if \code{cmax} is \code{TRUE}) are returned invisibly. If \code{FALSE} (the default), the following arguments are ignored.} \item{xdata}{A numeric vector with the same length as \code{data}, giving the values to be plotted on the x-axis.} \item{lvals}{Logical; should the values below the threshold and the line depicting the lower threshold be plotted?} \item{lty, lwd}{Line type and width for the lines depicting the threshold and the lower threshold.} \item{pch}{Plotting character.} \item{col}{Strips of colour \code{col} are used to identify the clusters. An observation is contained in the cluster if the centre of the corresponding plotting character is contained in the coloured strip. If \code{col} is \code{NULL} the strips are omitted. By default the strips are coloured \code{"grey"}, but are omitted whenever \code{data} contains more than 250 observations.} \item{xlab, ylab}{Labels for the x and y axis.} \item{\dots}{Other graphics parameters.} } \details{ The clusters of exceedences are identified as follows. The first exceedence of the threshold initiates the first cluster. The first cluster then remains active until either \code{r} consecutive values fall below (or are equal to) the threshold, or until \code{rlow} consecutive values fall below (or are equal to) the lower threshold. The next exceedence of the threshold (if it exists) then initiates the second cluster, and so on. Missing values are allowed, in which case they are treated as falling below (or equal to) the threshold, but falling above the lower threshold. } \value{ If \code{cmax} is \code{FALSE} (the default), a list with one component for each identified cluster. If \code{cmax} is \code{TRUE}, a numeric vector containing the cluster maxima. In any case, the returned object has an attribute \code{acs}, giving the average cluster size (where the cluster size is defined as the number of exceedences within a cluster), which will be \code{NaN} if there are no values above the threshold (and hence no clusters). If \code{plot} is \code{TRUE}, the list of clusters, or vector of cluster maxima, is returned invisibly. } \seealso{\code{\link{exi}}, \code{\link{exiplot}}} \examples{ clusters(portpirie, 4.2, 3) clusters(portpirie, 4.2, 3, cmax = TRUE) clusters(portpirie, 4.2, 3, 3.8, plot = TRUE) clusters(portpirie, 4.2, 3, 3.8, plot = TRUE, lvals = FALSE) tvu <- c(rep(4.2, 20), rep(4.1, 25), rep(4.2, 20)) clusters(portpirie, tvu, 3, plot = TRUE) } \keyword{manip} evd/man/mtransform.Rd0000644000176000001440000000320312637167310014316 0ustar ripleyusers\name{mtransform} \alias{mtransform} \title{GEV Transformations} \description{ Transforms to exponential margins under the GEV model. } \usage{ mtransform(x, p, inv = FALSE, drp = FALSE) } \arguments{ \item{x}{A matrix with n rows and d columns, or a vector. In the latter case, if \code{p} is a list with the same length as the vector, it is treated as a matrix with one row. If \code{p} is not a list, it is treated as a matrix with one column.} \item{p}{A vector of length three or a matrix with n rows and three columns. It can also be a list of length d, in which case each element must be a vector of length three or a matrix with n rows and three columns.} \item{inv}{Logical; use the inverse transformation?} \item{drp}{Logical; return a vector rather than a single row matrix?. Note that a single column matrix is always returned as a vector.} } \details{ Let \eqn{x_i} denote a vector of observations for \eqn{i = 1,\ldots,n}. This function implements the transformation \deqn{y_{i} = \{1+s_i(x_{i}-a_i)/b_i\}_{+}^{-1/s_i}} to each column of the matrix \code{x}. The values \eqn{(a_i,b_i,s_i)} are contained in the ith row of the n by 3 matrix \code{p}. If \code{p} is a vector of length three, the parameters are the same for every \eqn{i = 1,\ldots,n}. Alternatively, \code{p} can be a list with d elements, in which case the jth element is used to transform the jth column of \code{x}. This function is mainly for internal use. It is used by bivariate and multivariate routines to calculate marginal transformations. } \value{ A numeric matrix or vector. } \keyword{manip} evd/man/uccle.Rd0000644000176000001440000000152612637167310013227 0ustar ripleyusers\name{uccle} \alias{uccle} \title{Rainfall Maxima at Uccle, Belgium} \usage{uccle} \description{ The \code{uccle} data frame has 35 rows and 4 columns. The columns contain annual rainfall maxima (in millimetres) from 1938 to 1972 at Uccle, Belgium, over the durations of one day, one hour, ten minutes and one minute. The row names give the years of observation. } \format{ This data frame contains the following columns: \describe{ \item{day}{Annual daily rainfall maxima.} \item{hour}{Annual hourly rainfall maxima.} \item{tmin}{Annual rainfall maxima over ten minute durations.} \item{min}{Annual rainfall maxima over one minute durations.} } } \source{ Sneyers, R. (1977) L'intensit\'{e} maximale des pr\'{e}cipitations en Belgique. \emph{Inst. Royal M\'{e}t\'{e}or. Belgique, B} \bold{86}. } \keyword{datasets} evd/man/qcbvnonpar.Rd0000644000176000001440000001104512637167310014302 0ustar ripleyusers\name{qcbvnonpar} \alias{qcbvnonpar} \title{Non-parametric Estimates for Bivariate Quantile Curves} \description{ Calculate or plot non-parametric estimates for quantile curves of bivariate extreme value distributions. } \usage{ qcbvnonpar(p = seq(0.75, 0.95, 0.05), data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, mint = 1, method = c("cfg", "pickands", "tdo"), convex = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, xlim = range(data[,1], na.rm = TRUE), ylim = range(data[,2], na.rm = TRUE), xlab = colnames(data)[1], ylab = colnames(data)[2], \dots) } \arguments{ \item{p}{A vector of lower tail probabilities. One quantile curve is calculated or plotted for each probability.} \item{data}{A matrix or data frame with two columns, which may contain missing values.} \item{epmar}{If \code{TRUE}, an empirical transformation of the marginals is performed in preference to marginal parametric GEV estimation, and the \code{nsloc} arguments are ignored.} \item{nsloc1, nsloc2}{A data frame with the same number of rows as \code{data}, for linear modelling of the location parameter on the first/second margin. The data frames are treated as covariate matrices, excluding the intercept. A numeric vector can be given as an alternative to a single column data frame.} \item{mint}{An integer \eqn{m}. Quantile curves are plotted or calculated using the lower tail probabilities \eqn{p^m}.} \item{method, kmar}{Arguments for the non-parametric estimate of the dependence function. See \code{\link{abvnonpar}}.} \item{convex, madj}{Other arguments for the non-parametric estimate of the dependence function.} \item{plot}{Logical; if \code{TRUE} the data is plotted along with the quantile curves. If \code{plot} and \code{add} are \code{FALSE} (the default), the arguments following \code{add} are ignored.} \item{add}{Logical; add quantile curves to an existing data plot? The existing plot should have been created using either \code{qcbvnonpar} or \code{\link{plot.bvevd}}, the latter of which can plot quantile curves for parametric fits.} \item{lty, lwd}{Line types and widths.} \item{col}{Line colour.} \item{xlim, ylim}{x and y-axis limits.} \item{xlab, ylab}{x and y-axis labels.} \item{\dots}{Other high-level graphics parameters to be passed to \code{plot}.} } \details{ Let G be a fitted bivariate distribution function with margins \eqn{G_1} and \eqn{G_2}. A quantile curve for a fitted distribution function G at lower tail probability p is defined by \deqn{Q(G, p) = \{(y_1,y_1):G(y_1,y_2) = p\}.}{ Q(G, p) = {(y_1,y_1):G(y_1,y_2) = p}.} For bivariate extreme value distributions, it consists of the points \deqn{\left\{G_1^{-1}(p_1),G_2^{-1}(p_2))\right\}}{ {G_1^{-1}(p_1),G_2^{-1}(p_2))}} where \eqn{p_1 = p^{t/A(t)}} and \eqn{p_2 = p^{(1-t)/A(t)}}, with \eqn{A} being the estimated dependence function defined in \code{\link{abvevd}}, and where \eqn{t} lies in the interval \eqn{[0,1]}. By default the margins \eqn{G_1} and \eqn{G_2} are modelled using estimated generalized extreme value distributions. For non-stationary generalized extreme value margins the plotted data are transformed to stationarity, and the plot corresponds to the distribution obtained when all covariates are zero. If \code{epmar} is \code{TRUE}, empirical transformations are used in preference to generalized extreme value models. Note that the marginal empirical quantile functions are evaluated using \code{\link{quantile}}, which linearly interpolates between data points, hence the curve will not be a step function. The idea behind the argument \eqn{\code{mint} = m} is that if G is fitted to a dataset of componentwise maxima, and the underlying observations are \emph{iid} distributed according to F, then if \eqn{m} is the size of the blocks over which the maxima were taken, approximately \eqn{F^m = G}, leading to \eqn{Q(F, p) = Q(G, p^m)}. } \value{ \code{qcbvnonpar} calculates or plots non-parametric quantile curve estimates for bivariate extreme value distributions. If \code{p} has length one it returns a two column matrix giving points on the curve, else it returns a list of such matrices. } \seealso{\code{\link{abvevd}}, \code{\link{abvnonpar}}, \code{\link{plot.bvevd}}} \examples{ bvdata <- rbvevd(100, dep = 0.7, model = "log") qcbvnonpar(c(0.9,0.95), data = bvdata, plot = TRUE) qcbvnonpar(c(0.9,0.95), data = bvdata, epmar = TRUE, plot = TRUE) } \keyword{nonparametric} evd/man/extreme.Rd0000644000176000001440000000474512637167310013613 0ustar ripleyusers\name{extreme} \alias{dextreme} \alias{pextreme} \alias{qextreme} \alias{rextreme} \title{Distributions of Maxima and Minima} \description{ Density function, distribution function, quantile function and random generation for the maximum/minimum of a given number of independent variables from a specified distribution. } \usage{ dextreme(x, densfun, distnfun, \dots, distn, mlen = 1, largest = TRUE, log = FALSE) pextreme(q, distnfun, \dots, distn, mlen = 1, largest = TRUE, lower.tail = TRUE) qextreme(p, quantfun, \dots, distn, mlen = 1, largest = TRUE, lower.tail = TRUE) rextreme(n, quantfun, \dots, distn, mlen = 1, largest = TRUE) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{densfun, distnfun, quantfun}{Density, distribution and quantile function of the specified distribution. The density function must have a \code{log} argument (a simple wrapper can always be constructed to achieve this).} \item{\dots}{Parameters of the specified distribution.} \item{distn}{A character string, optionally given as an alternative to \code{densfun}, \code{distnfun} and \code{quantfun} such that the density, distribution and quantile functions are formed upon the addition of the prefixes \code{d}, \code{p} and \code{q} respectively.} \item{mlen}{The number of independent variables.} \item{largest}{Logical; if \code{TRUE} (default) use maxima, otherwise minima.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default) probabilities are P[X <= x], otherwise P[X > x].} } \value{ \code{dextreme} gives the density function, \code{pextreme} gives the distribution function and \code{qextreme} gives the quantile function of the maximum/minimum of \code{mlen} independent variables from a specified distibution. \code{rextreme} generates random deviates. } \seealso{\code{\link{rgev}}, \code{\link{rorder}}} \examples{ dextreme(2:4, dnorm, pnorm, mean = 0.5, sd = 1.2, mlen = 5) dextreme(2:4, distn = "norm", mean = 0.5, sd = 1.2, mlen = 5) dextreme(2:4, distn = "exp", mlen = 2, largest = FALSE) pextreme(2:4, distn = "exp", rate = 1.2, mlen = 2) qextreme(seq(0.9, 0.6, -0.1), distn = "exp", rate = 1.2, mlen = 2) rextreme(5, qgamma, shape = 1, mlen = 10) p <- (1:9)/10 pexp(qextreme(p, distn = "exp", rate = 1.2, mlen = 1), rate = 1.2) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/sask.Rd0000644000176000001440000000113612637167310013072 0ustar ripleyusers\name{sask} \alias{sask} \title{Maximum Annual Flood Discharges of the North Saskachevan River} \usage{sask} \description{ A numeric vector containing maximum annual flood discharges, in units of 1000 cubic feet per second, of the North Saskachevan River at Edmonton, over a period of 47 years. Unfortunately, the data are ordered from largest to smallest. } \format{A vector containing 47 observations.} \source{ van Montfort, M. A. J. (1970) On testing that the distribution is of type I when type II is the alternative. \emph{J. Hydrology}, \bold{11}, 421--427. } \keyword{datasets} evd/man/gumbelx.Rd0000644000176000001440000000363614225012534013573 0ustar ripleyusers\name{gumbelx} \alias{dgumbelx} \alias{pgumbelx} \alias{qgumbelx} \alias{rgumbelx} \title{Maxima of Two Gumbel Distributions} \description{ Density function, distribution function, quantile function and random generation for the maxima of two Gumbel distributions, each with different location and scale parameters. } \usage{ dgumbelx(x, loc1=0, scale1=1, loc2=0, scale2=1, log = FALSE) pgumbelx(q, loc1=0, scale1=1, loc2=0, scale2=1, lower.tail = TRUE) qgumbelx(p, interval, loc1=0, scale1=1, loc2=0, scale2=1, lower.tail = TRUE, \dots) rgumbelx(n, loc1=0, scale1=1, loc2=0, scale2=1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{interval}{A length two vector containing the end-points of the interval to be searched for the quantiles, passed to the uniroot function.} \item{loc1, scale1, loc2, scale2}{Location and scale parameters of the two Gumbel distributions. The second location parameter must be greater than or equal to the first location parameter.} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} \item{\dots}{Other arguments passed to uniroot.} } \value{ \code{dgumbelx} gives the density function, \code{pgumbelx} gives the distribution function, \code{qgumbelx} gives the quantile function, and \code{rgumbelx} generates random deviates. } \seealso{\code{\link{fgev}}, \code{\link{rfrechet}}, \code{\link{rgumbel}}, \code{\link{rrweibull}}, \code{\link{uniroot}}} \examples{ dgumbelx(2:4, 0, 1.1, 1, 0.5) pgumbelx(2:4, 0, 1.1, 1, 0.5) qgumbelx(seq(0.9, 0.6, -0.1), interval = c(0,10), 0, 1.2, 2, 0.5) rgumbelx(6, 0, 1.1, 1, 0.5) p <- (1:9)/10 pgumbelx(qgumbelx(p, interval = c(0,10), 0, 0.5, 1, 2), 0, 0.5, 1, 2) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/mrlplot.Rd0000644000176000001440000000435512637167310013630 0ustar ripleyusers\name{mrlplot} \alias{mrlplot} \title{Empirical Mean Residual Life Plot} \description{ The empirical mean residual life plot. } \usage{ mrlplot(data, tlim, pscale = FALSE, nt = max(100, length(data)), lty = c(2,1,2), col = 1, conf = 0.95, main = "Mean Residual Life Plot", xlab = "Threshold", ylab = "Mean Excess", \dots) } \arguments{ \item{data}{A numeric vector.} \item{tlim}{A numeric vector of length two, giving the limits for the thresholds at which the mean residual life plot is evaluated. If \code{tlim} is not given, sensible defaults are used.} \item{pscale}{If \code{TRUE}, then the x-axis gives the threshold exceedance probability rather than the threshold itself.} \item{nt}{The number of thresholds at which the mean residual life plot is evaluated.} \item{lty, col}{Arguments passed to \code{matplot}. The first and last elements of \code{lty} correspond to the lower and upper confidence limits respectively. Use zero to supress.} \item{conf}{The (pointwise) confidence coefficient for the plotted confidence intervals.} \item{main}{Plot title.} \item{xlab, ylab}{x and y axis labels.} \item{\dots}{Other arguments to be passed to \code{matplot}.} } \details{ The empirical mean residual life plot is the locus of points \deqn{\left(u,\frac{1}{n_u} \sum\nolimits_{i=1}^{n_u} (x_{(i)} - u) \right)}{{u,1/n_u \sum_{i=1}^{n_u} (x(i) - u)}} where \eqn{x_{(1)}, \dots, x_{(n_u)}}{x(1), \dots, x(n_u)} are the \eqn{n_u} observations that exceed the threshold \eqn{u}. If the exceedances of a threshold \eqn{u_0}{u0} are generalized Pareto, the empirical mean residual life plot should be approximately linear for \eqn{u > u_0}{u > u0}. The confidence intervals within the plot are symmetric intervals based on the approximate normality of sample means. } \value{ A list with components \code{x} and \code{y} is invisibly returned. The components contain those objects that were passed to the formal arguments \code{x} and \code{y} of \code{matplot} in order to create the mean residual life plot. } \author{Stuart Coles and Alec Stephenson} \seealso{\code{\link{fpot}}, \code{\link{matplot}}, \code{\link{tcplot}}} \examples{ mrlplot(portpirie) } \keyword{hplot} evd/man/marma.Rd0000644000176000001440000000614112637167310013227 0ustar ripleyusers\name{marma} \alias{marma} \alias{mar} \alias{mma} \title{Simulate MARMA(p,q) Processes} \description{ Simulation of MARMA(p,q) processes. } \usage{ marma(n, p = 0, q = 0, psi, theta, init = rep(0, p), n.start = p, rand.gen = rfrechet, \dots) mar(n, p = 1, psi, init = rep(0, p), n.start = p, rand.gen = rfrechet, \dots) mma(n, q = 1, theta, rand.gen = rfrechet, \dots) } \arguments{ \item{n}{The number of observations.} \item{p}{The AR order of the MARMA process.} \item{q}{The MA order of the MARMA process.} \item{psi}{A vector of non-negative parameters, of length \code{p}. Can be omitted if \code{p} is zero.} \item{theta}{A vector of non-negative parameters, of length \code{q}. Can be omitted if \code{q} is zero.} \item{init}{A vector of non-negative starting values, of length \code{p}.} \item{n.start}{A non-negative value denoting the length of the burn-in period. If \code{n.start} is less than \code{p}, then \code{p} minus \code{n.start} starting values will be included in the output series.} \item{rand.gen}{A simulation function to generate the innovations.} \item{\dots}{Additional arguments for \code{rand.gen}. Most usefully, the scale and shape parameters of the innovations generated by \code{rfrechet} can be specified by \code{scale} and \code{shape} respectively.} } \details{ A max autoregressive moving average process \eqn{\{X_k\}}{{X_k}}, denoted by MARMA(p,q), is defined in Davis and Resnick (1989) as satisfying \deqn{X_k = \max\{\phi_1 X_{k-1}, \ldots, \phi_p X_{k-p}, \epsilon_k, \theta_1 \epsilon_{k-1}, \ldots, \theta_q \epsilon_{k-q}\}}{ X_k = max[phi_1 X_{k-1}, \ldots, phi_p X_{k-p}, epsilon_k, theta_1 epsilon_{k-1}, \ldots, theta_q epsilon_{k-q}]} where \eqn{\code{phi} = (\phi_1, \ldots, \phi_p)}{ \code{phi} = (phi_1, \ldots, phi_p)} and \eqn{\code{theta} = (\theta_1, \ldots, \theta_q)}{ \code{theta} = (theta_1, \ldots, theta_q)} are non-negative vectors of parameters, and where \eqn{\{\epsilon_k\}}{{epsilon_k}} is a series of \emph{iid} random variables with a common distribution defined by \code{rand.gen}. The functions \code{mar} and \code{mma} generate MAR(p) and MMA(q) processes respectively. A MAR(p) process \eqn{\{X_k\}}{{X_k}} is equivalent to a MARMA(p, 0) process, so that \deqn{X_k = \max\{\phi_1 X_{k-1}, \ldots, \phi_p X_{k-p}, \epsilon_k\}.}{X_k = max[phi_1 X_{k-1}, \ldots, phi_p X_{k-p}, epsilon_k].} A MMA(q) process \eqn{\{X_k\}}{{X_k}} is equivalent to a MARMA(0, q) process, so that \deqn{X_k = \max\{\epsilon_k, \theta_1 \epsilon_{k-1}, \ldots, \theta_q \epsilon_{k-q}\}.}{X_k = max[epsilon_k, theta_1 epsilon_{k-1}, \ldots, theta_q epsilon_{k-q}].} } \value{ A numeric vector of length \code{n}. } \references{ Davis, R. A. and Resnick, S. I. (1989) Basic properties and prediction of max-arma processes. \emph{Adv. Appl. Prob.}, \bold{21}, 781--803. } \seealso{\code{\link{evmc}}} \examples{ marma(100, p = 1, q = 1, psi = 0.75, theta = 0.65) mar(100, psi = 0.85, n.start = 20) mma(100, q = 2, theta = c(0.75, 0.8)) } \keyword{distribution} evd/man/gpd.Rd0000644000176000001440000000360612637167310012707 0ustar ripleyusers\name{gpd} \alias{dgpd} \alias{pgpd} \alias{qgpd} \alias{rgpd} \title{The Generalized Pareto Distribution} \description{ Density function, distribution function, quantile function and random generation for the generalized Pareto distribution (GPD) with location, scale and shape parameters. } \usage{ dgpd(x, loc=0, scale=1, shape=0, log = FALSE) pgpd(q, loc=0, scale=1, shape=0, lower.tail = TRUE) qgpd(p, loc=0, scale=1, shape=0, lower.tail = TRUE) rgpd(n, loc=0, scale=1, shape=0) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters; the \code{shape} argument cannot be a vector (must have length one).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The generalized Pareto distribution function (Pickands, 1975) with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = 1 - \{1+s(z-a)/b\}^{-1/s}}{ G(z) = 1 - {1+s(z-a)/b}^(-1/s)} for \eqn{1+s(z-a)/b > 0} and \eqn{z > a}, where \eqn{b > 0}. If \eqn{s = 0} the distribution is defined by continuity. } \value{ \code{dgpd} gives the density function, \code{pgpd} gives the distribution function, \code{qgpd} gives the quantile function, and \code{rgpd} generates random deviates. } \references{ Pickands, J. (1975) Statistical inference using extreme order statistics. \emph{Annals of Statistics}, \bold{3}, 119--131. } \seealso{\code{\link{fpot}}, \code{\link{rgev}}} \examples{ dgpd(2:4, 1, 0.5, 0.8) pgpd(2:4, 1, 0.5, 0.8) qgpd(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rgpd(6, 1, 0.5, 0.8) p <- (1:9)/10 pgpd(qgpd(p, 1, 2, 0.8), 1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/plot.uvevd.Rd0000644000176000001440000001455114225014401014227 0ustar ripleyusers\name{plot.uvevd} \alias{plot.uvevd} \alias{plot.gumbelx} \title{Plot Diagnostics for a Univariate EVD Object} \description{ Four plots (selectable by \code{which}) are currently provided: a P-P plot, a Q-Q plot, a density plot and a return level plot. } \usage{ \method{plot}{uvevd}(x, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, a = 0, adjust = 1, jitter = FALSE, nplty = 2, \dots) \method{plot}{gumbelx}(x, interval, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, a = 0, adjust = 1, jitter = FALSE, nplty = 2, \dots) } \arguments{ \item{x}{An object that inherits from class \code{"uvevd"}.} \item{which}{If a subset of the plots is required, specify a subset of the numbers \code{1:4}.} \item{main}{Title of each plot. If given, must be a character vector with the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{ci}{Logical; if \code{TRUE} (the default), plot simulated 95\% confidence intervals for the P-P, Q-Q and return level plots.} \item{cilwd}{Line width for confidence interval lines.} \item{a}{Passed through to \code{ppoints} for empirical estimation. Larger values give less probability for extreme events.} \item{adjust, jitter, nplty}{Arguments to the density plot. The density of the fitted model is plotted with a rug plot and (optionally) a non-parameteric estimate. The argument \code{adjust} controls the smoothing bandwidth for the non-parametric estimate (see \code{\link{density}}). \code{jitter} is logical; if \code{TRUE}, the (possibly transformed) data are jittered to produce the rug plot. This need only be used if the data contains repeated values. \code{nplty} is the line type of the non-parametric estimate. To omit the non-parametric estimate set \code{nplty} to zero.} \item{interval}{A vector of length two, for the gumbelx (maximum of two Gumbels) model. This is passed to the uniroot function to calculate quantiles for the Q-Q and return level plots. The interval should be large enough to contain all plotted quantiles or an error from uniroot will occur.} \item{\dots}{Other parameters to be passed through to plotting functions.} } \details{ The following discussion assumes that the fitted model is stationary. For non-stationary generalized extreme value models the data are transformed to stationarity. The plot then corresponds to the distribution obtained when all covariates are zero. The P-P plot consists of the points \deqn{\{(G_n(z_i), G(z_i)), i = 1,\ldots,m\}}{ {(G_n(z_i), G(z_i)), i = 1,\ldots,m}} where \eqn{G_n} is the empirical distribution function (defined using \code{\link{ppoints}}), G is the model based estimate of the distribution (generalized extreme value or generalized Pareto), and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. The Q-Q plot consists of the points \deqn{\{(G^{-1}(p_i), z_i), i = 1,\ldots,m\}}{ {(G^{-1}(p_i), z_i), i = 1,\ldots,m}} where \eqn{G^{-1}} is the model based estimate of the quantile function (generalized extreme value or generalized Pareto), \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}}, and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. The return level plot for generalized extreme value models is defined as follows. Let \eqn{G} be the generalized extreme value distribution function, with location, scale and shape parameters \eqn{a}, \eqn{b} and \eqn{s} respectively. Let \eqn{z_t} be defined by \eqn{G(z_t) = 1 - 1/t}. In common terminology, \eqn{z_t} is the return level associated with the return period \eqn{t}. Let \eqn{y_t = -1/\log(1 - 1/t)}{y_t = -1/log(1 - 1/t)}. It follows that \deqn{z_t = a + b(y_t^s - 1)/s.}{ z_t = a + b((y_t)^s - 1)/s.} When \eqn{s = 0}, \eqn{z_t} is defined by continuity, so that \deqn{z_t = a + b\log(y_t).}{ z_t = a + b log(y_t).} The curve within the return level plot is \eqn{z_t} plotted against \eqn{y_t} on a logarithmic scale, using maximum likelihood estimates of \eqn{(a,b,s)}. If the estimate of \eqn{s} is zero, the curve will be linear. For large values of \eqn{t}, \eqn{y_t} is approximately equal to the return period \eqn{t}. It is usual practice to label the x-axis as the return period. The points on the plot are \deqn{\{(-1/\log(p_i), z_i), i = 1,\ldots,m\}}{ {(-1/log(p_i), z_i), i = 1,\ldots,m}} where \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}}, and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. For a good fit the points should lie ``close'' to the curve. The return level plot for peaks over threshold models is defined as follows. Let \eqn{G} be the generalized Pareto distribution function, with location, scale and shape parameters \eqn{u}, \eqn{b} and \eqn{s} respectively, where \eqn{u} is the model threshold. Let \eqn{z_m} denote the \eqn{m} period return level (see \code{\link{fpot}} and the notation therein). It follows that \deqn{z_m = u + b((pmN)^s - 1)/s.}{ z_m = u + b((pmN)^s - 1)/s.} When \eqn{s = 0}, \eqn{z_m} is defined by continuity, so that \deqn{z_m = u + b\log(pmN).}{ z_m = u + b log(pmN).} The curve within the return level plot is \eqn{z_m} plotted against \eqn{m} on a logarithmic scale, using maximum likelihood estimates of \eqn{(b,s,p)}. If the estimate of \eqn{s} is zero, the curve will be linear. The points on the plot are \deqn{\{(1/(pN(1-p_i)), z_i), i = 1,\ldots,m\}}{ {(1/(pN(1-p_i)), z_i), i = 1,\ldots,m}} where \eqn{p_1,\ldots,p_m} are plotting points defined by \code{\link{ppoints}}, and \eqn{z_1,\ldots,z_m} are the data used in the fitted model, sorted into ascending order. For a good fit the points should lie ``close'' to the curve. } \seealso{\code{\link{plot.bvevd}}, \code{\link{density}}, \code{\link{jitter}}, \code{\link{rug}}, \code{\link{ppoints}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{par(mfrow = c(2,2))} \dontrun{plot(M1)} uvdata <- rgpd(100, loc = 0, scale = 1.1, shape = 0.2) M1 <- fpot(uvdata, 1) \dontrun{par(mfrow = c(2,2))} \dontrun{plot(M1)} } \keyword{hplot} evd/man/lossalae.Rd0000644000176000001440000000247612637167310013744 0ustar ripleyusers\name{lossalae} \alias{lossalae} \title{General Liability Claims} \usage{lossalae} \description{ The \code{lossalae} data frame has 1500 rows and 2 columns. The columns contain the indemnity payment (loss), and the allocated loss adjustment expense (alae), both in USD. The latter is the additional expenses associated with the settlement of the claim (e.g. claims investigation expenses and legal fees). The dataset also has an attribute called \code{capped}, which gives the row names of the indemnity payments that were capped at their policy limit. } \format{ This data frame contains the following columns: \describe{ \item{Loss}{A numeric vector containing the indemnity payments.} \item{ALAE}{A numeric vector containing the allocated loss adjustment expenses.} } } \source{ Frees, E. W. and Valdez, E. A. (1998) Understanding relationships using copulas. \emph{North American Actuarial Journal}, \bold{2}, 1--15. } \references{ Klugman, S. A. and Parsa, R. (1999) Fitting bivariate loss distributions with copulas. \emph{Insurance: Mathematics and Economics}, \bold{24}, 139--148. Beirlant, J., Goegebeur, Y., Segers, J. and Teugels, J. L. (2004) \emph{Statistics of Extremes: Theory and Applications.}, Chichester, England: John Wiley and Sons. } \keyword{datasets} evd/man/portpirie.Rd0000644000176000001440000000110712637167310014144 0ustar ripleyusers\name{portpirie} \alias{portpirie} \title{Annual Maximum Sea Levels at Port Pirie} \usage{portpirie} \description{ A numeric vector containing annual maximum sea levels, in metres, from 1923 to 1987 at Port Pirie, South Australia. } \format{A vector containing 65 observations.} \source{ Tawn, J. A. (1993) Extreme sea-levels, in \emph{Statistics in the Environment}, 243--263, eds. V. Barnett and F. Turkman, Wiley. } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modeling of Extreme Values}. London: Springer-Verlag. } \keyword{datasets} evd/man/ccbvevd.Rd0000644000176000001440000000620512637167310013547 0ustar ripleyusers\name{ccbvevd} \alias{ccbvevd} \title{Calculate Conditional Copulas for Parametric Bivariate Extreme Value Distributions} \description{ Conditional copula functions, conditioning on either margin, for nine parametric bivariate extreme value models. } \usage{ ccbvevd(x, mar = 2, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), lower.tail = TRUE) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values. A data frame may also contain a third column of mode \code{logical}, which itself may contain missing values (see \bold{Details}).} \item{mar}{One or two; conditions on this margin.} \item{dep}{Dependence parameter for the logistic, asymmetric logistic, Husler-Reiss, negative logistic and asymmetric negative logistic models.} \item{asy}{A vector of length two, containing the two asymmetry parameters for the asymmetric logistic and asymmetric negative logistic models.} \item{alpha, beta}{Alpha and beta parameters for the bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models.} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. If parameter arguments are given that do not correspond to the specified model those arguments are ignored, with a warning.} \item{lower.tail}{Logical; if \code{TRUE} (default), the conditional distribution function is returned; the conditional survivor function is returned otherwise.} } \details{ The function calculates \eqn{P(U_1 < x_1|U_2 = x_2)}{ P(U1 < x1|U2 = x2)}, where \eqn{(U_1,U_2)}{(U1,U2)} is a random vector with Uniform(0,1) margins and with a dependence structure given by the specified parametric model. By default, the values of \eqn{x_1}{x1} and \eqn{x_1}{x2} are given by the first and second columns of the argument \code{x}. If \code{mar = 1} then this is reversed. If \code{x} has a third column \eqn{x_3}{x3} of mode logical, then the function returns \eqn{P(U_1 < x_1|U_2 = x_2,I = x_3)}{ P(U1 < x1|U2 = x2,I = x3)}, according to inference proceedures derived by Stephenson and Tawn (2004). See \code{\link{fbvevd}}. This requires numerical integration, and hence will be slower. This function is mainly for internal use. It is used by \code{\link{plot.bvevd}} to calculate the conditional P-P plotting diagnostics. } \value{ A numeric vector of probabilities. } \references{ Stephenson, A. G. and Tawn, J. A. (2004) Exploiting Occurence Times in Likelihood Inference for Componentwise Maxima. \emph{Biometrika} \bold{92}(1), 213--217. } \seealso{\code{\link{rbvevd}}, \code{\link{fbvevd}}, \code{\link{plot.bvevd}}} \keyword{distribution} evd/man/failure.Rd0000644000176000001440000000057412637167310013565 0ustar ripleyusers\name{failure} \alias{failure} \title{Failure Times} \usage{failure} \description{ Failure times. } \format{A vector containing 24 observations.} \source{ van Montfort, M. A. J. and Otten, A. (1978) On testing a shape parameter in the presence of a scale parameter. \emph{Math. Operations Forsch. Statist., Ser. Statistics}, \bold{9}, 91--104. } \keyword{datasets} evd/man/exiplot.Rd0000644000176000001440000000260212637167310013614 0ustar ripleyusers\name{exiplot} \alias{exiplot} \title{Plot Estimates of the Extremal Index} \description{ Plots estimates of the extremal index. } \usage{ exiplot(data, tlim, r = 1, ulow = -Inf, rlow = 1, add = FALSE, nt = 100, lty = 1, xlab = "Threshold", ylab = "Ext. Index", ylim = c(0,1), \dots) } \arguments{ \item{data}{A numeric vector, which may contain missing values.} \item{tlim}{A numeric vector of length two, giving the limits for the (time invariant) thresholds at which the estimates are evaluated.} \item{r, ulow, rlow}{The estimation method. See \code{\link{exi}}.} \item{add}{Add to an existing plot?} \item{nt}{The number of thresholds at which the estimates are evaluated.} \item{lty}{Line type.} \item{xlab, ylab}{x and y axis labels.} \item{ylim}{y axis limits.} \item{\dots}{Other arguments passed to \code{plot} or \code{lines}.} } \details{ The estimates are calculated using the function \code{\link{exi}}. } \value{ A list with components \code{x} and \code{y} is invisibly returned. The first component contains the thresholds, the second contains the estimates. } \seealso{\code{\link{clusters}}, \code{\link{exi}}} \examples{ sdat <- mar(100, psi = 0.5) tlim <- quantile(sdat, probs = c(0.4,0.9)) exiplot(sdat, tlim) exiplot(sdat, tlim, r = 4, add = TRUE, lty = 2) exiplot(sdat, tlim, r = 0, add = TRUE, lty = 4) } \keyword{hplot} evd/man/amvevd.Rd0000644000176000001440000001403112637167310013411 0ustar ripleyusers\name{amvevd} \alias{amvevd} \title{Parametric Dependence Functions of Multivariate Extreme Value Models} \description{ Calculate the dependence function \eqn{A} for the multivariate logistic and multivariate asymmetric logistic models; plot the estimated function in the trivariate case. } \usage{ amvevd(x = rep(1/d,d), dep, asy, model = c("log", "alog"), d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) } \arguments{ \item{x}{A vector of length \code{d} or a matrix with \code{d} columns, in which case the dependence function is evaluated across the rows (ignored if plot is \code{TRUE}). The elements/rows of the vector/matrix should be positive and should sum to one, or else they should have a positive sum, in which case the rows are rescaled and a warning is given. \eqn{A(1/d,\dots,1/d)} is returned by default since it is often a useful summary of dependence.} \item{dep}{The dependence parameter(s). For the logistic model, should be a single value. For the asymmetric logistic model, should be a vector of length \eqn{2^d-d-1}, or a single value, in which case the value is used for each of the \eqn{2^d-d-1} parameters (see \code{\link{rmvevd}}).} \item{asy}{The asymmetry parameters for the asymmetric logistic model. Should be a list with \eqn{2^d-1} vector elements containing the asymmetry parameters for each separate component (see \code{\link{rmvevd}} and \bold{Examples}).} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default) or \code{"alog"} (or any unique partial match), for the logistic and asymmetric logistic models respectively. The definition of each model is given in \code{\link{rmvevd}}.} \item{d}{The dimension; an integer greater than or equal to two. The trivariate case \code{d = 3} is the default.} \item{plot}{Logical; if \code{TRUE}, and the dimension \code{d} is three (the default dimension), the dependence function of a trivariate model is plotted. For plotting in the bivariate case, use \code{\link{abvevd}}. If \code{FALSE} (the default), the following arguments are ignored.} \item{col}{A list of colours (see \code{\link{image}}). The first colours in the list represent smaller values, and hence stronger dependence. Each colour represents an equally spaced interval between \code{lower} and one.} \item{blty}{The border line type, for the border that surrounds the triangular image. By default \code{blty} is zero, so no border is plotted. Plotting a border leads to (by default) an increase in \code{grid} (and hence computation time), to ensure that the image fits within it.} \item{grid}{For plotting, the function is evaluated at \code{grid^2} points.} \item{lower}{The minimum value for which colours are plotted. By defualt \eqn{\code{lower} = 1/3} as this is the theoretical minimum of the dependence function of the trivariate extreme value distribution.} \item{ord}{A vector of length three, which should be a permutation of the set \eqn{\{1,2,3\}}{{1,2,3}}. The points \eqn{(1,0,0)}, \eqn{(0,1,0)} and \eqn{(0,0,1)} (the vertices of the simplex) are depicted clockwise from the top in the order defined by \code{ord}.The argument alters the way in which the function is plotted; it does not change the function definition.} \item{lab}{A character vector of length three, in which case the \code{i}th margin is labelled using the \code{i}th component, or \code{NULL}, in which case no labels are given. The actual location of the margins, and hence the labels, is defined by \code{ord}.} \item{lcex}{A numerical value giving the amount by which the labels should be scaled relative to the default. Ignored if \code{lab} is \code{NULL}.} } \details{ Let \eqn{z = (z_1,\dots,z_d)}{z = (z1,\dots,zd)} and \eqn{w = (w_1,\dots,w_d)}{w = (w1,\dots,wd)}. Any multivariate extreme value distribution can be written as \deqn{G(z) = \exp\left\{- \left\{\sum\nolimits_{j=1}^{d} y_j \right\} A\left(\frac{y_1}{\sum\nolimits_{j=1}^{d} y_j}, \dots, \frac{y_d}{\sum\nolimits_{j=1}^{d} y_j}\right)\right\}}{ G(z) = exp{-(y1+\dots+yd) A[y1/(y1+\dots+yd), \dots, yd/(y1+\dots+yd)]}} for some function \eqn{A} defined on the simplex \eqn{S_d = \{w \in R^d_+ : \sum\nolimits_{j=1}^{d} w_j = 1\}}{S_d = {w: w1 + \dots + wd = 1}}, where \deqn{y_i = \{1+s_i(z_i-a_i)/b_i\}^{-1/s_i}}{ yi = {1+si(zi-ai)/bi}^(-1/si)} for \eqn{1+s_i(z_i-a_i)/b_i > 0}{1+si(zi-ai)/bi > 0} and \eqn{i = 1,\dots,d}, and where the (generalized extreme value) marginal parameters are given by \eqn{(a_i,b_i,s_i)}{(ai,bi,si)}, \eqn{b_i > 0}{bi > 0}. If \eqn{s_i = 0}{si = 0} then \eqn{y_i}{yi} is defined by continuity. \eqn{A} is called (by some authors) the dependence function. It follows that \eqn{A(w) = 1} when \eqn{w} is one of the \eqn{d} vertices of \eqn{S_d}, and that \eqn{A} is a convex function with \eqn{\max(w_1,\dots,w_d) \leq A(w)\leq 1}{ max(w1,\dots,wd) <= A(w) <= 1} for all \eqn{w} in \eqn{S_d}. The lower and upper limits of \eqn{A} are obtained under complete dependence and mutual independence respectively. \eqn{A} does not depend on the marginal parameters. } \value{ A numeric vector of values. If plotting, the smallest evaluated function value is returned invisibly. } \seealso{\code{\link{amvnonpar}}, \code{\link{abvevd}}, \code{\link{rmvevd}}, \code{\link{image}}} \examples{ amvevd(dep = 0.5, model = "log") s3pts <- matrix(rexp(30), nrow = 10, ncol = 3) s3pts <- s3pts/rowSums(s3pts) amvevd(s3pts, dep = 0.5, model = "log") \dontrun{amvevd(dep = 0.05, model = "log", plot = TRUE, blty = 1)} amvevd(dep = 0.95, model = "log", plot = TRUE, lower = 0.94) asy <- list(.4, .1, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.3,.2)) amvevd(s3pts, dep = 0.15, asy = asy, model = "alog") amvevd(dep = 0.15, asy = asy, model = "al", plot = TRUE, lower = 0.7) } \keyword{distribution} evd/man/exi.Rd0000644000176000001440000000411312637167310012714 0ustar ripleyusers\name{exi} \alias{exi} \title{Estimates of the Extremal Index} \description{ Estimates of the extremal index. } \usage{ exi(data, u, r = 1, ulow = -Inf, rlow = 1) } \arguments{ \item{data}{A numeric vector, which may contain missing values.} \item{u}{A single value giving the threshold, unless a time varying threshold is used, in which case \code{u} should be a vector of thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied).} \item{r}{Either a postive integer denoting the clustering interval length, or zero, in which case the intervals estimator of Ferro and Segers (2003) is used and following arguments are ignored. By default the interval length is one.} \item{ulow}{A single value giving the lower threshold, unless a time varying lower threshold is used, in which case \code{ulow} should be a vector of lower thresholds, typically with the same length as \code{data} (or else the usual recycling rules are applied). By default there is no lower threshold (or equivalently, the lower threshold is \code{-Inf}).} \item{rlow}{A postive integer denoting the lower clustering interval length. By default the interval length is one.} } \details{ If \code{r} is a positive integer the extremal index is estimated using the inverse of the average cluster size, using the clusters of exceedences derived from \code{\link{clusters}}. If \code{r} is zero, an estimate based on inter-exceedance times is used (Ferro and Segers, 2003). If there are no exceedances of the threshold, the estimate is \code{NaN}. If there is only one exceedance, the estimate is one. } \value{ A single value estimating the extremal index. } \references{ Ferro, C. A. T. and Segers, J. (2003) Inference for clusters of extreme values. \emph{JRSS B}, \bold{65}, 545--556. } \seealso{\code{\link{clusters}}, \code{\link{exiplot}}} \examples{ exi(portpirie, 4.2, r = 3, ulow = 3.8) tvu <- c(rep(4.2, 20), rep(4.1, 25), rep(4.2, 20)) exi(portpirie, tvu, r = 1) exi(portpirie, tvu, r = 0) } \keyword{manip} evd/man/plot.profile.evd.Rd0000644000176000001440000000451414224765754015340 0ustar ripleyusers\name{plot.profile.evd} \alias{plot.profile.evd} \title{Plot Profile Log-likelihoods} \description{ Displays profile log-likelihoods from a model profiled with \code{\link{profile.evd}}. } \usage{ \method{plot}{profile.evd}(x, which = names(x), main = NULL, ask = nb.fig < length(which) && dev.interactive(), ci = 0.95, clty = 2, \dots) } \arguments{ \item{x}{An object of class \code{"profile.evd"}.} \item{which}{A character vector giving the parameters for which the profile deviance is plotted, and for which profile confidence intervals are calculated. By default all profiled parameters in \code{x} are used.} \item{main}{Title of each plot; a character vector, the same length as \code{which}.} \item{ask}{Logical; if \code{TRUE}, the user is asked before each plot.} \item{ci}{A numeric vector. For each parameter in \code{which} profile confidence intervals are calculated, for each confidence coefficient in \code{ci} (but see \bold{Warning}). The intervals are returned invisibly as a list of vectors/matrices. Each plot then (by default) includes horizonal lines that represent each interval.} \item{clty}{The line type of the horizontal lines that represent the profile confidence intervals. To omit the lines set \code{clty} to zero.} \item{\dots}{Other graphics parameters.} } \value{ Profile devainces are plotted for each parameter in \code{which}. For calculation of profile confidence intervals, use the \code{\link{confint.profile.evd}} function. } \section{Warning}{ The profile confidence intervals may not have confidence coefficient \code{ci}, because the usual asymptotic properties of maximum likelihood estimators may not hold. For the GEV model, the usual asymptotic properties hold when the shape parameter is greater than \eqn{-0.5} (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{confint.profile.evd}}, \code{\link{plot.profile2d.evd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{par(mfrow = c(2,2))} \dontrun{cint <- plot(M1P, ci = c(0.95, 0.99))} \dontrun{cint} } \keyword{hplot} evd/man/venice2.Rd0000644000176000001440000000166112637167310013467 0ustar ripleyusers\name{venice2} \alias{venice2} \title{Largest Sea Levels in Venice} \usage{venice2} \description{ The \code{venice2} data frame has 125 rows and 10 columns. The data was kindly provided by Anthony Davison. The jth column contains the jth largest sea levels in Venice, for the years 1887--2011. This is a larger version of the dataset \code{venice}. Only the largest six measurements are available for the year 1935, and only the largest is available for 1922; the corresponding rows contain missing values. The years for each set of measurements are given as row names. } \format{A data frame with 125 rows and 10 columns.} \source{ Smith, R. L. (1986) Extreme value theory based on the \eqn{r} largest annual events. \emph{Journal of Hydrology}, \bold{86}, 27--43. } \references{ Coles, S. G. (2001) \emph{An Introduction to Statistical Modeling of Extreme Values}. London: Springer-Verlag. } \keyword{datasets} evd/man/gev.Rd0000644000176000001440000000457412637167310012723 0ustar ripleyusers\name{gev} \alias{dgev} \alias{pgev} \alias{qgev} \alias{rgev} \title{The Generalized Extreme Value Distribution} \description{ Density function, distribution function, quantile function and random generation for the generalized extreme value (GEV) distribution with location, scale and shape parameters. } \usage{ dgev(x, loc=0, scale=1, shape=0, log = FALSE) pgev(q, loc=0, scale=1, shape=0, lower.tail = TRUE) qgev(p, loc=0, scale=1, shape=0, lower.tail = TRUE) rgev(n, loc=0, scale=1, shape=0) } \arguments{ \item{x, q}{Vector of quantiles.} \item{p}{Vector of probabilities.} \item{n}{Number of observations.} \item{loc, scale, shape}{Location, scale and shape parameters; the \code{shape} argument cannot be a vector (must have length one).} \item{log}{Logical; if \code{TRUE}, the log density is returned.} \item{lower.tail}{Logical; if \code{TRUE} (default), probabilities are P[X <= x], otherwise, P[X > x]} } \details{ The GEV distribution function with parameters \eqn{\code{loc} = a}, \eqn{\code{scale} = b} and \eqn{\code{shape} = s} is \deqn{G(z) = \exp\left[-\{1+s(z-a)/b\}^{-1/s}\right]}{ G(x) = exp[-{1+s(z-a)/b}^(-1/s)]} for \eqn{1+s(z-a)/b > 0}, where \eqn{b > 0}. If \eqn{s = 0} the distribution is defined by continuity. If \eqn{1+s(z-a)/b \leq 0}{1+s(z-a)/b <= 0}, the value \eqn{z} is either greater than the upper end point (if \eqn{s < 0}), or less than the lower end point (if \eqn{s > 0}). The parametric form of the GEV encompasses that of the Gumbel, Frechet and reverse Weibull distributions, which are obtained for \eqn{s = 0}, \eqn{s > 0} and \eqn{s < 0} respectively. It was first introduced by Jenkinson (1955). } \value{ \code{dgev} gives the density function, \code{pgev} gives the distribution function, \code{qgev} gives the quantile function, and \code{rgev} generates random deviates. } \references{ Jenkinson, A. F. (1955) The frequency distribution of the annual maximum (or minimum) of meteorological elements. \emph{Quart. J. R. Met. Soc.}, \bold{81}, 158--171. } \seealso{\code{\link{fgev}}, \code{\link{rfrechet}}, \code{\link{rgumbel}}, \code{\link{rrweibull}}} \examples{ dgev(2:4, 1, 0.5, 0.8) pgev(2:4, 1, 0.5, 0.8) qgev(seq(0.9, 0.6, -0.1), 2, 0.5, 0.8) rgev(6, 1, 0.5, 0.8) p <- (1:9)/10 pgev(qgev(p, 1, 2, 0.8), 1, 2, 0.8) ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 } \keyword{distribution} evd/man/profile2d.evd.Rd0000644000176000001440000000353512637167310014601 0ustar ripleyusers\name{profile2d.evd} \alias{profile2d} \alias{profile2d.evd} \title{Method for Profiling EVD Objects} \description{ Calculate joint profile traces for fitted models. } \usage{ \method{profile2d}{evd}(fitted, prof, which, pts = 20, convergence = FALSE, method = "Nelder-Mead", control = list(maxit = 5000), \dots) } \arguments{ \item{fitted}{An object of class \code{"evd"}.} \item{prof}{An object of class \code{"profile.evd"}, created using \code{\link{profile.evd}} with argument \code{fitted}. The object must contain the (marginal) profile traces for the two parameters specified in \code{which}.} \item{which}{A character vector of length two containing the original model parameters that are to be jointly profiled.} \item{pts}{The number of distinct values used for each profiled parameter in \code{which}. There are \code{pts^2} optimizations performed in total.} \item{convergence}{Logical; print convergence code after each optimization? (A warning is given for each non-zero convergence code, irrespective of the value of \code{convergence}.)} \item{method}{The optimization method.} \item{control}{Passed to \code{optim}. See \code{\link{optim}} for details.} \item{\dots}{Ignored.} } \value{ An object of class \code{"profile2d.evd"}, which is a list with three elements. The first element, a matrix named \code{trace}, has the same structure as the elements of an object of class \code{"profile.evd"}. The last two elements give the distinct values used for each profiled parameter in \code{which}. } \seealso{\code{\link{profile.evd}}, \code{\link{plot.profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{M1JP <- profile2d(M1, M1P, which = c("scale", "shape"))} \dontrun{plot(M1JP)} } \keyword{models} evd/man/fbvevd.Rd0000644000176000001440000002774012637167310013416 0ustar ripleyusers\name{fbvevd} \alias{fbvevd} \alias{print.bvevd} \title{Maximum-likelihood Fitting of Bivariate Extreme Value Distributions} \description{ Fit models for one of nine parametric bivariate extreme value distributions, including linear modelling of the marginal location parameters, and allowing any of the parameters to be held fixed if desired. } \usage{ fbvevd(x, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), start, \dots, sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) } \arguments{ \item{x}{A matrix or data frame, ordinarily with two columns, which may contain missing values. A data frame may also contain a third column of mode \code{logical}, which itself may contain missing values (see \bold{More Details}).} \item{model}{The specified model; a character string. Must be either \code{"log"} (the default), \code{"alog"}, \code{"hr"}, \code{"neglog"}, \code{"aneglog"}, \code{"bilog"}, \code{"negbilog"}, \code{"ct"} or \code{"amix"} (or any unique partial match), for the logistic, asymmetric logistic, Husler-Reiss, negative logistic, asymmetric negative logistic, bilogistic, negative bilogistic, Coles-Tawn and asymmetric mixed models respectively. The definition of each model is given in \code{\link{rbvevd}}.} \item{start}{A named list giving the initial values for the parameters over which the likelihood is to be maximized. If \code{start} is omitted the routine attempts to find good starting values using marginal maximum likelihood estimators.} \item{\dots}{Additional parameters, either for the bivariate extreme value model or for the optimization function \code{optim}. If parameters of the model are included they will be held fixed at the values given (see \bold{Examples}).} \item{sym}{Logical; if \code{TRUE}, the dependence structure of the models \code{"alog"}, \code{"aneglog"} or \code{"ct"} are constrained to be symmetric (see \bold{Details}). For all other models, the argument is ignored (and a warning is given).} \item{nsloc1, nsloc2}{A data frame with the same number of rows as \code{x}, for linear modelling of the location parameter on the first/second margin (see \bold{Details}). The data frames are treated as covariate matrices, excluding the intercept. A numeric vector can be given as an alternative to a single column data frame.} \item{cshape}{Logical; if \code{TRUE}, a common shape parameter is fitted to each margin.} \item{cscale}{Logical; if \code{TRUE}, a common scale parameter is fitted to each margin, and the default value of \code{cshape} is then \code{TRUE}, so that under this default common scale and shape parameters are fitted.} \item{cloc}{Logical; if \code{TRUE}, a common location parameter is fitted to each margin, and the default values of \code{cshape} and \code{cscale} are then \code{TRUE}, so that under these defaults common marginal parameters are fitted.} \item{std.err}{Logical; if \code{TRUE} (the default), the standard errors are returned.} \item{corr}{Logical; if \code{TRUE}, the correlation matrix is returned.} \item{method}{The optimization method (see \code{\link{optim}} for details).} \item{warn.inf}{Logical; if \code{TRUE} (the default), a warning is given if the negative log-likelihood is infinite when evaluated at the starting values.} } \details{ The dependence parameter names are one or more of \code{dep}, \code{asy1}, \code{asy2}, \code{alpha} and \code{beta}, depending on the model selected (see \code{\link{rbvevd}}). The marginal parameter names are \code{loc1}, \code{scale1} and \code{shape1} for the first margin, and \code{loc2}, \code{scale2} and \code{shape2} for the second margin. If \code{nsloc1} is not \code{NULL}, so that a linear model is implemented for the first marginal location parameter, the parameter names for the first margin are \code{loc1}, \code{loc1}\emph{x1}, \dots, \code{loc1}\emph{xn}, \code{scale} and \code{shape}, where \emph{x1}, \dots, \emph{xn} are the column names of \code{nsloc1}, so that \code{loc1} is the intercept of the linear model, and \code{loc1}\emph{x1}, \dots, \code{loc1}\emph{xn} are the \code{ncol(nsloc1)} coefficients. When \code{nsloc2} is not \code{NULL}, the parameter names for the second margin are constructed similarly. It is recommended that the covariates within the linear models for the location parameters are (at least approximately) centered and scaled (i.e. that the columns of \code{nsloc1} and \code{nsloc2} are centered and scaled), particularly if automatic starting values are used, since the starting values for the associated parameters are then zero. If \code{cloc} is \code{TRUE}, both \code{nsloc1} and \code{nsloc2} must be identical, since a common linear model is then implemented on both margins. If \code{cshape} is true, the models are constrained so that \code{shape2 = shape1}. The parameter \code{shape2} is then taken to be specified, so that e.g. the common shape parameter can only be fixed at zero using \code{shape1 = 0}, since using \code{shape2 = 0} gives an error. Similar comments apply for \code{cscale} and \code{cloc}. If \code{sym} is \code{TRUE}, the asymmetric logistic and asymmetric negative logistic models are constrained so that \code{asy2 = asy1}, and the Coles-Tawn model is constrained so that \code{beta = alpha}. The parameter \code{asy2} or \code{beta} is then taken to be specified, so that e.g. the parameters \code{asy1} and \code{asy2} can only be fixed at \code{0.8} using \code{asy1 = 0.8}, since using \code{asy2 = 0.8} gives an error. Bilogistic and negative bilogistic models constrained to symmetry are logistic and negative logistic models respectively. The (symmetric) mixed model (e.g. Tawn, 1998) can be obtained as a special case of the asymmetric logistic or asymmetric mixed models (see \bold{Examples}). The value \code{Dependence} given in the printed output is \eqn{2(1-A(1/2))}, where \eqn{A} is the estimated dependence function (see \code{\link{abvevd}}). It measures the strength of dependence, and lies in the interval [0,1]; at independence and complete dependence it is zero and one respectively (Coles, Heffernan and Tawn, 1999). See \code{\link{chiplot}} for further information. } \value{ Returns an object of class \code{c("bvevd","evd")}. The generic accessor functions \code{\link{fitted}} (or \code{\link{fitted.values}}), \code{\link{std.errors}}, \code{\link{deviance}}, \code{\link{logLik}} and \code{\link{AIC}} extract various features of the returned object. The functions \code{profile} and \code{profile2d} can be used to obtain deviance profiles. The function \code{anova} compares nested models, and the function \code{AIC} compares non-nested models. The function \code{plot} produces diagnostic plots. An object of class \code{c("bvevd","evd")} is a list containing the following components \item{estimate}{A vector containing the maximum likelihood estimates.} \item{std.err}{A vector containing the standard errors.} \item{fixed}{A vector containing the parameters that have been fixed at specific values within the optimization.} \item{fixed2}{A vector containing the parameters that have been set to be equal to other model parameters.} \item{param}{A vector containing all parameters (those optimized, those fixed to specific values, and those set to be equal to other model parameters).} \item{deviance}{The deviance at the maximum likelihood estimates.} \item{dep.summary}{The estimate of \eqn{2(1-A(1/2))}.} \item{corr}{The correlation matrix.} \item{var.cov}{The variance covariance matrix.} \item{convergence, counts, message}{Components taken from the list returned by \code{\link{optim}}.} \item{data}{The data passed to the argument \code{x}.} \item{tdata}{The data, transformed to stationarity (for non-stationary models).} \item{nsloc1, nsloc2}{The arguments \code{nsloc1} and \code{nsloc2}.} \item{n}{The number of rows in \code{x}.} \item{sym}{The argument \code{sym}.} \item{cmar}{The vector \code{c(cloc, cscale, cshape)}.} \item{model}{The argument \code{model}.} \item{call}{The call of the current function.} } \section{More Details}{ If \code{x} is a data frame with a third column of mode \code{logical}, then the model is fitted using the likelihood derived by Stephenson and Tawn (2004). This is appropriate when each bivariate data point comprises componentwise maxima from some underlying bivariate process, and where the corresponding logical value denotes whether or not the maxima were caused by the same event within that process. Under this scheme the diagnostic plots that are produced using \code{plot} are somewhat different to those described in \code{\link{plot.bvevd}}: the density, dependence function and quantile curves plots contain fitted functions for observations where the logical case is unknown, and the conditional P-P plots condition on both the logical case and the given margin (which requires numerical integration at each data point). } \section{Artificial Constraints}{ For numerical reasons parameters are subject to artificial constraints. Specifically, these constraints are: marginal scale parameters not less than 0.01; \code{dep} not less than [0.1] [0.2] [0.05] in [logistic] [Husler-Reiss] [negative logistic] models; \code{dep} not greater than [10] [5] in [Husler-Reiss] [negative logistic] models; \code{asy1} and \code{asy2} not less than 0.001; \code{alpha} and \code{beta} not less than [0.1] [0.1] [0.001] in [bilogistic] [negative bilogistic] [Coles-Tawn] models; \code{alpha} and \code{beta} not greater than [0.999] [20] [30] in [bilogistic] [negative bilogistic] [Coles-Tawn] models. } \section{Warning}{ The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when either of the marginal shape parameters are less than \eqn{-0.5}, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985). } \references{ Coles, S. G., Heffernan, J. and Tawn, J. A. (1999) Dependence measures for extreme value analyses. \emph{Extremes}, \bold{2}, 339--365. Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. Stephenson, A. G. and Tawn, J. A. (2004) Exploiting Occurence Times in Likelihood Inference for Componentwise Maxima. \emph{Biometrika} \bold{92}(1), 213--217. Tawn, J. A. (1988) Bivariate extreme value theory: models and estimation. \emph{Biometrika}, \bold{75}, 397--415. } \seealso{\code{\link{anova.evd}}, \code{\link{optim}}, \code{\link{plot.bvevd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}, \code{\link{rbvevd}}} \examples{ bvdata <- rbvevd(100, dep = 0.6, model = "log", mar1 = c(1.2,1.4,0.4)) M1 <- fbvevd(bvdata, model = "log") M2 <- fbvevd(bvdata, model = "log", dep = 0.75) anova(M1, M2) par(mfrow = c(2,2)) plot(M1) plot(M1, mar = 1) plot(M1, mar = 2) \dontrun{par(mfrow = c(1,1))} \dontrun{M1P <- profile(M1, which = "dep")} \dontrun{plot(M1P)} trend <- (-49:50)/100 rnd <- runif(100, min = -.5, max = .5) fbvevd(bvdata, model = "log", nsloc1 = trend) fbvevd(bvdata, model = "log", nsloc1 = trend, nsloc2 = data.frame(trend = trend, random = rnd)) fbvevd(bvdata, model = "log", nsloc1 = trend, nsloc2 = data.frame(trend = trend, random = rnd), loc2random = 0) bvdata <- rbvevd(100, dep = 1, asy = c(0.5,0.5), model = "anegl") anlog <- fbvevd(bvdata, model = "anegl") mixed <- fbvevd(bvdata, model = "anegl", dep = 1, sym = TRUE) anova(anlog, mixed) amixed <- fbvevd(bvdata, model = "amix") mixed <- fbvevd(bvdata, model = "amix", beta = 0) anova(amixed, mixed) } \keyword{models} evd/man/plot.profile2d.evd.Rd0000644000176000001440000000424614260534766015565 0ustar ripleyusers\name{plot.profile2d.evd} \alias{plot.profile2d.evd} \title{Plot Joint Profile Log-likelihoods} \description{ Displays an image plot of the joint profile log-likelihood from a model profiled with \code{\link{profile.evd}} and \code{\link{profile2d.evd}}. } \usage{ \method{plot}{profile2d.evd}(x, main = NULL, ci = c(0.5, 0.8, 0.9, 0.95, 0.975, 0.99, 0.995), col = heat.colors(8), intpts = 75, xaxs = "r", yaxs = "r", \dots) } \arguments{ \item{x}{An object of class \code{"profile2d.evd"}.} \item{main}{Title of plot; a character string.} \item{ci}{A numeric vector whose length is one less than the length of \code{col}. The colours of the image plot, excluding the background colour, represent confidence sets with confidence coefficients \code{ci} (but see \bold{Warning}).} \item{col}{A list of colors such as that generated by \code{rainbow}, \code{heat.colors}, \code{topo.colors}, \code{terrain.colors} or similar functions.} \item{intpts}{If the package \CRANpkg{interp} is available, interpolation is performed using \code{intpts} points for each parameter. The function is interpolated at \code{intpts^2} points in total.} \item{xaxs,yaxs}{Graphics parameters (see \code{\link{par}}). The default, \code{"r"}, overrides the default set by \code{image}.} \item{\dots}{Other parameters to be passed to \code{image}.} } \section{Warning}{ The sets represented by different colours may not be confidence sets with confidence coefficients \code{ci}, because the usual asymptotic properties of maximum likelihood estimators may not hold. For the GEV model, the usual asymptotic properties hold when the shape parameter is greater than \eqn{-0.5} (Smith, 1985). } \references{ Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. \emph{Biometrika}, \bold{72}, 67--90. } \seealso{\code{\link{plot.profile.evd}}, \code{\link{profile.evd}}, \code{\link{profile2d.evd}}} \examples{ uvdata <- rgev(100, loc = 0.13, scale = 1.1, shape = 0.2) M1 <- fgev(uvdata) \dontrun{M1P <- profile(M1)} \dontrun{M1JP <- profile2d(M1, M1P, which = c("scale", "shape"))} \dontrun{plot(M1JP)} } \keyword{hplot} evd/DESCRIPTION0000644000176000001440000000141014260547434012573 0ustar ripleyusersPackage: evd Version: 2.3-6.1 Date: 2022-04-12 Title: Functions for Extreme Value Distributions Author: Alec Stephenson. Function fbvpot by Chris Ferro. Maintainer: Alec Stephenson Imports: stats, grDevices, graphics Suggests: interp Description: Extends simulation, distribution, quantile and density functions to univariate and multivariate parametric extreme value distributions, and provides fitting functions which calculate maximum likelihood estimates for univariate and bivariate maxima models, and for univariate and bivariate threshold models. LazyData: yes License: GPL-3 NeedsCompilation: yes Packaged: 2022-07-04 10:00:55 UTC; ripley Repository: CRAN Date/Publication: 2022-07-04 11:29:32 UTC evd/build/0000755000176000001440000000000014225274441012164 5ustar ripleyusersevd/build/vignette.rds0000644000176000001440000000034614225274441014526 0ustar ripleyusersb```b`a@&0`b fd`aҒ9%eE%%EzAyh KK2K2`*3 JR,3 % M8'- VQ %Z]?4-ީE0=(jؠjX2sRad9.nP&c0Gq?gQ~jݣ9JI,IK+@evd/src/0000755000176000001440000000000014225274442011655 5ustar ripleyusersevd/src/sim.c0000644000176000001440000002673414225274220012617 0ustar ripleyusers#include "header.h" /* produces standard Frechet margins */ void rbvlog_shi(int *n, double *alpha, double *sim) { double u,z; int i; RANDIN; for(i=0;i<*n;i++) { u = UNIF; if(UNIF < *alpha) z = EXP+EXP; else z = EXP; sim[2*i] = 1/(z * R_pow(u,*alpha)); sim[2*i+1] = 1/(z * R_pow(1-u,*alpha)); } RANDOUT; } /* produces standard Frechet margins */ void rbvalog_shi(int *n, double *alpha, double *asy, double *sim) { double v1_1,v2_2,v1_12,v2_12,u,z; int i; RANDIN; if(*alpha == 1) for(i=0;i<2*(*n);i++) sim[i] = 1/EXP; else { for(i=0;i<*n;i++) { v1_1 = (1-asy[0]) / EXP; v2_2 = (1-asy[1]) / EXP; u = UNIF; if(UNIF < *alpha) z = EXP+EXP; else z = EXP; v1_12 = asy[0] / (z * R_pow(u,*alpha)); v2_12 = asy[1] / (z * R_pow(1-u,*alpha)); sim[2*i] = fmax2(v1_1,v1_12); sim[2*i+1] = fmax2(v2_2,v2_12); } } RANDOUT; } /* produces standard Frechet margins */ void rmvlog_tawn(int *n, int *d, double *alpha, double *sim) { double s; int i,j; RANDIN; for(i=0;i<*n;i++) { s = rpstable(*alpha); for(j=0;j<*d;j++) sim[i*(*d)+j] = exp(*alpha * (s - log(EXP))); } RANDOUT; } /* produces standard Frechet margins */ void rmvalog_tawn(int *n, int *d, int *nb, double *alpha, double *asy, double *sim) { double s; double *gevsim; double *maxsim; int i,j,k; gevsim = (double *)R_alloc((*nb)*(*d), sizeof(double)); maxsim = (double *)R_alloc(*nb, sizeof(double)); for(i=0;i<(*nb)*(*d);i++) gevsim[i] = 0; RANDIN; for(i=0;i<*n;i++) { for(j=0;j<*nb;j++) { if(alpha[j] != 1) s = rpstable(alpha[j]); else s = 0; for(k=0;k<*d;k++) { if(asy[j*(*d) + k] != 0) gevsim[j*(*d) + k] = asy[j*(*d) + k] * exp(alpha[j] * (s - log(EXP))); } } for(j=0;j<*d;j++) { for(k=0;k<*nb;k++) maxsim[k] = gevsim[k*(*d) + j]; sim[i*(*d)+j] = maximum_n(*nb,maxsim); } } RANDOUT; } /* returns logarithm needed for rmvlog_tawn rmvalog_tawn */ double rpstable(double cexp) { double tcexp,u,w,a; if(cexp == 1) return 1; tcexp = 1-cexp; u = M_PI*UNIF; w = log(EXP); a = log(sin(tcexp*u)) + (cexp/tcexp) * log(sin(cexp*u)) - (1/tcexp) * log(sin(u)); return (tcexp/cexp) * (a - w); } double maximum_n(int n, double *x) { int i; for(i=1;i 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvalog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep,c1,c2,c3,c4; double *e1,*e2,*e3,*e4,*z,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); e4 = (double *)R_alloc(*n, sizeof(double)); z = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; c1 = log(1 - *asy1) + log(1 - *asy2); c2 = idep * log(*asy1) + idep * log(*asy2); c3 = log(1 - *asy1) + idep * log(*asy2); c4 = log(1 - *asy2) + idep * log(*asy1); for(i=0;i<*n;i++) { z[i] = R_pow(exp(idep * (log(*asy1) + datam1[i])) + exp(idep * (log(*asy2) + datam2[i])), *dep); v[i] = (1 - *asy1) * exp(datam1[i]) + (1 - *asy2) * exp(datam2[i]) + z[i]; jc[i] = (1 + *shape1) * datam1[i] + (1 + *shape2) * datam2[i] - log(*scale1 * *scale2); e1[i] = c3 + (idep - 1) * datam2[i]; e2[i] = c4 + (idep - 1) * datam1[i]; e3[i] = (1 - idep) * log(z[i]) + log(exp(e1[i]) + exp(e2[i])); e4[i] = c2 + (idep - 1) * datam1[i] + (idep - 1) * datam2[i] + (1 - 2*idep) * log(z[i]); dvec[i] = jc[i] - v[i]; if(si[i] == 0) { e4[i] = e4[i] + log(z[i]); dvec[i] = dvec[i] + log(exp(c1) + exp(e3[i]) + exp(e4[i])); } else if(si[i] == 1) { e4[i] = e4[i] + log(idep-1); dvec[i] = dvec[i] + e4[i]; } else { e4[i] = e4[i] + log(idep-1+z[i]); dvec[i] = dvec[i] + log(exp(c1) + exp(e3[i]) + exp(e4[i])); } } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvhr(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep; double *e1,*e2,*e3,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; for(i=0;i<*n;i++) { e1[i] = exp(datam1[i]) * pnorm(idep + *dep * (datam1[i] - datam2[i]) / 2, 0, 1, 1, 0); e2[i] = exp(datam2[i]) * pnorm(idep + *dep * (datam2[i] - datam1[i]) / 2, 0, 1, 1, 0); e3[i] = exp(datam1[i]) * dnorm(idep + *dep * (datam1[i] - datam2[i]) / 2, 0, 1, 0); v[i] = e1[i] + e2[i]; if(si[i] == 0) dvec[i] = e1[i] * e2[i]; else if(si[i] == 1) dvec[i] = *dep * e3[i] / 2; else dvec[i] = e1[i] * e2[i] + *dep * e3[i] / 2; jc[i] = *shape1 * datam1[i] + *shape2 * datam2[i] - log(*scale1 * *scale2); dvec[i] = log(dvec[i]) + jc[i] - v[i]; } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep; double *e1,*e2,*z,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); z = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; for(i=0;i<*n;i++) { z[i] = R_pow(exp(-*dep * datam1[i]) + exp(-*dep * datam2[i]), -idep); v[i] = exp(datam1[i]) + exp(datam2[i]) - z[i]; jc[i] = (1 + *shape1)*datam1[i] + (1 + *shape2)*datam2[i] - log(*scale1 * *scale2); e1[i] = (1 + *dep) * log(z[i]) + log(exp((-*dep-1) * datam1[i]) + exp((-*dep-1) * datam2[i])); e2[i] = (-*dep-1) * datam1[i] + (-*dep-1) * datam2[i] + (1 + 2 * *dep) * log(z[i]); dvec[i] = jc[i] - v[i]; if(si[i] == 0) { e2[i] = e2[i] + log(z[i]); dvec[i] = dvec[i] + log(1 - exp(e1[i]) + exp(e2[i])); } else if(si[i] == 1) { e2[i] = e2[i] + log(1 + *dep); dvec[i] = dvec[i] + e2[i]; } else { e2[i] = e2[i] + log(1 + *dep + z[i]); dvec[i] = dvec[i] + log(1 - exp(e1[i]) + exp(e2[i])); } } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvaneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double idep; double *e1,*e2,*e3,*e4,*z,*v,*jc,*dvec; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); e4 = (double *)R_alloc(*n, sizeof(double)); z = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } idep = 1 / *dep; for(i=0;i<*n;i++) { z[i] = R_pow(exp(-*dep * (log(*asy1) + datam1[i])) + exp(-*dep * (log(*asy2) + datam2[i])), -idep); v[i] = exp(datam1[i]) + exp(datam2[i]) - z[i]; jc[i] = (1 + *shape1)*datam1[i] + (1 + *shape2)*datam2[i] - log(*scale1 * *scale2); e1[i] = -*dep * log(*asy1) + (-*dep - 1) * datam1[i]; e2[i] = -*dep * log(*asy2) + (-*dep - 1) * datam2[i]; e3[i] = (1 + *dep) * log(z[i]) + log(exp(e1[i]) + exp(e2[i])); e4[i] = e1[i] + e2[i] + (1 + 2 * *dep) * log(z[i]); dvec[i] = jc[i] - v[i]; if(si[i] == 0) { e4[i] = e4[i] + log(z[i]); dvec[i] = dvec[i] + log(1 - exp(e3[i]) + exp(e4[i])); } else if(si[i] == 1) { e4[i] = e4[i] + log(1 + *dep); dvec[i] = dvec[i] + e4[i]; } else { e4[i] = e4[i] + log(1 + *dep + z[i]); dvec[i] = dvec[i] + log(1 - exp(e3[i]) + exp(e4[i])); } } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i,j; double *e1,*e2,*v,*jc,*dvec,*gma; double llim,midpt,ilen,lval,midval,uval,delta,eps; gma = (double *)R_alloc(*n, sizeof(double)); e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } delta = eps = R_pow(DBL_EPSILON, 0.5); for(i=0;i<*n;i++) { llim = 0; ilen = 1; lval = (1 - *alpha) * exp(datam1[i]); uval = (*beta - 1) * exp(datam2[i]); if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvnegbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i,j; double *e1,*e2,*e3,*v,*jc,*dvec,*gma; double llim,midpt,ilen,lval,midval,uval,delta,eps; gma = (double *)R_alloc(*n, sizeof(double)); e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); e3 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } delta = eps = R_pow(DBL_EPSILON, 0.5); for(i=0;i<*n;i++) { llim = 0; ilen = 1; uval = (1 + *alpha) * exp(datam1[i]); lval = - (1 + *beta) * exp(datam2[i]); if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvct(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double *e1,*e2,*u,*v,*jc,*dvec; double c; e1 = (double *)R_alloc(*n, sizeof(double)); e2 = (double *)R_alloc(*n, sizeof(double)); u = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } c = *alpha * *beta / (*alpha + *beta + 1); for(i=0;i<*n;i++) { u[i] = (*alpha * exp(datam2[i])) / (*alpha * exp(datam2[i]) + *beta * exp(datam1[i])); v[i] = exp(datam2[i]) * pbeta(u[i], *alpha, *beta + 1, 1, 0) + exp(datam1[i]) * pbeta(u[i], *alpha + 1, *beta, 0, 0); jc[i] = (1 + *shape1) * datam1[i] + (1 + *shape2) * datam2[i] - log(*scale1 * *scale2); e1[i] = pbeta(u[i], *alpha, *beta + 1, 1, 0) * pbeta(u[i], *alpha + 1, *beta, 0, 0); e2[i] = dbeta(u[i], *alpha + 1, *beta + 1, 0) / (*alpha * exp(datam2[i]) + *beta * exp(datam1[i])); if(si[i] == 0) dvec[i] = log(e1[i]) - v[i] + jc[i]; else if(si[i] == 1) dvec[i] = log(c * e2[i]) - v[i] + jc[i]; else dvec[i] = log(e1[i] + c * e2[i]) - v[i] + jc[i]; } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nlbvamix(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns) { int i; double *v,*v1,*v2,*v12,*u,*u1,*u2,*jc,*dvec; double apb; v1 = (double *)R_alloc(*n, sizeof(double)); v2 = (double *)R_alloc(*n, sizeof(double)); v12 = (double *)R_alloc(*n, sizeof(double)); u = (double *)R_alloc(*n, sizeof(double)); u1 = (double *)R_alloc(*n, sizeof(double)); u2 = (double *)R_alloc(*n, sizeof(double)); v = (double *)R_alloc(*n, sizeof(double)); jc = (double *)R_alloc(*n, sizeof(double)); dvec = (double *)R_alloc(*n, sizeof(double)); for(i=0;i<*n;i++) { datam1[i] = (datam1[i] - loc1[i]) / *scale1; datam2[i] = (datam2[i] - loc2[i]) / *scale2; if(*shape1 == 0) datam1[i] = -datam1[i]; else { datam1[i] = 1 + *shape1 * datam1[i]; if(datam1[i] <= 0) { *dns = 1e6; return; } else datam1[i] = -1 / *shape1 * log(datam1[i]); } if(*shape2 == 0) datam2[i] = -datam2[i]; else { datam2[i] = 1 + *shape2 * datam2[i]; if(datam2[i] <= 0) { *dns = 1e6; return; } else datam2[i] = -1 / *shape2 * log(datam2[i]); } } apb = *alpha + *beta; for(i=0;i<*n;i++) { jc[i] = (1 + *shape1) * datam1[i] + (1 + *shape2) * datam2[i] - log(*scale1 * *scale2); u[i] = exp(datam1[i]) + exp(datam2[i]); u1[i] = exp(datam1[i])/u[i]; u2[i] = exp(datam2[i])/u[i]; v[i] = u[i] - exp(datam1[i]) * (apb - *alpha * u1[i] - *beta * u1[i] * u1[i]); v1[i] = 1 - *alpha * u2[i] * u2[i] - *beta * (3 * u2[i]*u2[i] - 2 * u2[i]*u2[i]*u2[i]); v2[i] = 1 - *alpha * u1[i]*u1[i] - 2 * *beta * u1[i]*u1[i]*u1[i]; v12[i] = (-2 * *alpha * u1[i] * u2[i] - 6 * *beta * u1[i]*u1[i] * u2[i]) / u[i]; if(si[i] == 0) dvec[i] = log(v1[i] * v2[i]) - v[i] + jc[i]; else if(si[i] == 1) dvec[i] = log(- v12[i]) - v[i] + jc[i]; else dvec[i] = log(v1[i] * v2[i] - v12[i]) - v[i] + jc[i]; } if(*split > 0.5) { for(i=0;i<*n;i++) dns[i] = - dvec[i]; } else { for(i=0;i<*n;i++) *dns = *dns - dvec[i]; } } void nslmvalog(double *data, int *n, int *d, double *deps, double *thetas, double *mpar, double *psrvs, int *q, int *nslocid, double *nsloc, int *depindx, int *thetaindx, double *dns) { int i,j,k,l,dd,nn,qq,niinbm,ndepp,nmp; double iterm1, iterm2, term1, term2, eps; double thetasum, psrv, repdens; double dep, theta, loc; double *tdata, *dvec; int tmp1, tmp2; dd = *d; nn = *n; qq = *q; eps = R_pow(DBL_EPSILON, 0.3); ndepp = R_pow(2, dd) - 1 - dd; niinbm = R_pow(2, dd - 1) - 1; if(*nslocid) nmp = 4; else nmp = 3; *dns = 0; tdata = (double *)Calloc(nn * dd * sizeof(double), double); dvec = (double *)Calloc(nn * sizeof(double), double); for(i=0;i 1) { *dns = 1e6; return; } else { iterm1 = iterm1 + (1-thetasum)/tdata[i*dd+j]; iterm2 = iterm2 + (1-thetasum)/tdata[i*dd+j]; } repdens = repdens + log(iterm2) - iterm1 - log(mpar[nmp*j+1]) - mpar[nmp*j+2] * log(tdata[i*dd+j]); } else tdata[i*dd+j] = NA_REAL; } dvec[i] = dvec[i] + exp(repdens); } dvec[i] = log(dvec[i]) - log(qq); } for(i=0;i static const R_CMethodDef CEntries[] = { {"nlgpd", (DL_FUNC) &nlgpd, 6}, {"nlpp", (DL_FUNC) &nlpp, 8}, {"clusters", (DL_FUNC) &clusters, 6}, {"ccop", (DL_FUNC) &ccop, 11}, {"rbvlog_shi", (DL_FUNC) &rbvlog_shi, 3}, {"rbvalog_shi", (DL_FUNC) &rbvalog_shi, 4}, {"rmvlog_tawn", (DL_FUNC) &rmvlog_tawn, 4}, {"rmvalog_tawn", (DL_FUNC) &rmvalog_tawn, 6}, {"rbvlog", (DL_FUNC) &rbvlog, 3}, {"rbvalog", (DL_FUNC) &rbvalog, 4}, {"rbvhr", (DL_FUNC) &rbvhr, 3}, {"rbvneglog", (DL_FUNC) &rbvneglog, 3}, {"rbvaneglog", (DL_FUNC) &rbvaneglog, 4}, {"rbvbilog", (DL_FUNC) &rbvbilog, 4}, {"rbvnegbilog", (DL_FUNC) &rbvnegbilog, 4}, {"rbvct", (DL_FUNC) &rbvct, 4}, {"rbvamix", (DL_FUNC) &rbvamix, 4}, {"nlgev", (DL_FUNC) &nlgev, 6}, {"nlgumbelx", (DL_FUNC) &nlgumbelx, 7}, {"nslmvalog", (DL_FUNC) &nslmvalog, 13}, {"nlbvlog", (DL_FUNC) &nlbvlog, 13}, {"nlbvalog", (DL_FUNC) &nlbvalog, 15}, {"nlbvhr", (DL_FUNC) &nlbvhr, 13}, {"nlbvneglog", (DL_FUNC) &nlbvneglog, 13}, {"nlbvaneglog", (DL_FUNC) &nlbvaneglog, 15}, {"nlbvbilog", (DL_FUNC) &nlbvbilog, 14}, {"nlbvnegbilog", (DL_FUNC) &nlbvnegbilog, 14}, {"nlbvct", (DL_FUNC) &nlbvct, 14}, {"nlbvamix", (DL_FUNC) &nlbvamix, 14}, {"nllbvclog", (DL_FUNC) &nllbvclog, 12}, {"nllbvcalog", (DL_FUNC) &nllbvcalog, 14}, {"nllbvchr", (DL_FUNC) &nllbvchr, 12}, {"nllbvcneglog", (DL_FUNC) &nllbvcneglog, 12}, {"nllbvcaneglog", (DL_FUNC) &nllbvcaneglog, 14}, {"nllbvcbilog", (DL_FUNC) &nllbvcbilog, 13}, {"nllbvcnegbilog", (DL_FUNC) &nllbvcnegbilog, 13}, {"nllbvcct", (DL_FUNC) &nllbvcct, 13}, {"nllbvcamix", (DL_FUNC) &nllbvcamix, 13}, {"nllbvplog", (DL_FUNC) &nllbvplog, 13}, {"nllbvphr", (DL_FUNC) &nllbvphr, 13}, {"nllbvpneglog", (DL_FUNC) &nllbvpneglog, 13}, {"nllbvpbilog", (DL_FUNC) &nllbvpbilog, 14}, {"nllbvpnegbilog", (DL_FUNC) &nllbvpnegbilog, 14}, {"nllbvpct", (DL_FUNC) &nllbvpct, 14}, {NULL, NULL, 0} }; void R_init_evd(DllInfo *dll) { R_registerRoutines(dll, CEntries, NULL, NULL, NULL); R_useDynamicSymbols(dll, FALSE); R_forceSymbols(dll, TRUE); } evd/src/bvpot.c0000644000176000001440000014036414225274055013163 0ustar ripleyusers#include "header.h" /* Censored Likelihood Routines */ void nllbvclog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double lambda2[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.1 || *dep > 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda2[0] = R_pow(lambda2[0], -1 / *dep); lambda2[1] = R_pow(lambda2[1], -1 / *dep); zdn = R_pow(lambda2[0] + lambda2[1], *dep - 1); zdn = -zdn * (lambda2[0] + lambda2[1]); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; v1[i] = R_pow(data1[i], -1 / *dep); v2[i] = R_pow(data2[i], -1 / *dep); v12[i] = R_pow(v1[i] + v2[i], *dep - 1); v[i] = v12[i] * (v1[i] + v2[i]); v1[i] = -(v1[i]/data1[i]) * v12[i]; v2[i] = -(v2[i]/data2[i]) * v12[i]; v12[i] = (1 - 1 / *dep) * v1[i] * v2[i] / v[i]; if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i,j; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *q, *q1, *q2, *q12, *x1, *x2, *qa, *qb; double lambda2[2], lambda3[2], lambdaq, zdn; double llim,midpt,ilen,lval,midval,uval,delta,eps; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); q = (double *)R_alloc(*nn, sizeof(double)); qa = (double *)R_alloc(*nn, sizeof(double)); qb = (double *)R_alloc(*nn, sizeof(double)); q1 = (double *)R_alloc(*nn, sizeof(double)); q2 = (double *)R_alloc(*nn, sizeof(double)); q12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.1 || *beta < 0.1 || *alpha > 0.999 || *beta > 0.999) { *dns = 1e6; return; } delta = eps = R_pow(DBL_EPSILON, 0.8); lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); llim = 0; ilen = 1; lval = (1 - *alpha) / lambda2[0]; uval = (*beta - 1) / lambda2[1]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcalog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x1, *x2, *x12; double lambda2[2], lambda3[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); x12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.1 || *dep > 1 || *asy1 < 0.001 || *asy2 < 0.001 || *asy1 > 1 || *asy2 > 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda3[0] = R_pow(*asy1 / lambda2[0], 1 / *dep); lambda3[1] = R_pow(*asy2 / lambda2[1], 1 / *dep); zdn = R_pow(lambda3[0] + lambda3[1], *dep - 1); zdn = (*asy1 - 1)/lambda2[0] + (*asy2 - 1)/lambda2[1] - zdn * (lambda3[0] + lambda3[1]); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x1[i] = R_pow(*asy1 / data1[i], 1 / *dep); x2[i] = R_pow(*asy2 / data2[i], 1 / *dep); x12[i] = R_pow(x1[i] + x2[i], *dep - 1); v[i] = (1 - *asy1)/data1[i] + (1 - *asy2)/data2[i] + x12[i] * (x1[i] + x2[i]); v1[i] = ((*asy1 - 1)/data1[i] - x1[i] * x12[i]) / data1[i]; v2[i] = ((*asy2 - 1)/data2[i] - x2[i] * x12[i]) / data2[i]; v12[i] = (1 - 1 / *dep) * x1[i]/data1[i] * x2[i]/data2[i] * x12[i] / (x1[i] + x2[i]); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x1, *x2, *x12; double lambda2[2], lambda3[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); x12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.05 || *dep > 5) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda3[0] = R_pow(lambda2[0], *dep); lambda3[1] = R_pow(lambda2[1], *dep); zdn = R_pow(lambda3[0] + lambda3[1], -1 / *dep - 1); zdn = zdn * (lambda3[0] + lambda3[1]) - 1/lambda2[0] - 1/lambda2[1]; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x1[i] = R_pow(data1[i], *dep); x2[i] = R_pow(data2[i], *dep); x12[i] = R_pow(x1[i] + x2[i], -1 / *dep - 1); v[i] = 1/data1[i] + 1/data2[i] - x12[i] * (x1[i] + x2[i]); v1[i] = (x1[i] * x12[i] - 1/data1[i]) / data1[i]; v2[i] = (x2[i] * x12[i] - 1/data2[i]) / data2[i]; v12[i] = -(1 + *dep) * (x1[i]/data1[i]) * (x2[i]/data2[i]) * x12[i] / (x1[i] + x2[i]); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcnegbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i,j; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *q, *q1, *q2, *q12, *x1, *x2, *qa, *qb; double lambda2[2], lambda3[2], lambdaq, zdn; double llim,midpt,ilen,lval,midval,uval,delta,eps; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); q = (double *)R_alloc(*nn, sizeof(double)); qa = (double *)R_alloc(*nn, sizeof(double)); qb = (double *)R_alloc(*nn, sizeof(double)); q1 = (double *)R_alloc(*nn, sizeof(double)); q2 = (double *)R_alloc(*nn, sizeof(double)); q12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.1 || *beta < 0.1 || *alpha > 20 || *beta > 20) { *dns = 1e6; return; } delta = eps = R_pow(DBL_EPSILON, 0.8); lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); llim = 0; ilen = 1; uval = (1 + *alpha) / lambda2[0]; lval = - (1 + *beta) / lambda2[1]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcaneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x1, *x2, *x12; double lambda2[2], lambda3[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x1 = (double *)R_alloc(*nn, sizeof(double)); x2 = (double *)R_alloc(*nn, sizeof(double)); x12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.05 || *dep > 5 || *asy1 < 0.001 || *asy2 < 0.001 || *asy1 > 1 || *asy2 > 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda3[0] = R_pow(lambda2[0] / *asy1, *dep); lambda3[1] = R_pow(lambda2[1] / *asy2, *dep); zdn = R_pow(lambda3[0] + lambda3[1], -1 / *dep - 1); zdn = zdn * (lambda3[0] + lambda3[1]) - 1/lambda2[0] - 1/lambda2[1]; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x1[i] = R_pow(data1[i] / *asy1, *dep); x2[i] = R_pow(data2[i] / *asy2, *dep); x12[i] = R_pow(x1[i] + x2[i], -1 / *dep - 1); v[i] = 1/data1[i] + 1/data2[i] - x12[i] * (x1[i] + x2[i]); v1[i] = (x1[i] * x12[i] - 1/data1[i]) / data1[i]; v2[i] = (x2[i] * x12[i] - 1/data2[i]) / data2[i]; v12[i] = -(1 + *dep) * x1[i]/data1[i] * x2[i]/data2[i] * x12[i] / (x1[i] + x2[i]); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcct(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x; double lambda2[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.001 || *beta < 0.001 || *alpha > 30 || *beta > 30) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); zdn = *alpha * lambda2[0] / (*alpha * lambda2[0] + *beta * lambda2[1]); zdn = -pbeta(zdn, *alpha + 1, *beta, 0, 0) / lambda2[0] - pbeta(zdn, *alpha, *beta + 1, 1, 0) / lambda2[1]; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x[i] = *alpha * data1[i] / (*alpha * data1[i] + *beta * data2[i]); v[i] = pbeta(x[i], *alpha + 1, *beta, 0, 0) / data1[i] + pbeta(x[i], *alpha, *beta + 1, 1, 0) / data2[i]; v1[i] = -pbeta(x[i], *alpha + 1, *beta, 0, 0) / R_pow(data1[i], 2); v2[i] = -pbeta(x[i], *alpha, *beta + 1, 1, 0) / R_pow(data2[i], 2); v12[i] = -(*alpha * *beta) * dbeta(x[i], *alpha + 1, *beta, 0) / (data1[i] * R_pow(*alpha * data1[i] + *beta * data2[i], 2)); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvchr(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double lambda2[2], zdn, idep; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.2 || *dep > 10) { *dns = 1e6; return; } idep = 1/ *dep; lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); zdn = -1/lambda2[0] * pnorm(idep + *dep * (log(lambda2[1]) - log(lambda2[0]))/2, 0, 1, 1, 0) - 1/lambda2[1] * pnorm(idep + *dep * (log(lambda2[0]) - log(lambda2[1]))/2, 0, 1, 1, 0); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; idep = 1/ *dep; v[i] = 1/data1[i] * pnorm(idep + *dep * (log(data2[i]) - log(data1[i]))/2, 0, 1, 1, 0) + 1/data2[i] * pnorm(idep + *dep * (log(data1[i]) - log(data2[i]))/2, 0, 1, 1, 0); v1[i] = -1/R_pow(data1[i], 2) * pnorm(idep + *dep * (log(data2[i]) - log(data1[i]))/2, 0, 1, 1, 0); v2[i] = -1/R_pow(data2[i], 2) * pnorm(idep + *dep * (log(data1[i]) - log(data2[i]))/2, 0, 1, 1, 0); v12[i] = - *dep / (2 * data1[i] * data2[i]) / data1[i] * dnorm(idep + *dep * (log(data2[i]) - log(data1[i]))/2, 0, 1, 0); if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } void nllbvcamix(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *t1, *t2, *v, *v1, *v2, *v12; double *x; double lambda2[2], zdn; dvec = (double *)R_alloc(*nn, sizeof(double)); t1 = (double *)R_alloc(*nn, sizeof(double)); t2 = (double *)R_alloc(*nn, sizeof(double)); v = (double *)R_alloc(*nn, sizeof(double)); v1 = (double *)R_alloc(*nn, sizeof(double)); v2 = (double *)R_alloc(*nn, sizeof(double)); v12 = (double *)R_alloc(*nn, sizeof(double)); x = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0 || *alpha + 3 * *beta < 0 || *alpha + *beta > 1 || *alpha + 2 * *beta > 1) { *dns = 1e6; return; } lambda2[0] = -1/log(1 - lambda[0]); lambda2[1] = -1/log(1 - lambda[1]); lambda2[0] = 1/lambda2[0]; lambda2[1] = 1/lambda2[1]; zdn = lambda2[0]/(lambda2[0] + lambda2[1]); zdn = -lambda2[0] - lambda2[1] + (*alpha + *beta) * lambda2[0] - *alpha * lambda2[0] * zdn - *beta * lambda2[0] * zdn * zdn; for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) t1[i] = exp(-data1[i]); else { t1[i] = 1 + *shape1 * data1[i]; if(t1[i] <= 0) { *dns = 1e6; return; } t1[i] = R_pow(t1[i], -1 / *shape1); } data1[i] = -1/log(1 - lambda[0] * t1[i]); if(*shape2 == 0) t2[i] = exp(-data2[i]); else { t2[i] = 1 + *shape2 * data2[i]; if(t2[i] <= 0) { *dns = 1e6; return; } t2[i] = R_pow(t2[i], -1 / *shape2); } data2[i] = -1/log(1 - lambda[1] * t2[i]); t1[i] = R_pow(data1[i], 2) * R_pow(t1[i], 1 + *shape1) / (1 - lambda[0] * t1[i]); t1[i] = lambda[0] * t1[i] / *scale1; t2[i] = R_pow(data2[i], 2) * R_pow(t2[i], 1 + *shape2) / (1 - lambda[1] * t2[i]); t2[i] = lambda[1] * t2[i] / *scale2; x[i] = 1 / (data1[i] + data2[i]); v[i] = 1/data1[i] + 1/data2[i] - (*alpha + *beta) / data1[i] + *alpha * data2[i] * x[i] / data1[i] + *beta * data2[i] * data2[i] * x[i] * x[i] / data1[i]; v1[i] = -1 / (data1[i] * data1[i]) + *alpha * x[i] * x[i] + *beta * x[i] * x[i] * x[i] * (data1[i] + 3 * data2[i]); v2[i] = -1 / (data2[i] * data2[i]) + *alpha * x[i] * x[i] + 2 * *beta * x[i] * x[i] * x[i] * data2[i]; v12[i] = -2 * *alpha * x[i] * x[i] * x[i] - 6 * *beta * x[i] * x[i] * x[i] * x[i] * data2[i]; if(thid[i] < 1.5) dvec[i] = log(-v1[i]) + log(t1[i]) - v[i]; if(thid[i] >= 1.5 && thid[i] < 2.5) dvec[i] = log(-v2[i]) + log(t2[i]) - v[i]; if(thid[i] >= 2.5) dvec[i] = log(v1[i] * v2[i] - v12[i]) + log(t1[i]) + log(t2[i]) - v[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; *dns = *dns - (*n - *nn) * zdn; } /* Point Process Likelihood Routines */ void nllbvplog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *r, *w, *jac, *h; double idep, v, utt[2]; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.1 || *dep > 1) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); idep = 1 / *dep; h[i] = log(idep - 1) - (1+idep) * log(w[i] * (1-w[i])) + (*dep - 2) * log(R_pow(w[i],-idep) + R_pow(1-w[i],-idep)); dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = R_pow(R_pow(utt[0],-1 / *dep) + R_pow(utt[1],-1 / *dep), *dep); *dns = *dns + v; } void nllbvpneglog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *r, *w, *jac, *h; double v, utt[2]; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *dep < 0.05 || *dep > 5) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); h[i] = 1 / (1 + R_pow(1 / w[i] - 1, *dep)); h[i] = log(*dep + 1) + log(1 - h[i]) + (1 + 1 / *dep) * log(h[i]) - log(1 - w[i]) - 2 * log(w[i]); dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = 1 / utt[0] + 1 / utt[1] - R_pow(R_pow(utt[0], *dep) + R_pow(utt[1], *dep), -1 / *dep); *dns = *dns + v; } void nllbvpct(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i; double *dvec, *r, *w, *jac, *h; double v, utt[2]; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.001 || *beta < 0.001 || *alpha > 30 || *beta > 30) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); h[i] = (*alpha + *beta + 1) * log(*alpha * w[i] + *beta * (1-w[i])) + lgammafn(*alpha) + lgammafn(*beta); h[i] = lgammafn(*alpha + *beta + 1) + *alpha * log(*alpha) + *beta * log(*beta) + (*alpha - 1) * log(w[i]) + (*beta - 1) * log(1-w[i]) - h[i]; dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = *alpha * utt[0] /(*alpha * utt[0] + *beta * utt[1]); v = pbeta(v, *alpha + 1, *beta, 0, 0) / utt[0] + pbeta(v, *alpha, *beta + 1, 1, 0) / utt[1]; *dns = *dns + v; } void nllbvpbilog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns) { int i,j; double *dvec, *r, *w, *jac, *h; double v, utt[2]; double llim,midpt,ilen,lval,midval,uval,delta,eps; dvec = (double *)R_alloc(*nn, sizeof(double)); r = (double *)R_alloc(*nn, sizeof(double)); w = (double *)R_alloc(*nn, sizeof(double)); jac = (double *)R_alloc(*nn, sizeof(double)); h = (double *)R_alloc(*nn, sizeof(double)); if(*scale1 < 0.01 || *scale2 < 0.01 || *alpha < 0.1 || *beta < 0.1 || *alpha > 0.999 || *beta > 0.999) { *dns = 1e6; return; } delta = eps = R_pow(DBL_EPSILON, 0.8); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); llim = 0; ilen = 1; lval = (1 - *alpha) * (1 - w[i]); uval = (*beta - 1) * w[i]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 20 || *beta > 20) { *dns = 1e6; return; } delta = eps = R_pow(DBL_EPSILON, 0.8); for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); llim = 0; ilen = 1; uval = (1 + *alpha) * (1 - w[i]); lval = - (1 + *beta) * w[i]; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(j=0;j 10) { *dns = 1e6; return; } for(i=0;i<*nn;i++) { data1[i] = data1[i] / *scale1; data2[i] = data2[i] / *scale2; if(*shape1 == 0) data1[i] = exp(-data1[i]); else { data1[i] = 1 + *shape1 * data1[i]; if(data1[i] <= 0) { *dns = 1e6; return; } data1[i] = R_pow(data1[i], -1 / *shape1); } data1[i] = -1/log(1 - r1[i] * data1[i]); if(*shape2 == 0) data2[i] = exp(-data2[i]); else { data2[i] = 1 + *shape2 * data2[i]; if(data2[i] <= 0) { *dns = 1e6; return; } data2[i] = R_pow(data2[i], -1 / *shape2); } data2[i] = -1/log(1 - r2[i] * data2[i]); r[i] = log(data1[i] + data2[i]); w[i] = data1[i] / exp(r[i]); if(thid[i] < 1.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]); if(thid[i] >= 1.5 && thid[i] < 2.5) jac[i] = 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); if(thid[i] >= 2.5) jac[i] = 2 * log(data1[i]) + 1 / data1[i] + (1 + *shape1) * log(1 - exp(-1 / data1[i])) - log(*scale1) - *shape1 * log(p[0]) + 2 * log(data2[i]) + 1 / data2[i] + (1 + *shape2) * log(1 - exp(-1 / data2[i])) - log(*scale2) - *shape2 * log(p[1]); idep = 1 / *dep; h[i] = log(*dep / 2) - 2 * log(w[i]) - log(1-w[i]) + dnorm(idep + *dep * (log(1-w[i]) - log(w[i]))/2, 0, 1, 1); dvec[i] = jac[i] + h[i] - 3 * r[i]; } for(i=0;i<*nn;i++) *dns = *dns - dvec[i]; utt[0] = -1 / log(1 - p[0]); utt[1] = -1 / log(1 - p[1]); v = pnorm(1 / *dep + *dep * log(utt[1]/utt[0]) / 2, 0, 1, 1, 0) / utt[0] + pnorm(1 / *dep + *dep * log(utt[0]/utt[1]) / 2, 0, 1, 1, 0) / utt[1]; *dns = *dns + v; } evd/src/header.h0000644000176000001440000002114414224755666013273 0ustar ripleyusers#include #include #define RANDIN GetRNGstate() #define RANDOUT PutRNGstate() #define UNIF unif_rand() #define EXP exp_rand() /* from pot.c */ void nlgpd(double *data, int *n, double *loc, double *scale, double *shape, double *dns); void nlpp(double *exceed, int *nhigh, double *loc, double *scale, double *shape, double *thresh, double *nop, double *dns); void clusters(double *high, double *high2, int *n, int *r, int *rlow, double *clstrs); /* from ccop.c */ double ccbvlog(double m1, double m2, double oldm1, double dep); double ccbvalog(double m1, double m2, double oldm1, double dep, double asy1, double asy2); double ccbvhr(double m1, double m2, double oldm1, double dep); double ccbvneglog(double m1, double m2, double oldm1, double dep); double ccbvaneglog(double m1, double m2, double oldm1, double dep, double asy1, double asy2); double ccbvbilog(double m1, double m2, double oldm1, double alpha, double beta); double ccbvnegbilog(double m1, double m2, double oldm1, double alpha, double beta); double ccbvct(double m1, double m2, double oldm1, double alpha, double beta); double ccbvamix(double m1, double m2, double oldm1, double alpha, double beta); void ccop(double *m1, double *m2, int *cnd, double *dep, double *asy1, double *asy2, double *alpha, double *beta, int *n, int *model, double *ccop); /* from sim.c */ void rbvlog_shi(int *n, double *alpha, double *sim); void rbvalog_shi(int *n, double *alpha, double *asy, double *sim); void rmvlog_tawn(int *n, int *d, double *alpha, double *sim); void rmvalog_tawn(int *n, int *d, int *nb, double *alpha, double *asy, double *sim); double rpstable(double cexp); double maximum_n(int n, double *x); void rbvlog(int *n, double *dep, double *sim); void rbvalog(int *n, double *dep, double *asy, double *sim); void rbvhr(int *n, double *dep, double *sim); void rbvneglog(int *n, double *dep, double *sim); void rbvaneglog(int *n, double *dep, double *asy, double *sim); void rbvbilog(int *n, double *alpha, double *beta, double *sim); void rbvnegbilog(int *n, double *alpha, double *beta, double *sim); void rbvct(int *n, double *alpha, double *beta, double *sim); void rbvamix(int *n, double *alpha, double *beta, double *sim); /* from fit.c */ void nlgev(double *data, int *n, double *loc, double *scale, double *shape, double *dns); void nlgumbelx(double *data, int *n, double *loc1, double *scale1, double *loc2, double *scale2, double *dns); void nlbvalog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvlog(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvhr(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvaneglog(double *datam1, double *datam2, int *n, int *si, double *dep, double *asy1, double *asy2, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvnegbilog(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvct(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nlbvamix(double *datam1, double *datam2, int *n, int *si, double *alpha, double *beta, double *loc1, double *scale1, double *shape1, double *loc2, double *scale2, double *shape2, int *split, double *dns); void nslmvalog(double *data, int *n, int *d, double *deps, double *thetas, double *mpar, double *psrvs, int *q, int *nslocid, double *nsloc, int *depindx, int *thetaindx, double *dns); /* from bvpot.c (censored) */ void nllbvclog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcalog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcnegbilog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcaneglog(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *asy1, double *asy2, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcct(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvchr(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvcamix(double *data1, double *data2, int *nn, int *n, double *thid, double *lambda, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); /* from bvpot.c (poisson) */ void nllbvplog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpneglog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpct(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpbilog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvpnegbilog(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *alpha, double *beta, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); void nllbvphr(double *data1, double *data2, int *nn, double *thid, double *r1, double *r2, double *p, double *dep, double *scale1, double *shape1, double *scale2, double *shape2, double *dns); evd/src/ccop.c0000644000176000001440000001524114225274105012744 0ustar ripleyusers#include "header.h" /* Conditional copulas condition on 2nd margin. */ double ccbvlog(double m1, double m2, double oldm1, double dep) { double tm1,tm2,idep,u,v,fval; tm1 = -log(m1); tm2 = -log(m2); idep = 1/dep; u = R_pow(tm1, idep) + R_pow(tm2, idep); v = R_pow(u, dep); fval = exp(-v) * (1 / m2) * R_pow(tm2, idep-1) * R_pow(u, dep-1) - oldm1; return fval; } double ccbvalog(double m1, double m2, double oldm1, double dep, double asy1, double asy2) { double tm1,tm2,idep,u,v,fval; tm1 = -log(m1); tm2 = -log(m2); idep = 1/dep; u = R_pow(asy1*tm1, idep) + R_pow(asy2*tm2, idep); v = (1-asy1)*tm1 + (1-asy2)*tm2 + R_pow(u, dep); fval = exp(-v) * (1 / m2) * (1 - asy2 + R_pow(asy2, idep) * R_pow(tm2, idep-1) * R_pow(u, dep-1)) - oldm1; return fval; } double ccbvhr(double m1, double m2, double oldm1, double dep) { double tm1,tm2,v,idep,fval; tm1 = -log(m1); tm2 = -log(m2); idep = 1 / dep; v = tm2 * pnorm(idep + (log(tm2) - log(tm1)) * dep/2, 0, 1, 1, 0) + tm1 * pnorm(idep + (log(tm1) - log(tm2)) * dep/2, 0, 1, 1, 0); fval = pnorm(idep + (log(tm2) - log(tm1)) * dep/2, 0, 1, 1, 0) * exp(-v) / m2 - oldm1; return fval; } double ccbvneglog(double m1, double m2, double oldm1, double dep) { double tm1,tm2,v,idep,fval; tm1 = -log(m1); tm2 = -log(m2); idep = 1 / dep; v = R_pow((R_pow(tm2,-dep) + R_pow(tm1,-dep)),-idep); fval = exp(v) * m1 * (1-R_pow(1 + R_pow(tm2/tm1,dep), -1-idep)) - oldm1; return fval; } double ccbvaneglog(double m1, double m2, double oldm1, double dep, double asy1, double asy2) { double tm1,tm2,v,idep,fval; tm1 = -log(m1); tm2 = -log(m2); idep = 1 / dep; v = R_pow(asy1 * tm2, -dep) + R_pow(asy2 * tm1, -dep); fval = exp(R_pow(v, -idep)) * m1 * (1 - R_pow(asy1, -dep) * R_pow(tm2, -dep-1) * R_pow(v, -idep-1)) - oldm1; return fval; } double ccbvbilog(double m1, double m2, double oldm1, double alpha, double beta) { int i; double tm1,tm2,v,fval; double delta,eps,llim,midpt,ilen,lval,midval,uval; tm1 = -log(m1); tm2 = -log(m2); delta = eps = R_pow(DBL_EPSILON, 0.75); llim = 0; ilen = 1; lval = (1 - alpha) * tm1; uval = (beta - 1) * tm2; if(!(sign(lval) != sign(uval))) error("values at end points are not of opposite sign"); for(i=0;i 0) { *dns = 1e6; return; } if(u <= 0 && *shape < 0) d2 = 0; else d2 = - *nop * R_pow(u, -1 / *shape); } *dns = -d2; for(i=0;i<*nhigh;i++) *dns = *dns - dvec[i]; } void clusters(double *high, double *high2, int *n, int *r, int *rlow, double *clstrs) { int i,j,rr; int incl = 0, clind = 0, shigh = 0, shigh2 = 0; for(i=0;i<*n;i++) { if(high[i] && incl) { clstrs[i + 0 * *n] = clind; } if(high[i] && !incl) { incl = 1; clstrs[i + 1 * *n] = 1; clind++; clstrs[i + 0 * *n] = clind; } if(!high[i] && incl) { if(*r > *n-i) rr = *n-i; else rr = *r; for(j=i;j<(i+rr);j++) { shigh = shigh + high[j]; } if(*rlow > *n-i) rr = *n-i; else rr = *rlow; for(j=i;j<(i+rr);j++) { shigh2 = shigh2 + high2[j]; } if(!shigh || !shigh2) { incl = 0; clstrs[i - 1 + 2 * *n] = 1; } else clstrs[i + 0 * *n] = clind; shigh = shigh2 = 0; } } if(incl) clstrs[*n - 1 + 2 * *n] = 1; } evd/vignettes/0000755000176000001440000000000014225274441013075 5ustar ripleyusersevd/vignettes/Multivariate_Extremes.Rnw0000644000176000001440000004631212637167310020116 0ustar ripleyusers\documentclass[11pt,a4paper]{article} \usepackage{amsmath,amssymb} \pagestyle{plain} \setlength{\parindent}{0in} \setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} \setlength{\oddsidemargin}{0in} \setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.3in} \setlength{\textheight}{9.8in} %\VignetteIndexEntry{Statistics Of Extremes: Chapter 9} \begin{document} \title{Statistics of Multivariate Extremes} \author{Alec Stephenson} \maketitle \begin{center} \LARGE \textbf{Summary} \\ \end{center} \normalsize \vspace{0.5cm} This vignette uses the \textbf{evd} package to reproduce the figures, tables and analysis in Chapter 9 of Beirlant et al.\ (2001). The chapter was written by Segers and Vandewalle (2004). The code reproduces almost all figures, but for space reasons only some are shown. Deviations from the book are given as footnotes. Differences will inevitably exist due to numerical optimization and random number generation. \normalsize \section{Introduction} \label{Intro} The methods used here are illustrated using the \texttt{lossalae} dataset, which contains observations on $1500$ liability claims. The indemnity payment (loss) and the allocated loss adjustment expense (ALAE) is recorded in USD for each claim. The ALAE is the additional expenses associated with the settlement of the claim (e.g.\ claims investigation expenses and legal fees). The dataset also has an attribute called \texttt{capped}, which gives the row names of the indemnity payments that were capped at their policy limit. We first scale the data so that one unit corresponds to $100\,000$ USD. Putting the data on a sensible scale assists with the numerical optimization involved in maximum likelihood estimation\footnote{The book reports an unsatisfactory fit of the GEV model to the margins. It therefore uses only empirical marginal distributions. This was perhaps due to not scaling the data. In this document we use either fully nonparametric or fully parametric methods.}. The code below plots the raw data using the log scale for both axes (see Figure \ref{rawdata}), and plots the data transformed to uniform $(0,1)$ margins using an empirical transform. <>= options(show.signif.stars=FALSE) library(evd); nn <- nrow(lossalae) loss <- lossalae/1e+05; lts <- c(1e-04, 100) plot(loss, log = "xy", xlim = lts, ylim = lts) @ <<>>= ula <- apply(loss, 2, rank)/(nn + 1) plot(ula) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Scatterplot of ALAE verses Loss: original data (log-scale).} \label{rawdata} \end{figure} \section{Parametric Models} Any bivariate extreme value distribution function can be represented in the form \begin{equation*} G(z_1,z_2) = \exp\left\{ - (y_1 + y_2)A\left(\frac{y_1}{y_1+y_2}\right)\right\}, \label{bvdepfn} \end{equation*} where \begin{equation*} y_j = y_j(z_j) = \{1+\xi_j(z_j-\mu_j)/\sigma_j\}_{+}^{-1/\xi_j} \label{mtrans} \end{equation*} for $\sigma_j > 0$ and $j=1,2$, and where \begin{equation*} A(\omega)=-\log\{G(y_1^{-1}(\omega),y_2^{-1}(1-\omega))\}, \label{dep} \end{equation*} defined on $0\leq\omega\leq1$ is called the dependence function\footnote{The book uses the definition $B(\omega) = A(1-\omega)$.}. The marginal distributions are generalized extreme value (GEV), given by $G_j(z_j) = \exp(-y_j)$. It follows that $A(0)=A(1)=1$, and that $A(\cdot)$ is a convex function with $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $0\leq\omega\leq1$. At independence $A(1/2) = 1$. At complete dependence $A(1/2) = 0.5$. The dependence function represents only the dependence structure of the distribution, and hence only the dependence parameters of parametric models need to be specified in order to produce dependence function plots. The code below plots dependence functions for four different parametric models. The first of these is given in Figure \ref{asylogdfn}. <>= abvevd(dep = 0.5, asy = c(1,1), model = "alog", plot = TRUE) abvevd(dep = 0.5, asy = c(0.6,0.9), model = "alog", add = TRUE, lty = 2) abvevd(dep = 0.5, asy = c(0.8,0.5), model = "alog", add = TRUE, lty = 3) @ <<>>= abvevd(dep = -1/(-2), model = "neglog", plot = TRUE) abvevd(dep = -1/(-1), model = "neglog", add = TRUE, lty = 2) abvevd(dep = -1/(-0.5), model = "neglog", add = TRUE, lty = 3) @ <<>>= abvevd(alpha = 1, beta = -0.2, model = "amix", plot = TRUE) abvevd(alpha = 0.6, beta = 0.1, model = "amix", add = TRUE, lty = 2) abvevd(alpha = 0.2, beta = 0.2, model = "amix", add = TRUE, lty = 3) @ <<>>= abvevd(dep = 1/1.25, model = "hr", plot = TRUE) abvevd(dep = 1/0.83, model = "hr", add = TRUE, lty = 2) abvevd(dep = 1/0.5, model = "hr", add = TRUE, lty = 3) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Dependence functions: asymmetric logistic model.} \label{asylogdfn} \end{figure} \section{Componentwise Maxima} For demonstration purposes we use the data introduced in Section \ref{Intro} to create a dataset of componentwise block maxima by randomly taking $k=50$ groups of size $m=30$, producing $k$ componentwise maxima taken over $m$ observations\footnote{The data may be completely different to the book due to random selection.}. Bivariate extreme value distributions are typically used to model data of this type. The code below creates the componentwise maxima data \texttt{cml} and produces two data plots, the first showing the original data and the componentwise maxima, and the second showing the componentwise maxima data transformed to standard exponential margins. <<>>= set.seed(131); cml <- loss[sample(nn),] xx <- rep(1:50, each = 30); lts <- c(1e-04, 100) cml <- cbind(tapply(cml[,1], xx, max), tapply(cml[,2], xx, max)) colnames(cml) <- colnames(loss) plot(loss, log = "xy", xlim = lts, ylim = lts, col = "grey") points(cml) ecml <- -log(apply(cml,2,rank)/51) plot(ecml) @ The following code estimates and plots the dependence function $A(\cdot)$ from the componentwise maxima data. The first code chunk uses various nonparametric estimates of the dependence function, and also uses empirical (i.e.\ nonparametric) estimation of the margins, as specified by \texttt{epmar = TRUE}. The four different estimates are shown in Figure \ref{nonpardfn}. The second code chunk uses maximum likelihood estimation for parametric models. The call to \texttt{fbvevd} fits the model, and the call to \texttt{plot} plots the parametric dependence function estimates. The argument specification \texttt{asy1 = 1} in the first call to \texttt{fbvevd} constrains the model fit so that the first asymmetry parameter of the model is fixed at the value one. <>= pp <- "pickands"; cc <- "cfg" abvnonpar(data = cml, epmar = TRUE, method = pp, plot = TRUE, lty = 3) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 1, lty = 2) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 2, lty = 4) abvnonpar(data = cml, epmar = TRUE, method = cc, add = TRUE, lty = 1) @ <<>>= m1 <- fbvevd(cml, asy1 = 1, model = "alog") m2 <- fbvevd(cml, model = "log") m3 <- fbvevd(cml, model = "bilog") plot(m1, which = 4, nplty = 3) plot(m2, which = 4, nplty = 3, lty = 2, add = TRUE) plot(m3, which = 4, nplty = 3, lty = 4, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Nonparametric dependence function estimates by Pickands (dotted line), Deheuvels (dashed line), Hall-Tajvidi (dot-dashed line) and Cap\'{e}r\`{a}a-Foug\`{e}res-Genest (solid line) based on componentwise block maxima data and using empirical marginal estimation.} \label{nonpardfn} \end{figure} The objects produced by \texttt{fbvevd} contain information about the parametric fit of the bivariate extreme value distribution. For example, \texttt{m2} contains information on the fit of a (symmetric) logistic extreme value distribution, which has a single dependence parameter and three parameters on each of the GEV margins. Using \texttt{plot(m2)} produces several diagnostic plots, including quantile curves and spectral densities. Using \texttt{deviance(m2)} produces the deviance, which is equal to twice the negative log-likelihood. The following shows the parameter estimates and their standard errors, and gives an analysis of deviance table for testing \texttt{m2} verses \texttt{m3}, which is possible since the models are nested, with \texttt{m3} having one additional dependence parameter. The call to \texttt{exind.test} produces a score test for independence, following Tawn (1988). Omitting the \texttt{method} argument gives a likelihood ratio test, also from Tawn (1988), which is typically more accurate. <<>>= round(rbind(fitted(m2), std.errors(m2)), 3) anova(m3, m2) evind.test(cml, method = "score") @ The code below uses the function \texttt{qcbvnonpar} to plot quantile curves using nonparametric dependence function estimates. Quantile curves are defined as \begin{equation*} Q(F, p) = \{(z_1,z_2): F(z_1,z_2) = p\}, \end{equation*} where $F$ is a distribution function and $p$ is a probability. We use the default nonparametric estimation method and we again use empirical estimation of the margins\footnote{Using parametric marginal estimates tends to produce more sensible quantile curve plots, but we follow the book here. Unlike the book, the quantile curves in Figure \ref{nonparqc} are not step functions because the empirical marginal transforms include interpolation.}, as specified by \texttt{epmar = TRUE}. For parametric dependence models similar plots can be produced using e.g.\ \texttt{plot(m2, which = 5)}. Note that because we plot curves corresponding to the distribution of the original dataset rather than the componentwise maxima, we pass the argument \texttt{mint = 30}. <>= lts <- c(0.01,100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) points(cml); pp <- c(0.98,0.99,0.995) qcbvnonpar(pp, data = cml, epmar = TRUE, mint = 30, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Estimated quantile curves $Q(\hat{F},p)$ for $p=0.98,0.99,0.995$ based on the componentwise block maxima data shown as black circles, using the Cap\'{e}r\`{a}a-Foug\`{e}res-Genest nonparametric estimate of the dependence function and using empirical marginal estimation.} \label{nonparqc} \end{figure} \section{Excesses Over A Threshold} We now consider all the $1500$ observations on liability claims. We assume that the data are distributed according to the distribution function $F$, and we are interested in $F(z)$ where $z=(z_1,z_2)$ is in some sense large. The methods we use assume that $F$ is in the domain of attraction of some bivariate extreme value distribution $G$, and we focus on large data points to estimate features of $G$, and hence of $F(z)$ for large $z$. Typically we focus on points $z$ that lie above a certain threshold. The functions \texttt{tcplot} and \texttt{mrlplot} can be used for producing plots on each margin to help determine thresholds $u_1$ and $u_2$ for methods that focus primarily on points $z$ such that $z_1 > u_1$ and $z_2 > u_2$. Alternatively, the function \texttt{bvtcplot} can be used to help determine a single threshold $u^{*}$ for methods that focus on points $z$ such that $r(z) > u^{*}$, where $r(z) = x_1(z_1) + x_2(z_2)$, and $x_j(z_j) = -1/\log \hat{F}_j(z_j)$ for $j=1,2$ where $F_j$ is estimated empirically. Following Segers and Vandewalle (2004), a sensible choice for threshold $u^{*}$ might be found from Figure \ref{bvtc} by taking the $k$th largest $r(z)$, where $k$ is the largest value for which the y-axis is close to two. Figure \ref{bvtc} is plotted below using \texttt{bvtcplot}. The value of $k$ is returned invisibly. Setting \texttt{spectral = TRUE} uses the $k$th largest points to plot a nonparametric estimate of $H([0,\omega])$ where $H$ is the spectral measure of $G$. <>= k0 <- bvtcplot(loss)$k0 bvtcplot(loss, spectral = TRUE) @ <>= k0 <- bvtcplot(loss)$k0 @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{A plot of $(k/n)r_{(n-k)}$ as a function of $k$, where $r_{(1)} \leq \dots \leq r_{(n)}$ are the ordered values of $r$. The y-axis provides an estimate of $H([0,1]) = 2$ for the spectral measure $H$ of $G$.} \label{bvtc} \end{figure} The parametric approach to the problem can employ models similar to those used for bivariate extreme value distributions. We first consider the margins separately by fitting a univariate generalized Pareto distribution to the excesses over the threshold $u_j$ on each margin $j=1,2$. We choose the thresholds so that the number of exceedances is roughly\footnote{The value is chosen so that the thresholds match exactly with those used in the book.} half of the value \texttt{k0}. <<>>= thresh <- apply(loss, 2, sort, decreasing = TRUE)[(k0+5)/2,] mar1 <- fitted(fpot(loss[,1], thresh[1])) mar2 <- fitted(fpot(loss[,2], thresh[2])) rbind(mar1,mar2) @ Parametric threshold models can be fitted using the function \texttt{fbvpot}, with the parametric model specified using the \texttt{model} argument. The default approach uses censored likelihood methodology, where a bivariate extreme value dependence structure is fitted to the data censored at the marginal thresholds $u_1$ and $u_2$. Alternatively, a Poisson process model can be employed using the \texttt{likelihood} argument, employing the methodology of Coles and Tawn (1991). Some examples of parametric fits are given below. Diagnostic plots for the fitted models can be produced using e.g.\ \texttt{plot(m2)}. <<>>= m1 <- fbvpot(loss, thresh, model = "alog", asy1 = 1) m2 <- fbvpot(loss, thresh, model = "bilog") m3 <- fbvpot(loss, thresh, model = "bilog", likelihood = "poisson") round(rbind(fitted(m2), std.errors(m2)), 3) @ The following code plots parametric and nonparametric estimates for the bivariate extreme value dependence structure fitted to the upper tail of $F$. The parametric estimates use the previously fitted models. The nonparametric estimate can be plotted using the \texttt{"pot"} method and takes the value \texttt{k0} to specify the threshold. <<>>= abvnonpar(data = loss, method = "pot", k = k0, epmar = TRUE, plot = TRUE, lty = 3) plot(m1, which = 2, add = TRUE) plot(m2, which = 2, add = TRUE, lty = 4) plot(m3, which = 2, add = TRUE, lty = 2) @ Figure \ref{qcthresh} uses our fitted asymmetric logistic model \texttt{m1} to plot quantile curves at probabilities $p=0.98,0.99,0.995$. The thresholds used for the censored likelihood model fit are also added to the plot. <>= lts <- c(1e-04, 100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) plot(m1, which = 3, p = c(0.95,0.975,0.99), tlty = 0, add = TRUE) abline(v=thresh[1], h=thresh[2]) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Quantile curves for probabilities $p=0.98,0.99,0.995$ for an asymmetric logistic model fit using censored likelihood estimation, with censoring at marginal thresholds given by the vertical and horizontal lines.} \label{qcthresh} \end{figure} Models based on bivariate extreme value distributions assume that the margins are either asymptotically dependent or are perfectly independent. They cannot account for situations where the dependence between the margins vanishes at increasingly extreme levels. The remainder of this section illustrates the estimation of dependence measures that can identify such cases. We consider three quantities as defined in Coles \textit{et al.} (1999). The coefficient of extremal dependence $\chi \in [0,1]$ is the tendency for one variable to be large given that the other is large. When $\chi = 0$ the variables are asymptotically independent, and when $\chi > 0$ they are asymptotically independent. The second measure $\bar{\chi}$ identifies the strength of dependence for asymptotically independent variables. When $\bar{\chi} = 1$ the variables are asymptotically dependent, and when $-1 \leq \bar{\chi} < 1$ they are asymptotically independent. The third measure is the coefficient of tail dependence $\eta$, which satisfies $\bar{\chi} = 2\eta - 1$. The following code produces Figure \ref{chiplot} which shows estimates of the functions $\chi(u)$ and $\bar{\chi}(u)$, as defined in Coles \textit{et al.} (1999), for $0 < u < 1$. The functions are defined so that $\chi = \lim_{u \rightarrow 1}\chi(u)$ and $\bar{\chi} = \lim_{u \rightarrow 1}\bar{\chi}(u)$. In this case $\chi(u) > 0 $ for all $u$ but there is little evidence that $\bar{\chi}$ is close to one, so it is difficult to specify the form of dependence on the basis of this plot. <>= old <- par(mfrow = c(2,1)) chiplot(loss, ylim1 = c(-0.25,1), ylim2 = c(-0.25,1), nq = 200, qlim = c(0.02,0.98), which = 1:2, spcases = TRUE) par(old) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{The dependence measures $\chi(u)$ and $\bar{\chi}(u)$. Estimates (solid line), 95\% pointwise confidence intervals (dot-dashed lines). The dashed lines represent the theoretical limits of the functions and the exact independence case at zero.} \label{chiplot} \end{figure} We now consider the coefficient of tail dependence $\eta$. We can estimate $\eta$ using univariate theory because of its relationship with $T = \min\{x_1(z_1),x_2(z_2)\}$. If we fit a generalized Pareto distribution to the data points in $T$ that exceed a large fixed threshold, then the estimated shape parameter of the fitted distribution provides an estimate of $\eta$. The call to \texttt{tcplot} plots estimates of $\eta$ at different thresholds in order to assist with threshold choice. The plot seems roughly linear after $u=0.8$, so we take the 80th percentile of $T$ as our threshold. Finally, we use \texttt{anova} to perform a likelihood ratio test for asymptotic dependence, with the null hypothesis $\eta = 1$ versus the alternative $\eta < 1$. <>= fla <- apply(-1/log(ula), 1, min) thresh <- quantile(fla, probs = c(0.025, 0.975)) tcplot(fla, thresh, nt = 100, pscale = TRUE, which = 2, vci = FALSE, cilty = 2, type = "l", ylim = c(-0.2,1.2), ylab = "Tail Dependence") abline(h = c(0,1)) @ <<>>= thresh <- quantile(fla, probs = 0.8) m1 <- fpot(fla, thresh = thresh) cat("Tail Dependence:", fitted(m1)["shape"], "\n") @ <<>>= m2 <- fpot(fla, thresh = thresh, shape = 1) anova(m1, m2, half = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Maximum likelihood estimates (solid line) and 95\% pointwise confidence intervals (dot-dashed lines) for $\eta$ at different threshold probabilities.} \label{etaplot} \end{figure} \section*{Bibliography} Beirlant, J., Goegebeur, Y., Segers, J and Teugels, J. (2004) \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Coles, S. G., Heffernan, J. and Tawn, J. A. (1999) Dependence measures for extreme value analysis. \textit{Extremes}, \textbf{2}, 339--365. Coles, S. G. and Tawn, J. A. (1991) Modelling extreme multivariate events. \textit{J.\ R.\ Statist.\ Soc.\ B}, \textbf{53}, 377--392. Segers, J. and Vandewalle, B. (2004). Statistics of Multivariate Extremes. In Beirlant et al. (eds.), \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Tawn, J. A. (1988). Bivariate extreme value theory: Models and estimation. \textit{Biometrika}, \textbf{75}, 397--415. \end{document} evd/R/0000755000176000001440000000000014260535126011265 5ustar ripleyusersevd/R/uvfit.R0000644000176000001440000010573114224760602012553 0ustar ripleyusers "fextreme"<- function(x, start, densfun, distnfun, ..., distn, mlen = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") { if (missing(x) || length(x) == 0 || !is.numeric(x)) stop("`x' must be a non-empty numeric object") if(any(is.na(x))) stop("`x' must not contain missing values") if (!is.list(start)) stop("`start' must be a named list") call <- match.call() if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") nllh <- function(p, ...) { dvec <- dens(p, ..., log = TRUE) if(any(is.infinite(dvec))) return(1e6) else return(-sum(dvec)) } nm <- names(start) l <- length(nm) f1 <- formals(densfun) f2 <- formals(distnfun) args <- names(f1) mtch <- match(nm, args) if (any(is.na(mtch))) stop("`start' specifies unknown arguments") formals(densfun) <- c(f1[c(1, mtch)], f1[-c(1, mtch)]) formals(distnfun) <- c(f2[c(1, mtch)], f2[-c(1, mtch)]) dens <- function(p, x, densfun, distnfun, ...) dextreme(x, densfun, distnfun, p, ...) if(l > 1) body(dens) <- parse(text = paste("dextreme(x, densfun, distnfun,", paste("p[",1:l,"]", collapse = ", "), ", ...)")) opt <- optim(start, nllh, x = x, hessian = TRUE, ..., densfun = densfun, distnfun = distnfun, mlen = mlen, largest = largest, method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if (var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL structure(list(estimate = opt$par, std.err = std.err, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, call = call, data = x, n = length(x)), class = c("extreme", "evd")) } "forder"<- function(x, start, densfun, distnfun, ..., distn, mlen = 1, j = 1, largest = TRUE, std.err = TRUE, corr = FALSE, method = "Nelder-Mead") { if (missing(x) || length(x) == 0 || !is.numeric(x)) stop("`x' must be a non-empty numeric object") if(any(is.na(x))) stop("`x' must not contain missing values") if (!is.list(start)) stop("`start' must be a named list") call <- match.call() if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") nllh <- function(p, ...) { dvec <- dens(p, ..., log = TRUE) if(any(is.infinite(dvec))) return(1e6) else return(-sum(dvec)) } nm <- names(start) l <- length(nm) f1 <- formals(densfun) f2 <- formals(distnfun) args <- names(f1) mtch <- match(nm, args) if (any(is.na(mtch))) stop("`start' specifies unknown arguments") formals(densfun) <- c(f1[c(1, mtch)], f1[-c(1, mtch)]) formals(distnfun) <- c(f2[c(1, mtch)], f2[-c(1, mtch)]) dens <- function(p, x, densfun, distnfun, ...) dorder(x, densfun, distnfun, p, ...) if(l > 1) body(dens) <- parse(text = paste("dorder(x, densfun, distnfun,", paste("p[",1:l,"]", collapse = ", "), ", ...)")) opt <- optim(start, nllh, x = x, hessian = TRUE, ..., densfun = densfun, distnfun = distnfun, mlen = mlen, j = j, largest = largest, method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if (var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL names(std.err) <- nm structure(list(estimate = opt$par, std.err = std.err, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, call = call, data = x, n = length(x)), class = c("extreme", "evd")) } "fgev"<- function(x, start, ..., nsloc = NULL, prob = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() if(missing(x) || length(x) == 0 || !is.numeric(x)) stop("`x' must be a non-empty numeric vector") if(is.null(prob)) { ft <- fgev.norm(x = x, start = start, ..., nsloc = nsloc, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } else { if(length(prob) != 1 || !is.numeric(prob) || prob < 0 || prob > 1) stop("`prob' should be a probability in [0,1]") ft <- fgev.quantile(x = x, start = start, ..., nsloc = nsloc, prob = prob, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } structure(c(ft, call = call), class = c("gev", "uvevd", "evd")) } "fgev.norm"<- function(x, start, ..., nsloc = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlgev <- function(loc, scale, shape) { if(scale <= 0) return(1e6) if(!is.null(nsloc)) { ns <- numeric(length(loc.param)) for(i in 1:length(ns)) ns[i] <- get(loc.param[i]) loc <- drop(nslocmat %*% ns) } else loc <- rep(loc, length.out = length(x)) .C(C_nlgev, x, n, loc, scale, shape, dns = double(1))$dns } if(!is.null(nsloc)) { if(is.vector(nsloc)) nsloc <- data.frame(trend = nsloc) if(nrow(nsloc) != length(x)) stop("`nsloc' and data are not compatible") nsloc <- nsloc[!is.na(x), ,drop = FALSE] nslocmat <- cbind(1,as.matrix(nsloc)) } x <- as.double(x[!is.na(x)]) n <- as.integer(length(x)) loc.param <- paste("loc", c("",names(nsloc)), sep="") param <- c(loc.param, "scale", "shape") if(missing(start)) { start <- as.list(numeric(length(param))) names(start) <- param start$scale <- sqrt(6 * var(x))/pi start$loc <- mean(x) - 0.58 * start$scale start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") nm <- names(start) l <- length(nm) f <- c(as.list(numeric(length(loc.param))), formals(nlgev)[2:3]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlgev) <- c(f[m], f[-m]) nllh <- function(p, ...) nlgev(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlgev(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL param <- c(opt$par, unlist(fixed.param)) if(!is.null(nsloc)) { trend <- param[paste("loc", names(nsloc), sep="")] trend <- drop(as.matrix(nsloc) %*% trend) x2 <- x - trend } else x2 <- x list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, data = x, tdata = x2, nsloc = nsloc, n = length(x), prob = NULL, loc = param["loc"]) } "fgev.quantile"<- function(x, start, ..., nsloc = NULL, prob, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlgev <- function(quantile, scale, shape) { if(scale <= 0) return(1e6) quantile <- rep(quantile, length.out = length(x)) if(prob == 0 && shape >= 0) return(1e6) if(prob == 1 && shape <= 0) return(1e6) if(shape == 0) loc <- quantile + scale * log(-log(1-prob)) else loc <- quantile + scale/shape * (1 - (-log(1-prob))^(-shape)) if(!is.null(nsloc)) { ns <- numeric(length(loc.param) - 1) for(i in 1:length(ns)) ns[i] <- get(loc.param[i+1]) loc <- drop(nslocmat %*% ns) + loc } if(any(is.infinite(loc))) return(1e6) .C(C_nlgev, x, n, loc, scale, shape, dns = double(1))$dns } if(is.null(nsloc)) loc.param <- "quantile" else loc.param <- c("quantile", paste("loc", names(nsloc), sep="")) param <- c(loc.param, "scale", "shape") if(missing(start)) { start <- as.list(numeric(length(param))) names(start) <- param start$scale <- sqrt(6 * var(x, na.rm = TRUE))/pi start.loc <- mean(x, na.rm = TRUE) - 0.58 * start$scale start$quantile <- start.loc - start$scale * log(-log(1-prob)) if(prob == 0) { fpft <- fgev(x = x, ..., nsloc = nsloc, prob = 0.001, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) start <- as.list(fitted(fpft)) } if(prob == 1) { fpft <- fgev(x = x, ..., nsloc = nsloc, prob = 0.999, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) start <- as.list(fitted(fpft)) } start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") if(!is.null(nsloc)) { if(is.vector(nsloc)) nsloc <- data.frame(trend = nsloc) if(nrow(nsloc) != length(x)) stop("`nsloc' and data are not compatible") nsloc <- nsloc[!is.na(x), ,drop = FALSE] nslocmat <- as.matrix(nsloc) } x <- as.double(x[!is.na(x)]) n <- as.integer(length(x)) nm <- names(start) l <- length(nm) f <- c(as.list(numeric(length(loc.param))), formals(nlgev)[2:3]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlgev) <- c(f[m], f[-m]) nllh <- function(p, ...) nlgev(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlgev(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm .mat <- diag(1/std.err, nrow = length(std.err)) if(corr) { corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else { std.err <- var.cov <- corr <- NULL } param <- c(opt$par, unlist(fixed.param)) if(!is.null(nsloc)) { trend <- param[paste("loc", names(nsloc), sep="")] trend <- drop(as.matrix(nsloc) %*% trend) x2 <- x - trend } else x2 <- x if(param["shape"] == 0) loc <- param["quantile"] + param["scale"] * log(-log(1-prob)) else loc <- param["quantile"] + param["scale"]/param["shape"] * (1 - (-log(1-prob))^(-param["shape"])) list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, data = x, tdata = x2, nsloc = nsloc, n = length(x), prob = prob, loc = loc) } "fgumbel"<- function(x, start, ..., nsloc = NULL, prob = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { fgev(x = x, ..., shape = 0, nsloc = nsloc, prob = prob, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } "fgumbelx"<- function(x, start, ..., nsloc1 = NULL, nsloc2 = NULL, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() if(missing(x) || length(x) == 0 || !is.numeric(x)) stop("`x' must be a non-empty numeric vector") nlgumbelx <- function(loc1, scale1, loc2, scale2) { if(scale1 <= 0 || scale2 <= 0) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = length(x)) if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = length(x)) if(any(loc1 > loc2)) return(1e6) .C(C_nlgumbelx, x, n, loc1, scale1, loc2, scale2, dns = double(1))$dns } if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != length(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1, as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != length(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } x <- as.double(x[!is.na(x)]) n <- as.integer(length(x)) loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", loc.param2, "scale2") if(missing(start)) { start <- as.list(numeric(length(param))) names(start) <- param emc <- -digamma(1) b0 <- mean(x) b1 <- sum((1:n-1)/(n-1) * sort(x))/n start$scale1 <- (2*b1-b0)/log(2) start$loc1 <- b0 - start$scale1*emc - start$scale1*log(2) start$scale2 <- start$scale1 start$loc2 <- start$loc1 + 1e-02 start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") nm <- names(start) l <- length(nm) f <- c(as.list(numeric(length(loc.param1))), formals(nlgumbelx)[2], as.list(numeric(length(loc.param2))), formals(nlgumbelx)[4]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlgumbelx) <- c(f[m], f[-m]) nllh <- function(p, ...) nlgumbelx(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlgumbelx(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL param <- c(opt$par, unlist(fixed.param)) ft <- list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, data = x, nsloc1 = nsloc1, nsloc2 = nsloc2, n = length(x)) structure(c(ft, call = call), class = c("gumbelx", "evd")) } "fpot"<- function(x, threshold, model = c("gpd", "pp"), start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, mper = NULL, ..., std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() model <- match.arg(model) if(missing(x) || length(x) == 0 || mode(x) != "numeric") stop("`x' must be a non-empty numeric vector") if(missing(threshold) || length(threshold) != 1 || mode(threshold) != "numeric") stop("`threshold' must be a numeric value") threshold <- as.double(threshold) if(is.null(mper)) { ft <- fpot.norm(x = x, threshold = threshold, model = model, start = start, npp = npp, cmax = cmax, r = r, ulow = ulow, rlow = rlow, ..., std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } else { if(model == "pp") stop("`mper' cannot be specified in point process models") ft <- fpot.quantile(x = x, threshold = threshold, start = start, npp = npp, cmax = cmax, r = r, ulow = ulow, rlow = rlow, ..., mper = mper, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) } structure(c(ft, call = call), class = c("pot", "uvevd", "evd")) } "fpot.norm"<- function(x, threshold, model, start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, ..., std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { if(model == "gpd") { nlpot <- function(loc, scale, shape) { .C(C_nlgpd, exceed, nhigh, threshold, scale, shape, dns = double(1))$dns } # Avoids note produced by R CMD check formals(nlpot) <- formals(nlpot)[2:3] } if(model == "pp") { nlpot <- function(loc, scale, shape) { .C(C_nlpp, exceed, nhigh, loc, scale, shape, threshold, nop, dns = double(1))$dns } } nn <- length(x) nop <- as.double(nn/npp) if(cmax) { exceed <- clusters(x, u = threshold, r = r, ulow = ulow, rlow = rlow, cmax = TRUE, keep.names = FALSE) extind <- attributes(exceed)$acs exceed <- as.double(exceed) nhigh <- length(exceed) ; nat <- as.integer(nhigh * extind) extind <- 1/extind } else { extind <- r <- NULL high <- (x > threshold) & !is.na(x) exceed <- as.double(x[high]) nhigh <- nat <- length(exceed) } if(!nhigh) stop("no data above threshold") pat <- nat/nn param <- c("scale", "shape") if(model == "pp") param <- c("loc", param) if(missing(start)) { if(model == "gpd") { start <- list(scale = 0, shape = 0) start$scale <- mean(exceed) - threshold } if(model == "pp") { start <- list(loc = 0, scale = 0, shape = 0) start$scale <- sqrt(6 * var(x))/pi start$loc <- mean(x) + (log(nop) - 0.58) * start$scale } start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") nm <- names(start) l <- length(nm) f <- formals(nlpot) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlpot) <- c(f[m], f[-m]) nllh <- function(p, ...) nlpot(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlpot(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL param <- c(opt$par, unlist(fixed.param)) if(model == "gpd") scale <- param["scale"] if(model == "pp") scale <- param["scale"] + param["shape"] * (threshold - param["loc"]) list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, threshold = threshold, cmax = cmax, r = r, ulow = ulow, rlow = rlow, npp = npp, nhigh = nhigh, nat = nat, pat = pat, extind = extind, data = x, exceedances = exceed, mper = NULL, scale = scale) } "fpot.quantile"<- function(x, threshold, start, npp = length(x), cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, mper, ..., std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlpot <- function(rlevel, shape) { if(is.infinite(mper) && shape >= 0) return(1e6) rlevel <- rlevel - threshold if(shape == 0) scale <- rlevel / log(adjmper) else scale <- shape * rlevel / (adjmper^shape - 1) .C(C_nlgpd, exceed, nhigh, threshold, scale, shape, dns = double(1))$dns } nn <- length(x) if(cmax) { exceed <- clusters(x, u = threshold, r = r, ulow = ulow, rlow = rlow, cmax = TRUE, keep.names = FALSE) extind <- attributes(exceed)$acs exceed <- as.double(exceed) nhigh <- length(exceed) ; nat <- as.integer(nhigh * extind) extind <- 1/extind } else { extind <- r <- NULL high <- (x > threshold) & !is.na(x) exceed <- as.double(x[high]) nhigh <- nat <- length(exceed) } if(!nhigh) stop("no data above threshold") pat <- nat/nn adjmper <- mper * npp * nhigh/nn if(adjmper <= 1) stop("`mper' is too small") param <- c("rlevel", "shape") if(missing(start)) { start <- list(rlevel = 0, shape = 0) stscale <- mean(exceed) - threshold start$rlevel <- threshold + stscale*log(adjmper) if(is.infinite(mper)) { stmp <- 100/(npp * nhigh/nn) fpft <- fpot(x = x, threshold = threshold, npp = npp, cmax = cmax, r = r, ulow = ulow, rlow = rlow, mper = stmp, ..., std.err = std.err, corr = corr, method = method, warn.inf = warn.inf) start <- as.list(fitted(fpft)) } start <- start[!(param %in% names(list(...)))] } if(!is.list(start)) stop("`start' must be a named list") if(!length(start)) stop("there are no parameters left to maximize over") nm <- names(start) l <- length(nm) f <- formals(nlpot) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlpot) <- c(f[m], f[-m]) nllh <- function(p, ...) nlpot(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlpot(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) fixed.param <- list(...)[names(list(...)) %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm if (opt$convergence != 0) { warning("optimization may not have succeeded") if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop("observed information matrix is singular; use std.err = FALSE") var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop("observed information matrix is singular; use std.err = FALSE") std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL param <- c(opt$par, unlist(fixed.param)) rlevel <- param["rlevel"] - threshold if(param["shape"] == 0) scale <- rlevel / log(adjmper) else scale <- param["shape"] * rlevel / (adjmper^param["shape"] - 1) list(estimate = opt$par, std.err = std.err, fixed = unlist(fixed.param), param = param, deviance = 2*opt$value, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, threshold = threshold, cmax = cmax, r = r, ulow = ulow, rlow = rlow, npp = npp, nhigh = nhigh, nat = nat, pat = pat, extind = extind, data = x, exceedances = exceed, mper = mper, scale = scale) } ### Method Functions ### "print.evd" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Deviance:", x$deviance, "\n") cat("\nEstimates\n") print.default(format(x$estimate, digits = digits), print.gap = 2, quote = FALSE) if(!is.null(x$std.err)) { cat("\nStandard Errors\n") print.default(format(x$std.err, digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } "confint.evd" <- function (object, parm, level = 0.95, ...) { cf <- fitted(object) pnames <- names(cf) if (missing(parm)) parm <- seq(along = pnames) else if (is.character(parm)) parm <- match(parm, pnames, nomatch = 0) if(any(!parm)) stop("`parm' contains unknown parameters") a <- (1 - level)/2 a <- c(a, 1 - a) pct <- paste(round(100 * a, 1), "%") ci <- array(NA, dim = c(length(parm), 2), dimnames = list(pnames[parm], pct)) ses <- std.errors(object)[parm] ci[] <- cf[parm] + ses %o% qnorm(a) ci } "anova.evd" <- function (object, object2, ..., half = FALSE) { if(missing(object)) stop("model one must be specified") if(missing(object2)) stop("model two must be specified") dots <- as.list(substitute(list(...)))[-1] dots <- sapply(dots,function(x) deparse(x)) if(!length(dots)) dots <- NULL model1 <- deparse(substitute(object)) model2 <- deparse(substitute(object2)) models <- c(model1, model2, dots) narg <- length(models) for(i in 1:narg) { if(!inherits(get(models[i], envir = parent.frame()), "evd")) stop("Use only with 'evd' objects") } for(i in 1:(narg-1)) { a <- get(models[i], envir = parent.frame()) b <- get(models[i+1], envir = parent.frame()) if((!all(names(fitted(b)) %in% names(fitted(a)))) && (!identical(c("bilog","log"), c(a$model, b$model))) && (!identical(c("negbilog","neglog"), c(a$model, b$model)))) { warning("models may not be nested") } } dv <- npar <- numeric(narg) for(i in 1:narg) { evmod <- get(models[i], envir = parent.frame()) dv[i] <- evmod$deviance npar[i] <- length(evmod$estimate) } df <- -diff(npar) if(any(df <= 0)) stop("models are not nested") dvdiff <- diff(dv) if(any(dvdiff < 0)) stop("negative deviance difference") if(half) dvdiff <- 2*dvdiff pval <- pchisq(dvdiff, df = df, lower.tail = FALSE) table <- data.frame(npar, dv, c(NA,df), c(NA,dvdiff), c(NA,pval)) dimnames(table) <- list(models, c("M.Df", "Deviance", "Df", "Chisq", "Pr(>chisq)")) structure(table, heading = c("Analysis of Deviance Table\n"), class = c("anova", "data.frame")) } "fitted.evd" <- function (object, ...) object$estimate "std.errors" <- function (object, ...) UseMethod("std.errors") "std.errors.evd" <- function (object, ...) object$std.err "vcov.evd" <- function (object, ...) object$var.cov "logLik.evd" <- function(object, ...) { val <- -deviance(object)/2 attr(val, "df") <- length(fitted(object)) class(val) <- "logLik" val } "print.pot" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Deviance:", x$deviance, "\n") cat("\nThreshold:", round(x$threshold, digits), "\n") cat("Number Above:", x$nat, "\n") cat("Proportion Above:", round(x$pat, digits), "\n") if(!is.null(x$extind)) { cat("\nClustering Interval:", x$r, "\n") if(is.finite(x$ulow)) { cat("Lower Threshold:", round(x$ulow, digits), "\n") cat("Lower Clustering Interval:", x$rlow, "\n") } cat("Number of Clusters:", x$nhigh, "\n") cat("Extremal Index:", round(x$extind, digits), "\n") } cat("\nEstimates\n") print.default(format(x$estimate, digits = digits), print.gap = 2, quote = FALSE) if(!is.null(x$std.err)) { cat("\nStandard Errors\n") print.default(format(x$std.err, digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } evd/R/bvdist.R0000644000176000001440000014542413264357327012725 0ustar ripleyusers "rbvevd" <- function(n, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0,1,0), mar2 = mar1) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = rbvlog(n = n, dep = dep, mar1 = mar1, mar2 = mar2), alog = rbvalog(n = n, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2), hr = rbvhr(n = n, dep = dep, mar1 = mar1, mar2 = mar2), neglog = rbvneglog(n = n, dep = dep, mar1 = mar1, mar2 = mar2), aneglog = rbvaneglog(n = n, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2), bilog = rbvbilog(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2), negbilog = rbvnegbilog(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2), ct = rbvct(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2), amix = rbvamix(n = n, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2)) } "rbvlog"<- # Uses Algorithm 1.1 in Stephenson(2003) function(n, dep, mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") sim <- .C(C_rbvlog_shi, as.integer(n), as.double(dep), sim = double(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(1/sim, list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvalog"<- # Uses Algorithm 1.2 in Stephenson(2003) function(n, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(dep == 1 || any(asy == 0)) { asy <- c(0,0) dep <- 1 } sim <- .C(C_rbvalog_shi, as.integer(n), as.double(dep), as.double(asy), sim = double(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(1/sim, list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvhr" <- function(n, dep, mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") sim <- .C(C_rbvhr, as.integer(n), as.double(dep), sim = runif(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvneglog"<- function(n, dep, mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") sim <- .C(C_rbvneglog, as.integer(n), as.double(dep), sim = runif(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvaneglog"<- function(n, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") sim <- .C(C_rbvaneglog, as.integer(n), as.double(dep), as.double(asy), sim = runif(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvbilog"<- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") sim <- .C(C_rbvbilog, as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvnegbilog"<- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") sim <- .C(C_rbvnegbilog, as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvct" <- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") sim <- .C(C_rbvct, as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "rbvamix" <- function(n, alpha, beta, mar1 = c(0,1,0), mar2 = mar1) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") sim <- .C(C_rbvamix, as.integer(n), as.double(alpha), as.double(beta), sim = runif(2*n))$sim sim <- matrix(sim, nrow = n, ncol = 2, byrow = TRUE) mtransform(-log(sim), list(mar1, mar2), inv = TRUE, drp = TRUE) } "pbvevd" <- function(q, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = pbvlog(q = q, dep = dep, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), alog = pbvalog(q = q, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), hr = pbvhr(q = q, dep = dep, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), neglog = pbvneglog(q = q, dep = dep, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), aneglog = pbvaneglog(q = q, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), bilog = pbvbilog(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), negbilog = pbvnegbilog(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), ct = pbvct(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail), amix = pbvamix(q = q, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, lower.tail = lower.tail)) } "pbvlog"<- function(q, dep, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) v <- apply(q^(1/dep),1,sum)^dep pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvalog"<- function(q, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) asy <- rep(asy,rep(nrow(q),2)) v <- apply((asy*q)^(1/dep),1,sum)^dep + apply((1-asy)*q,1,sum) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvhr" <- function(q, dep, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) fn <- function(x1,x2) x1*pnorm(1/dep + dep * log(x1/x2) / 2) v <- fn(q[,1],q[,2]) + fn(q[,2],q[,1]) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvneglog"<- function(q, dep, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) v <- apply(q,1,sum) - apply(q^(-dep),1,sum)^(-1/dep) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvaneglog"<- function(q, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) asy <- rep(asy,rep(nrow(q),2)) v <- apply(q,1,sum) - apply((asy*q)^(-dep),1,sum)^(-1/dep) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvbilog"<- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) gma <- numeric(nrow(q)) for(i in 1:nrow(q)) { gmafn <- function(x) (1-alpha) * q[i,1] * (1-x)^beta - (1-beta) * q[i,2] * x^alpha if(any(is.na(q[i,]))) gma[i] <- NA else if(any(is.infinite(q[i,]))) gma[i] <- 0.5 else if(q[i,1] == 0) gma[i] <- 0 else if(q[i,2] == 0) gma[i] <- 1 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- q[,1] * gma^(1-alpha) + q[,2] * (1 - gma)^(1-beta) pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvnegbilog"<- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) gma <- numeric(nrow(q)) for(i in 1:nrow(q)) { gmafn <- function(x) (1+alpha) * q[i,1] * x^alpha - (1+beta) * q[i,2] * (1-x)^beta if(any(is.na(q[i,]))) gma[i] <- NA else if(any(is.infinite(q[i,]))) gma[i] <- Inf else if(q[i,1] == 0) gma[i] <- 1 else if(q[i,2] == 0) gma[i] <- 0 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- q[,1] + q[,2] - q[,1] * gma^(1+alpha) - q[,2] * (1 - gma)^(1+beta) v[is.infinite(gma)] <- Inf pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvct" <- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) u <- (alpha * q[,2]) / (alpha * q[,2] + beta * q[,1]) v <- q[,2] * pbeta(u, shape1 = alpha, shape2 = beta + 1) + q[,1] * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) v[is.infinite(q[,1]) || is.infinite(q[,2])] <- Inf v[(q[,1] + q[,2]) == 0] <- 0 pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "pbvamix"<- function(q, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, lower.tail = TRUE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(is.null(dim(q))) dim(q) <- c(1,2) q <- mtransform(q, list(mar1, mar2)) qsum <- apply(q, 1, sum) v <- qsum - (alpha + beta) * q[,1] + alpha * (q[,1]^2)/qsum + beta * (q[,1]^3)/(qsum^2) v[is.infinite(q[,1]) || is.infinite(q[,2])] <- Inf v[(q[,1] + q[,2]) == 0] <- 0 pp <- exp(-v) if(!lower.tail) { pp <- 1 - pgev(-log(q[,1])) - pgev(-log(q[,2])) + pp } pp } "abvevd" <- function(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), rev = FALSE, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "t", ylab = "A(t)", ...) { if(any(x < 0, na.rm = TRUE) || any(x > 1, na.rm = TRUE)) stop("invalid argument for `x'") model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") if(rev && (model %in% c("aneglog", "alog"))) asy <- asy[2:1] if(rev && (model %in% c("bilog", "negbilog", "ct"))) { tmpalpha <- alpha alpha <- beta beta <- tmpalpha } if(rev && (model == "amix")) { tmpalpha <- alpha alpha <- alpha + 3*beta beta <- -beta } switch(model, log = abvlog(x = x, dep = dep, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), alog = abvalog(x = x, dep = dep, asy = asy, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), hr = abvhr(x = x, dep = dep, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), neglog = abvneglog(x = x, dep = dep, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), aneglog = abvaneglog(x = x, dep = dep, asy = asy, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), bilog = abvbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), negbilog = abvnegbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), ct = abvct(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...), amix = abvamix(x = x, alpha = alpha, beta = beta, plot = plot, add = add, lty = lty, lwd = lwd, col = col, blty = blty, blwd = blwd, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, ...)) } "abvlog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep a <- (x^idep + (1-x)^idep)^dep if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvalog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep a <- ((asy[1]*x)^idep + (asy[2]*(1-x))^idep)^dep + (1-asy[1])*x + (1-asy[2])*(1-x) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvhr" <- function(x = 0.5, dep, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) fn <- function(z) z*pnorm(1/dep + dep * log(z/(1-z)) / 2) a <- fn(x) + fn(1-x) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvneglog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) a <- 1 - (x^(-dep) + (1-x)^(-dep))^(-1/dep) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvaneglog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") a <- 1 - ((asy[1]*x)^(-dep) + (asy[2]*(1-x))^(-dep))^(-1/dep) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1-alpha) * x[i] * (1-z)^beta - (1-beta) * (1-x[i]) * z^alpha if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 0 else if(x[i] == 1) gma[i] <- 1 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } a <- x * gma^(1-alpha) + (1-x) * (1 - gma)^(1-beta) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvnegbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1+alpha) * x[i] * z^alpha - (1+beta) * (1-x[i]) * (1-z)^beta if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 1 else if(x[i] == 1) gma[i] <- 0 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } a <- 1 - x * gma^(1+alpha) - (1-x) * (1 - gma)^(1+beta) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvct" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) u <- (alpha * (1-x)) / (alpha * (1-x) + beta * x) a <- (1-x) * pbeta(u, shape1 = alpha, shape2 = beta + 1) + x * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "abvamix" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "", ylab = "", ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) a <- 1 - (alpha + beta) * x + alpha * (x^2) + beta * (x^3) if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "hbvevd" <- function(x = 0.5, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), half = FALSE, plot = FALSE, add = FALSE, lty = 1, ...) { if(any(x < 0, na.rm = TRUE) || any(x > 1, na.rm = TRUE)) stop("invalid argument for `x'") model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = hbvlog(x = x, dep = dep, plot = plot, add = add, half = half, lty = lty, ...), alog = hbvalog(x = x, dep = dep, asy = asy, plot = plot, add = add, half = half, lty = lty, ...), hr = hbvhr(x = x, dep = dep, plot = plot, add = add, half = half, lty = lty, ...), neglog = hbvneglog(x = x, dep = dep, plot = plot, add = add, half = half, lty = lty, ...), aneglog = hbvaneglog(x = x, dep = dep, asy = asy, plot = plot, add = add, half = half, lty = lty, ...), bilog = hbvbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...), negbilog = hbvnegbilog(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...), ct = hbvct(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...), amix = hbvamix(x = x, alpha = alpha, beta = beta, plot = plot, add = add, half = half, lty = lty, ...)) } "hbvlog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep h <- (idep - 1) * (x * (1-x))^(-1-idep) * (x^(-idep) + (1-x)^(-idep))^(dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvalog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(plot || add) x <- seq(0, 1, length = 100) idep <- 1/dep h <- (idep - 1) * (asy[1] * asy[2])^idep * (x * (1-x))^(-1-idep) * ((asy[1]/x)^idep + (asy[2]/(1-x))^idep)^(dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvhr" <- function(x = 0.5, dep, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) h <- dep * dnorm(1/dep + dep * log(x/(1-x)) / 2) h <- h / (2 * x * (1-x)^2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvneglog"<- function(x = 0.5, dep, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) h <- (1 + dep) * (x * (1-x))^(dep-1) * (x^dep + (1-x)^dep)^(-1/dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvaneglog"<- function(x = 0.5, dep, asy = c(1,1), plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(plot || add) x <- seq(0, 1, length = 100) if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") h <- (1 + dep) * (asy[1] * asy[2])^(-dep) * (x * (1-x))^(dep-1) * ((x/asy[1])^dep + ((1-x)/asy[2])^dep)^(-1/dep-2) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1-alpha) * (1-x[i]) * (1-z)^beta - (1-beta) * x[i] * z^alpha if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 0 else if(x[i] == 1) gma[i] <- 1 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } a <- x * gma^(1-alpha) + (1-x) * (1 - gma)^(1-beta) h <- exp(log(1-alpha) + log(beta) + (beta - 1)*log(1-gma) + log(1-x)) + exp(log(1-beta) + log(alpha) + (alpha - 1)*log(gma) + log(x)) h <- exp(log(1-alpha) + log(1-beta) - log(x * (1-x)) - log(h)) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvnegbilog"<- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) gma <- numeric(length(x)) for(i in 1:length(x)) { gmafn <- function(z) (1+alpha) * (1-x[i]) * z^alpha - (1+beta) * x[i] * (1-z)^beta if(is.na(x[i])) gma[i] <- NA else if(x[i] == 0) gma[i] <- 1 else if(x[i] == 1) gma[i] <- 0 else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } h <- exp(log(1+alpha) + log(alpha) + (alpha - 1)*log(gma) + log(1-x)) + exp(log(1+beta) + log(beta) + (beta - 1)*log(1-gma) + log(x)) h <- exp(log(1+alpha) + log(1+beta) + alpha * log(gma) + beta * log(1-gma) - log(x * (1-x)) - log(h)) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvct" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) u <- (alpha * x) / (alpha * x + beta * (1-x)) c1 <- alpha * beta / (alpha + beta + 1) h <- dbeta(u, shape1 = alpha + 1, shape2 = beta + 1) / (alpha * x^2 * (1-x) + beta * x * (1-x)^2) * c1 if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "hbvamix" <- function(x = 0.5, alpha, beta, plot = FALSE, add = FALSE, half = FALSE, lty = 1, xlab = "t", ylab = "h(t)", xlim = c(0,1), ylim = c(0, max(h, na.rm = TRUE)), ...) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(plot || add) x <- seq(0, 1, length = 100) h <- 2 * alpha + 6 * beta * (1-x) if(half) h <- h/2 if(plot || add) { if(!add) { plot(x, h, type = "l", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, ...) } lines(x, h, lty = lty) return(invisible(list(x = x, y = h))) } h } "dbvevd" <- function(x, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") switch(model, log = dbvlog(x = x, dep = dep, mar1 = mar1, mar2 = mar2, log = log), alog = dbvalog(x = x, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, log = log), hr = dbvhr(x = x, dep = dep, mar1 = mar1, mar2 = mar2, log = log), neglog = dbvneglog(x = x, dep = dep, mar1 = mar1, mar2 = mar2, log = log), aneglog = dbvaneglog(x = x, dep = dep, asy = asy, mar1 = mar1, mar2 = mar2, log = log), bilog = dbvbilog(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log), negbilog = dbvnegbilog(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log), ct = dbvct(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log), amix = dbvamix(x = x, alpha = alpha, beta = beta, mar1 = mar1, mar2 = mar2, log = log)) } "dbvlog"<- function(x, dep, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] idep <- 1/dep z <- apply(x^idep,1,sum)^dep lx <- log(x) .expr1 <- (idep+mar1[,3])*lx[,1] + (idep+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) d[!ext] <- .expr1 + (1-2*idep)*log(z) + log(idep-1+z) - z } if(!log) d <- exp(d) d } "dbvalog"<- function(x, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] asy <- matrix(asy, ncol = 2, nrow = nrow(x), byrow = TRUE) idep <- 1/dep z <- apply((asy*x)^idep,1,sum)^dep v <- z + apply((1-asy)*x,1,sum) f1asy <- (idep)*log(asy) f2asy <- log(1-asy) lx <- log(x) fx <- (idep-1)*lx jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- apply(f2asy,1,sum) .expr2 <- f2asy[,1] + f1asy[,2] + fx[,2] .expr3 <- f2asy[,2] + f1asy[,1] + fx[,1] .expr4 <- (1-idep)*log(z) + log(exp(.expr2)+exp(.expr3)) .expr5 <- apply(cbind(f1asy,fx),1,sum) + (1-2*idep)*log(z) + log(idep-1+z) d[!ext] <- log(exp(.expr1)+exp(.expr4)+exp(.expr5))-v+jac } if(!log) d <- exp(d) d } "dbvhr" <- function(x, dep, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] fn <- function(x1, x2, nm = pnorm) x1 * nm(1/dep + dep * log(x1/x2) / 2) v <- fn(x[,1], x[,2]) + fn(x[,2], x[,1]) .expr1 <- fn(x[,1], x[,2]) * fn(x[,2], x[,1]) + dep * fn(x[,1], x[,2], nm = dnorm) / 2 lx <- log(x) jac <- mar1[,3]*lx[,1] + mar2[,3]*lx[,2] - log(mar1[,2]*mar2[,2]) d[!ext] <- log(.expr1)+jac-v } if(!log) d <- exp(d) d } "dbvneglog"<- function(x, dep, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] idep <- 1/dep z <- apply(x^(-dep),1,sum)^(-idep) v <- apply(x,1,sum) - z lx <- log(x) fx <- (-dep-1)*lx jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- (1+dep)*log(z) + log(exp(fx[,1])+exp(fx[,2])) .expr2 <- fx[,1] + fx[,2] + (1+2*dep)*log(z) + log(1+dep+z) d[!ext] <- log(1-exp(.expr1)+exp(.expr2))-v+jac } if(!log) d <- exp(d) d } "dbvaneglog"<- function(x, dep, asy = c(1,1), mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] asy <- matrix(asy, ncol = 2, nrow = nrow(x), byrow = TRUE) idep <- 1/dep z <- apply((asy*x)^(-dep),1,sum)^(-idep) v <- apply(x,1,sum) - z fasy <- (-dep)*log(asy) lx <- log(x) fx <- (-dep-1)*lx jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- fasy[,1] + fx[,1] .expr2 <- fasy[,2] + fx[,2] .expr3 <- (1+dep)*log(z) + log(exp(.expr1)+exp(.expr2)) .expr4 <- apply(cbind(fasy,fx),1,sum) + (1+2*dep)*log(z) + log(1+dep+z) d[!ext] <- log(1-exp(.expr3)+exp(.expr4))-v+jac } if(!log) d <- exp(d) d } "dbvbilog"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0) || any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] gma <- numeric(nrow(x)) for(i in 1:nrow(x)) { gmafn <- function(z) (1-alpha) * x[i,1] * (1-z)^beta - (1-beta) * x[i,2] * z^alpha if(any(is.na(x[i,]))) gma[i] <- NA else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- x[,1] * gma^(1-alpha) + x[,2] * (1 - gma)^(1-beta) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- exp((1-alpha)*log(gma) + (1-beta)*log(1-gma)) .expr2 <- exp(log(1-alpha) + log(beta) + (beta - 1)*log(1-gma) + lx[,1]) + exp(log(1-beta) + log(alpha) + (alpha - 1)*log(gma) + lx[,2]) d[!ext] <- log(.expr1 + (1-alpha)*(1-beta)/.expr2) - v + jac } if(!log) d <- exp(d) d } "dbvnegbilog"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] gma <- numeric(nrow(x)) for(i in 1:nrow(x)) { gmafn <- function(z) (1+alpha) * x[i,1] * z^alpha - (1+beta) * x[i,2] * (1-z)^beta if(any(is.na(x[i,]))) gma[i] <- NA else gma[i] <- uniroot(gmafn, lower = 0, upper = 1, tol = .Machine$double.eps^0.5)$root } v <- x[,1] + x[,2] - x[,1] * gma^(1+alpha) - x[,2] * (1 - gma)^(1+beta) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .expr1 <- (1-gma^(1+alpha)) * (1 - (1-gma)^(1+beta)) .expr2 <- exp(log(1+alpha) + log(1+beta) + alpha*log(gma) + beta*log(1-gma)) .expr3 <- exp(log(1+alpha) + log(alpha) + (alpha - 1)*log(gma) + lx[,1]) + exp(log(1+beta) + log(beta) + (beta - 1)*log(1-gma) + lx[,2]) d[!ext] <- log(.expr1 + .expr2/.expr3) - v + jac } if(!log) d <- exp(d) d } "dbvct"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(any(c(alpha,beta) <= 0)) stop("`alpha' and `beta' must be non-negative") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] u <- (alpha * x[,2]) / (alpha * x[,2] + beta * x[,1]) v <- x[,2] * pbeta(u, shape1 = alpha, shape2 = beta + 1) + x[,1] * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) .c1 <- alpha * beta / (alpha + beta + 1) .expr1 <- pbeta(u, shape1 = alpha, shape2 = beta + 1) * pbeta(u, shape1 = alpha + 1, shape2 = beta, lower.tail = FALSE) .expr2 <- dbeta(u, shape1 = alpha + 1, shape2 = beta + 1) / (alpha * x[,2] + beta * x[,1]) d[!ext] <- log(.expr1 + .c1 * .expr2) - v + jac } if(!log) d <- exp(d) d } "dbvamix"<- function(x, alpha, beta, mar1 = c(0,1,0), mar2 = mar1, log = FALSE) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") if(is.null(dim(x))) dim(x) <- c(1,2) mar1 <- matrix(t(mar1), nrow = nrow(x), ncol = 3, byrow = TRUE) mar2 <- matrix(t(mar2), nrow = nrow(x), ncol = 3, byrow = TRUE) d <- numeric(nrow(x)) x <- mtransform(x, list(mar1, mar2)) ext <- apply(x,1,function(z) any(z %in% c(0,Inf))) d[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] mar1 <- mar1[!ext, ,drop=FALSE] mar2 <- mar2[!ext, ,drop=FALSE] xsum <- apply(x, 1, sum) v <- xsum - (alpha + beta) * x[,1] + alpha * (x[,1]^2)/xsum + beta * (x[,1]^3)/(xsum^2) lx <- log(x) jac <- (1+mar1[,3])*lx[,1] + (1+mar2[,3])*lx[,2] - log(mar1[,2]*mar2[,2]) x1a <- x[,1]/xsum; x2a <- x[,2]/xsum v1 <- 1 - alpha * (x2a)^2 - beta * (3 * x2a^2 - 2 * x2a^3) v2 <- 1 - alpha * (x1a)^2 - 2 * beta * x1a^3 v12 <- (-2 * alpha * x1a * x2a - 6 * beta * x1a^2 * x2a) / xsum d[!ext] <- log(v1 * v2 - v12) - v + jac } if(!log) d <- exp(d) d } evd/R/pmdiag.R0000644000176000001440000002671012637167310012661 0ustar ripleyusers "mrlplot"<- function(data, tlim, pscale = FALSE, nt = max(100, length(data)), lty = c(2,1,2), col = 1, conf = 0.95, main = "Mean Residual Life Plot", xlab = "Threshold", ylab = "Mean Excess", ...) { data <- sort(data[!is.na(data)]) nn <- length(data) if(nn <= 5) stop("`data' has too few non-missing values") if(missing(tlim)) { tlim <- c(data[1], data[nn - 4]) tlim <- tlim - .Machine$double.eps^0.5 } if(all(data <= tlim[2])) stop("upper limit for threshold is too high") u <- seq(tlim[1], tlim[2], length = nt) if(pscale) { tlim[1] <- mean(data <= tlim[1], na.rm = TRUE) tlim[2] <- mean(data <= tlim[2], na.rm = TRUE) pvec <- seq(tlim[1], tlim[2], length = nt) u <- quantile(data, probs = pvec, na.rm = TRUE) } x <- matrix(NA, nrow = nt, ncol = 3, dimnames = list(NULL, c("lower", "mrl", "upper"))) for(i in 1:nt) { data <- data[data > u[i]] x[i,2] <- mean(data - u[i]) sdev <- sqrt(var(data)) sdev <- (qnorm((1 + conf)/2) * sdev)/sqrt(length(data)) x[i,1] <- x[i,2] - sdev x[i,3] <- x[i,2] + sdev } if(pscale) { u <- pvec if(missing(xlab)) xlab <- "Threshold probability" } matplot(u, x, type = "l", lty = lty, col = col, main = main, xlab = xlab, ylab = ylab, ...) invisible(list(x = u, y = x)) } "tcplot"<- function(data, tlim, model = c("gpd", "pp"), pscale = FALSE, cmax = FALSE, r = 1, ulow = -Inf, rlow = 1, nt = 25, which = 1:npar, conf = 0.95, lty = 1, lwd = 1, type = "b", cilty = 1, vci = TRUE, xlab, xlim, ylabs, ylims, ask = nb.fig < length(which) && dev.interactive(), ...) { model <- match.arg(model) u <- seq(tlim[1], tlim[2], length = nt) if(pscale) { tlim[1] <- mean(data <= tlim[1], na.rm = TRUE) tlim[2] <- mean(data <= tlim[2], na.rm = TRUE) pvec <- seq(tlim[1], tlim[2], length = nt) u <- quantile(data, probs = pvec, na.rm = TRUE) } locs <- scls <- shps <- matrix(NA, nrow = nt, ncol = 3) dimnames(locs) <- list(round(u,2), c("lower", "loc", "upper")) dimnames(shps) <- list(round(u,2), c("lower", "shape", "upper")) if(model == "gpd") { pname <- "mscale" npar <- 2 } if(model == "pp") { pname <- "scale" npar <- 3 } dimnames(scls) <- list(round(u,2), c("lower", pname, "upper")) z <- fpot(data, u[1], model = model, cmax = cmax, r = r, ulow = ulow, rlow = rlow, corr = TRUE, ...) stvals <- as.list(round(fitted(z), 3)) for(i in 1:nt) { z <- fpot(data, u[i], model = model, start = stvals, cmax = cmax, r = r, ulow = ulow, rlow = rlow, corr = TRUE, ...) stvals <- as.list(fitted(z)) mles <- fitted(z) stderrs <- std.errors(z) cnst <- qnorm((1 + conf)/2) shp <- mles["shape"] scl <- mles["scale"] shpse <- stderrs["shape"] sclse <- stderrs["scale"] if(model == "pp") { loc <- mles["loc"] locse <- stderrs["loc"] locs[i,] <- c(loc - cnst*locse, loc, loc + cnst*locse) } if(model == "gpd") { scl <- scl - shp*u[i] covar <- z$corr[1,2] * prod(stderrs) sclse <- sqrt(sclse^2 - 2*u[i]*covar + (u[i]*shpse)^2) } scls[i,] <- c(scl - cnst*sclse, scl, scl + cnst*sclse) shps[i,] <- c(shp - cnst*shpse, shp, shp + cnst*shpse) } show <- rep(FALSE, npar) show[which] <- TRUE nb.fig <- prod(par("mfcol")) if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if(pscale) u <- pvec if(missing(xlim)) xlim <- tlim if(missing(xlab)) { xlab <- "Threshold" if(pscale) xlab <- "Threshold probability" } if(model == "pp") { ylab <- c("Location","Scale","Shape") if(!missing(ylabs)) ylab[show] <- ylabs ylim <- rbind(range(locs), range(scls), range(shps)) if(!missing(ylims)) ylim[show,] <- ylims if(show[1]) { matplot(u, locs, type = "n", xlab = xlab, ylab = ylab[1], xlim = xlim, ylim = ylim[1,]) lines(u, locs[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, locs[,1], u, locs[,3], lty = cilty) else { lines(u, locs[,1], lty = cilty) lines(u, locs[,3], lty = cilty) } } if(show[2]) { matplot(u, scls, type = "n", xlab = xlab, ylab = ylab[2], xlim = xlim, ylim = ylim[2,]) lines(u, scls[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, scls[,1], u, scls[,3], lty = cilty) else { lines(u, scls[,1], lty = cilty) lines(u, scls[,3], lty = cilty) } } if(show[3]) { matplot(u, shps, type = "n", xlab = xlab, ylab = ylab[3], xlim = xlim, ylim = ylim[3,]) lines(u, shps[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, shps[,1], u, shps[,3], lty = cilty) else { lines(u, shps[,1], lty = cilty) lines(u, shps[,3], lty = cilty) } } rtlist <- list(locs = locs, scales = scls, shapes = shps) } if(model == "gpd") { ylab <- c("Modified Scale","Shape") if(!missing(ylabs)) ylab[show] <- ylabs ylim <- rbind(range(scls), range(shps)) if(!missing(ylims)) ylim[show,] <- ylims if(show[1]) { matplot(u, scls, type = "n", xlab = xlab, ylab = ylab[1], xlim = xlim, ylim = ylim[1,]) lines(u, scls[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, scls[,1], u, scls[,3], lty = cilty) else { lines(u, scls[,1], lty = cilty) lines(u, scls[,3], lty = cilty) } } if(show[2]) { matplot(u, shps, type = "n", xlab = xlab, ylab = ylab[2], xlim = xlim, ylim = ylim[2,]) lines(u, shps[,2], lty = lty, lwd = lwd, type = type) if(vci) segments(u, shps[,1], u, shps[,3], lty = cilty) else { lines(u, shps[,1], lty = cilty) lines(u, shps[,3], lty = cilty) } } rtlist <- list(scales = scls, shapes = shps) } invisible(rtlist) } "chiplot"<- function(data, nq = 100, qlim = NULL, which = 1:2, conf = 0.95, trunc = TRUE, spcases = FALSE, lty = 1, cilty = 2, col = 1, cicol = 1, xlim = c(0,1), ylim1 = c(-1,1), ylim2 = c(-1,1), main1 = "Chi Plot", main2 = "Chi Bar Plot", xlab = "Quantile", ylab1 = "Chi", ylab2 = "Chi Bar", ask = nb.fig < length(which) && dev.interactive(), ...) { data <- na.omit(data) n <- nrow(data) data <- cbind(rank(data[, 1])/(n + 1), rank(data[, 2])/(n + 1)) rowmax <- apply(data, 1, max) rowmin <- apply(data, 1, min) eps <- .Machine$double.eps^0.5 qlim2 <- c(min(rowmax) + eps, max(rowmin) - eps) if(!is.null(qlim)) { if(qlim[1] < qlim2[1]) stop("lower quantile limit is too low") if(qlim[2] > qlim2[2]) stop("upper quantile limit is too high") if(qlim[1] > qlim[2]) stop("lower quantile limit is less than upper quantile limit") } else qlim <- qlim2 u <- seq(qlim[1], qlim[2], length = nq) cu <- cbaru <- numeric(nq) for(i in 1:nq) cu[i] <- mean(rowmax < u[i]) for(i in 1:nq) cbaru[i] <- mean(rowmin > u[i]) chiu <- 2 - log(cu)/log(u) chibaru <- (2 * log(1 - u))/log(cbaru) - 1 cnst <- qnorm((1 + conf)/2) varchi <- ((1/log(u)^2 * 1)/cu^2 * cu * (1 - cu))/n varchi <- cnst * sqrt(varchi) varchibar <- (((4 * log(1 - u)^2)/(log(cbaru)^4 * cbaru^2)) * cbaru * ( 1 - cbaru))/n varchibar <- cnst * sqrt(varchibar) chiu <- cbind(chilow = chiu-varchi, chi = chiu, chiupp = chiu+varchi) chibaru <- cbind(chiblow = chibaru-varchibar, chib = chibaru, chibupp = chibaru+varchibar) chiulb <- 2-log(pmax(2*u-1,0))/log(u) chibarulb <- 2*log(1-u)/log(1-2*u+pmax(2*u-1,0)) - 1 if(trunc) { chiu[chiu > 1] <- 1 chibaru[chibaru > 1] <- 1 chiu <- apply(chiu, 2, function(x) pmax(x, chiulb)) chibaru <- apply(chibaru, 2, function(x) pmax(x, chibarulb)) } show <- logical(2) show[which] <- TRUE lty <- c(cilty, lty, cilty) col <- c(cicol, col, cicol) nb.fig <- prod(par("mfcol")) if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if(show[1]) { matplot(u, chiu, type = "l", lty = lty, col = col, xlim = xlim, ylim = ylim1, main = main1, xlab = xlab, ylab = ylab1, ...) if(spcases) { segments(qlim[1],0,qlim[2],0, lty = 5, col = "grey") segments(qlim[1],1,qlim[2],1, lty = 5, col = "grey") lines(u, chiulb, lty = 5, col = "grey") } } if(show[2]) { matplot(u, chibaru, type = "l", lty = lty, col = col, xlim = xlim, ylim = ylim2, main = main2, xlab = xlab, ylab = ylab2, ...) if(spcases) { segments(qlim[1],0,qlim[2],0, lty = 5, col = "grey") segments(qlim[1],1,qlim[2],1, lty = 5, col = "grey") lines(u, chibarulb, lty = 5, col = "grey") } } plvals <- list(quantile = u, chi = chiu, chibar = chibaru) if(!show[1]) plvals$chi <- NULL if(!show[2]) plvals$chib <- NULL invisible(plvals) } ## Bivariate Threshold Choice ## "bvtcplot"<- function(x, spectral = FALSE, xlab, ylab, ...) { if(!is.matrix(x) && !is.data.frame(x)) stop("`x' must be a matrix or data frame") if(ncol(x) != 2) stop("`x' has incorrect number of columns") x <- x[complete.cases(x),] nn <- nrow(x) ula <- apply(x, 2, rank)/(nn + 1) fla <- -1/log(ula) rr <- rowSums(fla); ww <- fla/rr rro <- sort(rr, decreasing = TRUE)[-1] k <- 1:(nn-1) k0 <- max(which(rro*k/nn > 2)) if(!spectral) { if(missing(xlab)) xlab <- "k" if(missing(ylab)) ylab <- "H([0,1])" plot(k, rro*k/nn, xlab = xlab, ylab = ylab, ...) abline(h = 2, v = k0) return(invisible(list(x = k, y = rro*k/nn, k0 = k0))) } xx <- yy <- seq(0, 1, len = 100) for(k in 1:100) yy[k] <- sum(rr > rro[k0] & ww[,1] <= xx[k]) if(missing(xlab)) xlab <- "w" if(missing(ylab)) ylab <- "H([0,w])" plot(xx, 2/k0 * yy, type = "l", xlab = xlab, ylab = ylab, ...) abline(h = c(0,2)) return(invisible(list(x = xx, y = 2/k0 * yy, k0 = k0))) } ## Hypothesis test for independence ## "evind.test"<- function(x, method = c("ratio", "score"), verbose = FALSE) { method <- match.arg(method) if(!is.matrix(x) && !is.data.frame(x)) stop("`x' must be a matrix or data frame") if(ncol(x) != 2) stop("`x' has incorrect number of columns") dname <- paste(deparse(substitute(x))) if(method == "ratio") { meth <- "Likelihood Ratio Test Of Independence" fobj1 <- fbvevd(x, model = "log") estimate <- fitted(fobj1) if(!verbose) estimate <- estimate["dep"] fobj2 <- fbvevd(x, model = "log", dep = 1) lrt <- anova(fobj1, fobj2, half = TRUE) stat <- c(norm.llhratio = lrt[["Chisq"]][2]) pval <- c(p.value = lrt[["Pr(>chisq)"]][2]) } if(method == "score") { meth <- "Score Test Of Independence" fobj1 <- fbvevd(x, model = "log") estimate <- fitted(fobj1) if(!verbose) estimate <- estimate["dep"] fobj2 <- fbvevd(x, model = "log", dep = 1) ft <- fitted(fobj2) mmles <- list(ft[c("loc1","scale1","shape1")], ft[c("loc2","scale2","shape2")]) xtr <- mtransform(x, mmles) xtr <- xtr[complete.cases(xtr),] nn <- nrow(xtr) rsm <- rowSums(xtr) rsl <- rowSums(xtr * log(xtr)) tawn <- rsl - log(apply(xtr, 1, prod)) - (rsm - 2) * log(rsm) - 1/rsm tawn <- (nn/2 * log(nn))^(-1/2) * sum(tawn) stat <- c(norm.score = tawn) pval <- c(p.value = pnorm(tawn)) } rval <- list(statistic = stat, p.value = pval, estimate = estimate, null.value = c(dependence = "independence"), alternative = "greater", method = meth, data.name = dname) class(rval) <- "htest" return(rval) } evd/R/bvpot.R0000644000176000001440000010444513264360664012560 0ustar ripleyusers fbvpot <- function(x, threshold, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), likelihood = c("censored","poisson"), start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() likelihood <- match.arg(likelihood) ft <- switch(likelihood, censored = fbvcpot(x = x, u = threshold, model = model, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), poisson = fbvppot(x = x, u = threshold, model = model, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf)) structure(c(ft, call = call), class = c("bvpot", "evd")) } fbvcpot <- function(x, u, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { model <- match.arg(model) if(sym && !(model %in% c("alog","aneglog","ct"))) warning("Argument `sym' was ignored") switch(model, log = fbvclog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), bilog = fbvcbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), alog = fbvcalog(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), neglog = fbvcneglog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), negbilog = fbvcnegbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), aneglog = fbvcaneglog(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), ct = fbvcct(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), hr = fbvchr(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), amix = fbvcamix(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf)) } fbvppot <- function(x, u, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { model <- match.arg(model) if(model %in% c("alog","aneglog","amix")) stop("This model is not appropriate for poisson likelihood") if(sym && (model != "ct")) warning("Argument `sym' was ignored") switch(model, log = fbvplog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), bilog = fbvpbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), neglog = fbvpneglog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), negbilog = fbvpnegbilog(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), ct = fbvpct(x = x, u = u, start = start, ..., sym = sym, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf), hr = fbvphr(x = x, u = u, start = start, ..., sym = FALSE, cshape = cshape, cscale = cscale, std.err = std.err, corr = corr, method = method, warn.inf = warn.inf)) } ### Censored Likelihood Fitting ### fbvclog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvclog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvclog, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "log") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvclog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvclog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvclog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvclog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "log") } fbvcbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvcbilog, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "bilog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvcbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "bilog") } fbvcalog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcalog <- function(scale1, shape1, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvcalog, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, asy1, asy2, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "alog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym, TRUE) f <- formals(nllbvcalog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcalog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcalog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcalog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "alog") } fbvcneglog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcneglog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvcneglog, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "neglog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvcneglog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcneglog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcneglog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcneglog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "neglog") } fbvcnegbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcnegbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvcnegbilog, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "negbilog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvcnegbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcnegbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcnegbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcnegbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "negbilog") } fbvcaneglog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcaneglog <- function(scale1, shape1, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvcaneglog, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, asy1, asy2, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "aneglog") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym, TRUE) f <- formals(nllbvcaneglog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcaneglog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcaneglog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcaneglog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "aneglog") } fbvcct <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcct <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(sym) beta <- alpha if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvcct, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "alpha", "beta") else param <- c(param, "alpha") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "ct") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym) f <- formals(nllbvcct)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcct) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcct(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcct(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "ct") } fbvchr <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvchr <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvchr, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "hr") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvchr)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvchr) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvchr(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvchr(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "hr") } fbvcamix <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvcamix <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvcamix, spx$x1, spx$x2, spx$nn, spx$n, spx$thdi, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "amix") spx <- sep.bvdata(x = x, method = "cpot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvcamix)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvcamix) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvcamix(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvcamix(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "censored", model = "amix") } ### Poisson Likelihood Fitting ### fbvplog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvplog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvplog, spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "log") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvplog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvplog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvplog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvplog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "log") } fbvpneglog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpneglog <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvpneglog, spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "neglog") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvpneglog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpneglog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpneglog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpneglog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "neglog") } fbvpct <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpct <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(sym) beta <- alpha if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvpct, spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "alpha", "beta") else param <- c(param, "alpha") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "ct") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, !sym) f <- formals(nllbvpct)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpct) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpct(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpct(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "ct") } fbvpbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvpbilog, spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "bilog") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvpbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "bilog") } fbvpnegbilog <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvpnegbilog <- function(scale1, shape1, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvpnegbilog, spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, alpha, beta, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "negbilog") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE, TRUE) f <- formals(nllbvpnegbilog)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvpnegbilog) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvpnegbilog(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvpnegbilog(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "negbilog") } fbvphr <- function(x, u, start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nllbvphr <- function(scale1, shape1, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 .C(C_nllbvphr, spx$x1, spx$x2, spx$nn, spx$thdi, spx$r1, spx$r2, spx$lambda, dep, scale1, shape1, scale2, shape2, dns = double(1))$dns } param <- c("scale1", "shape1") if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, method = "pot", u = u, model = "hr") spx <- sep.bvdata(x = x, method = "ppot", u = u) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- c(TRUE, TRUE, !cscale, !cshape, TRUE) f <- formals(nllbvphr)[prind] names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nllbvphr) <- c(f[m], f[-m]) nll <- function(p, ...) nllbvphr(p, ...) if(l > 1) { body(nll) <- parse(text = paste("nllbvphr(", paste("p[", 1:l, "]", collapse=", "), ", ...)")) } start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nll", start.arg) == 1e+06) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nll, hessian = std.err, ..., method = method) cmar <- c(cscale, cshape); nat <- spx$nat bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, method = "pot", u = u, nat = nat, likelihood = "poisson", model = "hr") } ### Method Function ### "print.bvpot" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Likelihood:", x$likelihood, "\n") cat("Deviance:", deviance(x), "\n") cat("AIC:", AIC(x), "\n") if(!is.null(x$dep.summary)) cat("Dependence:", x$dep.summary, "\n") cat("\nThreshold:", round(x$threshold, digits), "\n") cat("Marginal Number Above:", x$nat[1:2], "\n") cat("Marginal Proportion Above:", round(x$nat[1:2]/x$n, digits), "\n") cat("Number Above:", x$nat[3], "\n") cat("Proportion Above:", round(x$nat[3]/x$n, digits), "\n") cat("\nEstimates\n") print.default(format(fitted(x), digits = digits), print.gap = 2, quote = FALSE) if(!is.null(std.errors(x))) { cat("\nStandard Errors\n") print.default(format(std.errors(x), digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } evd/R/nonpar.R0000644000176000001440000002753214212017116012705 0ustar ripleyusers "abvnonpar"<- function(x = 0.5, data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, method = c("cfg","pickands","tdo","pot"), k = nrow(data)/4, convex = FALSE, rev = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, blty = 3, blwd = 1, xlim = c(0,1), ylim = c(0.5,1), xlab = "t", ylab = "A(t)", ...) { if(mode(x) != "numeric" || any(x < 0, na.rm=TRUE) || any(x > 1, na.rm=TRUE)) stop("invalid argument for `x'") method <- match.arg(method) # Empirical transform to exponential epdata <- apply(data, 2, rank, na.last = "keep") nasm <- apply(data, 2, function(x) sum(!is.na(x))) epdata <- epdata / rep(nasm+1, each = nrow(data)) epdata <- -log(epdata) if(epmar) data <- epdata # End empirical transform if(!epmar) { if(method == "pot") { # Parametric pot transform to exponential if(any(k >= nasm)) stop("k is too large") u1 <- sort(data[,1], decreasing = TRUE)[k+1] u2 <- sort(data[,2], decreasing = TRUE)[k+1] d1ab <- (data[,1] > u1) & !is.na(data[,1]) d2ab <- (data[,2] > u2) & !is.na(data[,2]) if(!is.null(kmar)) { data[d1ab,1] <- mtransform(data[d1ab,1], c(u1, kmar)) data[d2ab,2] <- mtransform(data[d2ab,2], c(u2, kmar)) } else { mle.m1 <- c(u1, fitted(fpot(data[d1ab,1], threshold = u1))) mle.m2 <- c(u2, fitted(fpot(data[d2ab,2], threshold = u2))) data[d1ab,1] <- mtransform(data[d1ab,1], mle.m1) data[d2ab,2] <- mtransform(data[d2ab,2], mle.m2) } data[d1ab,1] <- -log(1 - k * data[d1ab,1] / nasm[1]) data[d2ab,2] <- -log(1 - k * data[d2ab,2] / nasm[2]) data[!d1ab, 1] <- epdata[!d1ab, 1] data[!d2ab, 2] <- epdata[!d2ab, 2] # End parametric pot transform } if(method != "pot") { # Parametric gev transform to exponential if(!is.null(kmar)) { data <- mtransform(data, kmar) } else { if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(data)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(data)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } mle.m1 <- fitted(fgev(data[,1], nsloc = nsloc1, std.err = FALSE)) loc.mle.m1 <- mle.m1[grep("^loc", names(mle.m1))] if(is.null(nsloc1)) loc.mle.m1 <- rep(loc.mle.m1, nrow(data)) else loc.mle.m1 <- nslocmat1 %*% loc.mle.m1 mle.m1 <- cbind(loc.mle.m1, mle.m1["scale"], mle.m1["shape"]) mle.m2 <- fitted(fgev(data[,2], nsloc = nsloc2, std.err = FALSE)) loc.mle.m2 <- mle.m2[grep("^loc", names(mle.m2))] if(is.null(nsloc2)) loc.mle.m2 <- rep(loc.mle.m2, nrow(data)) else loc.mle.m2 <- nslocmat2 %*% loc.mle.m2 mle.m2 <- cbind(loc.mle.m2, mle.m2["scale"], mle.m2["shape"]) data <- mtransform(data, list(mle.m1, mle.m2)) } # End parametric gev transform } } if(rev) data <- data[,2:1] data <- na.omit(data) if(plot || add) x <- seq(0, 1, length = 100) d1 <- data[,1]; d2 <- data[,2] sum1 <- sum(d1); slm1 <- sum(log(d1)) sum2 <- sum(d2); slm2 <- sum(log(d2)) nn <- nrow(data) nx <- length(x) mpmin <- function(a,b) { a[a > b] <- b[a > b] a } mpmax <- function(a,b) { a[a < b] <- b[a < b] a } if(method == "cfg") { if(!convex) { a <- numeric(nx) for(i in 1:nx) a[i] <- sum(log(mpmax((1-x[i]) * d1, x[i] * d2))) a <- (a - (1-x) * slm1 - x * slm2)/nn a <- pmin(1, pmax(exp(a), x, 1-x)) } else { x2 <- seq(0, 1, length = 250) a <- numeric(250) for(i in 1:250) a[i] <- sum(log(mpmax((1-x2[i]) * d1, x2[i] * d2))) a <- (a - (1-x2) * slm1 - x2 * slm2)/nn a <- pmin(1, pmax(exp(a), x2, 1-x2)) inch <- chull(x2, a) a <- a[inch] ; x2 <- x2[inch] a <- approx(x2, a, xout = x, method="linear")$y } } if(method == "pickands") { if(!convex) { a <- numeric(nx) if(madj == 2) { d1 <- d1/mean(d1) d2 <- d2/mean(d2) } for(i in 1:nx) a[i] <- sum(mpmin(d1/x[i], d2/(1-x[i]))) if(madj == 1) a <- a - x * sum1 - (1-x) * sum2 + nn a <- nn / a a <- pmin(1, pmax(a, x, 1-x)) } else { x2 <- seq(0, 1, length = 250) a <- numeric(250) if(madj == 2) { d1 <- d1/mean(d1) d2 <- d2/mean(d2) } for(i in 1:250) a[i] <- sum(mpmin(d1/x2[i], d2/(1-x2[i]))) if(madj == 1) a <- a - x2 * sum1 - (1-x2) * sum2 + nn a <- nn / a a <- pmin(1, pmax(a, x2, 1-x2)) inch <- chull(x2, a) a <- a[inch] ; x2 <- x2[inch] a <- approx(x2, a, xout = x, method="linear")$y } } # Undocumented method: Tiago de Oliveira (1997) if(method == "tdo") { if(!convex) { a <- numeric(nx) for(i in 1:nx) a[i] <- sum(mpmin(x[i]/(1 + nn*d1), (1-x[i])/(1 + nn*d2))) a <- 1 - a/(1 + log(nn)) a <- pmin(1, pmax(a, x, 1-x)) } else { x2 <- seq(0, 1, length = 250) a <- numeric(250) for(i in 1:250) a[i] <- sum(mpmin(x2[i]/(1 + nn*d1), (1-x2[i])/(1 + nn*d2))) a <- 1 - a/(1 + log(nn)) a <- pmin(1, pmax(a, x2, 1-x2)) inch <- chull(x2, a) a <- a[inch] ; x2 <- x2[inch] a <- approx(x2, a, xout = x, method="linear")$y } } # Undocumented pot method: Beirlant et al (2004) if(method == "pot") { a <- numeric(nx) rr <- rowSums(1/data) rrk <- sort(rr, decreasing = TRUE)[k+1] for(i in 1:nx) a[i] <- sum(mpmax(x[i]/(d1 * rr), (1 - x[i])/(d2 * rr))[rr > rrk]) a <- 2/k * a a0 <- 2/k * sum(1/(d2 * rr)[rr > rrk]) a1 <- 2/k * sum(1/(d1 * rr)[rr > rrk]) a <- a + 1 - (1-x) * a0 - x * a1 a <- pmin(1, pmax(a, x, 1-x)) } if(plot || add) { if(!add) { plot(x, a, type="n", xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) polygon(c(0, 0.5, 1), c(1, 0.5, 1), lty = blty, lwd = blwd) } lines(x, a, lty = lty, lwd = lwd, col = col) return(invisible(list(x = x, y = a))) } a } "qcbvnonpar"<- function(p = seq(0.75, 0.95, 0.05), data, epmar = FALSE, nsloc1 = NULL, nsloc2 = NULL, mint = 1, method = c("cfg","pickands","tdo"), convex = FALSE, madj = 0, kmar = NULL, plot = FALSE, add = FALSE, lty = 1, lwd = 1, col = 1, xlim = range(data[,1], na.rm = TRUE), ylim = range(data[,2], na.rm = TRUE), xlab = colnames(data)[1], ylab = colnames(data)[2], ...) { if(mode(p) != "numeric" || any(p <= 0) || any(p >= 1)) stop("`p' must be a vector of probabilities") method <- match.arg(method) nxv <- 100 x <- seq(0, 1, length = nxv) ax <- abvnonpar(x = x, data = data, epmar = epmar, nsloc1 = nsloc1, nsloc2 = nsloc2, method = method, convex = convex, madj = madj, kmar = kmar, plot = FALSE) np <- length(p) qct <- list() p <- p^mint if(add) { xlim <- par("usr")[1:2] ylim <- par("usr")[1:2] if(par("xlog")) xlim <- 10^xlim if(par("ylog")) ylim <- 10^ylim } for(i in 1:np) { qct[[i]] <- -cbind(x/ax * log(p[i]), (1-x)/ax * log(p[i])) if(epmar) { qct[[i]] <- cbind(quantile(data[,1], probs = exp(-qct[[i]][,1]), na.rm = TRUE), quantile(data[,2], probs = exp(-qct[[i]][,2]), na.rm = TRUE)) } else { if(is.null(kmar)) { # Transform from exponential margins mle.m1 <- fitted(fgev(data[,1], nsloc = nsloc1, std.err = FALSE)) mle.m2 <- fitted(fgev(data[,2], nsloc = nsloc2, std.err = FALSE)) mle.m1 <- mle.m1[c("loc","scale","shape")] mle.m2 <- mle.m2[c("loc","scale","shape")] qct[[i]] <- mtransform(qct[[i]], list(mle.m1, mle.m2), inv = TRUE) } else { if(!is.null(nsloc1) || !is.null(nsloc2)) warning("ignoring `nsloc1' and `nsloc2' arguments") qct[[i]] <- mtransform(qct[[i]], kmar, inv = TRUE) } } qct[[i]][1,1] <- 1.5 * xlim[2] qct[[i]][nxv,2] <- 1.5 * ylim[2] } if((!is.null(nsloc1) || !is.null(nsloc2)) && !epmar && is.null(kmar)) { data <- fbvevd(data, model = "log", dep = 1, nsloc1 = nsloc1, nsloc2 = nsloc2, std.err = FALSE)$tdata } if(plot) { plot(data, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) return(invisible(qct)) } if(add) { for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) return(invisible(qct)) } qct } "amvnonpar"<- function(x = rep(1/d,d), data, d = 3, epmar = FALSE, nsloc = NULL, madj = 0, kmar = NULL, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { if(!plot) { if(is.vector(x)) x <- as.matrix(t(x)) if(!is.matrix(x) || ncol(x) != d) stop("`x' must be a vector/matrix with `d' elements/columns") if(any(x < 0, na.rm = TRUE)) stop("`x' must be non-negative") rs <- rowSums(x) if(any(rs <= 0, na.rm = TRUE)) stop("row(s) of `x' must have a positive sum") if(max(abs(rs[!is.na(rs)] - 1)) > 1e-6) warning("row(s) of `x' will be rescaled") x <- x/rs } if(missing(data) || ncol(data) != d) stop("data must have `d' columns") if(plot) { if(d == 2) stop("use abvnonpar for bivariate plots") if(d >= 4) stop("cannot plot in high dimensions") } if(epmar) { # Empirical transform to exponential data <- apply(data, 2, rank, na.last = "keep") nasm <- apply(data, 2, function(x) sum(!is.na(x))) data <- data / rep(nasm+1, each = nrow(data)) data <- -log(data) # End empirical transform } if(!epmar) { # Parametric gev transform to exponential if(!is.null(kmar)) { data <- mtransform(data, kmar) } else { if(!is.null(nsloc)) { nslocmat <- list() if(!is.list(nsloc)) nsloc <- rep(list(nsloc), d) if(length(nsloc) != d) stop("`nsloc' should have `d' elements") for(k in 1:d) { if(!is.null(nsloc[[k]])) { if(is.vector(nsloc[[k]])) nsloc[[k]] <- data.frame(trend = nsloc[[k]]) if(nrow(nsloc[[k]]) != nrow(data)) stop("`nsloc' and data are not compatible") nslocmat[[k]] <- cbind(1, as.matrix(nsloc[[k]])) } } } mles <- list() for(k in 1:d) { mle.m <- fitted(fgev(data[,k], nsloc = nsloc[[k]], std.err = FALSE)) loc.mle.m <- mle.m[grep("^loc", names(mle.m))] if(is.null(nsloc[[k]])) loc.mle.m <- rep(loc.mle.m, nrow(data)) else loc.mle.m <- nslocmat[[k]] %*% loc.mle.m mles[[k]] <- cbind(loc.mle.m, mle.m["scale"], mle.m["shape"]) } data <- mtransform(data, mles) } # End parametric gev transform } data <- na.omit(data) depfn <- function(x, data, madj) { # quicker apply(am, 2, min) mpmin <- function(am,nr) { a <- am[1,] for(i in 2:nr) a[a > am[i,]] <- am[i, a > am[i,]] a } nn <- nrow(data) nx <- nrow(x) csum <- colSums(data) a <- numeric(nx) if(madj == 2) data <- nn * sweep(data, 2, csum, "/") for(i in 1:nx) { a[i] <- sum(mpmin(t(data)/x[i,], d)) } if(madj == 1) a <- a - colSums(t(x) * csum) + nn a <- nn / a xrmax <- apply(x, 1, max) pmin(1, pmax(a, xrmax)) } if(plot) { mz <- tvdepfn(depfn = depfn, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex, data = data, madj = madj) return(invisible(mz)) } depfn(x = x, data = data, madj = madj) } evd/R/stocproc.R0000644000176000001440000002037713264361331013253 0ustar ripleyusers "evmc" <- function(n, dep, asy = c(1,1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), margins = c("uniform","rweibull","frechet","gumbel")) { model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, c("log", "hr", "neglog")) m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") nn <- as.integer(1) if(!(model %in% m1)) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0) stop("invalid argument for `dep'") if((model %in% c("log", "alog")) && dep > 1) stop("`dep' must be in the interval (0,1]") dep <- as.double(dep) } if(!(model %in% m2)) { if(length(asy) != 2 || mode(asy) != "numeric" || min(asy) < 0 || max(asy) > 1) stop("invalid argument for `asy'") if(model == "alog" && (dep == 1 || any(asy == 0))) { asy <- c(0,0) dep <- 1 } asy <- as.double(asy[c(2,1)]) } if(!(model %in% m3)) { if(length(alpha) != 1 || mode(alpha) != "numeric") stop("invalid argument for `alpha'") if(length(beta) != 1 || mode(beta) != "numeric") stop("invalid argument for `beta'") if(model != "amix" && (alpha <= 0 || beta <= 0)) stop("`alpha' and `beta' must be positive") if(model == "bilog" && any(c(alpha,beta) >= 1)) stop("`alpha' and `beta' must be in the open interval (0,1)") if(model == "amix") { if(alpha < 0) stop("`alpha' must be non-negative") if((alpha + beta) > 1) stop("`alpha' + `beta' cannot be greater than one") if((alpha + 2*beta) > 1) stop("`alpha' + `2*beta' cannot be greater than one") if((alpha + 3*beta) < 0) stop("`alpha' + `3*beta' must be non-negative") alpha <- as.double(alpha + 3*beta) beta <- as.double(-beta) } else { alpha <- as.double(beta) beta <- as.double(alpha) } } evmc <- runif(n) for(i in 2:n) { evmc[c(i,i-1)] <- switch(model, log = .C(C_rbvlog, nn, dep, sim = evmc[c(i,i-1)])$sim, alog = .C(C_rbvalog, nn, dep, asy, sim = evmc[c(i,i-1)])$sim, hr = .C(C_rbvhr, nn, dep, sim = evmc[c(i,i-1)])$sim, neglog = .C(C_rbvneglog, nn, dep, sim = evmc[c(i,i-1)])$sim, aneglog = .C(C_rbvaneglog, nn, dep, asy, sim = evmc[c(i,i-1)])$sim, bilog = .C(C_rbvbilog, nn, alpha, beta, sim = evmc[c(i,i-1)])$sim, negbilog = .C(C_rbvnegbilog, nn, alpha, beta, sim = evmc[c(i,i-1)])$sim, ct = .C(C_rbvct, nn, alpha, beta, sim = evmc[c(i,i-1)])$sim, amix = .C(C_rbvamix, nn, alpha, beta, sim = evmc[c(i,i-1)])$sim) } switch(match.arg(margins), frechet = -1/log(evmc), uniform = evmc, rweibull = log(evmc), gumbel = -log(-log(evmc))) } "marma" <- function(n, p = 0, q = 0, psi, theta, init = rep(0, p), n.start = p, rand.gen = rfrechet, ...) { if(missing(psi)) psi <- numeric(0) if(missing(theta)) theta <- numeric(0) if(length(psi) != p || !is.numeric(psi) || any(psi < 0)) stop("`par' must be a non-negative vector of length `p'") if(length(theta) != q || !is.numeric(theta) || any(theta < 0)) stop("`theta' must be a non-negative vector of length `q'") if(length(init) != p || !is.numeric(init) || any(init < 0)) stop("`init' must be a non-negative vector of length `p'") marma <- c(init, numeric(n + n.start - p)) theta <- c(1, theta) innov <- rand.gen(n.start + n + q, ...) for(i in 1:(n + n.start - p)) marma[i+p] <- max(c(psi * marma[(i+p-1):i], theta * innov[(i+q):i])) if(n.start) marma <- marma[-(1:n.start)] marma } "mma" <- function(n, q = 1, theta, rand.gen = rfrechet, ...) { marma(n = n, q = q, theta = theta, rand.gen = rand.gen, ...) } "mar" <- function(n, p = 1, psi, init = rep(0, p), n.start = p, rand.gen = rfrechet, ...) { marma(n = n, p = p, psi = psi, init = init, n.start = n.start, rand.gen = rand.gen, ...) } "clusters"<- function(data, u, r = 1, ulow = -Inf, rlow = 1, cmax = FALSE, keep.names = TRUE, plot = FALSE, xdata = seq(along = data), lvals = TRUE, lty = 1, lwd = 1, pch = par("pch"), col = if(n > 250) NULL else "grey", xlab = "Index", ylab = "Data", ...) { n <- length(data) if(length(u) != 1) u <- rep(u, length.out = n) if(length(ulow) != 1) ulow <- rep(ulow, length.out = n) if(any(ulow > u)) stop("`u' cannot be less than `ulow'") if(is.null(names(data)) && keep.names) names(data) <- 1:n if(!keep.names) names(data) <- NULL high <- as.double((data > u) & !is.na(data)) high2 <- as.double((data > ulow) | is.na(data)) clstrs <- .C(C_clusters, high, high2, n, as.integer(r), as.integer(rlow), clstrs = double(3*n))$clstrs clstrs <- matrix(clstrs, n, 3) start <- clstrs[,2] ; end <- clstrs[,3] splvec <- clstrs[,1] start <- as.logical(start) end <- as.logical(end) clstrs <- split(data, splvec) names(clstrs) <- paste("cluster", names(clstrs), sep = "") if(any(!splvec)) clstrs <- clstrs[-1] nclust <- length(clstrs) acs <- sum(high)/nclust if(plot) { if(length(xdata) != length(data)) stop("`xdata' and `data' have different lengths") if(any(is.na(xdata))) stop("`xdata' cannot contain missing values") if(any(duplicated(xdata))) stop("`xdata' cannot contain duplicated values") eps <- min(diff(xdata))/2 start <- xdata[start] - eps end <- xdata[end] + eps plot(xdata, data, xlab = xlab, ylab = ylab, type = "n", ...) if(!is.null(col) && nclust > 0.5) { for(i in 1:nclust) { xvl <- c(start[i], end[i], end[i], start[i]) polygon(xvl, rep(par("usr")[3:4], each = 2), col = col) } } if(length(u) == 1) abline(h = u, lty = lty, lwd = lwd) else lines(xdata, u, lty = lty, lwd = lwd) if(lvals) { if(length(ulow) == 1) abline(h = ulow, lty = lty, lwd = lwd) else lines(xdata, ulow, lty = lty, lwd = lwd) } else { high <- as.logical(high) xdata <- xdata[high] data <- data[high] } points(xdata, data, pch = pch) } if(cmax) { if(keep.names) nmcl <- unlist(lapply(clstrs, function(x) names(x)[which.max(x)])) clstrs <- as.numeric(unlist(lapply(clstrs, max, na.rm = TRUE))) if(keep.names) names(clstrs) <- nmcl } attributes(clstrs)$acs <- acs if(plot) return(invisible(clstrs)) clstrs } "exi"<- function (data, u, r = 1, ulow = -Inf, rlow = 1) { n <- length(data) if (length(u) != 1) u <- rep(u, length.out = n) if (length(ulow) != 1) ulow <- rep(ulow, length.out = n) if (any(ulow > u)) stop("`u' cannot be less than `ulow'") if(r > 0.5) { clstrs <- clusters(data, u = u, r = r, ulow = ulow, rlow = rlow, keep.names = FALSE) exindex <- 1/attributes(clstrs)$acs } else { extms <- which(data > u) nn <- length(extms) if(nn == 0) return(NaN) if(nn == 1) return(1) iextms <- extms[-1] - extms[-nn] if(max(iextms) > 2.5) { den <- log(nn - 1) + log(sum((iextms - 1) * (iextms - 2))) exindex <- log(2) + 2*log(sum(iextms - 1)) - den exindex <- min(1, exp(exindex)) } else { den <- log(nn - 1) + log(sum(iextms^2)) exindex <- log(2) + 2*log(sum(iextms)) - den exindex <- min(1, exp(exindex)) } } exindex } exiplot <- function (data, tlim, r = 1, ulow = -Inf, rlow = 1, add = FALSE, nt = 100, lty = 1, xlab = "Threshold", ylab = "Ext. Index", ylim = c(0,1), ...) { nn <- length(data) if (all(data <= tlim[2])) stop("upper limit for threshold is too high") u <- seq(tlim[1], tlim[2], length = nt) x <- numeric(nt) for (i in 1:nt) { x[i] <- exi(data, u = u[i], r = r, ulow = ulow, rlow = rlow) } if(add) { lines(u, x, lty = lty, ...) } else { plot(u, x, type = "l", lty = lty, xlab = xlab, ylab = ylab, ylim = ylim, ...) } invisible(list(x = u, y = x)) } evd/R/mvdist.R0000644000176000001440000003343713264361075012733 0ustar ripleyusers "rmvevd" <- function(n, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0)) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") switch(model, log = rmvlog(n = n, dep = dep, d = d, mar = mar), alog = rmvalog(n = n, dep = dep, asy = asy, d = d, mar = mar)) } "rmvlog"<- # Uses Algorithm 2.1 in Stephenson(2003) function(n, dep, d = 2, mar = c(0,1,0)) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") sim <- .C(C_rmvlog_tawn, as.integer(n), as.integer(d), as.double(dep), sim = double(d*n))$sim mtransform(matrix(1/sim, ncol=d, byrow=TRUE), mar, inv = TRUE, drp = TRUE) } "rmvalog"<- # Uses Algorithm 2.2 in Stephenson(2003) function(n, dep, asy, d = 2, mar = c(0,1,0)) { nb <- 2^d-1 dep <- rep(dep, length.out = nb-d) asy <- mvalog.check(asy, dep, d = d) dep <- c(rep(1,d), dep) sim <- .C(C_rmvalog_tawn, as.integer(n), as.integer(d), as.integer(nb), as.double(dep), as.double(t(asy)), sim = double(n*d))$sim mtransform(matrix(1/sim, ncol=d, byrow=TRUE), mar, inv = TRUE, drp = TRUE) } "pmvevd" <- function(q, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), lower.tail = TRUE) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") switch(model, log = pmvlog(q = q, dep = dep, d = d, mar = mar, lower.tail = lower.tail), alog = pmvalog(q = q, dep = dep, asy = asy, d = d, mar = mar, lower.tail = lower.tail)) } "pmvlog"<- function(q, dep, d = 2, mar = c(0,1,0), lower.tail = TRUE) { if(lower.tail) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(q))) dim(q) <- c(1,d) if(ncol(q) != d) stop("`q' and `d' are not compatible") q <- mtransform(q, mar) pp <- exp(-apply(q^(1/dep),1,sum)^dep) } else { pp <- numeric(1) ss <- c(list(numeric(0)), subsets(d)) ssl <- d - sapply(ss, length) for(i in 1:(2^d)) { tmpq <- q tmpq[, ss[[i]]] <- Inf pp <- (-1)^ssl[i] * Recall(tmpq, dep, d, mar) + pp } } pp } "pmvalog"<- function(q, dep, asy, d = 2, mar = c(0,1,0), lower.tail = TRUE) { if(lower.tail) { nb <- 2^d-1 dep <- rep(dep, length.out = nb-d) asy <- mvalog.check(asy, dep, d = d) dep <- c(rep(1,d), dep) if(is.null(dim(q))) dim(q) <- c(1,d) if(ncol(q) != d) stop("`q' and `d' are not compatible") q <- mtransform(q, mar) inner <- function(par) apply((rep(par[1:d], rep(nrow(q),d))*q)^(1/par[d+1]), 1, sum)^par[d+1] comps <- apply(cbind(asy,dep),1,inner) if(is.null(dim(comps))) dim(comps) <- c(1,nb) pp <- exp(-apply(comps,1,sum)) } else { pp <- numeric(1) ss <- c(list(numeric(0)), subsets(d)) ssl <- d - sapply(ss, length) for(i in 1:(2^d)) { tmpq <- q tmpq[, ss[[i]]] <- Inf pp <- (-1)^ssl[i] * Recall(tmpq, dep, asy, d, mar) + pp } } pp } "dmvevd" <- function(x, dep, asy, model = c("log", "alog"), d = 2, mar = c(0,1,0), log = FALSE) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") switch(model, log = dmvlog(x = x, dep = dep, d = d, mar = mar, log = log), alog = dmvalog(x = x, dep = dep, asy = asy, d = d, mar = mar, log = log)) } "dmvlog"<- function(x, dep, d = 2, mar = c(0,1,0), log = FALSE) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") if(is.null(dim(x))) dim(x) <- c(1,d) if(ncol(x) != d) stop("`x' and `d' are not compatible") if(is.list(mar)) { if(length(mar) != d) stop("`mar' and `d' are not compatible") for(i in 1:d) mar[[i]] <- matrix(t(mar[[i]]), nrow = nrow(x), ncol = 3, byrow = TRUE) } else mar <- matrix(t(mar), nrow = nrow(x), ncol = 3, byrow = TRUE) dns <- numeric(nrow(x)) x <- mtransform(x, mar) ext <- apply(x, 1, function(z) any(z %in% c(0,Inf))) dns[ext] <- -Inf idep <- 1/dep cf <- matrix(0, nrow = d, ncol = d) diag(cf) <- dep^(1:d - 1) cf[,1] <- exp(lgamma(1:d - dep) - lgamma(1:d) - lgamma(1 - dep)) if(d >= 3) { for(i in 3:d) { for(j in 2:(d-1)) cf[i,j] <- ((i - 1 - j*dep) * cf[i-1,j] + dep*(j-1)*cf[i-1,j-1])/ (i - 1) } } cf <- log(cf[d,]) - lgamma(1:d) if(any(!ext)) { x <- x[!ext, ,drop=FALSE] if(is.list(mar)) { marscl <- marshp <- matrix(NA, nrow = nrow(x), ncol = d) for(i in 1:d) { mar[[i]] <- mar[[i]][!ext, ,drop=FALSE] marscl[,i] <- mar[[i]][,2] marshp[,i] <- mar[[i]][,3] } } else { mar <- mar[!ext, ,drop=FALSE] marscl <- mar[,2] marshp <- mar[,3] } z <- rowSums(x^(idep))^dep lx <- log(x) .expr1 <- rowSums(lx * (idep + marshp) - log(marscl)) dns[!ext] <- .expr1 + (1 - d*idep) * log(z) - z lz <- matrix(log(z), nrow = d, ncol = nrow(x), byrow = TRUE) lz <- (0:(d-1)) * lz + cf dns[!ext] <- dns[!ext] + log(colSums(exp(lz))) + lgamma(d) - (d-1)*log(dep) } if(!log) dns <- exp(dns) dns } "dmvalog"<- function(x, dep, asy, d = 2, mar = c(0,1,0), log = FALSE) { nb <- 2^d-1 dep <- rep(dep, length.out = nb-d) ss <- mvalog.check(asy, dep, d = d, ss = TRUE) asy <- ss$asy ; ss <- ss$ss dep <- c(rep(1,d), dep) if(is.null(dim(x))) dim(x) <- c(1,d) if(ncol(x) != d) stop("`x' and `d' are not compatible") nn <- nrow(x) if(is.list(mar)) { if(length(mar) != d) stop("`mar' and `d' are not compatible") for(i in 1:d) mar[[i]] <- matrix(t(mar[[i]]), nrow = nn, ncol = 3, byrow = TRUE) } else mar <- matrix(t(mar), nrow = nn, ncol = 3, byrow = TRUE) x <- mtransform(x, mar) ext <- apply(x, 1, function(z) any(z %in% c(0,Inf))) dns <- numeric(nn) dns[ext] <- -Inf if(any(!ext)) { x <- x[!ext, ,drop=FALSE] if(is.list(mar)) { marscl <- marshp <- matrix(NA, nrow = nn, ncol = d) for(i in 1:d) { mar[[i]] <- mar[[i]][!ext, ,drop=FALSE] marscl[,i] <- mar[[i]][,2] marshp[,i] <- mar[[i]][,3] } } else { mar <- mar[!ext, ,drop=FALSE] marscl <- mar[,2] marshp <- mar[,3] } cfinit <- function(dep) { if(dep==1) return(diag(d)) cf <- matrix(0, nrow = d, ncol = d) diag(cf) <- dep^(1:d - 1) cf[,1] <- exp(lgamma(1:d - dep) - lgamma(1:d) - lgamma(1 - dep)) if(d >= 3) { for(i in 3:d) { for(j in 2:(d-1)) cf[i,j] <- ((i - 1 - j*dep) * cf[i-1,j] + dep * (j-1) * cf[i-1,j-1])/(i - 1) } } cf } cfs <- paste("cf", 1:nb, sep = "") for(i in 1:nb) assign(cfs[i], cfinit(dep[i])) qfn <- function(lz, dep, p, cf) { if(p == 1) return(rep(0, nn)) cf <- log(cf[p,1:p]) - lgamma(1:p) lz <- matrix(lz, nrow = p, ncol = nn, byrow = TRUE) lz <- ((1-p):0) * lz + cf log(colSums(exp(lz))) + lgamma(p) - (p-1)*log(dep) } indm <- matrix(NA, nrow = 2^(d-1), ncol = d) for(i in 1:d) indm[,i] <- which(sapply(ss, function(x) i %in% x)) indm <- as.matrix(do.call("expand.grid", as.data.frame(indm))) inner <- function(par) { int <- (rep(par[1:d], each = nn) * x)^(1/par[d+1]) rowSums(int)^par[d+1] } zm <- log(apply(cbind(asy,dep), 1, inner)) if(is.null(dim(zm))) dim(zm) <- c(1,nb) vv <- rowSums(exp(zm)) lx <- log(x) mexpr <- rowSums(lx * marshp - log(marscl)) tot1 <- matrix(0, nrow = nn, ncol = 2^(d*(d-1))) tot2 <- matrix(0, nrow = nn, ncol = d) for(i in 1:(2^(d*(d-1)))) { indmi <- indm[i,] pp <- tabulate(indmi, 2^d-1)[indmi] if(all(asy[indmi + (2^d-1)*(0:(d-1))] != 0)) { for(j in 1:d) tot2[,j] <- 1/dep[indmi[j]] * (log(asy[indmi[j],j]) + lx[,j]) + (1 - 1/dep[indmi[j]]) * zm[,indmi[j]] + qfn(zm[,indmi[j]], dep[indmi[j]], pp[j], get(cfs[indmi[j]])) / pp[j] tot1[,i] <- rowSums(tot2) } else tot1[,i] <- -Inf } dns[!ext] <- log(rowSums(exp(tot1))) - vv + mexpr } if(!log) dns <- exp(dns) dns } "amvevd" <- function(x = rep(1/d,d), dep, asy, model = c("log", "alog"), d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { model <- match.arg(model) if(model == "log" && !missing(asy)) warning("ignoring `asy' argument") if(!plot) { if(is.vector(x)) x <- as.matrix(t(x)) if(!is.matrix(x) || ncol(x) != d) stop("`x' must be a vector/matrix with `d' elements/columns") if(any(x < 0, na.rm = TRUE)) stop("`x' must be non-negative") rs <- rowSums(x) if(any(rs <= 0, na.rm = TRUE)) stop("row(s) of `x' must have a positive sum") if(max(abs(rs[!is.na(rs)] - 1)) > 1e-6) warning("row(s) of `x' will be rescaled") x <- x/rs } if(plot) { if(d == 2) stop("use abvnonpar for bivariate plots") if(d >= 4) stop("cannot plot in high dimensions") } switch(model, log = amvlog(x = x, dep = dep, d = d, plot = plot, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex), alog = amvalog(x = x, dep = dep, d = d, asy = asy, plot = plot, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex)) } "amvlog"<- function(x, dep, d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { if(length(dep) != 1 || mode(dep) != "numeric" || dep <= 0 || dep > 1) stop("invalid argument for `dep'") depfn <- function(x, dep) rowSums(x^(1/dep))^dep if(plot) { mz <- tvdepfn(depfn = depfn, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex, dep = dep) return(invisible(mz)) } depfn(x = x, dep = dep) } "amvalog"<- function(x, dep, asy, d = 3, plot = FALSE, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1) { dep <- rep(dep, length.out = 2^d-d-1) asy <- mvalog.check(asy, dep, d) depfn <- function(x, dep, asy) { d <- ncol(x) dep <- c(rep(1,d), dep) tot <- matrix(0, nrow = nrow(x), ncol = 2^d-1) idep <- 1/dep x <- t(x) for(k in 1:(2^d-1)) tot[,k] <- colSums((asy[k,] * x)^idep[k])^dep[k] rowSums(tot) } if(plot) { mz <- tvdepfn(depfn = depfn, col = col, blty = blty, grid = grid, lower = lower, ord = ord, lab = lab, lcex = lcex, dep = dep, asy = asy) return(invisible(mz)) } depfn(x = x, dep = dep, asy = asy) } ### Ancillary Functions ### "tvdepfn" <- # Plots Dependence Function On Simplex S3 function(depfn, col = heat.colors(12), blty = 0, grid = if(blty) 150 else 50, lower = 1/3, ord = 1:3, lab = as.character(1:3), lcex = 1, ...) { oldpar <- par(pty="s") on.exit(par(oldpar)) s3 <- sqrt(1/3) x <- seq(-s3, s3, len = 2*grid) y <- seq(0, 1, len = 2*grid) a <- function(x,y) { w1 <- y w2 <- (x/s3 + 1 - y)/2 vals <- numeric(length(w1)) tpts <- cbind(w1,w2,w3=1-w1-w2)[, ord] nv <- apply(tpts, 1, function(b) any(b < 0)) is.na(vals) <- nv vals[!nv] <- depfn(tpts[!nv,], ...) vals } z <- outer(x,y,a) mz <- min(z, na.rm = TRUE) mxz <- max(z, na.rm = TRUE) if(mz < 1/3 || mxz > 1 || any(is.nan(z))) warning("parameters may be too near edge of parameter space") else if(mz < lower) warning("`lower' is greater than calculated values") plot(c(-s3, s3), c(0.5-s3, 0.5+s3), type="n", axes=FALSE, xlab="", ylab="") if(!is.null(lab)) { lab <- lab[ord] eps <- 0.025 text(0, 1+eps, lab[1], adj = c(0.5, 0), cex = lcex) text(s3, -eps, lab[2], adj = c(1, 1), cex = lcex) text(-s3, -eps, lab[3], adj = c(0, 1), cex = lcex) } image(x, y, z, zlim = c(lower,1), xlim = c(-s3,s3), ylim = c(0.5-s3, 0.5+s3), col = col, add = TRUE) polygon(c(-s3, s3, 0), c(0, 0, 1), lty = blty) invisible(mz) } "mvalog.check" <- # Checks And Transforms Arguments For Asymmetric Logistic function(asy, dep, d, ss = FALSE) { if(mode(dep) != "numeric" || any(dep <= 0) || any(dep > 1)) stop("invalid argument for `dep'") nb <- 2^d-1 if(mode(asy) != "list" || length(asy) != nb) stop(paste("`asy' should be a list of length", nb)) tasy <- function(theta, b) { trans <- matrix(0, nrow=nb, ncol=d) for(i in 1:nb) trans[i,(1:d %in% b[[i]])] <- theta[[i]] trans } b <- subsets(d) if(any(sapply(asy, length) != sapply(b, length))) stop("`asy' is not of the correct form") asy <- tasy(asy, b) if(!is.matrix(asy) || mode(asy) != "numeric") stop("`asy' is not of the correct form") if(min(asy) < 0 || max(asy) > 1) stop("`asy' must contain parameters in [0,1]") if(any(apply(asy,2,sum) != 1) || any(asy[c(rep(FALSE,d),dep==1),] != 0) || any(apply(asy[-(1:d),,drop=FALSE],1,function(x) sum(x!=0)) == 1)) stop("`asy' does not satisfy the appropriate constraints") if(ss) return(list(asy = asy, ss = b)) asy } "subsets" <- # Lists All Subsets Of 1:d function(d) { x <- 1:d k <- NULL for(m in x) k <- rbind(cbind(TRUE, k), cbind(FALSE, k)) pset <- apply(k, 1, function(z) x[z]) pset[sort.list(unlist(lapply(pset,length)))[-1]] } evd/R/mdiag.R0000644000176000001440000012171314225015120012462 0ustar ripleyusers### Univariate GEV and POT Models ### "plot.uvevd" <- function(x, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, a = 0, adjust = 1, jitter = FALSE, nplty = 2, ...) { if (!inherits(x, "uvevd")) stop("Use only with uvevd objects") if (!is.numeric(which) || any(which < 1) || any(which > 4)) stop("`which' must be in 1:4") nb.fig <- prod(par("mfcol")) show <- rep(FALSE, 4) show[which] <- TRUE if(missing(main)) { main <- c("Probability Plot", "Quantile Plot", "Density Plot", "Return Level Plot") } else { if(length(main) != length(which)) stop("number of plot titles is not correct") main2 <- character(4) main2[show] <- main main <- main2 } if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if (show[1]) { pp(x, ci = ci, cilwd = cilwd, a = a, main = main[1], xlim = c(0,1), ylim = c(0,1), ...) } if (show[2]) { qq(x, ci = ci, cilwd = cilwd, a = a, main = main[2], ...) } if (show[3]) { dens(x, adjust = adjust, nplty = nplty, jitter = jitter, main = main[3], ...) } if (show[4]) { rl(x, ci = ci, cilwd = cilwd, a = a, main = main[4], ...) } invisible(x) } "plot.gumbelx" <- function(x, interval, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, a = 0, adjust = 1, jitter = FALSE, nplty = 2, ...) { if (!inherits(x, "gumbelx")) stop("Use only with gumbelx objects") if (!is.numeric(which) || any(which < 1) || any(which > 4)) stop("`which' must be in 1:4") nb.fig <- prod(par("mfcol")) show <- rep(FALSE, 4) show[which] <- TRUE if(missing(main)) { main <- c("Probability Plot", "Quantile Plot", "Density Plot", "Return Level Plot") } else { if(length(main) != length(which)) stop("number of plot titles is not correct") main2 <- character(4) main2[show] <- main main <- main2 } if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if (show[1]) { pp(x, ci = ci, cilwd = cilwd, a = a, main = main[1], xlim = c(0,1), ylim = c(0,1), ...) } if (show[2]) { qq(x, interval = interval, ci = ci, cilwd = cilwd, a = a, main = main[2], ...) } if (show[3]) { dens(x, adjust = adjust, nplty = nplty, jitter = jitter, main = main[3], ...) } if (show[4]) { rl(x, interval = interval, ci = ci, cilwd = cilwd, a = a, main = main[4], ...) } invisible(x) } "qq" <- function (x, ...) UseMethod("qq") "pp" <- function (x, ...) UseMethod("pp") "rl" <- function (x, ...) UseMethod("rl") "dens" <- function (x, ...) UseMethod("dens") "qq.gev" <- function(x, ci = TRUE, cilwd = 1, a = 0, main = "Quantile Plot", xlab = "Model", ylab = "Empirical", ...) { quant <- qgev(ppoints(x$tdata, a = a), loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) if(!ci) { plot(quant, sort(x$tdata), main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgev(x$n*99, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$tdata) matplot(quant, cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], quant, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(quant-smidge, env[,1], quant+smidge, env[,1], lwd = cilwd) segments(quant-smidge, env[,2], quant+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = quant, y = sort(x$tdata))) } "pp.gev" <- function(x, ci = TRUE, cilwd = 1, a = 0, main = "Probability Plot", xlab = "Empirical", ylab = "Model", ...) { ppx <- ppoints(x$n, a = a) probs <- pgev(sort(x$tdata), loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) if(!ci) { plot(ppx, probs, main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgev(x$n*99, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) env[,1] <- pgev(env[,1], loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) env[,2] <- pgev(env[,2], loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) matplot(ppx, cbind(probs, env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], ppx, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx-smidge, env[,1], ppx+smidge, env[,1], lwd = cilwd) segments(ppx-smidge, env[,2], ppx+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = ppx, y = probs)) } "rl.gev" <- function(x, ci = TRUE, cilwd = 1, a = 0, main = "Return Level Plot", xlab = "Return Period", ylab = "Return Level", ...) { ppx <- ppoints(x$tdata, a = a) rps <- c(1.001,10^(seq(0,3,len=200))[-1]) p.upper <- 1/rps rlev <- qgev(p.upper, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"], lower.tail = FALSE) if(!ci) { plot(-1/log(ppx), sort(x$tdata),log = "x", main = main, xlab = xlab, ylab = ylab, ...) lines(-1/log(1-p.upper), rlev) } else { samp <- rgev(x$n*99, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$tdata) matplot(-1/log(ppx), cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, log = "x", ...) lines(-1/log(1-p.upper), rlev) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], log10(-1/log(ppx)), xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments((-1/log(ppx))*exp(-smidge), env[,1], (-1/log(ppx))*exp(smidge), env[,1], lwd = cilwd) segments((-1/log(ppx))*exp(-smidge), env[,2], (-1/log(ppx))*exp(smidge), env[,2], lwd = cilwd) } invisible(list(x = -1/log(1-p.upper), y = rlev)) } "dens.gev" <- function(x, adjust = 1, nplty = 2, jitter = FALSE, main = "Density Plot", xlab = "Quantile", ylab = "Density", ...) { xlimit <- range(x$tdata) xlimit[1] <- xlimit[1] - diff(xlimit) * 0.075 xlimit[2] <- xlimit[2] + diff(xlimit) * 0.075 xvec <- seq(xlimit[1], xlimit[2], length = 100) dens <- dgev(xvec, loc = x$loc, scale = x$param["scale"], shape = x$param["shape"]) plot(spline(xvec, dens), main = main, xlab = xlab, ylab = ylab, type = "l", ...) if(jitter) rug(jitter(x$tdata)) else rug(x$tdata) lines(density(x$tdata, adjust = adjust), lty = nplty) invisible(list(x = xvec, y = dens)) } "qq.gumbelx" <- function(x, interval, ci = TRUE, cilwd = 1, a = 0, main = "Quantile Plot", xlab = "Model", ylab = "Empirical", ...) { quant <- qgumbelx(ppoints(x$data, a = a), interval = interval, loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) if(!ci) { plot(quant, sort(x$data), main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgumbelx(x$n*99, loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$data) matplot(quant, cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], quant, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(quant-smidge, env[,1], quant+smidge, env[,1], lwd = cilwd) segments(quant-smidge, env[,2], quant+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = quant, y = sort(x$data))) } "pp.gumbelx" <- function(x, ci = TRUE, cilwd = 1, a = 0, main = "Probability Plot", xlab = "Empirical", ylab = "Model", ...) { ppx <- ppoints(x$n, a = a) probs <- pgumbelx(sort(x$data), loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) if(!ci) { plot(ppx, probs, main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgumbelx(x$n*99, loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) env[,1] <- pgumbelx(env[,1], loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) env[,2] <- pgumbelx(env[,2], loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) matplot(ppx, cbind(probs, env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], ppx, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx-smidge, env[,1], ppx+smidge, env[,1], lwd = cilwd) segments(ppx-smidge, env[,2], ppx+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = ppx, y = probs)) } "rl.gumbelx" <- function(x, interval, ci = TRUE, cilwd = 1, a = 0, main = "Return Level Plot", xlab = "Return Period", ylab = "Return Level", ...) { ppx <- ppoints(x$data, a = a) rps <- c(1.001,10^(seq(0,3,len=200))[-1]) p.upper <- 1/rps rlev <- qgumbelx(p.upper, interval = interval, loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"], lower.tail = FALSE) if(!ci) { plot(-1/log(ppx), sort(x$data),log = "x", main = main, xlab = xlab, ylab = ylab, ...) lines(-1/log(1-p.upper), rlev) } else { samp <- rgumbelx(x$n*99, loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) samp <- matrix(samp, x$n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$data) matplot(-1/log(ppx), cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, log = "x", ...) lines(-1/log(1-p.upper), rlev) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], log10(-1/log(ppx)), xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments((-1/log(ppx))*exp(-smidge), env[,1], (-1/log(ppx))*exp(smidge), env[,1], lwd = cilwd) segments((-1/log(ppx))*exp(-smidge), env[,2], (-1/log(ppx))*exp(smidge), env[,2], lwd = cilwd) } invisible(list(x = -1/log(1-p.upper), y = rlev)) } "dens.gumbelx" <- function(x, adjust = 1, nplty = 2, jitter = FALSE, main = "Density Plot", xlab = "Quantile", ylab = "Density", ...) { xlimit <- range(x$data) xlimit[1] <- xlimit[1] - diff(xlimit) * 0.075 xlimit[2] <- xlimit[2] + diff(xlimit) * 0.075 xvec <- seq(xlimit[1], xlimit[2], length = 100) dens <- dgumbelx(xvec, loc1 = x$param["loc1"], scale1 = x$param["scale1"], loc2 = x$param["loc2"], scale2 = x$param["scale2"]) plot(spline(xvec, dens), main = main, xlab = xlab, ylab = ylab, type = "l", ...) if(jitter) rug(jitter(x$data)) else rug(x$data) lines(density(x$data, adjust = adjust), lty = nplty) invisible(list(x = xvec, y = dens)) } "qq.pot" <- function(x, ci = TRUE, cilwd = 1, a = 0, main = "Quantile Plot", xlab = "Model", ylab = "Empirical", ...) { quant <- qgpd(ppoints(x$nhigh, a = a), loc = x$threshold, scale = x$scale, shape = x$param["shape"]) if(!ci) { plot(quant, sort(x$exceedances), main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgpd(x$nhigh*99, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) samp <- matrix(samp, x$nhigh, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$exceedances) matplot(quant, cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], quant, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(quant-smidge, env[,1], quant+smidge, env[,1], lwd = cilwd) segments(quant-smidge, env[,2], quant+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = quant, y = sort(x$exceedances))) } "pp.pot" <- function(x, ci = TRUE, cilwd = 1, a = 0, main = "Probability Plot", xlab = "Empirical", ylab = "Model", ...) { ppx <- ppoints(x$nhigh, a = a) probs <- pgpd(sort(x$exceedances), loc = x$threshold, scale = x$scale, shape = x$param["shape"]) if(!ci) { plot(ppx, probs, main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- rgpd(x$nhigh*99, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) samp <- matrix(samp, x$nhigh, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) env[,1] <- pgpd(env[,1], loc = x$threshold, scale = x$scale, shape = x$param["shape"]) env[,2] <- pgpd(env[,2], loc = x$threshold, scale = x$scale, shape = x$param["shape"]) matplot(ppx, cbind(probs, env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], ppx, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx-smidge, env[,1], ppx+smidge, env[,1], lwd = cilwd) segments(ppx-smidge, env[,2], ppx+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = ppx, y = probs)) } "rl.pot" <- function(x, ci = TRUE, cilwd = 1, a = 0, main = "Return Level Plot", xlab = "Return Period", ylab = "Return Level", ...) { rpstmfc <- c(1.001,10^(seq(0,3,len=200))[-1]) rlev <- qgpd(1/rpstmfc, loc = x$threshold, scale = x$scale, shape = x$param["shape"], lower.tail = FALSE) mfc <- x$npp * x$nhigh/length(x$data) rps <- rpstmfc/mfc ppx <- 1/(mfc * (1 - ppoints(x$nhigh, a = a))) if(!ci) { plot(ppx, sort(x$exceedances), log = "x", main = main, xlab = xlab, ylab = ylab, ...) lines(rps, rlev) } else { samp <- rgpd(x$nhigh*99, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) samp <- matrix(samp, x$nhigh, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) rs <- sort(x$exceedances) matplot(ppx, cbind(rs,env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, log = "x", ...) lines(rps, rlev) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], log10(ppx), xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx*exp(-smidge), env[,1], ppx*exp(smidge), env[,1], lwd = cilwd) segments(ppx*exp(-smidge), env[,2], ppx*exp(smidge), env[,2], lwd = cilwd) } invisible(list(x = rps, y = rlev)) } "dens.pot" <- function(x, adjust = 1, nplty = 2, jitter = FALSE, main = "Density Plot", xlab = "Quantile", ylab = "Density", ...) { xlimit <- range(x$exceedances) xlimit[2] <- xlimit[2] + diff(xlimit) * 0.075 xvec <- seq(xlimit[1], xlimit[2], length = 100) dens <- dgpd(xvec, loc = x$threshold, scale = x$scale, shape = x$param["shape"]) plot(spline(xvec, dens), main = main, xlab = xlab, ylab = ylab, type = "l", ...) if(jitter) rug(jitter(x$exceedances)) else rug(x$exceedances) flipexceed <- c(x$exceedances, 2*x$threshold - x$exceedances) flipdens <- density(flipexceed, adjust = adjust, from = xlimit[1], to = xlimit[2]) flipdens$y <- 2*flipdens$y lines(flipdens, lty = nplty) invisible(list(x = xvec, y = dens)) } ### Bivariate EVD Models ### "plot.bvevd" <- function(x, mar = 0, which = 1:6, main, ask = nb.fig < length(which) && dev.interactive(), ci = TRUE, cilwd = 1, a = 0, grid = 50, legend = TRUE, nplty = 2, blty = 3, method = "cfg", convex = FALSE, rev = FALSE, p = seq(0.75, 0.95, 0.05), mint = 1, half = FALSE, ...) { if (!inherits(x, "bvevd")) stop("Use only with `bvevd' objects") nb.fig <- prod(par("mfcol")) if(mar == 1 || mar == 2) { indx <- paste(c("loc","scale","shape"), as.character(mar), sep="") tdata <- na.omit(x$tdata[, mar]) n <- length(tdata) param <- x$param[indx] names(param) <- c("loc","scale","shape") gev.mar <- structure(list(param = param, tdata = tdata, n = n, loc = param["loc"]), class = c("gev", "uvevd", "evd")) if(missing(which)) which <- 1:4 plot(gev.mar, which = which, main = main, ask = ask, ci = ci, cilwd = cilwd, ...) return(invisible(x)) } if (!is.numeric(which) || any(which < 1) || any(which > 6)) stop("`which' must be in 1:6") show <- rep(FALSE, 6) show[which] <- TRUE if(missing(main)) { main <- c("Conditional Plot One", "Conditional Plot Two", "Density Plot", "Dependence Function", "Quantile Curves", "Spectral Density") } else { if(length(main) != length(which)) stop("number of plot titles is not correct") main2 <- character(6) main2[show] <- main main <- main2 } if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if (show[1]) { bvcpp(x, mar = 1, ci = ci, cilwd = cilwd, a = a, main = main[1], xlim = c(0,1), ylim = c(0,1), ...) } if (show[2]) { bvcpp(x, mar = 2, ci = ci, cilwd = cilwd, a = a, main = main[2], xlim = c(0,1), ylim = c(0,1), ...) } if (show[3]) { bvdens(x, grid = grid, legend = legend, main = main[3], ...) } if (show[4]) { bvdp(x, nplty = nplty, blty = blty, method = method, convex = convex, rev = rev, main = main[4], ...) } if (show[5]) { bvqc(x, p = p, mint = mint, legend = legend, main = main[5], ...) } if (show[6]) { bvh(x, half = half, main = main[6], ...) } invisible(x) } "bvcpp" <- function (x, ...) UseMethod("bvcpp") "bvdens" <- function (x, ...) UseMethod("bvdens") "bvdp" <- function (x, ...) UseMethod("bvdp") "bvqc" <- function (x, ...) UseMethod("bvqc") "bvh" <- function (x, ...) UseMethod("bvh") "bvcpp.bvevd" <- function(x, mar = 2, ci = TRUE, cilwd = 1, a = 0, main = "Conditional Probability Plot", xlab = "Empirical", ylab = "Model", ...) { data <- x$tdata mle.m1 <- x$param[c("loc1","scale1","shape1")] mle.m2 <- x$param[c("loc2","scale2","shape2")] data[,1:2] <- exp(-mtransform(data[,1:2], list(mle.m1, mle.m2))) narow <- is.na(data[,1]) | is.na(data[,2]) data <- data[!narow,, drop=FALSE] n <- nrow(data) ppx <- ppoints(n, a = a) if(x$model %in% c("log","hr","neglog")) { probs <- ccbvevd(data, mar = mar, dep = x$param["dep"], model = x$model)} if(x$model %in% c("alog","aneglog")) probs <- ccbvevd(data, mar = mar, dep = x$param["dep"], asy = x$param[c("asy1","asy2")], model = x$model) if(x$model %in% c("bilog","negbilog","ct","amix")) probs <- ccbvevd(data, mar = mar, alpha = x$param["alpha"], beta = x$param["beta"], model = x$model) probs <- sort(probs) if(!ci) { plot(ppx, probs, main = main, xlab = xlab, ylab = ylab, ...) abline(0, 1) } else { samp <- runif(n*99) samp <- matrix(samp, n, 99) samp <- apply(samp, 2, sort) samp <- apply(samp, 1, sort) env <- t(samp[c(3,97),]) matplot(ppx, cbind(probs, env), main = main, xlab = xlab, ylab = ylab, type = "pnn", pch = 4, ...) xyuser <- par("usr") smidge <- min(diff(c(xyuser[1], ppx, xyuser[2])))/2 smidge <- max(smidge, (xyuser[2] - xyuser[1])/200) segments(ppx-smidge, env[,1], ppx+smidge, env[,1], lwd = cilwd) segments(ppx-smidge, env[,2], ppx+smidge, env[,2], lwd = cilwd) abline(0, 1) } invisible(list(x = ppx, y = probs)) } "bvdens.bvevd" <- function(x, grid = 50, legend = TRUE, pch = 1, main = "Density Plot", xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], ...) { xlimit <- range(x$tdata[,1], na.rm = TRUE) ylimit <- range(x$tdata[,2], na.rm = TRUE) xlimit[1] <- xlimit[1] - diff(xlimit) * 0.1 xlimit[2] <- xlimit[2] + diff(xlimit) * 0.1 ylimit[1] <- ylimit[1] - diff(ylimit) * 0.1 ylimit[2] <- ylimit[2] + diff(ylimit) * 0.1 xvec <- seq(xlimit[1], xlimit[2], length = grid) yvec <- seq(ylimit[1], ylimit[2], length = grid) xyvals <- expand.grid(xvec, yvec) mar1 <- x$param[c("loc1","scale1","shape1")] mar2 <- x$param[c("loc2","scale2","shape2")] if(x$model %in% c("log","hr","neglog")) dfunargs <- list(dep = x$param["dep"], mar1 = mar1, mar2 = mar2) if(x$model %in% c("alog","aneglog")) dfunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")], mar1 = mar1, mar2 = mar2) if(x$model %in% c("bilog","negbilog","ct","amix")) dfunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"], mar1 = mar1, mar2 = mar2) dfunargs <- c(list(x = xyvals, model = x$model), dfunargs) dens <- do.call("dbvevd", dfunargs) dens <- matrix(dens, nrow = grid, ncol = grid) contour(xvec, yvec, dens, main = main, xlab = xlab, ylab = ylab, ...) data <- x$tdata if(ncol(data) == 2) points(data, pch = pch) if(ncol(data) == 3) { si <- data[,3] ; data <- data[,1:2] points(data[is.na(si),], pch = 4) points(data[si & !is.na(si),], pch = 16) points(data[!si & !is.na(si),], pch = 1) legwrd <- c("True","False","Unknown") ; legpch <- c(16,1,4) if(!any(is.na(si))) {legwrd <- legwrd[1:2] ; legpch <- legpch[1:2]} if(legend) legend(xlimit[1], ylimit[2], legwrd, pch = legpch) } invisible(list(x = xyvals, y = dens)) } "bvdp.bvevd" <- function(x, method = "cfg", convex = FALSE, rev = FALSE, add = FALSE, lty = 1, nplty = 2, blty = 3, main = "Dependence Function", xlab = "t", ylab = "A(t)", ...) { if(ncol(x$data) == 3) nplty <- 0 abvnonpar(data = x$data[,1:2], nsloc1 = x$nsloc1, nsloc2 = x$nsloc2, epmar = FALSE, method = method, convex = convex, rev = rev, plot = TRUE, lty = nplty, blty = blty, main = main, xlab = xlab, ylab = ylab, add = add, ...) if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(rev = rev, add = TRUE, lty = lty, model = x$model), afunargs) do.call("abvevd", afunargs) invisible(x) } "bvh.bvevd" <- function(x, half = FALSE, add = FALSE, lty = 1, main = "Spectral Density", xlab = "t", ylab = "h(t)", ...) { if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(half = half, add = add, plot = TRUE, lty = lty, main = main, xlab = xlab, ylab = ylab, model = x$model), afunargs) do.call("hbvevd", afunargs) invisible(x) } "bvqc.bvevd"<- function(x, p = seq(0.75, 0.95, 0.05), mint = 1, add = FALSE, legend = TRUE, lty = 1, lwd = 1, col = 1, xlim = range(x$tdata[,1], na.rm = TRUE), ylim = range(x$tdata[,2], na.rm = TRUE), xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], ...) { if(mode(p) != "numeric" || any(p <= 0) || any(p >= 1)) stop("`p' must be a vector of probabilities") nom <- 100 om <- seq(0, 1, length = nom) # Calculate A(t) if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(x = om, plot = FALSE, model = x$model), afunargs) aom <- do.call("abvevd", afunargs) # End Calculate A(t) np <- length(p) qct <- list() p <- p^mint if(add) { xlim <- par("usr")[1:2] ylim <- par("usr")[1:2] if(par("xlog")) xlim <- 10^xlim if(par("ylog")) ylim <- 10^ylim } for(i in 1:np) { qct[[i]] <- -cbind(om/aom * log(p[i]), (1-om)/aom * log(p[i])) mar1 <- x$param[c("loc1","scale1","shape1")] mar2 <- x$param[c("loc2","scale2","shape2")] qct[[i]] <- mtransform(qct[[i]], list(mar1, mar2), inv = TRUE) qct[[i]][1,1] <- 1.5 * xlim[2] qct[[i]][nom,2] <- 1.5 * ylim[2] } if(!add) { if(is.null(xlab)) xlab <- "" if(is.null(ylab)) ylab <- "" if(ncol(x$tdata) == 2) { plot(x$tdata[,1:2], xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) } if(ncol(x$tdata) == 3) { plot(x$tdata[,1:2], xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, type = "n", ...) si <- x$tdata[,3] ; data <- x$tdata[,1:2] points(data[is.na(si),], pch = 4) points(data[si & !is.na(si),], pch = 16) points(data[!si & !is.na(si),], pch = 1) legwrd <- c("True","False","Unknown") ; legpch <- c(16,1,4) if(!any(is.na(si))) {legwrd <- legwrd[1:2] ; legpch <- legpch[1:2]} if(legend) legend(xlim[1], ylim[2], legwrd, pch = legpch) } for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } else { for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } return(invisible(qct)) } ### Bivariate POT Models ### "plot.bvpot" <- function(x, mar = 0, which = 1:4, main, ask = nb.fig < length(which) && dev.interactive(), grid = 50, above = FALSE, levels = NULL, tlty = 1, blty = 3, rev = FALSE, p = seq(0.75, 0.95, 0.05), half = FALSE, ...) { if (!inherits(x, "bvpot")) stop("Use only with `bvpot' objects") nb.fig <- prod(par("mfcol")) if(mar == 1 || mar == 2) { indx <- paste(c("scale","shape"), as.character(mar), sep="") param <- x$param[indx] names(param) <- c("scale","shape") mdata <- x$data[, mar] mth <- x$threshold[mar] mexceed <- mdata[mdata > mth & !is.na(mdata)] pot.mar <- structure(list(param = param, data = mdata, threshold = mth, exceedances = mexceed, nhigh = length(mexceed), npp = length(mdata), scale = param["scale"]), class = c("pot", "uvevd", "evd")) if(missing(which)) which <- 1:4 plot(pot.mar, which = which, main = main, ask = ask, ...) return(invisible(x)) } if (!is.numeric(which) || any(which < 1) || any(which > 4)) stop("`which' must be in 1:4") show <- rep(FALSE, 4) show[which] <- TRUE if(missing(main)) { main <- c("Density Plot", "Dependence Function", "Quantile Curves", "Spectral Density") } else { if(length(main) != length(which)) stop("number of plot titles is not correct") main2 <- character(4) main2[show] <- main main <- main2 } if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if (show[1]) { bvdens(x, grid = grid, above = above, levels = levels, tlty = tlty, main = main[1], ...) } if (show[2]) { bvdp(x, blty = blty, rev = rev, main = main[2], ...) } if (show[3]) { bvqc(x, p = p, above = above, tlty = tlty, main = main[3], ...) } if (show[4]) { bvh(x, half = half, main = main[4], ...) } invisible(x) } "bvdens.bvpot" <- function(x, grid = 50, above = FALSE, tlty = 1, levels = NULL, main = "Density Plot", pch = 1, xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], xlim, ylim, ...) { xlimit <- range(x$data[,1], na.rm = TRUE) ylimit <- range(x$data[,2], na.rm = TRUE) xlimit[1] <- xlimit[1] - diff(xlimit) * 0.1 xlimit[2] <- xlimit[2] + diff(xlimit) * 0.1 ylimit[1] <- ylimit[1] - diff(ylimit) * 0.1 ylimit[2] <- ylimit[2] + diff(ylimit) * 0.1 if(missing(xlim)) xlim <- xlimit if(missing(ylim)) ylim <- ylimit u1 <- x$threshold[1] u2 <- x$threshold[2] if((xlimit[2] <= u1) || (ylimit[2] <= u2)) stop("x and y limits must contain thresholds") xvec <- seq(u1, xlimit[2], length = grid) yvec <- seq(u2, ylimit[2], length = grid) xyvals <- txyvals <- fxyvals <- expand.grid(xvec, yvec) mar1 <- x$param[c("scale1","shape1")] mar2 <- x$param[c("scale2","shape2")] # Transform exceedance grid to frechet margins txyvals[,1] <- mtransform(xyvals[,1], c(u1, mar1)) txyvals[,2] <- mtransform(xyvals[,2], c(u2, mar2)) lambda <- x$nat[1:2]/(nrow(x$data) + 1) fxyvals[,1] <- -1/log(1 - lambda[1] * txyvals[,1]) fxyvals[,2] <- -1/log(1 - lambda[2] * txyvals[,2]) # End transform if(x$model %in% c("log","hr","neglog")) dfunargs <- list(dep = x$param["dep"], mar1 = c(1,1,1), mar2 = c(1,1,1)) if(x$model %in% c("alog","aneglog")) dfunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")], mar1 = c(1,1,1), mar2 = c(1,1,1)) if(x$model %in% c("bilog","negbilog","ct","amix")) dfunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"], mar1 = c(1,1,1), mar2 = c(1,1,1)) dfunargs <- c(list(x = fxyvals, model = x$model), dfunargs) # Jacobian terms txyvals[,1] <- fxyvals[,1]^2 * txyvals[,1]^(1 + mar1[2]) / (1 - lambda[1] * txyvals[,1]) txyvals[,1] <- lambda[1] * txyvals[,1] / mar1[1] txyvals[,2] <- fxyvals[,2]^2 * txyvals[,2]^(1 + mar2[2]) / (1 - lambda[2] * txyvals[,2]) txyvals[,2] <- lambda[2] * txyvals[,2] / mar2[1] # End jacobian terms dens <- do.call("dbvevd", dfunargs) dens <- dens * txyvals[,1] * txyvals[,2] dens <- matrix(dens, nrow = grid, ncol = grid) if(is.null(levels)) { levels <- seq(10, 40, length = 4) levels <- dens[cbind(levels, levels)] levels <- signif(levels, 1) } contour(xvec, yvec, dens, main = main, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, levels = levels, ...) abline(v = u1, lty = tlty); abline(h = u2, lty = tlty) data <- x$data if(above) { above <- (data[,1] > u1) & (data[,2] > u2) data <- data[above,] } points(data, pch = pch) invisible(list(x = xyvals, y = dens)) } "bvdp.bvpot" <- function(x, rev = FALSE, add = FALSE, lty = 1, blty = 3, main = "Dependence Function", xlab = "t", ylab = "A(t)", ...) { if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(rev = rev, add = add, plot = TRUE, lty = lty, blty = blty, main = main, xlab = xlab, ylab = ylab, model = x$model), afunargs) do.call("abvevd", afunargs) invisible(x) } "bvqc.bvpot"<- function(x, p = seq(0.75, 0.95, 0.05), above = FALSE, tlty = 1, add = FALSE, lty = 1, lwd = 1, col = 1, xlim = range(x$data[,1], na.rm = TRUE), ylim = range(x$data[,2], na.rm = TRUE), xlab = colnames(x$data)[1], ylab = colnames(x$data)[2], ...) { if(mode(p) != "numeric" || any(p <= 0) || any(p >= 1)) stop("`p' must be a vector of probabilities") nom <- 100 om <- seq(0, 1, length = nom) # Calculate A(t) if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(x = om, plot = FALSE, model = x$model), afunargs) aom <- do.call("abvevd", afunargs) # End Calculate A(t) np <- length(p) qct <- list() if(add) { xlim <- par("usr")[1:2] ylim <- par("usr")[1:2] if(par("xlog")) xlim <- 10^xlim if(par("ylog")) ylim <- 10^ylim } u1 <- x$threshold[1] u2 <- x$threshold[2] lambda <- x$nat[1:2]/(nrow(x$data) + 1) for(i in 1:np) { qct[[i]] <- cbind((1 - p[i]^(om/aom))/lambda[1], (1 - p[i]^((1-om)/aom))/lambda[2]) mar1 <- c(u1, x$param[c("scale1","shape1")]) mar2 <- c(u2, x$param[c("scale2","shape2")]) qct[[i]] <- mtransform(qct[[i]], list(mar1, mar2), inv = TRUE) qct[[i]][1,1] <- 1.5 * xlim[2] qct[[i]][nom,2] <- 1.5 * ylim[2] } data <- x$data if(above) { above <- (data[,1] > u1) & (data[,2] > u2) data <- data[above,] } if(!add) { if(is.null(xlab)) xlab <- "" if(is.null(ylab)) ylab <- "" plot(data, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, ...) abline(v = u1, lty = tlty); abline(h = u2, lty = tlty) for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } else { for(i in 1:np) lines(qct[[i]], lty = lty, lwd = lwd, col = col) } return(invisible(qct)) } "bvh.bvpot" <- function(x, half = FALSE, add = FALSE, lty = 1, main = "Spectral Density", xlab = "t", ylab = "h(t)", ...) { if(x$model %in% c("log","hr","neglog")) afunargs <- list(dep = x$param["dep"]) if(x$model %in% c("alog","aneglog")) afunargs <- list(dep = x$param["dep"], asy = x$param[c("asy1","asy2")]) if(x$model %in% c("bilog","negbilog","ct","amix")) afunargs <- list(alpha = x$param["alpha"], beta = x$param["beta"]) afunargs <- c(list(half = half, add = add, plot = TRUE, lty = lty, main = main, xlab = xlab, ylab = ylab, model = x$model), afunargs) do.call("hbvevd", afunargs) invisible(x) } ### Documented Ancillary Functions ### "mtransform"<- function(x, p, inv = FALSE, drp = FALSE) { if(is.list(p)) { if(is.null(dim(x)) && length(x) != length(p)) stop(paste("`p' must have", length(x), "elements")) if(!is.null(dim(x)) && ncol(x) != length(p)) stop(paste("`p' must have", ncol(x), "elements")) if(is.null(dim(x))) dim(x) <- c(1, length(p)) for(i in 1:length(p)) x[,i] <- Recall(x[,i], p[[i]], inv = inv) if(ncol(x) == 1 || (nrow(x) == 1 && drp)) x <- drop(x) return(x) } if(is.null(dim(x))) dim(x) <- c(length(x), 1) p <- matrix(t(p), nrow = nrow(x), ncol = 3, byrow = TRUE) if(min(p[,2]) <= 0) stop("invalid marginal scale") gumind <- (p[,3] == 0) nzshapes <- p[!gumind,3] if(!inv) { x <- (x - p[,1])/p[,2] x[gumind, ] <- exp(-x[gumind, ]) if(any(!gumind)) x[!gumind, ] <- pmax(1 + nzshapes*x[!gumind, ], 0)^(-1/nzshapes) } else { x[gumind, ] <- p[gumind,1] - p[gumind,2] * log(x[gumind, ]) x[!gumind, ] <- p[!gumind,1] + p[!gumind,2] * (x[!gumind, ]^(-nzshapes) - 1)/nzshapes } if(ncol(x) == 1 || (nrow(x) == 1 && drp)) x <- drop(x) x } "ccbvevd" <- function(x, mar = 2, dep, asy = c(1, 1), alpha, beta, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), lower.tail = TRUE) { if(min(x[,1:2]) <= 0 || max(x[,1:2]) >= 1) stop("x must contain values in (0,1)") model <- match.arg(model) m1 <- c("bilog", "negbilog", "ct", "amix") m2 <- c(m1, "log", "hr", "neglog") m3 <- c("log", "alog", "hr", "neglog", "aneglog") if((model %in% m1) && !missing(dep)) warning("ignoring `dep' argument") if((model %in% m2) && !missing(asy)) warning("ignoring `asy' argument") if((model %in% m3) && !missing(alpha)) warning("ignoring `alpha' argument") if((model %in% m3) && !missing(beta)) warning("ignoring `beta' argument") if(model %in% m1) dep <- 1 if(model %in% m3) alpha <- beta <- 1 imodel <- match(model, c("log","alog","hr","neglog","aneglog", "bilog","negbilog","ct","amix")) n <- nrow(x) if(ncol(x) == 2) { ccop <- .C(C_ccop, as.double(x[,1]), as.double(x[,2]), as.integer(mar), as.double(dep), as.double(asy[1]), as.double(asy[2]), as.double(alpha), as.double(beta), as.integer(n), as.integer(imodel), ccop = double(n))$ccop } if(ncol(x) == 3) { "dbvevd.case" <- function(x1, x2, case, mar, dep, asy, alpha, beta) { n <- max(length(x1), length(x2)) x1 <- rep(-1/log(x1), length = n) x2 <- rep(-1/log(x2), length = n) case <- rep(case, length = n) mpar <- as.double(1) split <- as.integer(1) if(mar == 1) { tmp <- x1; x1 <- x2; x2 <- tmp if(model %in% c("alog","aneglog")) asy <- rev(asy) if(model %in% c("bilog","negbilog","ct")) { tmp <- alpha; alpha <- beta; beta <- tmp } if(model == "amix") { alpha <- alpha + 3*beta; beta <- -beta } } nl <- switch(model, log = .C(C_nlbvlog, as.double(x1), as.double(x2), n, case, as.double(dep), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, alog = .C(C_nlbvalog, as.double(x1), as.double(x2), n, case, as.double(dep), as.double(asy[1]), as.double(asy[2]), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, hr = .C(C_nlbvhr, as.double(x1), as.double(x2), n, case, as.double(dep), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, neglog = .C(C_nlbvneglog, as.double(x1), as.double(x2), n, case, as.double(dep), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, aneglog = .C(C_nlbvaneglog, as.double(x1), as.double(x2), n, case, as.double(dep), as.double(asy[1]), as.double(asy[2]), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, bilog = .C(C_nlbvbilog, as.double(x1), as.double(x2), n, case, as.double(alpha), as.double(beta), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, negbilog = .C(C_nlbvnegbilog, as.double(x1), as.double(x2), n, case, as.double(alpha), as.double(beta), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, ct = .C(C_nlbvct, as.double(x1), as.double(x2), n, case, as.double(alpha), as.double(beta), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns, amix = .C(C_nlbvamix, as.double(x1), as.double(x2), n, case, as.double(alpha), as.double(beta), rep(mpar,n), mpar, mpar, rep(mpar,n), mpar, mpar, split, dns = double(n))$dns) jac.alt <- 1/x1 + 1/x2 + 2*log(x1 * x2) exp(jac.alt - nl) } ccop <- numeric(n) case <- as.integer(x[,3]) eps <- .Machine$double.eps^0.5 if(mar == 2) { fm <- x[,1] ; cm <- x[,2] } if(mar == 1) { fm <- x[,2] ; cm <- x[,1] } for(i in 1:n) { if(is.na(case[i])) { ccop[i] <- .C(C_ccop, as.double(x[i,1]), as.double(x[i,2]), as.integer(mar), as.double(dep), as.double(asy[1]), as.double(asy[2]), as.double(alpha), as.double(beta), as.integer(1), as.integer(imodel), ccop = double(1))$ccop } else { den <- integrate("dbvevd.case", eps, 1-eps, x2 = cm[i], case = case[i], mar=mar, dep=dep, asy=asy, alpha=alpha, beta=beta)$value num <- integrate("dbvevd.case", eps, fm[i], x2 = cm[i], case = case[i], mar=mar, dep=dep, asy=asy, alpha=alpha, beta=beta)$value ccop[i] <- num/den } } } if(!lower.tail) ccop <- 1 - ccop ccop } evd/R/bvfit.R0000644000176000001440000014300613264357514012534 0ustar ripleyusers "fbvevd" <- function(x, model = c("log", "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct", "amix"), start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { call <- match.call() model <- match.arg(model) if(!is.matrix(x) && !is.data.frame(x)) stop("`x' must be a matrix or data frame") if(ncol(x) != 2) { if(ncol(x) != 3) stop("`x' has incorrect number of columns") if(!is.logical(x[,3])) stop("third column of `x' must be logical") } if(sym && !(model %in% c("alog","aneglog","ct"))) warning("Argument `sym' was ignored") ft <- switch(model, log = fbvlog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), alog = fbvalog(x=x, start=start, ..., sym=sym, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), hr = fbvhr(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2= nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), neglog = fbvneglog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), aneglog = fbvaneglog(x=x, start=start, ..., sym=sym, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), bilog = fbvbilog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), negbilog = fbvnegbilog(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr= corr, method=method, warn.inf=warn.inf), ct = fbvct(x=x, start=start, ..., sym=sym, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf), amix = fbvamix(x=x, start=start, ..., sym=FALSE, nsloc1=nsloc1, nsloc2=nsloc2, cshape=cshape, cscale=cscale, cloc=cloc, std.err=std.err, corr=corr, method=method, warn.inf=warn.inf)) structure(c(ft, call = call), class = c("bvevd","evd")) } "fbvlog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvlog <- function(loc1, scale1, shape1, loc2, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || dep < 0.1 || dep > 1) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvlog, spx$x1, spx$x2, spx$n, spx$si, dep, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1, as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "log") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:7)[c(!cscale, !cshape, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvlog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvlog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvlog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvlog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvlog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "log") } "fbvalog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvalog <- function(loc1, scale1, shape1, loc2, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(dep,asy1,asy2) > 1) || any(c(asy1,asy2) < 0.001) || dep < 0.1) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvalog, spx$x1, spx$x2, spx$n, spx$si, dep, asy1, asy2, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "alog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:9)[c(!cscale, !cshape, TRUE, !sym, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvalog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvalog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvalog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvalog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvalog(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "alog") } "fbvhr"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvhr <- function(loc1, scale1, shape1, loc2, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || dep < 0.2 || dep > 10) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvhr, spx$x1, spx$x2, spx$n, spx$si, dep, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "hr") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:7)[c(!cscale, !cshape, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvhr)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvhr)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvhr) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvhr(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvhr(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "hr") } "fbvneglog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvneglog <- function(loc1, scale1, shape1, loc2, scale2, shape2, dep) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || dep < 0.05 || dep > 5) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvneglog, spx$x1, spx$x2, spx$n, spx$si, dep, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "neglog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:7)[c(!cscale, !cshape, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvneglog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvneglog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvneglog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvneglog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvneglog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "neglog") } "fbvaneglog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvaneglog <- function(loc1, scale1, shape1, loc2, scale2, shape2, asy1, asy2, dep) { if(sym) asy2 <- asy1 if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(asy1,asy2) > 1) || any(c(asy1,asy2) < 0.001) || dep < 0.05 || dep > 5) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvaneglog, spx$x1, spx$x2, spx$n, spx$si, dep, asy1, asy2, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "asy1", "asy2", "dep") else param <- c(param, "asy1", "dep") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "aneglog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:9)[c(!cscale, !cshape, TRUE, !sym, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvaneglog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvaneglog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvaneglog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvaneglog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvaneglog(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "aneglog") } "fbvbilog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvbilog <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(alpha,beta) < 0.1) || any(c(alpha,beta) > 0.999)) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvbilog, spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "bilog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvbilog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvbilog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvbilog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvbilog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvbilog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "bilog") } "fbvnegbilog"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvnegbilog <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(alpha,beta) < 0.1) || any(c(alpha,beta) > 20)) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvnegbilog, spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "negbilog") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvnegbilog)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvnegbilog)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvnegbilog) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvnegbilog(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvnegbilog(", paste("p[",1:l, "]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "negbilog") } "fbvct"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvct <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(sym) beta <- alpha if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01) || any(c(alpha,beta) < 0.001) || any(c(alpha,beta) > 30)) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvct, spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") if(!sym) param <- c(param, "alpha", "beta") else param <- c(param, "alpha") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "ct") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, !sym)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvct)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvct)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvct) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvct(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvct(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "ct") } "fbvamix"<- function(x, start, ..., sym = FALSE, nsloc1 = NULL, nsloc2 = NULL, cshape = cscale, cscale = cloc, cloc = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE) { nlbvamix <- function(loc1, scale1, shape1, loc2, scale2, shape2, alpha, beta) { if(cshape) shape2 <- shape1 if(cscale) scale2 <- scale1 if(any(c(scale1,scale2) < 0.01)) return(1e6) if(alpha < 0 || (alpha + 3*beta) < 0) return(1e6) if((alpha + beta) > 1 || (alpha + 2*beta) > 1) return(1e6) if(!is.null(nsloc1)) { ns <- numeric(length(loc.param1)) for(i in 1:length(ns)) ns[i] <- get(loc.param1[i]) loc1 <- drop(nslocmat1 %*% ns) } else loc1 <- rep(loc1, length.out = nrow(x)) if(cloc) loc2 <- loc1 else { if(!is.null(nsloc2)) { ns <- numeric(length(loc.param2)) for(i in 1:length(ns)) ns[i] <- get(loc.param2[i]) loc2 <- drop(nslocmat2 %*% ns) } else loc2 <- rep(loc2, length.out = nrow(x)) } if(spx$n.m1) m1l <- .C(C_nlgev, spx$x.m1, spx$n.m1, loc1[spx$na == 2], scale1, shape1, dns = double(1))$dns else m1l <- 0 if(spx$n.m2) m2l <- .C(C_nlgev, spx$x.m2, spx$n.m2, loc2[spx$na == 1], scale2, shape2, dns = double(1))$dns else m2l <- 0 bvl <- .C(C_nlbvamix, spx$x1, spx$x2, spx$n, spx$si, alpha, beta, loc1[spx$na == 0], scale1, shape1, loc2[spx$na == 0], scale2, shape2, cfalse, dns = double(1))$dns if(any(is.nan(c(m1l,m2l,bvl)))) { warning("NaN returned in likelihood") return(1e6) } if(any(c(m1l,m2l,bvl) == 1e6)) return(1e6) else return(m1l + m2l + bvl) } if(cloc && !identical(nsloc1, nsloc2)) stop("nsloc1 and nsloc2 must be identical") if(!is.null(nsloc1)) { if(is.vector(nsloc1)) nsloc1 <- data.frame(trend = nsloc1) if(nrow(nsloc1) != nrow(x)) stop("`nsloc1' and data are not compatible") nslocmat1 <- cbind(1,as.matrix(nsloc1)) } if(!is.null(nsloc2)) { if(is.vector(nsloc2)) nsloc2 <- data.frame(trend = nsloc2) if(nrow(nsloc2) != nrow(x)) stop("`nsloc2' and data are not compatible") nslocmat2 <- cbind(1,as.matrix(nsloc2)) } loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") param <- c(loc.param1, "scale1", "shape1") if(!cloc) param <- c(param, loc.param2) else loc.param2 <- NULL if(!cscale) param <- c(param, "scale2") if(!cshape) param <- c(param, "shape2") param <- c(param, "alpha", "beta") nmdots <- names(list(...)) start <- bvstart.vals(x = x, start = start, nmdots = nmdots, param = param, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "amix") spx <- sep.bvdata(x = x) cfalse <- as.integer(0) nm <- names(start) l <- length(nm) fixed.param <- list(...)[nmdots %in% param] if(any(!(param %in% c(nm,names(fixed.param))))) stop("unspecified parameters") prind <- (5:8)[c(!cscale, !cshape, TRUE, TRUE)] f <- c(as.list(numeric(length(loc.param1))), formals(nlbvamix)[2:3], as.list(numeric(length(loc.param2))), formals(nlbvamix)[prind]) names(f) <- param m <- match(nm, param) if(any(is.na(m))) stop("`start' specifies unknown arguments") formals(nlbvamix) <- c(f[m], f[-m]) nllh <- function(p, ...) nlbvamix(p, ...) if(l > 1) body(nllh) <- parse(text = paste("nlbvamix(", paste("p[",1:l,"]", collapse = ", "), ", ...)")) start.arg <- c(list(p = unlist(start)), fixed.param) if(warn.inf && do.call("nllh", start.arg) == 1e6) warning("negative log-likelihood is infinite at starting values") opt <- optim(start, nllh, hessian = TRUE, ..., method = method) if(is.null(names(opt$par))) names(opt$par) <- nm cmar <- c(cloc, cscale, cshape) bvpost.optim(x = x, opt = opt, nm = nm, fixed.param = fixed.param, std.err = std.err, corr = corr, sym = sym, cmar = cmar, nsloc1 = nsloc1, nsloc2 = nsloc2, model = "amix") } ### Method Function ### "print.bvevd" <- function(x, digits = max(3, getOption("digits") - 3), ...) { cat("\nCall:", deparse(x$call), "\n") cat("Deviance:", deviance(x), "\n") cat("AIC:", AIC(x), "\n") if(!is.null(x$dep.summary)) cat("Dependence:", x$dep.summary, "\n") cat("\nEstimates\n") print.default(format(fitted(x), digits = digits), print.gap = 2, quote = FALSE) if(!is.null(std.errors(x))) { cat("\nStandard Errors\n") print.default(format(std.errors(x), digits = digits), print.gap = 2, quote = FALSE) } if(!is.null(x$corr)) { cat("\nCorrelations\n") print.default(format(x$corr, digits = digits), print.gap = 2, quote = FALSE) } cat("\nOptimization Information\n") cat(" Convergence:", x$convergence, "\n") cat(" Function Evaluations:", x$counts["function"], "\n") if(!is.na(x$counts["gradient"])) cat(" Gradient Evaluations:", x$counts["gradient"], "\n") if(!is.null(x$message)) cat(" Message:", x$message, "\n") cat("\n") invisible(x) } ### Ancillary Functions ### "bvstart.vals" <- # Calculate Starting Values For Bivariate Models function(x, start, nmdots, param, method = c("evd","pot"), nsloc1 = NULL, nsloc2 = NULL, u = NULL, model) { method <- match.arg(method) if(method == "evd") { loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") } if(method == "pot") loc.param1 <- loc.param2 <- NULL if(missing(start)) { start <- as.list(numeric(length(param))) names(start) <- param if(method == "evd") { loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") loc.param2 <- paste("loc2", c("",names(nsloc2)), sep="") st1 <- fitted(fgev(x[,1], nsloc = nsloc1, std.err = FALSE)) st2 <- fitted(fgev(x[,2], nsloc = nsloc2, std.err = FALSE)) st1 <- as.list(st1); st2 <- as.list(st2) } if(method == "pot") { st1 <- fitted(fpot(x[,1], u[1], std.err = FALSE)) st2 <- fitted(fpot(x[,2], u[2], std.err = FALSE)) st1 <- as.list(st1); st2 <- as.list(st2) } start[c(loc.param1, "scale1", "shape1")] <- st1 tmp2 <- loc.param2 if("scale2" %in% param) tmp2 <- c(tmp2, "scale2") if("shape2" %in% param) tmp2 <- c(tmp2, "shape2") tmp <- sub("2", "", tmp2) start[tmp2] <- st2[tmp] if(model == "log") start[["dep"]] <- 0.75 if(model == "alog") { start[["asy1"]] <- 0.75 if("asy2" %in% param) start[["asy2"]] <- 0.75 start[["dep"]] <- 0.65 } if(model == "hr") start[["dep"]] <- 1 if(model == "neglog") start[["dep"]] <- 0.6 if(model == "aneglog") { start[["asy1"]] <- 0.75 if("asy2" %in% param) start[["asy2"]] <- 0.75 start[["dep"]] <- 0.8 } if(model == "bilog") start[["alpha"]] <- start[["beta"]] <- 0.75 if(model == "negbilog") start[["alpha"]] <- start[["beta"]] <- 1/0.6 if(model == "ct") { start[["alpha"]] <- 0.6 if("beta" %in% param) start[["beta"]] <- 0.6 } if(model == "amix") { start[["alpha"]] <- 0.75 start[["beta"]] <- 0 } start <- start[!(param %in% nmdots)] } if(any(!is.na(match(names(start),c("mar1","mar2","asy"))))) { if(("mar1" %in% names(start)) && (length(start$mar1) != (2+length(loc.param1)))) stop("mar1 in `start' has incorrect length") if(("mar2" %in% names(start)) && (length(start$mar2) != (2+length(loc.param2)))) stop("mar2 in `start' has incorrect length") if(("asy" %in% names(start)) && (length(start$asy) != 2)) stop("asy in `start' should have length two") start <- unlist(start) names(start)[grep("mar1",names(start))] <- c(loc.param1,"scale1","shape1") names(start)[grep("mar2",names(start))] <- c(loc.param2,"scale2","shape2") start <- as.list(start) } if(!is.list(start)) stop("`start' must be a named list") start } "sep.bvdata" <- # Separate Bivariate Data For Bivariate Models function(x, method = c("evd","cpot","ppot"), u = NULL) { method <- match.arg(method) if(method == "evd") { na <- rowSums(cbind(is.na(x[,1]), 2*is.na(x[,2]))) if(!any(na == 0)) stop("`x' must have at least one complete observation") x.m1 <- as.double(x[na == 2, 1]) n.m1 <- as.integer(length(x.m1)) x.m2 <- as.double(x[na == 1, 2]) n.m2 <- as.integer(length(x.m2)) x.full <- x[na == 0, , drop = FALSE] x1 <- as.double(x.full[,1]) x2 <- as.double(x.full[,2]) n <- as.integer(nrow(x.full)) if(ncol(x) == 3) { si <- x.full[,3] si[is.na(si)] <- 2 } else si <- rep(2, n) si <- as.integer(si) spx <- list(x.m1 = x.m1, n.m1 = n.m1, x.m2 = x.m2, n.m2 = n.m2, x1 = x1, x2 = x2, n = n, si = si, na = na) } else { x1 <- x[,1] x2 <- x[,2] n <- length(x1) r1 <- r2 <- NULL iau1 <- (x1 > u[1]) & !is.na(x1) iau2 <- (x2 > u[2]) & !is.na(x2) nat <- c(sum(iau1), sum(iau2), sum(iau1 & iau2)) lambda1 <- sum(iau1) / (n + 1) lambda2 <- sum(iau2) / (n + 1) lambda <- c(lambda1, lambda2) if(method == "ppot") { x1[is.na(x1)] <- mean(x1[!iau1], na.rm = TRUE) x2[is.na(x2)] <- mean(x2[!iau2], na.rm = TRUE) r1 <- 1 - rank(x1) / (n + 1) r2 <- 1 - rank(x2) / (n + 1) r1[iau1] <- lambda1 r2[iau2] <- lambda2 } x1 <- x1 - u[1] x2 <- x2 - u[2] x1[!iau1] <- 0 x2[!iau2] <- 0 i0 <- iau1 | iau2 x1 <- x1[i0] ; x2 <- x2[i0] if(method == "ppot") { r1 <- r1[i0] ; r2 <- r2[i0] } nn <- length(x1) thdi <- as.logical(x1) + 2*as.logical(x2) spx <- list(x1 = x1, x2 = x2, nn = nn, n = n, thdi = thdi, lambda = lambda, r1 = r1, r2 = r2, nat = nat) } spx } "bvpost.optim" <- # Post-optimization Processing function(x, opt, nm, fixed.param, std.err, corr, sym, cmar, method = c("evd","pot"), nsloc1 = NULL, nsloc2 = NULL, u = NULL, nat = NULL, likelihood = NULL, model) { method <- match.arg(method) if(opt$convergence != 0) { warning(paste("optimization for", model, "may not have succeeded"), call. = FALSE) if(opt$convergence == 1) opt$convergence <- "iteration limit reached" } else opt$convergence <- "successful" if(std.err) { tol <- .Machine$double.eps^0.5 var.cov <- qr(opt$hessian, tol = tol) if(var.cov$rank != ncol(var.cov$qr)) stop(paste("observed information matrix for", model, "is singular; use std.err = FALSE")) var.cov <- solve(var.cov, tol = tol) std.err <- diag(var.cov) if(any(std.err <= 0)) stop(paste("observed information matrix for", model, "is singular; use std.err = FALSE")) std.err <- sqrt(std.err) names(std.err) <- nm if(corr) { .mat <- diag(1/std.err, nrow = length(std.err)) corr <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm)) diag(corr) <- rep(1, length(std.err)) } else corr <- NULL } else std.err <- var.cov <- corr <- NULL fixed <- unlist(fixed.param) param <- c(opt$par, fixed) fixed2 <- NULL if(method == "evd") { if(cmar[1]) { loc.param1 <- paste("loc1", c("",names(nsloc1)), sep="") fixed2 <- c(fixed2, param[loc.param1]) } if(cmar[2]) fixed2 <- c(fixed2, param["scale1"]) if(cmar[3]) fixed2 <- c(fixed2, param["shape1"]) } if(method == "pot") { if(cmar[1]) fixed2 <- c(fixed2, param["scale1"]) if(cmar[2]) fixed2 <- c(fixed2, param["shape1"]) } if(sym) { if(model %in% c("alog","aneglog")) fixed2 <- c(fixed2, param["asy1"]) if(model == "ct") fixed2 <- c(fixed2, param["alpha"]) } if(!is.null(fixed2)) { names(fixed2) <- sub("1", "2", names(fixed2)) names(fixed2) <- sub("alpha", "beta", names(fixed2)) } param <- c(param, fixed2) # Transform to stationarity x2 <- x if(!is.null(nsloc1)) { trend <- param[paste("loc1", names(nsloc1), sep="")] trend <- drop(as.matrix(nsloc1) %*% trend) x2[,1] <- x[,1] - trend } if(!is.null(nsloc2)) { trend <- param[paste("loc2", names(nsloc2), sep="")] trend <- drop(as.matrix(nsloc2) %*% trend) x2[,2] <- x[,2] - trend } # End transform # Dependence chi if(model %in% c("log", "hr", "neglog")) { dep <- param["dep"] dep.sum <- 2*(1 - abvevd(dep = dep, model = model)) } if(model %in% c("alog", "aneglog")) { dep <- param["dep"] asy <- param[c("asy1", "asy2")] dep.sum <- 2*(1 - abvevd(dep = dep, asy = asy, model = model)) } if(model %in% c("bilog", "negbilog", "ct", "amix")) { alpha <- param["alpha"] beta <- param["beta"] dep.sum <- 2*(1-abvevd(alpha = alpha, beta = beta, model = model)) } # End dependence chi out <- list(estimate = opt$par, std.err = std.err, fixed = fixed, fixed2 = fixed2, param = param, deviance = 2*opt$value, dep.summary = dep.sum, corr = corr, var.cov = var.cov, convergence = opt$convergence, counts = opt$counts, message = opt$message, data = x) if(method == "evd") out <- c(out, list(tdata = x2, nsloc1 = nsloc1, nsloc2 = nsloc2)) if(method == "pot") out <- c(out, list(threshold = u, nat = nat, likelihood = likelihood)) c(out, list(n = nrow(x), sym = sym, cmar = cmar, model = model)) } evd/R/uvdist.R0000644000176000001440000003317414225005362012731 0ustar ripleyusers "rfrechet"<- function(n, loc = 0, scale = 1, shape = 1) { if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") loc + scale * rexp(n)^(-1/shape) } "rgumbel"<- function(n, loc = 0, scale = 1) { rgev(n, loc = loc, scale = scale, shape = 0) } "rrweibull"<- function(n, loc = 0, scale = 1, shape = 1) { if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") loc - scale * rexp(n)^(1/shape) } "rnweibull"<- function(n, loc = 0, scale = 1, shape = 1) { if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") loc - scale * rexp(n)^(1/shape) } "rgev"<- function(n, loc = 0, scale = 1, shape = 0) { if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(shape == 0) return(loc - scale * log(rexp(n))) else return(loc + scale * (rexp(n)^(-shape) - 1)/shape) } "rgumbelx"<- function(n, loc1 = 0, scale1 = 1, loc2 = 0, scale2 = 1) { if(min(scale1) < 0 || min(scale2) < 0) stop("invalid scale") if(any(loc1 > loc2)) stop("loc1 cannot be greater than loc2") pmax(rgumbel(n = n, loc = loc1, scale = scale1), rgumbel(n = n, loc = loc2, scale = scale2)) } "rgpd"<- function(n, loc = 0, scale = 1, shape = 0) { if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(shape == 0) return(loc + scale*rexp(n)) else return(loc + scale * (runif(n)^(-shape) - 1) / shape) } "rextreme"<- function(n, quantfun, ..., distn, mlen = 1, largest = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(quantfun)) quantfun <- get(paste("q", distn, sep=""), mode="function") if(largest) quantfun(rbeta(n, mlen, 1), ...) else quantfun(rbeta(n, 1, mlen), ...) } "rorder"<- function(n, quantfun, ..., distn, mlen = 1, j = 1, largest = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(!is.numeric(j) || length(j) != 1 || j < 1 || j %% 1 != 0) stop("`j' must be a non-negative integer") if(j > mlen) stop("`j' cannot be greater than `mlen'") if(!largest) j <- mlen+1-j if(missing(quantfun)) quantfun <- get(paste("q", distn, sep=""), mode="function") quantfun(rbeta(n, mlen+1-j, j), ...) } "qfrechet"<- function(p, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") if(!lower.tail) p <- 1 - p loc + scale * (-log(p))^(-1/shape) } "qgumbel"<- function(p, loc = 0, scale = 1, lower.tail = TRUE) { qgev(p, loc = loc, scale = scale, shape = 0, lower.tail = lower.tail) } "qrweibull"<- function(p, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") if(!lower.tail) p <- 1 - p loc - scale * (-log(p))^(1/shape) } "qnweibull"<- function(p, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0 || min(shape) <= 0) stop("invalid arguments") if(!lower.tail) p <- 1 - p loc - scale * (-log(p))^(1/shape) } "qgev"<- function(p, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(!lower.tail) p <- 1 - p if(shape == 0) return(loc - scale * log(-log(p))) else return(loc + scale * ((-log(p))^(-shape) - 1)/shape) } "qgumbelx"<- function(p, interval, loc1 = 0, scale1 = 1, loc2 = 0, scale2 = 1, lower.tail = TRUE, ...) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale1) < 0 || min(scale2) < 0) stop("invalid scale") if(any(loc1 > loc2)) stop("loc1 cannot be greater than loc2") if(!lower.tail) p <- 1 - p n <- length(p) out <- numeric(n) for(i in 1:n) { tmpfn <- function(z) exp(-(z - loc1)/scale1) + exp(-(z - loc2)/scale2) + log(p[i]) out[i] <- uniroot(tmpfn, interval = interval, ...)$root } out } "qgpd"<- function(p, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(min(scale) < 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") if(lower.tail) p <- 1 - p if(shape == 0) return(loc - scale*log(p)) else return(loc + scale * (p^(-shape) - 1) / shape) } "qextreme"<- function(p, quantfun, ..., distn, mlen = 1, largest = TRUE, lower.tail = TRUE) { if(min(p, na.rm = TRUE) <= 0 || max(p, na.rm = TRUE) >=1) stop("`p' must contain probabilities in (0,1)") if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(quantfun)) quantfun <- get(paste("q", distn, sep=""), mode="function") if(!lower.tail) p <- 1 - p if(largest) quantfun(p^(1/mlen), ...) else quantfun(1-(1-p)^(1/mlen), ...) } "pfrechet"<- function(q, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") q <- pmax((q - loc)/scale,0) p <- exp(-q^(-shape)) if(!lower.tail) p <- 1 - p p } "pgumbel"<- function(q, loc = 0, scale = 1, lower.tail = TRUE) { pgev(q, loc = loc, scale = scale, shape = 0, lower.tail = lower.tail) } "prweibull"<- function(q, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") q <- pmin((q - loc)/scale,0) p <- exp(-(-q)^shape) if(!lower.tail) p <- 1 - p p } "pnweibull"<- function(q, loc = 0, scale = 1, shape = 1, lower.tail = TRUE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") q <- pmin((q - loc)/scale,0) p <- exp(-(-q)^shape) if(!lower.tail) p <- 1 - p p } "pgev"<- function(q, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") q <- (q - loc)/scale if(shape == 0) p <- exp(-exp(-q)) else p <- exp( - pmax(1 + shape * q, 0)^(-1/shape)) if(!lower.tail) p <- 1 - p p } "pgumbelx"<- function(q, loc1 = 0, scale1 = 1, loc2 = 0, scale2 = 1, lower.tail = TRUE) { if(min(scale1) < 0 || min(scale2) < 0) stop("invalid scale") if(any(loc1 > loc2)) stop("loc1 cannot be greater than loc2") q1 <- (q - loc1)/scale1 q2 <- (q - loc2)/scale2 p <- exp(-exp(-q1)) * exp(-exp(-q2)) if(!lower.tail) p <- 1 - p p } "pgpd" <- function(q, loc = 0, scale = 1, shape = 0, lower.tail = TRUE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") q <- pmax(q - loc, 0)/scale if(shape == 0) p <- 1 - exp(-q) else { p <- pmax(1 + shape * q, 0) p <- 1 - p^(-1/shape) } if(!lower.tail) p <- 1 - p p } "pextreme"<- function(q, distnfun, ..., distn, mlen = 1, largest = TRUE, lower.tail = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") distn <- distnfun(q, ...) if(!largest) distn <- 1-distn p <- distn^mlen if(largest != lower.tail) p <- 1 - p p } "porder"<- function(q, distnfun, ..., distn, mlen = 1, j = 1, largest = TRUE, lower.tail = TRUE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(!is.numeric(j) || length(j) != 1 || j < 1 || j %% 1 != 0) stop("`j' must be a non-negative integer") if(j > mlen) stop("`j' cannot be greater than `mlen'") lachooseb <- function(a,b) lgamma(a+1) - lgamma(b+1) - lgamma(a-b+1) if(largest) svec <- (mlen+1-j):mlen else svec <- 0:(j-1) if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") distn <- distnfun(q, ...) store <- matrix(0,nrow=length(q),ncol=j) for(k in 1:j) store[,k] <- exp(lachooseb(mlen,svec[k]) + svec[k]*log(distn) + (mlen-svec[k])*log(1-distn)) p <- apply(store,1,sum) if(largest != lower.tail) p <- 1 - p p } "dfrechet"<- function(x, loc = 0, scale = 1, shape = 1, log = FALSE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") x <- (x - loc)/scale xpos <- x[x>0 | is.na(x)] nn <- length(x) scale <- rep(scale, length.out = nn)[x>0 | is.na(x)] shape <- rep(shape, length.out = nn)[x>0 | is.na(x)] d <- numeric(nn) d[x>0 | is.na(x)] <- log(shape/scale) - (1+shape) * log(xpos) - xpos^(-shape) d[x<=0 & !is.na(x)] <- -Inf if(!log) d <- exp(d) d } "dgumbel"<- function(x, loc = 0, scale = 1, log = FALSE) { dgev(x, loc = loc, scale = scale, shape = 0, log = log) } "drweibull"<- function(x, loc = 0, scale = 1, shape = 1, log = FALSE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") x <- (x - loc)/scale xneg <- x[x<0 | is.na(x)] nn <- length(x) scale <- rep(scale, length.out = nn)[x<0 | is.na(x)] shape <- rep(shape, length.out = nn)[x<0 | is.na(x)] d <- numeric(nn) d[x<0 | is.na(x)] <- log(shape/scale) + (shape-1) * log(-xneg) - (-xneg)^shape d[x>=0 & !is.na(x)] <- -Inf if(!log) d <- exp(d) d } "dnweibull"<- function(x, loc = 0, scale = 1, shape = 1, log = FALSE) { if(min(scale) <= 0 || min(shape) <= 0) stop("invalid arguments") x <- (x - loc)/scale xneg <- x[x<0 | is.na(x)] nn <- length(x) scale <- rep(scale, length.out = nn)[x<0 | is.na(x)] shape <- rep(shape, length.out = nn)[x<0 | is.na(x)] d <- numeric(nn) d[x<0 | is.na(x)] <- log(shape/scale) + (shape-1) * log(-xneg) - (-xneg)^shape d[x>=0 & !is.na(x)] <- -Inf if(!log) d <- exp(d) d } "dgev"<- function(x, loc = 0, scale = 1, shape = 0, log = FALSE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") x <- (x - loc)/scale if(shape == 0) d <- log(1/scale) - x - exp(-x) else { nn <- length(x) xx <- 1 + shape*x xxpos <- xx[xx>0 | is.na(xx)] scale <- rep(scale, length.out = nn)[xx>0 | is.na(xx)] d <- numeric(nn) d[xx>0 | is.na(xx)] <- log(1/scale) - xxpos^(-1/shape) - (1/shape + 1)*log(xxpos) d[xx<=0 & !is.na(xx)] <- -Inf } if(!log) d <- exp(d) d } "dgumbelx"<- function(x, loc1 = 0, scale1 = 1, loc2 = 0, scale2 = 1, log = FALSE) { if(min(scale1) < 0 || min(scale2) < 0) stop("invalid scale") if(any(loc1 > loc2)) stop("loc1 cannot be greater than loc2") x1 <- (x - loc1)/scale1 x2 <- (x - loc2)/scale2 d <- exp(-exp(-x1) + log(1/scale2) - x2 - exp(-x2)) + exp(-exp(-x2) + log(1/scale1) - x1 - exp(-x1)) if(log) d <- log(d) d } "dgpd"<- function(x, loc = 0, scale = 1, shape = 0, log = FALSE) { if(min(scale) <= 0) stop("invalid scale") if(length(shape) != 1) stop("invalid shape") d <- (x - loc)/scale nn <- length(d) scale <- rep(scale, length.out = nn) index <- (d > 0 & ((1 + shape * d) > 0)) | is.na(d) if(shape == 0) { d[index] <- log(1/scale[index]) - d[index] d[!index] <- -Inf } else { d[index] <- log(1/scale[index]) - (1/shape + 1) * log(1 + shape * d[index]) d[!index] <- -Inf } if(!log) d <- exp(d) d } "dextreme"<- function(x, densfun, distnfun, ..., distn, mlen = 1, largest = TRUE, log = FALSE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") dens <- densfun(x, ..., log = TRUE) distn <- distnfun(x, ...)[!is.infinite(dens)] if(!largest) distn <- 1 - distn distn <- (mlen-1) * log(distn) d <- numeric(length(x)) d[!is.infinite(dens)] <- log(mlen) + dens[!is.infinite(dens)] + distn d[is.infinite(dens)] <- -Inf if(!log) d <- exp(d) d } "dorder"<- function(x, densfun, distnfun, ..., distn, mlen = 1, j = 1, largest = TRUE, log = FALSE) { if(!is.numeric(mlen) || length(mlen) != 1 || mlen < 1 || mlen %% 1 != 0) stop("`mlen' must be a non-negative integer") if(!is.numeric(j) || length(j) != 1 || j < 1 || j %% 1 != 0) stop("`j' must be a non-negative integer") if(j > mlen) stop("`j' cannot be greater than `mlen'") if(!largest) j <- mlen + 1 - j if(missing(densfun)) densfun <- get(paste("d", distn, sep=""), mode="function") if(missing(distnfun)) distnfun <- get(paste("p", distn, sep=""), mode="function") dens <- densfun(x, ..., log = TRUE) distn <- distnfun(x, ...)[!is.infinite(dens)] distn <- (mlen-j) * log(distn) + (j-1) * log(1-distn) comb <- lgamma(mlen+1) - lgamma(j) - lgamma(mlen-j+1) d <- numeric(length(x)) d[!is.infinite(dens)] <- comb + dens[!is.infinite(dens)] + distn d[is.infinite(dens)] <- -Inf if(!log) d <- exp(d) d } evd/R/profile.R0000644000176000001440000003174214260534716013063 0ustar ripleyusers "profile.evd" <- function(fitted, which = names(fitted$estimate), conf = 0.999, mesh = fitted$std.err[which]/4, xmin = rep(-Inf, length(which)), xmax = rep(Inf, length(which)), convergence = FALSE, method = "BFGS", control = list(maxit = 500), ...) { if(!inherits(fitted, "evd")) stop("Use only with `evd' objects") if(inherits(fitted, "extreme")) stop("profiles not implemented for this model") if(length(xmin) != length(which)) stop("`xmin' and `which' must have the same length") if(length(xmax) != length(which)) stop("`xmax' and `which' must have the same length") if(length(fitted$estimate) < 2) stop("cannot profile one dimensional likelihood") if(!is.character(which)) stop("`which' must be a character vector") if(!all(which %in% names(fitted$estimate))) stop("`which' contains unrecognized or unestimated parameters") if(is.null(fitted$std.err) && missing(mesh)) stop("fitted model must contain standard errors") prof.list <- as.list(numeric(length(which))) names(xmin) <- names(xmax) <- names(prof.list) <- which if(is.null(names(mesh))) names(mesh) <- which mles <- fitted$estimate[which] for(j in which) { print(paste("profiling",j)) prof1 <- prof2 <- matrix(nrow = 0, ncol = length(fitted$estimate) + 1) npmles <- fitted$estimate[!names(fitted$estimate) %in% j] start <- as.list(npmles) call.args <- c(list(fitted$data, start, 0), as.list(fitted$fixed), list(FALSE, FALSE, method, FALSE, control)) names(call.args) <- c("x", "start", j, names(fitted$fixed), "std.err", "corr", "method", "warn.inf", "control") dimnames(prof1) <- dimnames(prof2) <- list(NULL, c(j, "deviance", names(start))) call.fn <- paste("f", class(fitted)[1], sep="") if(inherits(fitted, "gev")) { call.args$nsloc <- fitted$nsloc call.args$prob <- fitted$prob } if(inherits(fitted, "gumbelx")) { call.args$nsloc1 <- fitted$nsloc1 call.args$nsloc2 <- fitted$nsloc2 } if(inherits(fitted, "pot")) { call.args$threshold <- fitted$threshold call.args$npp <- fitted$npp call.args$period <- fitted$period call.args$cmax <- fitted$cmax call.args$r <- fitted$r call.args$ulow <- fitted$ulow call.args$rlow <- fitted$rlow call.args$mper <- fitted$mper } if(inherits(fitted, "bvevd")) { call.args$model <- fitted$model call.args$nsloc1 <- fitted$nsloc1 call.args$nsloc2 <- fitted$nsloc2 call.args$sym <- fitted$sym call.args$cloc <- fitted$cmar[1] call.args$cscale <- fitted$cmar[2] call.args$cshape <- fitted$cmar[3] } if(inherits(fitted, "bvpot")) { call.args$threshold <- fitted$threshold call.args$likelihood <- fitted$likelihood call.args$model <- fitted$model call.args$sym <- fitted$sym call.args$cscale <- fitted$cmar[1] call.args$cshape <- fitted$cmar[2] } lcnt <- TRUE; ppar <- mles[j] while(lcnt) { ppar <- as.vector(ppar + mesh[j]) if(ppar >= xmax[j]) ppar <- as.vector(xmax[j]) call.args[[j]] <- ppar fit.mod <- do.call(call.fn, call.args) if(convergence) print(fit.mod$convergence) call.args[["start"]] <- as.list(fit.mod$estimate) rop <- c(ppar, fit.mod$deviance, fit.mod$estimate) prof1 <- rbind(prof1, rop) ddf <- fit.mod$deviance - fitted$deviance lcnt <- (ddf <= qchisq(conf, 1)) && (ppar != xmax[j]) } call.args[["start"]] <- as.list(npmles) lcnt <- TRUE; ppar <- mles[j] while(lcnt) { ppar <- as.vector(ppar - mesh[j]) if(ppar <= xmin[j]) ppar <- as.vector(xmin[j]) call.args[[j]] <- ppar fit.mod <- do.call(call.fn, call.args) if(convergence) print(fit.mod$convergence) call.args[["start"]] <- as.list(fit.mod$estimate) rop <- c(ppar, fit.mod$deviance, fit.mod$estimate) prof2 <- rbind(prof2, rop) ddf <- fit.mod$deviance - fitted$deviance lcnt <- (ddf <= qchisq(conf, 1)) && (ppar != xmin[j]) } rop <- c(mles[j], fitted$deviance, npmles) prof2 <- prof2[nrow(prof2):1, ,drop = FALSE] prof <- rbind(prof2, rop, prof1) rownames(prof) <- NULL rdev <- qchisq(conf, 1) + fitted$deviance if(prof[1, "deviance"] == 2e6) { prof <- prof[-1, ,drop = FALSE] if(prof[1,"deviance"] <= rdev) warning(paste("If", j, "is to satisfy `conf',", "`mesh' must be smaller")) } if(prof[nrow(prof), "deviance"] == 2e6) { prof <- prof[-nrow(prof), ,drop = FALSE] if(prof[nrow(prof),"deviance"] <= rdev) warning(paste("If", j, "is to satisfy `conf',", "`mesh' must be smaller")) } prof.list[[j]] <- prof } structure(prof.list, deviance = fitted$deviance, xmin = xmin, xmax = xmax, class = "profile.evd") } profile2d <- function (fitted, ...) { UseMethod("profile2d") } "profile2d.evd" <- function(fitted, prof, which, pts = 20, convergence = FALSE, method = "Nelder-Mead", control = list(maxit = 5000), ...) { if(!inherits(fitted, "evd")) stop("Use only with `evd' objects") if(inherits(fitted, "extreme")) stop("profiles not implemented for this model") if (!inherits(prof, "profile.evd")) stop("`prof' must be a `profile.evd' object") if(length(fitted$estimate) < 3) stop("Cannot profile two dimensional likelihood") if(missing(which) || !is.character(which) || length(which) != 2) stop("`which' must be a character vector of length two") if(!all(which %in% names(fitted$estimate))) stop("`which' contains unrecognized or unestimated parameters") if(!all(which %in% names(prof))) stop("`which' contains unprofiled parameters") if(is.null(fitted$std.err)) stop("fitted model must contain standard errors") prof.list <- as.list(numeric(3)) names(prof.list) <- c("trace", which) limits1 <- range(prof[[which[1]]][,1]) limits2 <- range(prof[[which[2]]][,1]) mles <- fitted$estimate[which] prof <- matrix(NA, nrow = pts^2, ncol = length(fitted$estimate) + 1) parvec1 <- seq(limits1[1], limits1[2], length = pts) prof.list[[which[1]]] <- parvec1 parvec2 <- seq(limits2[1], limits2[2], length = pts) prof.list[[which[2]]] <- parvec2 pars <- expand.grid(parvec1, parvec2) start <- as.list(fitted$estimate[!names(fitted$estimate) %in% which]) # if method unspecified supress optim 1d warnings if(missing(method) && length(start) == 1) oldopt <- options(warn = -1) call.args <- c(list(fitted$data, start, 0, 0), as.list(fitted$fixed), list(FALSE, FALSE, method, FALSE, control)) names(call.args) <- c("x", "start", which[1], which[2], names(fitted$fixed), "std.err", "corr", "method", "warn.inf", "control") dimnames(prof) <- list(NULL, c(which, "deviance", names(start))) call.fn <- paste("f", class(fitted)[1], sep="") if(inherits(fitted, "gev")) { call.args$nsloc <- fitted$nsloc call.args$prob <- fitted$prob } if(inherits(fitted, "gumbelx")) { call.args$nsloc1 <- fitted$nsloc1 call.args$nsloc2 <- fitted$nsloc2 } #if(inherits(fitted, "pot")) { # call.args$threshold <- fitted$threshold # call.args$npp <- fitted$npp # call.args$period <- fitted$period # call.args$cmax <- fitted$cmax # call.args$r <- fitted$r # call.args$ulow <- fitted$ulow # call.args$rlow <- fitted$rlow # call.args$mper <- fitted$mper #} if(inherits(fitted, "bvevd")) { call.args$nsloc1 <- fitted$nsloc1 call.args$nsloc2 <- fitted$nsloc2 call.args$model <- fitted$model call.args$sym <- fitted$sym call.args$cloc <- fitted$cmar[1] call.args$cscale <- fitted$cmar[2] call.args$cshape <- fitted$cmar[3] } if(inherits(fitted, "bvpot")) { call.args$threshold <- fitted$threshold call.args$likelihood <- fitted$likelihood call.args$model <- fitted$model call.args$sym <- fitted$sym call.args$cscale <- fitted$cmar[1] call.args$cshape <- fitted$cmar[2] } for(i in 1:pts^2) { call.args[[which[1]]] <- pars[i,1] call.args[[which[2]]] <- pars[i,2] fit.mod <- do.call(call.fn, call.args) if(convergence) print(fit.mod$convergence) prof[i,1] <- pars[i,1] prof[i,2] <- pars[i,2] prof[i,3] <- fit.mod$deviance prof[i,-(1:3)] <- fit.mod$estimate } prof.list[["trace"]] <- prof if(missing(method) && length(start) == 1) oldopt <- options(oldopt) if(any(prof[,"deviance"] == 2e6)) warning("non-convergence present in profile2d object") structure(prof.list, deviance = fitted$deviance, class = "profile2d.evd") } "plot.profile.evd" <- function(x, which = names(x), main = NULL, ask = nb.fig < length(which) && dev.interactive(), ci = 0.95, clty = 2, ...) { if (!inherits(x, "profile.evd")) stop("Use only with `profile.evd' objects") if(!is.character(which)) stop("`which' must be a character vector") if(!all(which %in% names(x))) stop("`which' contains unprofiled parameters") nb.fig <- prod(par("mfcol")) if (ask) { op <- par(ask = TRUE) on.exit(par(op)) } if(is.null(main)) { fls <- toupper(substr(which, 1, 1)) ols <- substr(which, 2, nchar(which)) cwhich <- paste(fls, ols, sep = "") main <- paste("Profile Log-likelihood of", cwhich) } for(i in which) { plot(spline(x[[i]][,1], -x[[i]][,2]/2, n = 75), type = "l", xlab = i, ylab = "profile log-likelihood", main = main[match(i,which)], ...) cdist <- -(attributes(x)$deviance + qchisq(ci, df = 1))/2 abline(h = cdist, lty = clty) } invisible(x) } "confint.profile.evd" <- function(object, parm, level = 0.95, ...) { if(missing(parm)) parm <- names(object) if(!all(parm %in% names(object))) stop("`parm' contains unprofiled parameters") rdev <- attributes(object)$deviance + qchisq(level, df = 1) pct <- c("lower", "upper") ci <- array(NA, dim = c(length(parm), 2), dimnames = list(parm, pct)) # Assumes profile trace is unimodal for(i in parm) { x <- object[[i]] n <- nrow(x) th.l <- (x[1, 1] == attributes(object)$xmin[i]) th.u <- (x[n, 1] == attributes(object)$xmax[i]) halves <- c(diff(x[,"deviance"]) < 0, FALSE) if(x[1,"deviance"] <= rdev && !th.l) { warning(paste("cannot calculate lower confidence limit for", i)) ci[i,1] <- NA } if(x[1,"deviance"] <= rdev && th.l) ci[i,1] <- x[1, 1] if(x[1,"deviance"] > rdev) ci[i,1] <- approx(x[halves,2], x[halves,1], xout = rdev)$y if(x[n,"deviance"] <= rdev && !th.u) { warning(paste("cannot calculate upper confidence limit for", i)) ci[i,2] <- NA } if(x[n,"deviance"] <= rdev && th.u) ci[i,2] <- x[n, 1] if(x[n,"deviance"] > rdev) ci[i,2] <- approx(x[!halves,2], x[!halves,1], xout = rdev)$y } ci } "plot.profile2d.evd" <- function(x, main = NULL, ci = c(0.5,0.8,0.9,0.95,0.975, 0.99, 0.995), col = heat.colors(8), intpts = 75, xaxs = "r", yaxs = "r", ...) { if (!inherits(x, "profile2d.evd")) stop("Use only with `profile2d.evd' objects") which <- names(x)[2:3] if(is.null(main)) { fls <- toupper(substr(which, 1, 1)) ols <- substr(which, 2, nchar(which)) cwhich <- paste(fls, ols, sep = "") main <- paste("Profile Log-likelihood of", cwhich[1], "and", cwhich[2]) } br.pts <- attributes(x)$deviance + qchisq(c(0,ci), df = 2) prof <- x$trace[,"deviance"] if(any(prof == 2e6)) warning("non-convergence present in profile2d object") prof <- -prof/2 br.pts <- (-br.pts/2)[length(br.pts):1] col <- col[length(col):1] if(!requireNamespace("interp", quietly = TRUE)) { image(x[[which[1]]], x[[which[2]]], matrix(prof, nrow = length(x[[which[1]]])), col = col, breaks = c(-1e6+1, br.pts), main = main, xlab = which[1], ylab = which[2], xaxs = xaxs, yaxs = yaxs, ...) } else { lim1 <- range(x[[which[1]]]) lim2 <- range(x[[which[2]]]) prof.interp <- interp::interp(x$trace[,1], x$trace[,2], prof, xo = seq(lim1[1], lim1[2], length = intpts), yo = seq(lim2[1], lim2[2], length = intpts)) image(prof.interp, col = col, breaks = c(min(prof), br.pts), main = main, xlab = which[1], ylab = which[2], xaxs = xaxs, yaxs = yaxs, ...) } invisible(x) } evd/MD50000644000176000001440000001176214260547434011410 0ustar ripleyusers5b5e91b7a401a51efe96399b91c85bf7 *DESCRIPTION 6852e794057693efd448624d4fd6ca84 *NAMESPACE 086f411bf36dfd3982eb1c06c8a41c69 *R/bvdist.R 5fa03541b508f52c1dc0899dec1f9495 *R/bvfit.R b3a3dce504dd4f18f802b79970fb529b *R/bvpot.R 28a5e4cc327f089d02b5b0e2458eb6c9 *R/mdiag.R 9947b19ae45868d856d4aa183f87228c *R/mvdist.R 2abe52f6c84f8af5e1630551137e0ed8 *R/nonpar.R 300e53ed9e9da38ebb4a9e20f16c98d8 *R/pmdiag.R e083d55c09bea5dd5414ff2fc6c307c5 *R/profile.R ef49ad50a3c7802b8bbe9732883bbb7c *R/stocproc.R e03f03ad0c12f6e3c67f73c1665c0ff2 *R/uvdist.R de734aa8d29555d42850bf2afe8d63ef *R/uvfit.R e60d0e2cd7087e07524a3df0050e02d3 *build/vignette.rds d68cfea8b33320fd9126ea80d6319ecf *data/failure.rda c33081cf361744491b1acc705a79957a *data/fox.rda bac3d131d0e36fb5596eb14dda8b9f34 *data/lisbon.rda e7a23af3cdfa2d79115f430d2aab6cd5 *data/lossalae.rda 15e9a0fbd183e18d2421a321aec55b7d *data/ocmulgee.rda 123e3779faf5cfd0f83e251e06935ebc *data/oldage.rda 79009a1c1a87452a9f04f0a31e8ead11 *data/oxford.rda 17fbe17dcf5ace97b37a6e16c62c3532 *data/portpirie.rda 50dae5154ad85ac2e6f7f12da5200d92 *data/sask.rda dd351a164feaddd96c57dda0805ff975 *data/sealevel.rda d009439317a9a0110d04f69cad3cd65f *data/sealevel2.rda ad65e71d58dfdd4fcd8545db3034638b *data/uccle.rda a56d450cec20b359e77fbab9f7d647ab *data/venice.rda 9230d98b4249974436b756cd390a3c5e *data/venice2.rda e7b1e6cbf7f132e6a57f7efc183475bc *inst/CHANGES 4e07061d10683ba50d3acece28af7d66 *inst/CITATION 74c16464801d0b97b69d7b8a237d7ead *inst/README 9ab51b3769c4c7a82654e15d93d85696 *inst/doc/Multivariate_Extremes.R 3e13579b90b9a81b645e21c28988d0b1 *inst/doc/Multivariate_Extremes.Rnw 117c79eb22cc09a1edffa94d3684f1ef *inst/doc/Multivariate_Extremes.pdf 953e1bde4f4155f80d60198b883f5f27 *inst/doc/guide22.pdf 9f61c01952df4ff95184e1735e682487 *inst/doc/guide22.txt 523dc67fff7227210c2ba8796646a822 *man/abvevd.Rd 03b8b2e9d2f21050429b0c6ce5ffe5a5 *man/abvnonpar.Rd 58f72ece2585a9813314d5c382bb3271 *man/amvevd.Rd b6162433fe831e6926789eaedb9ac669 *man/amvnonpar.Rd e923598da8facea633bde1b52c4de961 *man/anova.evd.Rd de8f548527dfa661bed0282ae1f2f869 *man/bvevd.Rd 43828f88ed4f1f911de542ddfcc4ce25 *man/bvtcplot.Rd b6d4c709e6a6a717aac37c0f111f83d3 *man/ccbvevd.Rd 318af72ac009f773506801a8cc75b0f4 *man/chiplot.Rd 367623bb628aa659d0d256c5708e340b *man/clusters.Rd 350fdcf3481ad9402854027683daeb76 *man/confint.evd.Rd ec8e4ddb5f9a96ee22d04cdae96401bf *man/evd-internal.Rd 4d6a023171216a79a0e50bcddcc52fd6 *man/evind.test.Rd 8bff69952c5704feab6dad7b0b054da3 *man/evmc.Rd 2560e2940a9dc035f9afe977aa981364 *man/exi.Rd b8137a9ab659ae2254c165e6359cdfc2 *man/exiplot.Rd 5cabbc4d0df40b6a7105d86bc1a720f5 *man/extreme.Rd b0e0e7154dbb5ec3ff1f19186ff99851 *man/failure.Rd 93092f9e9db915388d569955c3b85e3c *man/fbvevd.Rd 46088742eb73669fe55a5929e563d5b5 *man/fbvpot.Rd 155150c64728680e332eaa4eabfb47e7 *man/fextreme.Rd 881af86636b49dbcf79aa5954ce3f297 *man/fgev.Rd 1b413342070bd17ea5052183477ccc32 *man/fgumbelx.Rd d5722d9ec990cadbe7ec09971ecfdaf0 *man/forder.Rd aef6cec422661466d6b54f13e0ab96cd *man/fox.Rd 06acb9a4d33fb414e372a16663f5c0c1 *man/fpot.Rd b818c703acc0282abb91d1afd7b1b00b *man/frechet.Rd cdb4b952e4f20f3761f01afd2276d160 *man/gev.Rd 3da2ecca51dd761a49547d1d1a6d8674 *man/gpd.Rd 53abddc6f16f327746392db7137cd8ef *man/gumbel.Rd 30ecb72e4a5cc1167edf973c80461f6d *man/gumbelx.Rd 5b2604733ff89123e1d1c674e00a3e6e *man/hbvevd.Rd 5b79bcb534120fa3c6e3336a06a616cb *man/lisbon.Rd aaa7641109576280b07ffea3e4369644 *man/lossalae.Rd d4dd7a5e299a13072617c52e15fc3528 *man/marma.Rd ddeb90d652393cc3d2aa4adbad581463 *man/mrlplot.Rd 4430733e1a962ff9044835783c63dc62 *man/mtransform.Rd 8a24ebbd56a77198c93306188d6d5f4e *man/mvevd.Rd 21ae3ab8fc77c6ff7b7697fdcd8a2229 *man/ocmulgee.Rd 73aa82c764a6efd2bac4c73ce687809a *man/oldage.Rd 91d2571189b2513762e45dfb62599bf7 *man/order.Rd 1f21c3a0fb013184676d52654771c0d3 *man/oxford.Rd 546fd58521992b1458536154564e8bd0 *man/plot.bvevd.Rd 01d8e4d539de0e68215d2c2ae58ecfae *man/plot.bvpot.Rd 57ae51ef07f6277a9864ae8026952782 *man/plot.profile.evd.Rd 1f9249df0ccc24dd6fe1cc14b2f3209a *man/plot.profile2d.evd.Rd 3cb51b33006e88d3289af83d70314ff2 *man/plot.uvevd.Rd 4714ee737485ba8383952827c615bb9b *man/portpirie.Rd 05b179859f8f5fc2e88358743e601d20 *man/profile.evd.Rd 8d558fe7166045d539ab67083ccdde84 *man/profile2d.evd.Rd 6e8deec7d624858bbe6e6a1c6a5dc59c *man/qcbvnonpar.Rd eeee05f0cd614aef849c67cd325dfcd1 *man/rweibull.Rd 3219497aca485038920c94478fd48ad0 *man/sask.Rd 1e4837ad9bb2b011b235db5f6dc3e9a0 *man/sealevel.Rd a4f88f68f3d1a01d5820b9db3deded88 *man/sealevel2.Rd a374e7df439ed123bcd8e9e0e141f716 *man/tcplot.Rd 65fefd4bbfcddbaedf2946f59a7bcafc *man/uccle.Rd e0c35df69aefa81f9605db9b4a155c05 *man/venice.Rd 81b83c21fad695895892d7f545ede416 *man/venice2.Rd 0d518ad4980329713d87e5f4172087c8 *src/bvpot.c 07bb0242783f3d75a477d449ff238167 *src/ccop.c 0ad7984cb65bf23c63b56a39d28888ac *src/evd_init.c a3aa7a9ccec41d05d622e9ea1d0ee216 *src/fit.c 702d53fe4a6624682e09e86d8605b913 *src/header.h eb8249f374b8db714362b3d48c8ee9b2 *src/pot.c fd1b1c4713d66567985bc0213c6fbe88 *src/sim.c 3e13579b90b9a81b645e21c28988d0b1 *vignettes/Multivariate_Extremes.Rnw evd/inst/0000755000176000001440000000000013264344706012046 5ustar ripleyusersevd/inst/README0000644000176000001440000000265512637167310012733 0ustar ripleyusersThe evd package extends simulation, distribution, quantile and density functions to parametric extreme value distributions, and provides fitting functions which calculate maximum likelihood estimates for univariate and bivariate maxima models, and for univariate and bivariate threshold models. The file CHANGES documents changes from previous versions. The users guide (in pdf) is in the `doc' directory. A vignette on multivariate extremes is also included. A reference manual containing the help files can be downloaded from CRAN. The package contains the following (user-level) functions. All comments, criticisms and queries are gratefully received. Univariate Distributions: [rpqd]gev [rpqd]gumbel [rpqd]rweibull [rpqd]nweibull [rpqd]frechet [rpqd]gpd [rpqd]extreme [rpd]order Bivariate/Multivariate EVDs: [rpda]bvevd [rpda]mvevd Non-parametric Estimation: abvnonpar amvnonpar qcbvnonpar Stochastic Processes: evmc marma mar mma clusters exi Fitting Models: fbvevd fgev fpot fbvpot forder fextreme Pre-model Diagnostics: mrlplot tcplot chiplot bvtcplot evind.test Model Diagnostics: plot.uvevd plot.bvevd anova.evd Profile Likelihoods: profile.evd plot.profile.evd profile2d.evd plot.profile2d.evd The following datasets are also included: failure fox lisbon ocmulgee oldage oxford lossalae portpirie sask sealevel uccle venice sealevel2 venice2 evd/inst/doc/0000755000176000001440000000000013270067525012611 5ustar ripleyusersevd/inst/doc/Multivariate_Extremes.Rnw0000644000176000001440000004631212637167310017630 0ustar ripleyusers\documentclass[11pt,a4paper]{article} \usepackage{amsmath,amssymb} \pagestyle{plain} \setlength{\parindent}{0in} \setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} \setlength{\oddsidemargin}{0in} \setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.3in} \setlength{\textheight}{9.8in} %\VignetteIndexEntry{Statistics Of Extremes: Chapter 9} \begin{document} \title{Statistics of Multivariate Extremes} \author{Alec Stephenson} \maketitle \begin{center} \LARGE \textbf{Summary} \\ \end{center} \normalsize \vspace{0.5cm} This vignette uses the \textbf{evd} package to reproduce the figures, tables and analysis in Chapter 9 of Beirlant et al.\ (2001). The chapter was written by Segers and Vandewalle (2004). The code reproduces almost all figures, but for space reasons only some are shown. Deviations from the book are given as footnotes. Differences will inevitably exist due to numerical optimization and random number generation. \normalsize \section{Introduction} \label{Intro} The methods used here are illustrated using the \texttt{lossalae} dataset, which contains observations on $1500$ liability claims. The indemnity payment (loss) and the allocated loss adjustment expense (ALAE) is recorded in USD for each claim. The ALAE is the additional expenses associated with the settlement of the claim (e.g.\ claims investigation expenses and legal fees). The dataset also has an attribute called \texttt{capped}, which gives the row names of the indemnity payments that were capped at their policy limit. We first scale the data so that one unit corresponds to $100\,000$ USD. Putting the data on a sensible scale assists with the numerical optimization involved in maximum likelihood estimation\footnote{The book reports an unsatisfactory fit of the GEV model to the margins. It therefore uses only empirical marginal distributions. This was perhaps due to not scaling the data. In this document we use either fully nonparametric or fully parametric methods.}. The code below plots the raw data using the log scale for both axes (see Figure \ref{rawdata}), and plots the data transformed to uniform $(0,1)$ margins using an empirical transform. <>= options(show.signif.stars=FALSE) library(evd); nn <- nrow(lossalae) loss <- lossalae/1e+05; lts <- c(1e-04, 100) plot(loss, log = "xy", xlim = lts, ylim = lts) @ <<>>= ula <- apply(loss, 2, rank)/(nn + 1) plot(ula) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Scatterplot of ALAE verses Loss: original data (log-scale).} \label{rawdata} \end{figure} \section{Parametric Models} Any bivariate extreme value distribution function can be represented in the form \begin{equation*} G(z_1,z_2) = \exp\left\{ - (y_1 + y_2)A\left(\frac{y_1}{y_1+y_2}\right)\right\}, \label{bvdepfn} \end{equation*} where \begin{equation*} y_j = y_j(z_j) = \{1+\xi_j(z_j-\mu_j)/\sigma_j\}_{+}^{-1/\xi_j} \label{mtrans} \end{equation*} for $\sigma_j > 0$ and $j=1,2$, and where \begin{equation*} A(\omega)=-\log\{G(y_1^{-1}(\omega),y_2^{-1}(1-\omega))\}, \label{dep} \end{equation*} defined on $0\leq\omega\leq1$ is called the dependence function\footnote{The book uses the definition $B(\omega) = A(1-\omega)$.}. The marginal distributions are generalized extreme value (GEV), given by $G_j(z_j) = \exp(-y_j)$. It follows that $A(0)=A(1)=1$, and that $A(\cdot)$ is a convex function with $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $0\leq\omega\leq1$. At independence $A(1/2) = 1$. At complete dependence $A(1/2) = 0.5$. The dependence function represents only the dependence structure of the distribution, and hence only the dependence parameters of parametric models need to be specified in order to produce dependence function plots. The code below plots dependence functions for four different parametric models. The first of these is given in Figure \ref{asylogdfn}. <>= abvevd(dep = 0.5, asy = c(1,1), model = "alog", plot = TRUE) abvevd(dep = 0.5, asy = c(0.6,0.9), model = "alog", add = TRUE, lty = 2) abvevd(dep = 0.5, asy = c(0.8,0.5), model = "alog", add = TRUE, lty = 3) @ <<>>= abvevd(dep = -1/(-2), model = "neglog", plot = TRUE) abvevd(dep = -1/(-1), model = "neglog", add = TRUE, lty = 2) abvevd(dep = -1/(-0.5), model = "neglog", add = TRUE, lty = 3) @ <<>>= abvevd(alpha = 1, beta = -0.2, model = "amix", plot = TRUE) abvevd(alpha = 0.6, beta = 0.1, model = "amix", add = TRUE, lty = 2) abvevd(alpha = 0.2, beta = 0.2, model = "amix", add = TRUE, lty = 3) @ <<>>= abvevd(dep = 1/1.25, model = "hr", plot = TRUE) abvevd(dep = 1/0.83, model = "hr", add = TRUE, lty = 2) abvevd(dep = 1/0.5, model = "hr", add = TRUE, lty = 3) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Dependence functions: asymmetric logistic model.} \label{asylogdfn} \end{figure} \section{Componentwise Maxima} For demonstration purposes we use the data introduced in Section \ref{Intro} to create a dataset of componentwise block maxima by randomly taking $k=50$ groups of size $m=30$, producing $k$ componentwise maxima taken over $m$ observations\footnote{The data may be completely different to the book due to random selection.}. Bivariate extreme value distributions are typically used to model data of this type. The code below creates the componentwise maxima data \texttt{cml} and produces two data plots, the first showing the original data and the componentwise maxima, and the second showing the componentwise maxima data transformed to standard exponential margins. <<>>= set.seed(131); cml <- loss[sample(nn),] xx <- rep(1:50, each = 30); lts <- c(1e-04, 100) cml <- cbind(tapply(cml[,1], xx, max), tapply(cml[,2], xx, max)) colnames(cml) <- colnames(loss) plot(loss, log = "xy", xlim = lts, ylim = lts, col = "grey") points(cml) ecml <- -log(apply(cml,2,rank)/51) plot(ecml) @ The following code estimates and plots the dependence function $A(\cdot)$ from the componentwise maxima data. The first code chunk uses various nonparametric estimates of the dependence function, and also uses empirical (i.e.\ nonparametric) estimation of the margins, as specified by \texttt{epmar = TRUE}. The four different estimates are shown in Figure \ref{nonpardfn}. The second code chunk uses maximum likelihood estimation for parametric models. The call to \texttt{fbvevd} fits the model, and the call to \texttt{plot} plots the parametric dependence function estimates. The argument specification \texttt{asy1 = 1} in the first call to \texttt{fbvevd} constrains the model fit so that the first asymmetry parameter of the model is fixed at the value one. <>= pp <- "pickands"; cc <- "cfg" abvnonpar(data = cml, epmar = TRUE, method = pp, plot = TRUE, lty = 3) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 1, lty = 2) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 2, lty = 4) abvnonpar(data = cml, epmar = TRUE, method = cc, add = TRUE, lty = 1) @ <<>>= m1 <- fbvevd(cml, asy1 = 1, model = "alog") m2 <- fbvevd(cml, model = "log") m3 <- fbvevd(cml, model = "bilog") plot(m1, which = 4, nplty = 3) plot(m2, which = 4, nplty = 3, lty = 2, add = TRUE) plot(m3, which = 4, nplty = 3, lty = 4, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Nonparametric dependence function estimates by Pickands (dotted line), Deheuvels (dashed line), Hall-Tajvidi (dot-dashed line) and Cap\'{e}r\`{a}a-Foug\`{e}res-Genest (solid line) based on componentwise block maxima data and using empirical marginal estimation.} \label{nonpardfn} \end{figure} The objects produced by \texttt{fbvevd} contain information about the parametric fit of the bivariate extreme value distribution. For example, \texttt{m2} contains information on the fit of a (symmetric) logistic extreme value distribution, which has a single dependence parameter and three parameters on each of the GEV margins. Using \texttt{plot(m2)} produces several diagnostic plots, including quantile curves and spectral densities. Using \texttt{deviance(m2)} produces the deviance, which is equal to twice the negative log-likelihood. The following shows the parameter estimates and their standard errors, and gives an analysis of deviance table for testing \texttt{m2} verses \texttt{m3}, which is possible since the models are nested, with \texttt{m3} having one additional dependence parameter. The call to \texttt{exind.test} produces a score test for independence, following Tawn (1988). Omitting the \texttt{method} argument gives a likelihood ratio test, also from Tawn (1988), which is typically more accurate. <<>>= round(rbind(fitted(m2), std.errors(m2)), 3) anova(m3, m2) evind.test(cml, method = "score") @ The code below uses the function \texttt{qcbvnonpar} to plot quantile curves using nonparametric dependence function estimates. Quantile curves are defined as \begin{equation*} Q(F, p) = \{(z_1,z_2): F(z_1,z_2) = p\}, \end{equation*} where $F$ is a distribution function and $p$ is a probability. We use the default nonparametric estimation method and we again use empirical estimation of the margins\footnote{Using parametric marginal estimates tends to produce more sensible quantile curve plots, but we follow the book here. Unlike the book, the quantile curves in Figure \ref{nonparqc} are not step functions because the empirical marginal transforms include interpolation.}, as specified by \texttt{epmar = TRUE}. For parametric dependence models similar plots can be produced using e.g.\ \texttt{plot(m2, which = 5)}. Note that because we plot curves corresponding to the distribution of the original dataset rather than the componentwise maxima, we pass the argument \texttt{mint = 30}. <>= lts <- c(0.01,100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) points(cml); pp <- c(0.98,0.99,0.995) qcbvnonpar(pp, data = cml, epmar = TRUE, mint = 30, add = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Estimated quantile curves $Q(\hat{F},p)$ for $p=0.98,0.99,0.995$ based on the componentwise block maxima data shown as black circles, using the Cap\'{e}r\`{a}a-Foug\`{e}res-Genest nonparametric estimate of the dependence function and using empirical marginal estimation.} \label{nonparqc} \end{figure} \section{Excesses Over A Threshold} We now consider all the $1500$ observations on liability claims. We assume that the data are distributed according to the distribution function $F$, and we are interested in $F(z)$ where $z=(z_1,z_2)$ is in some sense large. The methods we use assume that $F$ is in the domain of attraction of some bivariate extreme value distribution $G$, and we focus on large data points to estimate features of $G$, and hence of $F(z)$ for large $z$. Typically we focus on points $z$ that lie above a certain threshold. The functions \texttt{tcplot} and \texttt{mrlplot} can be used for producing plots on each margin to help determine thresholds $u_1$ and $u_2$ for methods that focus primarily on points $z$ such that $z_1 > u_1$ and $z_2 > u_2$. Alternatively, the function \texttt{bvtcplot} can be used to help determine a single threshold $u^{*}$ for methods that focus on points $z$ such that $r(z) > u^{*}$, where $r(z) = x_1(z_1) + x_2(z_2)$, and $x_j(z_j) = -1/\log \hat{F}_j(z_j)$ for $j=1,2$ where $F_j$ is estimated empirically. Following Segers and Vandewalle (2004), a sensible choice for threshold $u^{*}$ might be found from Figure \ref{bvtc} by taking the $k$th largest $r(z)$, where $k$ is the largest value for which the y-axis is close to two. Figure \ref{bvtc} is plotted below using \texttt{bvtcplot}. The value of $k$ is returned invisibly. Setting \texttt{spectral = TRUE} uses the $k$th largest points to plot a nonparametric estimate of $H([0,\omega])$ where $H$ is the spectral measure of $G$. <>= k0 <- bvtcplot(loss)$k0 bvtcplot(loss, spectral = TRUE) @ <>= k0 <- bvtcplot(loss)$k0 @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{A plot of $(k/n)r_{(n-k)}$ as a function of $k$, where $r_{(1)} \leq \dots \leq r_{(n)}$ are the ordered values of $r$. The y-axis provides an estimate of $H([0,1]) = 2$ for the spectral measure $H$ of $G$.} \label{bvtc} \end{figure} The parametric approach to the problem can employ models similar to those used for bivariate extreme value distributions. We first consider the margins separately by fitting a univariate generalized Pareto distribution to the excesses over the threshold $u_j$ on each margin $j=1,2$. We choose the thresholds so that the number of exceedances is roughly\footnote{The value is chosen so that the thresholds match exactly with those used in the book.} half of the value \texttt{k0}. <<>>= thresh <- apply(loss, 2, sort, decreasing = TRUE)[(k0+5)/2,] mar1 <- fitted(fpot(loss[,1], thresh[1])) mar2 <- fitted(fpot(loss[,2], thresh[2])) rbind(mar1,mar2) @ Parametric threshold models can be fitted using the function \texttt{fbvpot}, with the parametric model specified using the \texttt{model} argument. The default approach uses censored likelihood methodology, where a bivariate extreme value dependence structure is fitted to the data censored at the marginal thresholds $u_1$ and $u_2$. Alternatively, a Poisson process model can be employed using the \texttt{likelihood} argument, employing the methodology of Coles and Tawn (1991). Some examples of parametric fits are given below. Diagnostic plots for the fitted models can be produced using e.g.\ \texttt{plot(m2)}. <<>>= m1 <- fbvpot(loss, thresh, model = "alog", asy1 = 1) m2 <- fbvpot(loss, thresh, model = "bilog") m3 <- fbvpot(loss, thresh, model = "bilog", likelihood = "poisson") round(rbind(fitted(m2), std.errors(m2)), 3) @ The following code plots parametric and nonparametric estimates for the bivariate extreme value dependence structure fitted to the upper tail of $F$. The parametric estimates use the previously fitted models. The nonparametric estimate can be plotted using the \texttt{"pot"} method and takes the value \texttt{k0} to specify the threshold. <<>>= abvnonpar(data = loss, method = "pot", k = k0, epmar = TRUE, plot = TRUE, lty = 3) plot(m1, which = 2, add = TRUE) plot(m2, which = 2, add = TRUE, lty = 4) plot(m3, which = 2, add = TRUE, lty = 2) @ Figure \ref{qcthresh} uses our fitted asymmetric logistic model \texttt{m1} to plot quantile curves at probabilities $p=0.98,0.99,0.995$. The thresholds used for the censored likelihood model fit are also added to the plot. <>= lts <- c(1e-04, 100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) plot(m1, which = 3, p = c(0.95,0.975,0.99), tlty = 0, add = TRUE) abline(v=thresh[1], h=thresh[2]) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Quantile curves for probabilities $p=0.98,0.99,0.995$ for an asymmetric logistic model fit using censored likelihood estimation, with censoring at marginal thresholds given by the vertical and horizontal lines.} \label{qcthresh} \end{figure} Models based on bivariate extreme value distributions assume that the margins are either asymptotically dependent or are perfectly independent. They cannot account for situations where the dependence between the margins vanishes at increasingly extreme levels. The remainder of this section illustrates the estimation of dependence measures that can identify such cases. We consider three quantities as defined in Coles \textit{et al.} (1999). The coefficient of extremal dependence $\chi \in [0,1]$ is the tendency for one variable to be large given that the other is large. When $\chi = 0$ the variables are asymptotically independent, and when $\chi > 0$ they are asymptotically independent. The second measure $\bar{\chi}$ identifies the strength of dependence for asymptotically independent variables. When $\bar{\chi} = 1$ the variables are asymptotically dependent, and when $-1 \leq \bar{\chi} < 1$ they are asymptotically independent. The third measure is the coefficient of tail dependence $\eta$, which satisfies $\bar{\chi} = 2\eta - 1$. The following code produces Figure \ref{chiplot} which shows estimates of the functions $\chi(u)$ and $\bar{\chi}(u)$, as defined in Coles \textit{et al.} (1999), for $0 < u < 1$. The functions are defined so that $\chi = \lim_{u \rightarrow 1}\chi(u)$ and $\bar{\chi} = \lim_{u \rightarrow 1}\bar{\chi}(u)$. In this case $\chi(u) > 0 $ for all $u$ but there is little evidence that $\bar{\chi}$ is close to one, so it is difficult to specify the form of dependence on the basis of this plot. <>= old <- par(mfrow = c(2,1)) chiplot(loss, ylim1 = c(-0.25,1), ylim2 = c(-0.25,1), nq = 200, qlim = c(0.02,0.98), which = 1:2, spcases = TRUE) par(old) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{The dependence measures $\chi(u)$ and $\bar{\chi}(u)$. Estimates (solid line), 95\% pointwise confidence intervals (dot-dashed lines). The dashed lines represent the theoretical limits of the functions and the exact independence case at zero.} \label{chiplot} \end{figure} We now consider the coefficient of tail dependence $\eta$. We can estimate $\eta$ using univariate theory because of its relationship with $T = \min\{x_1(z_1),x_2(z_2)\}$. If we fit a generalized Pareto distribution to the data points in $T$ that exceed a large fixed threshold, then the estimated shape parameter of the fitted distribution provides an estimate of $\eta$. The call to \texttt{tcplot} plots estimates of $\eta$ at different thresholds in order to assist with threshold choice. The plot seems roughly linear after $u=0.8$, so we take the 80th percentile of $T$ as our threshold. Finally, we use \texttt{anova} to perform a likelihood ratio test for asymptotic dependence, with the null hypothesis $\eta = 1$ versus the alternative $\eta < 1$. <>= fla <- apply(-1/log(ula), 1, min) thresh <- quantile(fla, probs = c(0.025, 0.975)) tcplot(fla, thresh, nt = 100, pscale = TRUE, which = 2, vci = FALSE, cilty = 2, type = "l", ylim = c(-0.2,1.2), ylab = "Tail Dependence") abline(h = c(0,1)) @ <<>>= thresh <- quantile(fla, probs = 0.8) m1 <- fpot(fla, thresh = thresh) cat("Tail Dependence:", fitted(m1)["shape"], "\n") @ <<>>= m2 <- fpot(fla, thresh = thresh, shape = 1) anova(m1, m2, half = TRUE) @ \begin{figure}[ht] \begin{center} <>= <> @ \end{center} \vspace{-1cm} \caption{Maximum likelihood estimates (solid line) and 95\% pointwise confidence intervals (dot-dashed lines) for $\eta$ at different threshold probabilities.} \label{etaplot} \end{figure} \section*{Bibliography} Beirlant, J., Goegebeur, Y., Segers, J and Teugels, J. (2004) \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Coles, S. G., Heffernan, J. and Tawn, J. A. (1999) Dependence measures for extreme value analysis. \textit{Extremes}, \textbf{2}, 339--365. Coles, S. G. and Tawn, J. A. (1991) Modelling extreme multivariate events. \textit{J.\ R.\ Statist.\ Soc.\ B}, \textbf{53}, 377--392. Segers, J. and Vandewalle, B. (2004). Statistics of Multivariate Extremes. In Beirlant et al. (eds.), \textit{Statistics of Extremes: Theory and Applications}. Wiley, U.K. Tawn, J. A. (1988). Bivariate extreme value theory: Models and estimation. \textit{Biometrika}, \textbf{75}, 397--415. \end{document} evd/inst/doc/Multivariate_Extremes.pdf0000644000176000001440000224423114225274441017634 0ustar ripleyusers%PDF-1.5 % 4 0 obj << /Length 2154 /Filter /FlateDecode >> stream xڍXK PIɦj&ӓԦ*l{`li=ISI o}eKDϘ*F7d'?N~=2=4NNZ7~} W֪WZye80"CؙJ$E{v<0{A`!@+c `?$NoET(]w4]̂y)[D:QuRkfUJGwPe6<L^[܈Ӎ'337NG.A7|W^+:nkɷ?l\P\,9-NXغ ,KIޙ$e`pHX4 IVp# RV3JCu.(Ff;7.;Ow<t2]KЪ,6~mc5EMN3sndG7Qfe|5N[spЇr i(;Y_`Q\y\@9bOSH񺱾Թ:Ƶ1VͰDDJP1H4B˭F{nň;NHO-=F>*QT/C*|ý`(#MR1dA'a'_<EryHxDJ79q1cq 'ɖ DT_6גSgk߻?T.q+'97M0@bꌄX)壳 oAY!^J*$ v,G)4E8l\e! CI H'uR +TAcÉb"Y ]dXedyw@>dʳk>R r[jA.|QuC|F*4緳~QG6C-Z4 䔮|t4EBy\,HߔYpeZHm{C}ErB_8 ]hLE kkJx")! j *3glUy1ioP=A#=}c4dg n0 eHLiz|WN"]`Q97C]*VW C7BV0 Y'պœKr!:UQ//$UA9M]KlZт vn,9G.^m&UR`7D+C-G58agk"8/k]'h,nsA6rii}fϏA34=s+4 F1%Q-o2A]XzmHAtt~oKSQ6[YKx\ {G볓yh`oo}D!E_h:$#s@(7`Q(+ ÀDE/ RuQIM񩪤>{.0^q)ԁ.(4yGH2DSͅH,?ɤQ }4!-C˴/04빮5A }+ig-S,ŹU[LQP!/Rbag"8`0* XxM04 k? ;:T GK |8OiNKdh`0eȤa.Y%^aTWMx7%UU9 ?7) endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 595.276 841.89] /Parent 18 0 R >> endobj 2 0 obj << /Font << /F17 5 0 R /F18 6 0 R /F37 7 0 R /F16 8 0 R /F38 9 0 R /F40 10 0 R /F41 11 0 R /F15 12 0 R /F47 13 0 R /F42 14 0 R /F59 15 0 R /F58 16 0 R /F48 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 21 0 obj << /Length 2089 /Filter /FlateDecode >> stream xYo6_XS$Wd@E ذ`/]T[IV&)m~ۤDqm%t/NG2 ?":@l9 )1}D{~Ż ɾo~rs0}uy )2ƚdWafLkae׷]X2Fsb9]Pu7M;$oŏyUl޿vu-ʺJG;il*!ho852. neWPAt*b>eWnWO-|]5댁AL bkw}?/u9Tnj6ٺaۏCnvu[[w*ou H T>TkV_>]n-C#Q$PN^gR*$-1{<ߎL"-%K V8*#$%R#MIĒ䟰46*?7ؖw7^$$){}8Ddb6)W$'MʸN4L""d7xǶS37{F?"e|G4ň%xxXg/\dd5`@GcL=wU~47M@1_.ʷdԣ)'(6|Mn!daP{tD6Xx6Mkw çrHV>PQ;$}i\ȓLTJT Dks1848.%Idm6=b#Wl 'b-d,9s ŗ- %|7Q3IpAl%qq4=Bejۍqr4@hO[SڢTe fڹӌ w0H*U] hivf Ou+z{jAH( ݺx{tn M8IqdgA;@jXklE] 8wI(7,_ꪭ!LL/PSLnglY+8#ĺwKA~`KrI3x6´F99@rৠa> endobj 1 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-003.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 31 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 32 0 R>> /ExtGState << >>/ColorSpace << /sRGB 33 0 R >>>> /Length 75852 /Filter /FlateDecode >> stream xܽuҦ埫XWȾq)$`)iT`pxhr+?EƊx#&_ןoj?S[?_OWM):I?׿_?.3oa3O?Qz ˿ټ^) څX˿>on?%>qow5 ']kUmfzOhvz) څX%a'%~M鿣Gk~q@/q-[)w,͇_}g<7 >n6>i`S71ot_,~<(>hLl)]Hɿcm:߉7KlC`'^V)w{ysHwmJ];[H׷|]vӷH$?yS/qMO) {?Ȕ$}|Rq̖})toķME[]UYN??ԔX[$}>lЖRRn!D|?[KlC`x8(ǧ|SPiwIR-|~jmEG\q"( 'rHV$5H{p_}V T8C#e$ )ˇ%)Z-$寑2wWVoN#R qE>Obdʧ$9O1N-U\!1SaQ_o[J׷5R-iO{R}_-z%!nطiOۉ~44f~B%唟Im?ek7"3G\ qȶcʸuڟߦNy5D}{-[)-5qY>P)D% Ar,Xi ,[|Ȯ!yl}d,? ~E}+K$}Z}B%%I c7"w:yS/qMq4)8EJ>V'X͖-z0-o#. qeWO3!}ރoyR5aiokd^t}%aAޢg\bKL<|ZRl6mKcowMYaok|l}<}%!G#. q|k”yl矆ҠDOե3іR)8i[oAU-z%!nc9\R>O_dwHOD}=u7m!oܔy_N*򆞑m,w0;)[CMlBrR-h+};ƼLfOUi4)"ymV'(1L?Y [H׷`{-_@W7qY>1|~>%ޡHzcHI){̷Hz[7Ys}ǘܯ;$c"I~@B*!%;$|'{ǚ~|?-,K*tj||%?eIݷsFOD RΐB%G Ӗ3"_K#.؆rRok,]:`:E=l%ѝY)Wek N[{d/&[wYXi )i˗tw4_y;]ɳ@6߶YmweXt`R蔵Vͷ IYGB7>!S<2$?g~S=b-;3hww-z'S~i~/JzezYnɥ,sy^<+۳~,O$BJ[HIǜɲkg:3E~];\jMN},;c˗"ѓewbaSn YXGUY>ϭm#-z{_x~XXw(])@Xa im#^Dޢg\b~XiO=,[0g%k;cQl9w`g^ױY~Yѧߑ<ˉԐ%K+jU"˔at}?wqNEFq;<"Kq W@ ,Ѓt0Ȕy)wzU828y)KN:xG48Y6yJ8y7$h~X[Q=eeu2IjreóYZYZ,cО˙7@2\_m, >,5ԳT]3cuHza؆qZE"CdR`Yjw;J؆ɲoc,O-trkED3@Q[HM0+le }g]3نp> ;4ߏ?TH߸ϛ-m!%KʧGr{bk5-7m}do2X={O󻞢W$Fw,-h Rf5:=₭;=XNkfM~XTcU[| )KXVToZo#Rn%1eNsEﴎ%};#m!\Sѷ%1oWcU?}#2Uo2hx~~elFfKZ|8R+xfwVVVR(-%[!=j5@țz !n,Gs,H˾cMYʭ𩯷DHER"=M,>),kH}sh~"y%VRZZ2e.=#[$=wdEJTyuK׺,KTdJ,[^l+"zƕ۱aJecQ!˺y3NSw=RtL)Uƅ"ت@Ŗ 1֔E#d6o8߁e kl7Wd} yf1w`wN3c3. qGNͳdY>OZHz2dZCE Yg\cc]9l e^LfݪiʠHnewYۮ~Hi mw1%-z%!n"-`Je}eK6]1 J3}n2F6-؆!k' S6"O5SnokRoʂ|IZqYX0A~dG& +m!U#3%CMwb~Gr_Cϔuf6!R%5~=B4uuSbķH,WZNl}dA{jhϔy?S]Vn~JU[H}QӶJU}]حm,C\zaY[SkYV2.U[HYgdb_l?2"iRM`6%Z3߯U>D,g(a )Z0ؖb7"[eг$ CdLNÌXGeK[LcߡT;iKTǫGqG3GrtR)J'[#*@;LupȲt,#z7wl۞:5"Ro,kx5^Oa)~Xv2.m&tk3EƲSxJedleVB5=YY>ck~"y+l)eaJ7,m#+i,]瑙";ȲPY`=c[Jb)M)ö3%B=₭aYggYh%;߲vz [F~})mOU2mرL^㼟#YTy=X#$RSߞs,N"Xz,?ѥf,ݗVOEUl2o;DYV,,dz^<ˬe֗eVҋJ,ObuYWޟ/g}=D,#V2/gξ5|"R`~;}|2g&hRY,qe%c}zd}|d^YVz~Xm ,]F2YXDŖRՕsLՠMLɳP`bc)ɳYtKY\k/c)V7ξŵ4aڃwtId/^;YF{YF,:YJ{Y|ՍUPPr,r,r,c9c9cˡˡw5ÒgóYr,c,yz=</%'YD a$?< u,,w_YXw'e9R|"R`)>zSStHe>rXZE8!K4'"FC{eߝd6[WOݱX|6(m)uQ3mozͯ=KϸYql㖥%7ɳ@XaKi>gU[σYG\Í[?=N\Q4K͹ܝkG?эdl)]2خ-é[$ԎmzĕYW4,XIY@vw,k,~rXR ǜj6[l,ar2ۉײͿ >.9ZE9M9(>yk3[J_$nKWpӲɛz !ncirCʂs LV >e$~Cn;4ӗ;[J7YЇfp,cqΞ4,]~Ԕ`$g@=~Yp ]lM-'jE"ˬG\ qc̝Sky,ZoqOR|Ǿ;8E?wdYψ`Jo69NxXi )k)%x|X6Gmن#˶LumYAEn>ٳ%v,(vdqRlncBm,MZ 4ZPYF2JLne M[gY0ڡ9[7YN/LRR[&lW^k1d~l!1ʈX5" ~qM*'U<2SQsX^7,ѩ~ݮ2m!yd\0memyC`6]YqCf nm~U'&˒Zoe8Bo#."lSPi ,*ݩXCh )YWRd|[ #K/Prz c8orf IϜcITgJ7tl@Xa v2]s,YFv20o5#˸m5лBsOփxqGtoS2˴`բM@JVi2YY K3?f<#V*Yʑ3a[9N RLh[ؿ渤ܼ lCeVcHҦ8C{4JdE[=&t¶Mioor^m;s-,XJ$?Hz͔.Gvmi\Z%Ǣz9ڝoe;:/ι385<_,U%k8/Ɣ=So;oygϻن#nς)Cj[1 Q:%=b-L"8frNɳP*G'MGFLW*߹\$FwNH~}s2ok;̷HJ5=#q)gUW,g`[ݩmcb ډL[jotFpm;fcH2& )2ul,ix,pnsi=©>rYY2ߔsߴszcX52Y&fDR=j<{8ߞe9Ar oG6xǍ.bKf ސ/|YG\ qs پŻr+o k"|/l)eL Á뷥*.·HCY#ˡ]ͨHY淭@qÖUDL` i*@ݴk&N707X>ϙ>2SS&JOEF}&m!>2R ۶߲>2qm,٫IY05-pÚzZU%]}MQfxtڊ\)ۄ6NֆA'Dog8dA=M/%r@dkl4LNfޕot>ek{ )SnqY޺_xXi;5k{ )2@!R ,#R#9bF,DeYd,44t.ݲm9a =r ,ycMW?,cx 􈵱/w`o[ߪar{lʲxl 3˰>|7Yމ~_ȂqTn!y+lȂ1X}|Neq WBoϒ3-X*Ǿ/K,"BJu)k-aHzkybeióYzY[E[eei۳YzY,^cݳX[ògݤl=7e˳Y|Y,c=q?,Ee “(.X:$ JUqF3ѱru$|b0'qHqU8sGӚ/7qf|ŧқgóYzO)ORgeót=)h9ZoI=b-;&5"wҷYʼ8'e ,e:˶ynZnvZSKoOcr}{ۚŭxG~DKw}W|g[?fIX_L}{g)+.Kq?Hl+bR ,-Ng,%<6'ֽ=/ޞŵa0ܞo0#- 9bs|B[%-;l*FwdR0+xXi Y )rmH07 >n2qeJ]yPRfq:.j X+)Yj &d =Z8dr L%g%Y^e6X­meEJl!k#.gsj4J\Ӂ+ok;[cYw7eH ܮz^Uޗԏ;G[H7daX_}$qN4yGÿh"-J:c?L-o,RIv8qm,MYYq\eʔ{nyS"˘J-p1%!#-Yf2=₭XqK"VL?JD\ϔŕzֹ=.tDMWt-a3Hl3_w68r|WG\q;)'c`gd3ƪ* Ԕ&cRwճ4w^q˳6&w`cƔ׌_mUSҔ*=7w1% }w?q `t9ѥVr'Vę'$9CgN|mfXsV7e)i}${_%* Ք.K+aHnCލ1Rc ZXSaO$")UlU\ͬ)%ŵE }zUq?,eZYk`-HzUd43);uorW)kxw` X Ƹem~{Hl3IXl6wޱStHť1/\_= FV˲gٳYZ,,zўg#V&"kHs)Sb[GV2ֆ{.F9[L[â;HRY,m,[2WdYwӛ}k|Xom;Kς FN'g*JCʽDӰwwd[v Vyq;_(K]V|oג QW)XosR71g=cheXx0h<`ؓK+/N%ϒ˒gɳYf,,x]Xv[cqeZTW c;[Khlco'N{64=)؝S<"ThCrly3_n8vY|u?q?,^w9_He=߾ܴC!aXiޱ!a~X߿g>eGY,XXryYF,xU^U3Yv,,{t˒V])Whl7CbϘR~Lt?$R`~LIl3)ǔD ,ۏ)maݛas5rS$")+3%9NLqrbe2K ,XK ,`wl !91nc8 XX. kal najҰR\tcpeq5*7YIY&P9'%-e]L[Ҷt,E|OIz) r.m#E{p'V΢Î^-$G bK{͏q;ەb,!I2/c_s_@5}k iVmMF-W̥-j7Y[4;Y yC`,}s%SF{$G{g^bH۳%`z%B="]7,1M)~繇ai~"y%VBVu˘~ŢN=w(۳R=#~;< 7nﰥ6"~ǭt5eƸz,M0VѶkG*o6]o28)Ӎ )l]>loVfX8[Sw~rcr߅cفer>e^V'%?< !֖{Y'òySv_,Ef~R,:@yJۢV2o1?,3< #N7,ۿid,5+ ʲI'8|ߧ|Ie'%``nX vdo8}%Ry747;t )tq4gd9~;K]ZsOrjk>1c ˗c"v^c.-Ǩص;m'yYޚ©=;Ou%g{{G7o|]Xܼv:Wee˳tklVYHevX KshSEZ`jdyǖ`}gUO'%?1tƕR]{LmiIGkZo{z}SKm/?;ZsiO{Lʲgyc{yCǨW՟#95h%wYYi ؾW$K;lﴹխ$h~XZk r7GhXG4lu&Rpl Y'8[òyFSla)y%V"rIY0ɗzia,DʇecQ]#ߞ.eكs8:ͅbO)l}Ҥu%R*WR uɕL\ym'WHj]9z5k9wOݪ&ɛzĕm7YٽdOi3LGh(=75g SDJfwmwG\#V\noM)>lmG\eW UR-C]f8WlS$K\q[3x,1-oyvۚi1t}=C5(q`5@v>ncAkMiW8*G)Lm!Ë,-[:w~.M=₭۱)޳\dzw}y͕9bRcgg_,3^⢭XVASL3:, WngxUXz#^5[fko;z, [7}ѷ`gR,&nX~mNDJNJ2wwaJ#Vnw=˸4<9`Yրŭ [-$*)MbdCE#7;ߞĹZoZ jS,KTG Ṽe9L`beݳY|Y j;[esHey6=K/Ke=q?,Yhb|Y6[ee\-a-_tSNS yC:|{yLMŅKV|I~"y%VBvR/NrvzseXmK[%߶qKq%1Xp=l/#E ,kugzg5Kl7ǔͿ9m/ )̠Ng69B#RzW$bKij+)CXuhE"q GuZnnا7}Ӎxɡ:PB6[~!ǰvɛzD:9oϲF.ϲ+*D,#VR:,le}'@#̆Hv=#LYkK*2:#z*:Os9m .vS.\񘝭;O9CUɱPolRҒ;ͣ̕Yi~X D.rX:=.Llh{0-3`ٶkp c}v];44<e$UlE{n-mɋt%'L(TiyŲR_,Mng_,5YʝN,B7O[aY~"y+l)jfd6Iojf =₭,rMS'S2KSʑ3t$+SYn`-+\Rd4l -'K\ qK|t)D\52%QfK^d Iw<ڲ6m,gӔKJ޷FwYfge>>mݬD#.]#Kwz\Nɳ@XaKIo>Ԕrl?Z3"ysηgYz_Mɳ@XaK Jd^wzlN("yN7q?,}.}җ." l)KY=,Z{ )]cvD,KhR+ܱew;!eY;yi,֠YgMI}ti[;Y[}Y\M~X|Y}/uu,7=eb|Jgϥ;,tmRV۾OO)Tߘ_&u+"wѶh(8pXO]ǐ"wr'IV),^-ecH{ao w,Xj}Yے5b7zeYųpXn@YF,,z՟#ˮ6֧WaTcC%B}Xde^C̯' Ja&Xنfa"vUM0v#T߁EN% Pol'"&Ar,o<ڽcNaؖ홏qEs}3vn>r=@ڥ0;jeq1{f7W~~XϸsCm,l Yonc26La(pJ}a [)mcXZO"y7ğҥ$ fYpZY6}bBV# ֽd%xb>ncm7{( Yil͍.5yC:x<,R^(R]=M?ý< \"نƝ)2e#C)(ލYpq g nglm%G\qKZe堄=|۰dkz];ٚ^@Xm,e)}r$?\\)M?uBZSdкk7$bz5X۱Ϋg,7WE$B$[i9\ld+M;NYXgz5@zlZgU,.\zƘܔ&&Hc{qr}Ih Id6Iuf#̺b:ߞK]Z9|U9bYXi i _L\|mc'|1ol}njX ,ݱLNYz`~r=KK?ZHzJecMz'홁I .1, `-j#PH=Z}'B#̉|{^uN)Mu.ȯۼ^b-$)YVVNޥoyC`~X%1}#Y~zz [#K('lrwѹ$ E_#˸áe(ٚ'g^b-$;ݏ)rNfeeΊlfɳP/oUn93,Fl2}˘>ɽoFYD ,Ѓ,۷>reYR~Tk_=ϥrƽ&؝dVZ|. #~N\G~Oa-X lؒ3Wh.|g)ykwx:[òt]Sl`pdmY< uj֬ːW}cg>b;z5a:aYۉݷb"bU/vvEZ]yq0"bqGO)>/H˴B[%KsY2J> ߧz4X*\WzD>99E ,O^َY_fYBR;FFr=,}/C7iBʲldPY,nm2ga6-5E ,i i&+ ~+/F;vws@r,zQdyǦ;^ޱWgd1])"KO^ӗTݣBR8aw`ȲV5;t:߁%?>{Ks1HBO{c"cj~XYMK^o׋Ų [}J3G Iwâ'e˲Xf`فe2~Yj ,;/Yjz~X׷?yN W2l!}q/XV`Y_,+^ ,eyaʲ2Oܸ1l U~\8j#ZYv{b%,7_y22źBI0t=X0ed)Jx-zjg{u |U`۳/aYzvY{TTcճt\TTc`eyǠWޞXzY,{y^<˜e%P/8nyWc)nR`)nRm֗eu2geճYX+@zX\B[%+O{l<]{lZo,Ӎ aϼ]E得 "'쾗'rbjR0yXOa˳t+2\zHe0ntbOo+qWW'=~BKzb.NFj. =,#yR\wq"[aqBt .mƉՕZ:|]] [%+hjb]C%Kɡ/9_rK/_xO{m)ű0ymucKucj͒XF`Ye}2KbXO_,W+7wPW!+gJrEY{++jioIM,=m+rճ/R`iO[2;c۳YVzYV,՜θSQ<nLTYZ(Fy~XֳN鞒gmsJE,KUNc> ן:%kNI},eX ,#/Xf`_,3'R;vQKccԃ%Kz.^EEbX.9? )WU8zX|{U=Xܫ~XVYj,6? aq#meW7ZNHzeq5'},eX ,Yei)^^_,˳RR<%4tY ,nXGafՕ%PHz[}~Xۆ)s棕5"y+l! Sp #R` C[ˌ~M~^f^pxYUmezL?/VHell}y77>V[)@,n|=+`eͳ1?K-{/"*𽬯eeb#ɵT\)@ad#.e6 >/3b,%YxY\{FKMLr%BYZ~cXk=&g^b-Z}{=F=J=F߁e= ?n)g^b-"e[no-E,#{3,tg9)I '%భޱemj^ԷȨ*%s[$kɛ8dS7/ƍϲ65 YIX0NnubF]lGCG;qb9[7Ydo?>z'r>)uzD3H>BrRD6oij#ɛzĕ8>Toܳ9䗖Zmgx-,7ep=[ݮJr)HUe{._$ǎ;=v ֳI׋}׶)q]6e]yv>nqtAJcOLCuor'UnznH˔j8[Hɛ[N0*ࡳV_q .\p8VRS+tLHiIptEk#K=q_*SWRHl,ȒeEP6u%K>B}cZbE"Ͼ1gbBT|J7+x쾱kK9 jז| YRזl[;,0AJ>?:wl\Usi%u_XlCO;=ȇ]sE`rst韠.,7[)K*VlIBMw?v?XOf˔U'YViϒ"-;ZѼYoK{ō%s{1J[!K*eat@ ˺,2.,KU,( J_,k|rX',=&XcK;>ڲ?ճCKr~^z\e,R/,Kˊ:W֒QGs |``m_`s>ydʑqo,Y[JgI18&r YRqXRcX#d/,}.,WnƮ[wK{O[MT`![ԅxFV^v?XFԹBԌa=(>m5@ @wV R y/=vXֹ_Xȣuau\#V,DSv`5F)q&o -X;LX|웲~c;aZgnbhflc2˱q<ZzȒ<[ϯ3|6+D0nbvL?0?F E`gCsYR9B6vrz4Ot#v˥zֲb0SwRKgӰeAnb* (WOK'㹪q(^+SNNߎar,=n6YR\vWF9|Mmd Gvc]9G_Ȓ*?hIVM0GT{NR?Lfk,k]{Z}4LN۩eף!쏋猰%q%w_W3d/o,8bejy#VȒ*l ڍ.ԝcó3+̐쾱LM@Kgz.|"…X6fiˠGheeF3JoBXfx2]V'qn tTknԹ(eީF dIbK:n~_\ٸv%zҧ辰؋ ^SK3JoB؋ep t(3d/o,M}cGc1R,䛭%c蹏q bI]1^vXR跾}oDX7[ЭXJoy]t8dzuew`9K֡XN`,S*ηkȒoiK<9v5bY۱osВk\')2_dIEn e6nPĒ?]&{kq=.3kZ&)bi#BnbA\v{mBQ9vA;l}XNK7ȗ]t"=Do2ȒjYaKogGw6^vsU'?8^x@*&ʒH d[CǙQ٨g LƲZ2V1 f+dIQ65ԝcggP‚iK@oP)_dKsw]YR-Cd3ƧXȧ]v Ɗ&YoμqBL+nc,$ْ--DSw |iWfIJWtCO[mi/-rXޏs˂eŗQ2z0]m!{}c %V[߲ < f+e2݊eb@5Y F) K}hn[o(Mw,ηM( *-w;5RKN}O>~9 ,%1P\ֱ؉Eo ߘ뾰Ըoq{L= W_ YK11l oC_54(BJYPճbUQ){\K;yBweq3l4(B>l,-kKH,qo!BՙDb)}/{[{1PT~ ʉe]e|^_*ҫbkT3d畐Ũ_xke7֩w ʻo睅O6%w ,n[&BVXZ5kdyF)Vʂ:9Dz,G&DV~T_ma_|XYPĖb d3icR,.Ȫ7~.'V,ZrH)Vʂ*1R% >sEJwn~0*:7cXP,̱ ,;6.뾰d l~DV~<.,7;ϋ3E>l#wBb1]"n.,·5czոl,8 #f[w`i^XI?U,덣eW^Z m"Ⱦyc tQ\Vrm^@]X\ֱbYXzzW5d=ݖdF5IeEߧ#O߷kWjK7d[H,%F&`vT+{,e^X7c%{ U QkRX\D[nŒz ,V*~`^-VGX&OJΫ`}kT}-;o:Wwe`ya?X慥_Xuae^Xc|cs2rtV|aG5+|cve|~x!amݿXyaYe]XeXZ ̜u>܌u>uQ| ڍŪ; r3 vcOd<Ku9 KbHxK?Xօe\XqU/,2 KŽXօe^Xowua)c,/Njݒ1y\s(sE u_XXe0S2O ,zȂl,b9 eK,N=FU,AKsR,ʣAEvcF]XL'j/bR~FXb3WqsQ/X߹2/ ,'XTK+`߱L=+bʊe\eqo,%*0V<"s3,%uk_2<=Wq~TfK}5tF,=b|T/,V/zz{_{,:=CW`u,Wb eV2eHYRMc(BJYPլ?fb!vedPbPeA_/a?(BJYP_-K26\b!좬XUe:\[NhA E,5tm٬& ֖j=뵶]k$ZtqZ1|JCZuu"xCe=R(M,ӲS"LZ(c[EV&ujee.f-7F#Er INqYP#nنlKmg v-F;|OVPޛ3PԈ](ZKT]Ew]( >j,E7-erZmxE,Z:*P6s:ٙ*jw`i62ƚU*e~E)b=U &ڝe'RXMQĂ&.v?XZ0p-=ԅu"@7A²DV~^X-ikU`,?X{bkR69H)adQ,]%}WP`q`Y6X1Y `i;]Kg,X˙1.,<-Ӻ%W岎;XfS,Xf K!v_XΟratTQ'_ *{&+[aY?CQ/cexxL^MҬei_=A%2X_t8owoFAw[>ol]Eo(BJYG6ۍe0rG)tua,sDV,֢5K0MDYoW&)_-˂_-WbDwC<|YX,Uey-|:Z{o^g_[eA}q.f-*GCvgɓ,AKgZC-$+id'߰R̹kMRҾFXNY-(̄Z="̫f|Ȃw&,f24UK:CoY V{[U "/IV1NɼزܣU(A9bylU辰8+7cٵlc1J?yԑChào 9O{8k"vXr3–bo?1%B-J;,krz ޫ}c=bhN[G5c%3Zb7.<+m"vnȗK8* ]-)Dz.O#shli5ȞM>8BwM,vP/VI^ _ԧ,(\Iܻˎr6=>uzYƲo5P ux@f˴RchQXblQxUo,+6o,~ P.3+S ōuzgXOYr3b9Q9x2UߐqJ~Kke1RcZ"v?XɨK瘌óX_`oG[&ɸEblq %jeW OP<(BʼLeYL[cwޢ,dKdų(oP]ߎEb!߃W /Ì jЭ35TG ʪ7{eKN2kiޫCJYPN=tkkۖi.X1-nF] 6XPWUET-<u>]b s?U˩!tNӖ=_Ȃؒ,zdb|̤lvAV,[=SXv4U=}7}.k&2޲ckuE,{ĂU?DˠcHNqqFP=+3#y'vAV,u:n; ¦gΊJ!E,3; YROl9]5u.Ȫ݁e;༶_Ù6W;==dI%߅Z[ȫENj].vKcl6c߲nRk,'W{}92#V(e,(M,ݲ粭(9Awg24[}'}MR| YRQ --;+Oj$Xou}Ʋjzv䮮r$K_MY(CTW w&N1wî9`)2%'xވػ{XfS,,s*>˓Mcr/,IYwM=3YxtceU`C]X7q}a+~}c熽M|  M5 [Mި&Xc y9GYƒfzJ {l=[~6J155q ,rֻ8Ug岥/J3IJ[!K*ngK0Eg|X®LPr~Zܾw^mjvV~,n ePۯ6yT.8>DV,tҾ]+DWl,=l)l sٙ+d//,'(s-|(BJYRlgHdFNij]&{}c䊥&2}VO:BTTCGKL9oĹ=|s)̑YNgoq~9Ǥ%L\vjg:bgovA;|<-0{i΍FHߡ!Ktgw?[g6j.^v?XVNr۲6y5{7[)K,c{2X.;u:#tpsD?<{x&4mXO,&K*n`KT`͝".XZ^vXp}c1?X%՞o-,·]qAMt[-j 8}(Z7gpFYRɳ@R։BQz >ee{zfZܗ {7[!K,+ Z};u=s;cg\,Sr,y(>RbCOɱx/NeO X}N#d/o,mD ", ^3J,&Kjx$[ƑN-jw4>BORŲ+R,QX7[!K*be,~H]Xpwx!/,2oldOH)q}cr}c}xGJOKohCK^` I>,0N_X];!b͏d[@7-Z`뻰oBk~`gb!A2b,܃&{`i~%[D6>7YRͽl!LˢhJΧ]  |XP,cXdv,޴Җb)Cb)CIna^3\y||؊ܑvfNjoFg?DϏy|Pt1"՟gb!l 74v`%2SKDnQ,XJQ,)+V7*eDB.,2~ K,2.,˸gqaY]bY] # mQMҙ2BƲ{m3O|`L?J²xl~KX8h{jeˌ7@5Ȉ1n.,Ə%]rQDKnY]ƑK{bl }s4_(Ə7ce?[?,Ѥ%5ϏiNe?aԅ`ee-q숗N>,·&=Wr||1Dދ%~;P؋Q6<{`[݋o KoM |c"t Uu}cl7jABr|7,*辰${oGJOL"uKk%K,&,6K銥ZQCt-үb uH{z/X}?WdW}~'{!W"x8>lWBK;਻D-bl!,TbKa@=XCraOƍ$RcErKϊeV2eVҳT_,)ZK/ZKo-{zdCצּ=䛭qou`U_8KciEXF}X h`i]k\)Rb~bUXV{XYD1]#Pc me価_KWL?ʮ>}׈e~.,^#d/+<6)g`&ҷXהqƕƖjeFdY`abbb60AlbiH){3WٳbҨ̕ ,\XdԚَEJ^v?XO_(Œ̫%U/F]XԮ22"-jȦXz{t{FzhVXt/E$oˊ}eN@Yn,;5-ucAr,c)^,cI?D|}QYW,k*5_,b=dY/!3~.,]WRey%cY,+]SEXF7ƒ?-^OX "C6{=@Mz#*}ڤOEFg KeW;+P&1ʒqXK=}<2~u?XK,RbY?XjV,’ K͏ݿXڋ K,M wLΖ+!Xje%GfKiQ{ C>lm:WY\c0a}yrtXR,uX|U/9?YS_d9ߧeX?byE~/߾~Τ7`1yA_3&HX5?c2e,EA3fD :vWXT,sXf`P__Xח냵]uF%B#vԱԥX\ԃe| Ҳb)b)ߋ%y({%K̊e̊EgҋbYܕq,3JoB/Ȗ畵,=n%~}UC+[g7Ștob!l,(ӭXd~(>-̾X-9VhLHuyn;l5%5*3X̱ں2,li{O[C;׭3F\LYRo#cKe1#[;pt;gzS^v=Vhiܫ%'Х=V _X cuKJ[H_6};]4iW+nRkč[WR,ս=dIU?-f&qxv=e7,֤X[YSi.]ju0eʂ[v筇nӮ F&݇vOv,rH?8M?,ЂL~6BkUKf^vXf<Ū/$՟gb!l,+X}efq1Ps>7EburjwoJ8.YnVò+{1JOKv_Xv`7=t[7 , dA娧\,XS"ӮZLSt-\eXw ?XE$;]]OLҷ E}V%xފ[!8٘ bY} iW\1EeęcY9cYE =Cp,g% j+Q]YkeeFZײßgb!B6Ҹt[y_+ۨ Kcx7}|s&(ŒNY6\cm`+wI>&SR;jo#l,񍕡X7>e7\[%3)վH Ī}cUdlG|c4u< YTu=?U>sڲk7u`eo?Ӱ˂~ )[;d?}LWDi]^$ybuKIcr؁eעq ~?u( j*mo\=>q<|ՙD?` |g *jjuK役ᓲZh6C69}<;33XcR,R/Ʉ٭~:,((dsG==|ؕXD7,Q<-ϛkhA9s˂*aZ2 H7]};y< PEV,c9#lYK@S}Qٽ4V:sⲠ;[p`JQvG7(bY-3dnb{Z='-]kT\NQPqZU#'-@6sptgI3/3"vXblW~s/{QA e׭XzFGImb!좬`9eH2c׹?~b˴[Ow] >o,+fKӚV[ {7[) *f=MYj>;Pv` ? [ڵ,&Vf+mylsW/?y]3OUws.k^X>W2Y ({ԋsW*Pz)Uo,9%_qSB3Q?_PR~p_ً&idLfYX2 U.x.8Xy$E,p0l#UbKf"/8o|+_V+kIc24ru &좬XpkW7  %ST>Ζb mf}ΜȪ݁ټPli ] _EN/x,tT#MQ\8<.^ve˲}Dǹwv XAEX?[KȂ2R,s$`?{gBX,VhKq -6Y&I=?[kȒʾ*awg&prT!g5Kj(x}G,a;H0~`,~`[vbBQ\\R[3*^4L#˞gbvU׭XezAПnR ĵ˘ c-cs婻@)M@V,c#4Ȏn[^mb!ee<ݝe}YSt D΂+P|X:Pre_Kt|b1>#&/D6[_c%Ťb)ZI$Rl`ɒJ1;}|>K!aKK!!V4%q*OtKo,&XT,kX7!~ K 2/,zKBUߘ10˓֗`q\Iײ dIE8[,;ZycU4}!{ K@=Xr[M6~c2b2~/x~,/5)Q 쑝8KJ~'[<( iy17XL6g_眏XJ:ROٿoK ْjߴ\J,' d/gE,Cs [?c%.gKb5'9i}ޓzc=&:0wg~?Ɗs+G{䴮ol|cK1^v?XJceK3J[!Kd/|JϘ{*Y~d7Q//3&Sd+(>gL&}J2&S7tfv?m!g+rbl-C"9eI_%xOtHFqS^v  |9-S}D|,(!~u˲U v;^/"@ NB; ZNj\M?Er"͈]_ Ȓ*ǖt~ǒ_#Ap.&_`ǖn t:me+0_OeAUFWY+ES_5ew`v e"ŒӦʭcY?Kp5tKk0fԣnKv>-<ˢ[xyaّNȓU||FDgV>h+a?]7(>5jerG R JVh)jlfH iWa_ODKy)==䛭q!['[mԅe0~9eeEˍż2Xg}.,ë,Z-BJ1+KM/(O,ʞZs2x5d/~tc3>YmB*h]oLlc*'żD-gj6.Ȫ݁Kc0N6򜛉KWYη{S( JN8%M$[6ďNra&J^nbBYoX[F:1c s J,/:ĭ- 3Sc{ >사X־Xؚü#VP"QloYPwlI\ +RDE쏫&jTȽ &A'ʍԅŏ6Y _ YKYCxKMt_Xk9ED@ 7m%.L M؅(Kg&jeƍeǜdX(Ba,ђz;ޠ xǕaY2sAx?(B>l,~~`6Kv#vz| bYije?KR-Xj|5~//UE֯o7g݊ǫ c%E^>a%ʎ%K^a!Ӌtd;=HD˰բ&;yGSRe3K f`)'o%Hx:BQAsY;lfn+ʖΊ/٦&v"VZDfwJ lН52.Ȫ݁XNKc.:g=;|,-V%xޑ2)?s]^*?T˜齞PH6a'l8&ȋ(Ҩ]. Bb;-dH9q6}ũ=pY]n)ʎgovQV,(%C`[v< |/@vchiǰ(? ]ĂkGs`Vq p_;qH 瑅{jeGTM Gx֧Ȫs;w~'J80S'\l1ٙSdKnNN, og;Eq9ӪG JfDt ~b!Y)/,kwem Q-ދ龰4ll\EieX*eȪ݂eY`AkIʱ=,=hu(9"~{ZaWa0Vi-WygKrOkU$;Z0v6eA`DKz&NGw N`9b)EC׾za!CPЫNX'&TO[:o)y(n+fʂl Y [xvbVYƲ}B߅I?(B`Y|qu+RC;G)7oaWeՃ$e;Ҿ1lYZXT+_$Q/G~Ȃ1^3|}(/,В>FQb,#r| XPXzENJd^Xް>yF)V_Xvjvz;NXRc7V/>Wʕ'3?󕲠RO8t|uݠGL).U^_2~S5l_F엃?YP=<1dQK/xva'j%'^U3Exk<(BJYP#VzI˟7L7[) JvWhɼpNIdz]Uo,+wLB]{ޒ=ff+eAInd.uK%<|Y2b  !.`q>l,k:G`ؖLRyEVR K,².,˺ 2.,kX7[)ȾpsSmԅ3Ȫ7ضNK!̏#X Ⱦ#[ςkݻD|Z_c%~PKdQVSU,%+_,)v?XL-8׮,hb\Lx{il ε}H;kQ(v?Xڻ)7"w Ccڻ5b5Qzo,{~Mjy> @2}ߨ оOYv߽*ua#w冤ODzO˪ez&e`Y)Y辰4[-;,F)aWӕ&u-_߮˾5f fk/r_~A,=vXz~ϏM f+eAϿk)%~~P|I^o6y%Z:OPz?hΤx:RxKdAI l.Y5 j%DŒ#;S]'vJYPrbn:&8*K0NODV,Ca1ngcbc_瘟>eM6 LQ2S.ʪ݁eٓ#)ϟnQIJf!#1&;|ܺ";!jee0z[SjBTTd Il17tKI<0d`9gi1zԃed=+2^r=!ݖfWE1nYa5'5,|GW+ K7x}a#Oqɰ,k~VbbX t \od(|X:٥d; {`}bU(RLc62 Mqtr,#jw`M~O%b8Fl\EYRիo%ͪ ѝ~<<;Pdn 2i%cgbk'ɧR(9&# iFmJ]c?;ZВ?x4YE,g:dI} ocm>Uv5hˆ"V!K**-hmgovQV,chZkF_Fws!Yg YPXY~F~6j`[9Pgåqtr."_F\|ZԾ>$׬IPC+oVx˧b  mm=ܸ YRMRyydQhz(KoltG >2F˹| 7yJ*JMdUR,VȒBDgR|X?XDex9[,IZX&KjƓ-k;4( }cYߋ+U,R~YRuae^Xbnr b9x"ࠐ,䛭M]Ì`Bdm`q>,T(ݖ -V=XWu_X&BZ֫ցexo^v?X \X0 ]G,q,(KV,ɮlBJp:`X~PH=Xz [}aiEGAԅzB^vXvXVcw$`R,VȒ*ElS6;h5+ErOBKgPCH8E{O[M61p*كL ;J^v?XF]2 } IYR#ܮ8SM4Ă|-}lG݁ls3j!Ww~dI%rb(b9L-in(:K`Yg(v\ -Qe:Y dIplO.6, arʑҒ>:k{#l! ꋋbJ P }=bSt+\;[~7YF%%Q| YRQ-~GVH)aWfp݊6L&{y(;BTxb-(xZoaR+nbi-F;|ۗV!廫y3Ӗ%bWBD _A$K;ߝXKBǹnm1"l%ޖa}? gK=$nbiv<~%lV7_Ń}t!9{}X ,(m/hOKLXXŃ2)ҸH,I%lglUs&XiW1t(z6L%ATLl55-mDP nҎ-`6葼kK ~aV!8Fʱt.݁=-(_o=x"*d,(3iߐVFg {XiXX6&FJg y=E!T,tǟd/0ϧт=:Q7OYRGF Ȑ-ݲGƳG]#J,m}㾱6R|j,X,Xb_ ,cW/} e%Fl/ ~uѝ|ڕ_辰ԅe04>O<^|jzbG]<~ee(k-{oۋ< f+dA8ufN(v{ĩ3=|1B2~aܱ,K`VbXL6'8ʱ F2x8Br͕Vˢ'`UM̕hi ,+Yeov#hLccX7[!K*y4,zyK62y!{`鑺Aoš>.,zꞺ2~2w*>,i4De0Z5PvH&KW-2mf \ua`쐽쾰w2-XC ,Kfʒ!f%Qq3dq݊%+[KďeUsR,䛭%m.,F^v?Xrq{?A]X!E]NcuaY,5B˪75K`V`iE,V ,,Jﭶeҫk 8Mѭ !%61lg.GoΙ8~mx/> 0^kztHMۻԃjz(tM9ar~,3V|Vz0VJW7<]>2X){c`)%cy9"ЏeOdw,;_WXzb)b l/A`̈,` |߿XL֍lcJʤKGa+b 1%bta>XZX K^p4N}` qKp'w d{aH_g|aR+]OܒA칦e`;b)s{ȱB٠=( RL,;-owlx X/,,`Y K~e?XmȱKW!=tz߱kB\TB{_ǩvp=<_/z{:ΓykaТ>~rPT;cUAÙqѱPjXUӼ3,S%>~Xj++ɱčX{ԃrb)W~?~YIJHOk:Ƞ,# |Ǘw Ēw/Tg=JzrywlKmK>>ö%?J_,y9D*_G>y~;nZO-gP/m\8S1'f6 )SlG,g,}i;d큊X$-٬sݯ^c۔˯s+V /XDNfY~7itI]²q)kv]yj'`;`a5R(ft/E2YtiI -H9=]ک4)FL[-v 35D h.(F]Rɣ:[ꖥ!3Qrږ~I7XxO{|t=D .;tVnd4Rjm;kc&u{ri5^#K|lj1\/.cNҍ~;}eqrJ҈PYq%Jt.e.(˱~.a=6(Oےө *,B0U{1C("]Rwa\)h Q{.aC-Zcغch-QtIr N2 unvl`Fv,YecA Pܻ(yRghF&%n1CM9 `[X-m˷$\ ''uF%,g".(A)Kꦡα * i#4N %$Q,*b|*ѵ&=AE,)4>~XP{-b9s]ǂkj/Vz6Ov,]rN8#PEE3;b9|[ XLtIUy"1ǦyO߿=@XlkXFXaUadRjRK35빌73*loz.y.C!j,3_織_ϥ<ϥ|-~,Kwz:=PKUR0KZcAUtaߝZOaQ.R2r25,0,mP;F_,,89Ror Bݥ%\PZ[XPEXX,xD0FlBRT-~f$ݞiۗ~9?yw.`AUy[Ld{7/ęX홶y{1Q>~LY mo{^|>^|ǦT%,֩)F 3$5w(a[uV YKSumjЍ~;iX[pKD#pJT(9C7=3PG]]Nm`;b)9Ê\H_K*y/#K ,=9}(\%NѸ+Nqܿm'3F{q{f_'҈Qu+39A7w)h[ngXNFb {IL +J] +i\ݪE mjЍ~X0X΄|nEE,Wi*#[ Rb)3ucЍ~;ə?pNc7Mi%s~ARӵ*#v"j3庢8J7cKۡNPBařȢMR+tE 8q)`6X,o1rr\=,E(ud=XVA=XVu_,|Vc?z@=XzǨ+|1F#~o?&9JlX;Z8 d`tN#ݱP23恽]n7C9}(Izw7[OvsoqNoLb$rVwQ77A۠,w`~ e`;ƟL'a4Q`qdzj5dIg^6)ohuҹ{> 9SC1(%JsyID-FuENj t?}&ݞ^}"u3JSWTՕ88)tOvlr*Ԅy4,G5ee{Y#߁#g⍄.(Uҽ16)#fS֑~, p,ȸaOqшTE K.98 odmz2\۱4jX"vFDrL7+[8~(ҭvqw@.Zszl@?~8.y]Q>bNuL۠,K÷tDxߝZMaiK XK9r0" emea륄U'}/{3ԟ7R?fiaY&_v,v,a/~;VN[H%Gt/ERҽfԳ<:?|'OO8G&NϽ/SA;.dȝnα JXN۔/>~;,ɱtVoHM*&oVf:m7ܠp2m/{mSN`9c(c1߉Xj6H!rCr԰.)܋Ds;y~GЯN,pl&IJ=nI,[_-*ԴKr"=؎XJ{)]X:'-H]R~˜4naZ,/R~T?n Ss,H+Eb$&`;b)\T}V̻چ4?~}z 52jh/D"M{j9<%D:쳷e;&wփTL';)%UQu4=xunrѡ{r6(OgO^Kzh'|n'QRˇN\]P98]3K\wQ3UOf@]RKOΩvM`ٶGNd큊X$ҝ! cCϜkzHNOfo%؎X{;0@{__Mȶgh|L"]T"9=nrR[-EE,tw⮳tZ&؎XNťbjErb lG,'ٱd=ܯvrjn˹ 9 t%֝˲G`Y7 _XF}~hRkRK'!]2~'ˮˮ_,_ԍ~4u#lb bRwj,h=^\7#ڰm}%+ƦM_K*+ɩP7kd۔H˰x8S1koYzPN_g`ҴUݘlW'vF?XRi#H_Kϗ~:g~oKKq֬w0z0!KwlqzyfM79qieVH8neښUҝmceXU%﹤v,1fdHdiІ6'q|qTF-,%n[v1C-9=n۱h/cwGujcц;'xP\t/EkrPg56)vvDd36,xKcE!}Jwvs۝SwTHMt+BK ʰLݑl 3ca4Wŷ#l(JoM.% %}PwkyJim}aY#Ml9|%5'K*2(a+؂mòo^ɚLdl:txt\cey]3fh1CK,o)Rhovd=PUԒnM])޶)_ԍ~Xv8 9MWyX$%U=CNV@l'6˽.G,wme޷W˽SA,&ԍ~R &KyVeVeee/"?~Xʲ}dq&򡷷Wb%JWg`s?=Sw۠"v #~XzUE`*JǃE+vwo'fbN嶛zŶ%_ULJ/S㊅E+r}^"tIoA{&e;Vcݧc,PkY}HK.)-atXZjrE跰4ov^L+sf3ݪ"l;[5Su]#w%,~Y4Ҙ~ ;A \sa%_Awk!o;{lgw7gc or+T8g9}sWЋ<(υdP7NK JVJ,=|UlѥX8I#/]W{O`?Xz4I/cY닥BmN~DK?XkѮ/Sבba7z,aieZ TBcȦUp,E,F,~Jt/ݳ1Gc}ݳ=>SzXF?X‘0Gz8#K;vaLkϼ0ԟk0*K2JDa_j?~XZTDa"PN_+Xq3#㤹mPW?X/,˿S.`ԃrDzrRaY-b x۱LLd$Cv[:wbFGѤK %cg*=9-nr;1/sT<|K{m Kv]Q~9:a]0v*._~zerV#|匘sv(tePIkjf[X.Ij +ljA7-,N3t2M%JXxzt溢eΉSS(y.QRWU"r쳪]%#nq?9Slg8|PuE5ˁKXUܶ)_ԍ~,8Ga^)=Y}s"(M>qNrkH@7-]v;ٶKo2a{]'gm߻1eFeOό<Y8ЖnUڮ1c]4n[X{FP2pi!T_庢+q[pm|a]'\۱ku2ϕ:Ko]'jqRwZN} l[rzj9=5.Z'ӴH CKkdrpI `N>OfIyLu_,\ZUY msE(uA*.ֹ5M/Ȋ~?Xn]Yɖ{?eR{tIU?1)zΛv<%}~/6K5%, tYZB,_rf3q|L̈ew|fމS1gg_,/>~ ˼aW }ݶ(a9)tE%$N u+O6(aߎEW²Ro)o^.Q>\WT*T1eUNvkvکc93֭8{;ݘ HtEu.-IOg2؎ep깬?Ӂe#p9;r jymPf&_}v,}&8kvfL'L˿PYͪũ5'6OLb/~Tpu@E,~ tEe#'ilŢ9A,[序‚M#'k^~JEorDL4hZkimҀ_}v,>VÒ1XF3V$ge#v9oa3.Iv7ɶ d}X}߷? V;v5w&cf|.ghdmP\~ A`[XtwpV®w.~ AY/\~ƥK eC;mPrڅ\B۱,|aYf͌yg6+ɔ7̃K>r<.-wX#{G^rs1VA_G*`19ҕKq"݂\.]4hgx{crJ]RcnNms+C r~Ώ߿2\2l/{E1#aE+Dz{2[3w XGʎ+u X/,=F4r|u)؎Xrx29.k ˈ=Sj.%U=LNFƞxx +)`;b)7{!kkx*JTqFքMwrUmK{Iȕ'n}/L|/w8(}&o)Ϸ\%%,jMW߽m#F,7D,74޽=RɯK*>8f 7iTbd7,3,erz?,WԈE;]|EͶmpQ95׿7eDEr*ݡ8ATmPt)kriZBLa-FrbKT_.v?l;Yl#Fž,n9βXIxƸ$:eדh7uA/Dl ]l[rz:_?|YR:#y,P+ ~ފ4E K.GU!R$ҭw(3*Ƭ~Q7XQaȹ>m~M>lNM6Z֭w\._ԍ~X}#g!-mC{ϾtApfAwlmO?ƶ%ԍ~ KQU ggą[|o@ +w}^]oߪ-n@۠4t-؎Xv8]Nj:2|E, uIUaSP7#nI#Pl;kǰ3rrc)zhTbaԝq:zY8~Q7bAiꅑbfP_tIyf+9?=r,%h)_ҍ~d[S@,kE,k}SאbXqmPZ [$biI3cehT"9|.l2gjdȜknT"9=nғS0^3=PUug04)oCf#|~"oIDgۧJ԰lqܓ.g]wq`4>~;a4̫/S[<7½t~wtI`!N]f6(%4ӯ( eaOb:~8vSQ2-l'ҽ=Wfw;w͞ oDzQyz{e[U;|ﯤ,.+r:ޚ+Qy IY,a~uq;#O">KR4PRˑ)]P-, ;O쳏n% +Xma) 9Ӱ\Ny'k$JXv%U3qPؖmPrږ~Q7X.jݐs!ƞ#oynfB/[/lCݥ;//=g6(aYKґ`^f]'|/#CmPmv,e rx2!%&=3,+_ATa3n<ڮ~g=ۖ~Q7X~~]F'S5袄K~ߦKjS$VV{tQrۮ7 oDz%\~l4>wⷻdYy<]bjf,Q=u,,]7 =X~.`ɸLϓvҬeK%9n -[+uIyǚ$mJlrb)וUweRpPi6tIy'qlqgוl*{f׶g+NZoCm[#9}!+vcj K踃nRorzRHce{X(%U'LW| Uw0yUAt$B9}!,<͈v8 A7 {(.{3~/u~+u {&cXR{~Q72(ao(9hq?y_r*]R;?8;œT"yUa/9 9Yss3.{7(awbRZtPv ۫tߎ㋫B?^Y,J4]L(n5ձ']t+Rhpf4+).G8'{yRXYɽa򅆨K*yFԼn1,>3nA7bAKӾ:%ҽ!ȅe6 %N13FZЍ~Xjs]aMj'v?ꊪ6OhE=Ph)rH7-,Cs"iǾ""]&_PWT$m'?϶)rƓma9y;{zcܨ,lOP*Dml +'by(2xlކ^{ornW7rv>;kW(a++V2Sv8w_Y pkt6'g Νss/;~+ۜ_-Z! >~ .hct3s׺(a RT[YCnv.Zq9=cظOk{ ۺI K.uuIJ=AmGmtsv]m!t ]kƨ+ >ⳑ{|lro2kJ9)uE(뙚oq8BB螝iI4cCgP0o-,'FrلK]+*rBݓAi>mS>FH'(QB{M">)+ +W$6{~aI}W`,aaAb +,W˝NUXsr]v9pmϮϦTr*HhwQlT"9|<,nxgTp325Xp>@XPN,խҺ8_HLElϣxtߎe 8Q\uޅ2Wͪ(@S S(Xb@dror+>yƌocvz\\TCűM'뷨['vVdtͽ>c9X,S0#Pe)ڰQ-,rvNlh歧mjgrS+.[XNzx&g߈ Jq8/.nWԷjy-,ؤ#=q%,:5=6t{ݬ΁n>~;`a'ξS=*9+*V.ו|钚VRD#[mP:rHF۱e&Gc*&JXnE'yJx 㘺7v OmS.Ov,w9yEfe+=%Yuӽ mߣmu_,V 3WqvU?[M$RzuIjqPA|ljͳ[9G=&jٞ8Cpe +y!t,9NIT= q,)|#mBmSNv,5caQF\Q3eHtIMng SmTs9`[X:V'k LU 1-.KY_,%`i K{Ԉ2=Xփe²""~4-NWs2}׎X(%lα&rvl56)}ląNLr^gCZիc‚ɳЮ@?1Xja)XkUxRAאbYxm>6|l}^_,A,UaiV%EX(' aAHEX>IaY3VXwܰXɓ?²XYwܰRw|i]{ 9\Pk8?-{p[/`Obz#Uҍ~tgp-+u?5b/x??~F(|tq?tIXq3K7bEqKqzy{ORqer^F]^-kVm\`۰ ;hy7UWDoX GVt9q=l% BvmP^\NO`;`gX +Y{O퐯Բ,*qy *`19drP,sQ%ɼrFF];v9S쎰cWRc>my;眾NQr-nWK"mo7IUv9UǶܯl \ W>q ҪbjD %,{.'LW$MY6(a;KtO뜸8 TE_3F7P$.QrBgnTbrձ`;b)L'"gu%Dz=A,W钚 bПvmSNv,jVCd/,:Ϳ^oMT$|ItIy>q*"JvQNoa07rFy {&tݥ8Xuvݬ>uFǫnYtߎea[naT7RHx F$צelUit3jvn1 eWUf a.\ws0V -d9Ӳ ~^_$]Q ulZJNld,X LMY|߰tI4wQtXaLS-9=ʺ[sqjt3{?FE )>1jAEl'>mu`9snXy9kT"9|(G.NÊHmG3F_,ȎXJ"n[{"+uEUE=uQn[mz3~t'hdo!/-?WXoyvmΠ`"0bϷݳ*bRW/rgs| dwsfЍ~Xj3Ȱ{ܓci#ȅ²dtGz,e=͠` JQ Ƽ{fˉry]QNˈ\; f?0NҴ;3[>7R)߸r`t3< ۦ|h(.S s,'=P%RlG,ة{mPB۱M.IFs Πe'obCWT{q>nEO{M9jfϕbRL#l7Y?)}c^c)]Q׶,TuUhL&_}~徉I A,&ǕUf*qpu*I6Eror^Z"?OZ$5]^u)T^D@^mS.O-,8H\oDoF{Jq#F}娠ImU?[S mWq¶)̘~;I u8vNvߊ\û,Y#\6(a9mS.l =T}\:t}9vQ2QКW")!&ʶ-,PcˆTCvb$7~PQ򦪽WT~ e?u mRʼ:}o[lE"om3owgm(9tn}B[Hs9~uV-,\KY 9ci#qO7|$Qe%XX=ᶓ>ζ)_}~n5Κ`gMX«P_K+So$R؃mߣVܣ_}e"jwTe "EvlWWn}~fRPX[Gr*]Rb _F"eYl\mC.z|Jh?X*4?5_tIM󓃰uk:X}u_,8E{/B1#9|.)?/N0颾li wg»b?R’݁Kj)qtnhDVmteNenYϦjƐJX_,tI9G݆qnaU!ʓRӬy8rge%y͓f+:9ScNȢ5ضorhٝ)Y0sTD٬$Kʫ`S.tqY ڦ~Q7XΉ2:\]B.*fw-\1]=ZvN\qOPs6(ao<($a+,FT|&ЫK{lN#r]|WmSN hVnf{ܼ}[er.dVn–mӶKoO[Ӱ\ΰ^1#ynlJ%lI"n5ȴ]|1Rc>F݆X-6cMtߎ^Y?F*3l\᛹9t`ɗv~.GG bO}OmSNv, Ĭe׿yE+EFl|/ys-ʰLqkPnq:'evM㷰i^WAҝ S7p;݊nB(`[]uiP(͏Ksnߎe e9(^|LJ8 CA-+-cctcԽ̶WR Be[h1r2RÝxj̓?W߫g!۠"pt_e^m8Nl(5u+ rn\.\dz-c2~RѺҴz.'kTkZ鶻r3,^v~6#ƸN efی/Ǣ/TqS7N=PMY]W(9@tO" *bae޷BuHĹ;*V${2,ͲSU'ZSrt a}*k;a~Ǣr{|ƍV5E;p].)7.N٠mo\Q}V1Q2.V\쪟Z}/M"*6;?JX9K*ENBcHv۠cWNv,}lGȀ9=X1xwR,(_(ˇ1@/ ]ȶèmɛn㷰pW}kO\ػ0<01zlQT뒂maiؕtO|mFvOv,?]vqYG,"%NJyW銲{sgꦛ0mڦ~ArFU#"fP#VEr*]QEs3(MYNmW d ngX 3D=P vsohnݘ6Ϭ:o /K\wtkTB9}f3,qBt ]7dmSN2u8 ;]wP._+jꌕqnm4{Eԃrq[d/rBhOѰ@N_+ϷE9kkyy7nc~{(3[ u(~gPw]Qb}$|O[}Ȣ%w[X 8Bt{mT>}7SQTbžlږrO-X/Do|H(ai%29{kDzDn&‚5k_8kuƾ%m:z'yIգ+n0ݞnwRv/6 Ēqtz,'nϭ/8&9JT蓻*{>sedM9x}q]9q*c~[zC63NuOmӶo22FN.kN(a7eQԵ-,)X?ț%,7gpI̠v,';D翑s/?4S&MtIU)wĐM6֬jrEc'fq:F?iăA K.GtI5[ܜ,foimg;F}9OB-zGz\hasi}KT9enz7{3Gے/F#a蕅@yioI%U&'c}C݄цM9n[XpH.È0<]w%ZvVnݺ/0[{wC݆um{ڦ~Q7XfòpR2 򴁑nwi$:a)驛уv8ڦ~Q7-,(0΋gb;p7C֥lw5t^87dFe꼘M9n۱bmemQA[c#/Y9GWTUVq ׼.0s=roaA/9YOXb(KK/Q-, eӝA ˽rz eqw,߹b^) ndTk(#qv{v}1-9ca;^)׀e@{\CeI6B3('mn)N֊%,k|*6?~ Dtnq͞X1gx笜_/ptE ۱V5[lWoWې/>~;˩.!tƫӧQ4;=9nx#a;b73,SS{ݣwGrJ]Q#Τ{ηmP 􋺏,vψq8[\:5c{F T;'[8g!{f{aOHN_+X-,'.,{~2"bXh)ҊXֈXlgXֈKZ_,;.Npt\V*[{"+uE%FnM.9s)ר MܜMw#()b  NS1w\CXʝ4st8ǡI[.)wjOWQ..(_3jv6ۤmrz oawtsS:`C}HD钪5ݤN;߱cY>8#a|%p9gHlYǨtOA3&}&ZuSq~qn!9Cu쭙X(/ݥpzkA4B7l'mʫn2jDi;7/4kT"9|.n.4<73fZ۔/Fc's'z~n{<,9JT^Vzcҽae]l)_ԍ~,?׿?_~y)Ϙ_%?|> ?w$<+f"IN29@?8S͟d\d22ADe ˏ/)A_Q@{H\=V׿g/S/^9~O?/OOw种EJj~گ$?Vm?{T瓿?Ү]B~?p`:⊃+>drpv1aM69dBؼD@V7! ^C"  j$w"܃:4J})V,Ux}tnoԱvqI!kJvH9P'#GNЧD蟋e9ζCo/4~|uy64], endstream endobj 31 0 obj << /CreationDate (D:20220412230518) /ModDate (D:20220412230518) /Title (R Graphics Output) /Producer (R 4.2.0) /Creator (R) >> endobj 32 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 34 0 R >> endobj 33 0 obj [/ICCBased 35 0 R] endobj 34 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 35 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 19 0 obj << /Font << /F16 8 0 R /F40 10 0 R /F42 14 0 R /F15 12 0 R /F20 22 0 R /F44 23 0 R /F43 24 0 R /F23 25 0 R /F26 26 0 R /F24 27 0 R /F47 13 0 R /F58 16 0 R /F48 17 0 R /F50 28 0 R /F49 29 0 R /F51 30 0 R >> /XObject << /Im1 1 0 R >> /ProcSet [ /PDF /Text ] >> endobj 39 0 obj << /Length 803 /Filter /FlateDecode >> stream xڽ]o0+P1iHmն n ҵ;&$-"|Ɨd*#:['`N CLș7$ P<Pw"KQV<c棸~x݃)< T-A񲄬ie ͵}tQ8 Ў@[ c;ֵl.vVy3,=:־P ;=IYBg8ru:yN.޺/LASH-e/sҤ|뮺-m@|cӍfa97oE/Usɿĺ~>6Bg# `ġ3DI!轶5L>̹*G׹.Kz/_1)4[+z3޸ ]"UEb"im|\5U?bYݘ*B ĺP&BI<@̀pAz_0:',T³q!߯~>ŏY@1삜!GeV<պZejcBSZcsg-i6el*;uҍ 灨5i&pBjZ5&ݷ:ZWGC?[4_D-7x >*.2_>&ϊʄEG\t l=* I60㖫~}~Eu=}P*F[|?ǜ.v0ZZR-%`e:v== ^4薸= x endstream endobj 38 0 obj << /Type /Page /Contents 39 0 R /Resources 37 0 R /MediaBox [0 0 595.276 841.89] /Parent 18 0 R >> endobj 36 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-008.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 40 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 41 0 R>> /ExtGState << >>/ColorSpace << /sRGB 42 0 R >>>> /Length 2108 /Filter /FlateDecode >> stream xˎT7g e@I$D"dEEU>@Q35];tK 1~'˫_xvIs$pxi)4>b3q7Vl8q q3Cm{nU i`TB['C> O,Fo>~&F|<л?Dڕ#P{<廻ۋjzph'_S t}=JiG E9FBo{XNyF j Tb{35佅~|raE+jH[>ߛP^ޛ.o^NBrA\^(Ÿ/.Kder0*lK2DDSduZ]tzG^?^O$# ؅ƐVRA7dŇU(`w 5oo9 @Xa.0y̮R%sE] [}C3a %)fsS90kbg6$T7a2j uzBH1mx j6>mP@>"{4

"ߔ?%RlK ǣF 뎧&ojQXz惠D|Ic3|Mcuuzjh|8덐v=JB3ze8^h3Qo8z w?1^\1%EwDW2gA~zdѩ'ZH$:2"1;FG2i%Sؘ2-\bpVsCa;)NG3u>H6F)tk .@)Zf"ژ6Pu% }ڪ69 @  t6Q7P @Wn@mpQ$ sx G6AW02RP } (ڗ(!q N-J}:SA7 tJ L (D(8{gA/oFq@Arw@)]@bW(yh/ ̭l\(k@[UBH[("pE(3e%0n(f*< (gEtn8XPY (g| (ဂxP7{HtӬZ4^ (P@_Pf)(mh/tӛQv@Pƚo@7 uE c@(pVa4@Jcn0P=πY+4J~p@Q {7/7PXrPR`%k-Di(\/Ҋ0k7$q@ EvEn(쀂7 mFd7KoDvCEtxP5Ժ u81 o3'P J* (R(BdPPgv I"h(- v`6P `-:߀@m7 H׀RpE":P<p lr7g-PR (ޠP)h (iq a7JoN mo(  ^ f-~4'tx7UJ7)҇L+(P၂PlևӀ"PcP yli(9P )mQV(M@!{A\@!{\@aZ7 -ȷE@(Rv ~e~ʋ˿8 endstream endobj 40 0 obj << /CreationDate (D:20220412230518) /ModDate (D:20220412230518) /Title (R Graphics Output) /Producer (R 4.2.0) /Creator (R) >> endobj 41 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 43 0 R >> endobj 42 0 obj [/ICCBased 44 0 R] endobj 43 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 44 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 37 0 obj << /Font << /F59 15 0 R /F16 8 0 R /F40 10 0 R /F42 14 0 R /F15 12 0 R >> /XObject << /Im2 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 48 0 obj << /Length 2692 /Filter /FlateDecode >> stream xˎ_al(@ K79^Ii}X,&@.mX$ͪR|+iaJEIX}YMuxnj]o?M7;u=*q}p<;m vo>K>)tSE8SrT{fiE7MݹSJ d%4rse[Fhf[EܷrZ-nZoLXPjq2 XV;`"+YY^`Cϝ.h7[/%͋hp4ۃ"LDrpԄ7Vw&=a N|֭fyG4@[kqV28j& dP{^Oatu!U+N^:xΌM';5l`n>Z[ηh3`mp {/U}TSuY6=ȸUhoK2"Hi̫X*ѻl̦ S-XķC 0*P5ui{')%nY:P6]? '{z9i$,}W }! V dU69."C."qz$5n];oFA8j8(}Q}c踞e2 oF6D8R-~Uc C'uۇ zv]gF )<`Է uj`PDt7+oY! ^do|eҾ_ 0a`d}]OOo_ Ϧ.4%V"xLBuõy#7uyrD=!nrRpZXM$M>p'az èXn˵j-KRAE>ӌ~lPF; Q2sS@3E:`{wdE ~ wPO*ypOI$\pUX d"U+bտq% JV* rS䓺LVƱ>zV ZBJ`3:~} a=lj@y\80Ajg[V;t /U3K@KQ'9.&V}}i endstream endobj 47 0 obj << /Type /Page /Contents 48 0 R /Resources 46 0 R /MediaBox [0 0 595.276 841.89] /Parent 18 0 R >> endobj 46 0 obj << /Font << /F16 8 0 R /F42 14 0 R /F47 13 0 R /F41 11 0 R /F59 15 0 R /F15 12 0 R /F43 24 0 R /F58 16 0 R /F48 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 51 0 obj << /Length 816 /Filter /FlateDecode >> stream x}Un6}߯Dͫ.6y%T7I3$ X`19s;8MXIY;hS1Ctpn٥5T5M7/3hJdi(ˮɕ?M6$M䫼 #x426:{ Q;vvl4'm`+7z'( ɵ&fp4.z7Z8/\ڃ==`=,]pIj"!̗c>֐B?L|ypÐX#8Iѷȍ|*{8b4D86}}k浩[CߏvDfPBJ(NĆ'"D3Kl"99n!;hntURG3^\e\,YJʘ#yE&;\~.wuFkIKG-&?!gй&TzTPvuhLJD Jl .ך돲k8&UڊpX0*TQ]`v)R깋p-^,L>⊭p1\!M3At&=L$K9]ҏ͘U/3QAoonA,\"LX sLI@_٧ G}:" o<ʊArFD iA$dT\INwLR^2p)@nJ]/s'g(7&$#;x"kk GWis1#>1 endstream endobj 50 0 obj << /Type /Page /Contents 51 0 R /Resources 49 0 R /MediaBox [0 0 595.276 841.89] /Parent 18 0 R >> endobj 45 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-012.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 52 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 53 0 R>> /ExtGState << >>/ColorSpace << /sRGB 54 0 R >>>> /Length 2575 /Filter /FlateDecode >> stream xˊfS=,m݇I. ȉ MlHڐ77r7TѫMڗIr}sǷ_GN9+~ٯ=+_x}c45kjkMJc7 7РT/ 7Tiܟ0o>s7|b1b_ЗB./գ6S3\zy Oj}z}k#t-3'<2t֑vzETQҚカp4_7o=yߠ2@=}d !!F(w!Z 49Rt%Zr_|M7}|~(Zq8 '?^Q޽~-k\IihK!q쩿2Wo?avEFC> 'Y|V?^?},^プj^tliߍ+ WIF9%W.a;|lT[nbHXa3"zͺYc@W3m*+#":w;-B"A;r?lX4{SC\ZMEt44w p.﫛?T+)Í~*op3mji {2%UK0h Nu\c]Җ x&L\Gi1ƉaLy63~RB#֓ VCƇ|eFGҿ QſwߠQVSG]z6sn~oEuepxs#IJa`-(0XЁ9zK7j(jC:PPз9y;PPeOPhj9P3PPTPu@05l2@4( Pr㾼r ݀ n@E >@a/( ( [†' a@an+}PPA:ʒ"#PP e> ;p (@p  Tet a@a/%ʰ;P"P&@%i@|Fm(enF W⸁ š (P37P%Gc@@S(PxX /0 Y(< 7P@9  ہm@a(XˁR#vP{ Kˁ-(,(ˁVPW `qn"tdMȍɿF,-rtQDZݍ*h0dnG˔-Ӭ2lh6w4-[;Zlh -S-]R t|BZޯh A ~-Cn-dvd{9:ZBw1d]9ZM-Zej=tA[lh1;Z;Zh!nG -V-y2-b0G 1$-hBpT9Z2 n-ru8Zl-|Rt~Rt-hɺ:h!ebKG e^Rtow }aW|FT7G ZD -PehAbyZb~sВ>Z~G9}@~-1#R{;vq]$9FQE1=aݨ6cQu醁{; i##w ;28Q9F٤cdaG8C#bcàTܡc>RiGb~ {~}~UmG^䘱#+pG~5͏ǏcB0mQ{(##}G^KyM9y5=bsl:Fv9Z:G^Cȫۑy ‘WyUpUFЭ3PyY/#b;"?*Z#`ؼazFlC{[ĈC~ ;=bsH :Fa 5y[8F_Äb0ɱb;}v(l12V#vviHJW;9;cdj}8F(;/k1bGƎb1#{4" endstream endobj 52 0 obj << /CreationDate (D:20220412230519) /ModDate (D:20220412230519) /Title (R Graphics Output) /Producer (R 4.2.0) /Creator (R) >> endobj 53 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 55 0 R >> endobj 54 0 obj [/ICCBased 56 0 R] endobj 55 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 56 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 49 0 obj << /Font << /F16 8 0 R /F59 15 0 R /F41 11 0 R >> /XObject << /Im3 45 0 R >> /ProcSet [ /PDF /Text ] >> endobj 61 0 obj << /Length 3457 /Filter /FlateDecode >> stream xr`\9Pxر*o\9$XNS/H(i}JpTnVNIfa}kU_o/ϭ7%RW;mk.9"θj#3:@6Y[<M|F߶9LS~m^44~_@ 1LwMd&;-o`u[leDb_~n344Y"lj.cjJ`nrj7XB/Yeu 4vn5jm[TGi7a5KU;~>)chYδA?UK_@L-s#J8Svy[[@-irɄ\':kQp.I#]ool7Yf|95v u|G&PKN\fRʄYi:R L@Xs)S8f@iH@m,NKzoZ!ʱ;`VYZ%pU. 2e2?cI>rO18ͨPD}$ߌ"_D)2SL@H[qb[cvcc SyuOd';c4zW4`TndRe`ʍkFٶ̸[TWmQ5׉Z)r*]9-L}0K.;--F\$US,Y@VdGxPxD0xfN압4>\?yXؙH7Tp,Q,5M$JALGjhp[oc9^ Ӂ\jh ߿:j^ǁ* Sԙ.<3O=N ~\v@S2 [Dp,x=o= `(vOݜݳA̺^uq'h*ЅrJ}ݏ16ބDhd,h98_SUKpmF#5_uI"\u;1yB;^V-ȸ?~@b6k:k (J @Zs 3Ǣ T}5i:yܟ'5mݡ8)~d%l W/ xنآ@l.^ ;bd36L1M~'Oo? S۪NAO>a2 aO0`j\ xl<0u:N&'?!`!)59Z0Ɏ3n7m<SʐQlo7i71@kE^=h*wK`* /5:;,* tN]Lm.-37m#=WC;7f©̊f 校Y۵zm3ba@t <B2޶`ւ-eOZJ~d,-R ȗӋ8E8!vuhd @kzԋB:p#٨Z|H1W$:񣪤CL.ܴ=/Ԇ X6ʜQc:xW o*ʏMhBhsc L'x>wwm{1IwY⅀f CjWnUm: aBo\$:÷ۂlO]d>CwI;L&yA3zvZZŠsC}2+: š`d i4.sݯTwєQ1w8,}w L`|c"q|W+RD˜Ļ)Lo|tԮD'L/`$$2phqMhr/ E?_>Տ6[i8,M9YX,!Mi>߈|8 Wh`,rua.:qJBBe2㬏B>ФlDSrZyy]bɰiO(sVE9izX1RO^ROc{ѮLc17p C(@9I_=J时^ȳХIb$?{{>ŝ2<#/{bIq6SsLʔƍ-{q (#_fgGHtoe!}t|8K4Ӵh,C ,I)kʒ)r]~ +@z09-FIkd0i|3xUmR؆>8R] d~ WV==/yLFw360ZWk,X Ofop?Mw@oF>y7i0;(g<~Y0ctɑ2#'| V5ƖhOWtK( coDzn[VMw ύ < O)MqYC(cCZ w ڌ5cҵs/J:3tnH.'S:o;j؍xy|v+asʷm<FPrI=!TZN9Ni}&FVa?c+YE G@j?Ry7'tZ?i1'G~ӿ.PɆV ugW$ɔ,T?!> endobj 59 0 obj << /Font << /F41 11 0 R /F16 8 0 R /F42 14 0 R /F15 12 0 R /F43 24 0 R /F20 22 0 R /F47 13 0 R /F59 15 0 R /F40 10 0 R /F26 26 0 R /F23 25 0 R /F58 16 0 R /F48 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 64 0 obj << /Length 1814 /Filter /FlateDecode >> stream xڥXYo6~У%q>%>8.hj[Iᐻ ) ?,9 h%#3&T2.yT_\%r;;OUя G s;5O#0G1,Mq8Y k$KN4 <_ QOk 1IC' gKZ9$9)c徣iRoBȭ ˥L$7%~EyOP4N⪘ kD.lx ;XwZo[b{e vd;;NݡNC]$X_⛭"7<ӈʒFU+=ؕSN]U Pޢ!v!+!  *J3&ZiL* SY<$jH X%z!6%b-t~_!^+ʩy&^sHu-\vwG"RKTU۲B( endstream endobj 63 0 obj << /Type /Page /Contents 64 0 R /Resources 62 0 R /MediaBox [0 0 595.276 841.89] /Parent 65 0 R >> endobj 57 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-015.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 66 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 67 0 R>> /ExtGState << >>/ColorSpace << /sRGB 68 0 R >>>> /Length 80082 /Filter /FlateDecode >> stream xܽ'b_ଆw2l@@Hv"`vU5 R5f -wү_WȿZ[߿o=j;_׿үׯ__)cS_i:_^En߬\_`K|㯙R~ul'6 ͼ'.F_߿_Ɣ;?WvO{lHZOdLi۾IkM=q6&2~= 0!/OszIU~6A0SK,ww𧖧Fvz*$ ƛ^L̔gC`$iO0Hv+- AL<kwmTk6o߲`^HxprS?^M"Ojv?[#}Oo믔Az IY;׿X-$_3žVg{|C_#odRH޺,=J_K)G_wQu[JٿҖhfWIU*0"keǴ(m`a3%m;9_)䑄*_1`o-!i jcJfzߋ_42\z۟?cWsm9.KWF6w.$yz?M;/FZ4Ԑe~CBu՛횮ђ mo>`S&Y]Wh`/ ?s C7~e)..tڼ_zsno6m Ϻ&n9o;0&ca~]e=CQnz-튈_lANۺ?mu2&#i9T+oŨ$|oXIbG-R˽B0 BcvVVz:-]އ_/f"~ANӧ ~?;mY]L~!/l"> .,#JxkʺNk Dv}cGaxIaB= ڽÞǽB`~cI.b%QV?234sC4OG& :~<Y_tOP.?aZx8w ~-=oE t:<)|Duj6Ъj6u?2/l"> 0;{䴿7!YVPM6mdd(3 .yJ{(Dvw@l2Q eVŴyALڶ "e 9 !w@6(Me 0&w)o.^/9A `w$:`MfEĝx캞Dl2 Wu)`֟l q߾+|z6sDe6Ԉnkڔ]w_Qμ.|ⱟO@ ~VG̮#^\hSVyA "bMنn~lLי F; ߑw!d^M8إ%E7[`橝(D 1^#sW.3=Z]zß{/kj)H@0 ?rmd).\z -EAh5'\al&О)<t#.bۘ)F9(#"|K@;\?e΂W"|h~B.t_L7u}B5$;_]1:o\&tȋ<1#>Gy; nH|_'ӔR%E7u{WxmO!GNh]?ݗ"~j}E_Ww`czCOBOv)HoO-yB?N@v?~F- *o ovJ->PK4Xo꾘N[VhuHZ]xkhu_LՅ.b1UxEZxA@x@l^xh^ŕV)K0#>vkߞ3NsaSK4+bMJ /"4; Um!0jBO?̔n~8KӪ!d!GNy {v6(><%!y qG3zGC@P>O&'<}>D^+2 @͏bK xٴf}yR 4C Jh#N{kU &0UeSG+Ohv+)=z}K 7[Q=V-K7w6~}i _X?`qY]Q(!Ȫ-1%X.˖ ?6 ; &a?, W|7q-.b%?ԭlӺk7M!1l 9b%6I6_Dd9TCg&ji ($u4l fp@ R|υ┫Cȩ%XQ0ߞ0gИ݅מ??62)#>H;EoiݙC1!G݅mJ"¯{E1 ~%|Q%jMv6=!><-Ahz߳xK}ҧj mQ@QHZ[{'*QŸZ% 4fwaWiurK)ZQ ]Cy-T 4fwabW_C$ek9J=V]Rlڮ;D3^SBF:lp#q"W}*aǖ<-&[qm3ò0S ͪ[ZDŗ1Oj7V϶l}'m% {ŖB!C ];me (4P.U^M`A\͵DqZMUEBO-ҎBTl}k j%E_ѝ|4PRN^:Ycua]n; LJ!I'<ElA[@r۝Z#y>MG<W`,%bzDH: {yx]XBP)EҘ5sqlz}{I^wvF{&>=*F0(ڢny-Z$<%_]c21MGKk)g%b׉:CEmG[kHDi6߅|mb}rw@ Pf6w!^*J1Hx ߅8k5FHqӐzJĻx/" ~GXA}SghC([6u5~Đl"xf- e 11u6NSN.`cyL f]nyiHeobjC+(ҦZ"ZQǼL&"e E[}SghY(?u'Pc9L f}X-[Mx>@$b*.:l:mS[.7b^&D|Ķ^El'?k~_Q" a[QC@vmk>p#_zϟg?R8k 5vy!:̩yH;]w|i8!&&ƍlY_#|(U/rG=v)r=3:獗f?1B)uᇸ(|"O{rCOv\'&M?gzK3 ,  (4F2[. BcvV4^S%,k1ݷG V" ,7:scQ0L@q,O'DϤ s->lF@L9vht> SӬJ+{Eis-.bu*IK;ygAMo߆:[JOEl/'EaMGYr&/LBo"y}P7&m}e&3,eme^lxY06;eÇKJ-o"S:[F~|"n(Th3me7yQghugUsD3{?m%śrX C~惘--Jf|Q7e ¨rXgmC*𷏷m h`J|ܴ .A?Ck1 5viJ[{:z}(;I-.b%|;U,l rNWoY愈?: <>٠lgы řDe6X@_GAxMa|qN-½b9A `Y ʏ³>l" qrg@D<5#blilq%[S[ ˰ګ}ނ/]Im!~O~+lG>mLAo񇷻P&b;"K(&e>]C=[t W(ad/{ yL fE6_d?< P8-8$dmW{,|J "O$Ê ^ ؊qIÙ=nS[!l9E lΝ1/l">G8ddD~dU+5mml%-g^XU Xmӹv'%ْ$*Rl!(dD1iWՈ 4)9v+᧽:)6i۬k{?v|N 6&;WS "V;qZo['@vL )J:y<%Eo#'O\;ݲYj秪b1.~•d=rǂ8pGxu-ݫ#طA/oOQ}Rgh{琻=8+b6_D4EҲgۈ-"nr?m9քxX61tBm f-=Y3Ε9AL /mӢ<\9ڣŧ0&RYZe)ob [U@GWEuE ^IL|Je[G~)TTB 'Wv\֚ ,CVLz .YgS3_غYD|p@ P saMj*6ǎ̄A--j8QxK%pKTP=HWqFn㪀ZyD! `iGgq?QU- I/|-6#)E2~9($;>ܽX>'|hW5;~Bѳ!:ҹ.G ; ]+'tjh`^g2"aBO-Ҏ£/"~v ߢ~Ӆxx$DcG]rݟ <?c^i 5{gw|jvkoe a]"5¯_5‡s__>"/|=z>??# ߞZ)v&>]™Z[o=(ўZ"]z/m[AZ".5~8C^< #>Fmo =0#"Z*Qh#zZnviυ_nMt%vF|j vΥ_;I^󼘖{O]ipЁZi?^jBWO?͖6 %XD'f\vLlEvk -PktHDWV0 iZB%z@Ƈrj viJ)FwFϭ jv ڢ=ۭG69vo68M>*7eW-hPډnX[rJ#jfo\=T:#K` ۮà<4;n$'49m{&{ 5ڞ>:[ÿ,ֿ!tJ{b%[l 6B7H& n'!:%$nhG9x%|.Zl`OoC@L6e 8|vJ9:^B2χ ]X IC wd88+e$`t",eftߖTE ik>[?p#e;6vO% /l"x׿\MVC'j(YA@߁˄fW?ЮW@ oy8 &PoA/WYC0(ƔȮ/q< K&⋈mK_w+Fg&j&$$bžs{癗K 46*v͉4Ps32GIx ,}{֡5% .o{Dy M<{!t6=7f&۽lCl"4yAypFlQ*"ON/wSLr~*W<`6_D<}7eۗ/ˎF߾զ?ͼf$/"+Hx= KlZڢ3P5>3;^ZRvVґ,dTZvXbhAgMS%/HeaЦZ0q db$7#PX]٣ۖ ZZ^V ; ~cS>! ]@/c]Q}+((4 3Pm/Hk0CyZTk_P'pU h K?vV8nje+˓˚|$ .|ﱵJ{BO-ҎBńK^{g^(i BxZ^ |sҳa˽9^փs+Xm ȋ:`Mcsl˽u*<G5l [DƷə=@KjmՓ(4P]֊^*Oh \jKݹLmI4߄ޛt^S{bMUM8 uahGDܰ(`usڙdFnT}SĒ}yKi'D\omWJ\^J. kq!J hxhyMZ<%E|^5w!I#}ZGvN eOyRK4X~R^qe8Ϡm{zu󊵄+ :逡sxQSnV۾ 1tPl{T ,Wx+ `Eij*eYغ4zy/T)8:R߾露BMb3CfY_@ AZb=/e > Aħ9(Q/ ^ B^]:tJpn}S7ȟO;>)^].~Lcjesehh`@KP}|rl'z>b:n73 ufN΄SK+ԙiuf~Q^kR۩7e~_-;8j5¯_㒝_ YH>7~]X/j◂o5ʜ%|Q8fo;߷; >0GK[,l^sآg ~آ;roy=K%E7uw|gɧK!iGN88` 8]`E>n %Χ[ӥa\O< s$Dϧӥh^k< xmH#"_6;*Njv~+|TUt5JedB-%o,8-"/?O=R ;߯W W_-<4n|ˉBB%JX{ LHΫI-ѤIp.醏g?;璾ï6/g |8Q]zo 6+"+>&+"+XoS0a\52A@Q=}NGBE7u6o(DdGO}QgIO_^J(A us[Z/'-\>O] ,!_\ֱ]z'POV@!P!iGJ3(#JJE>)=yv#w[ȨIډ<$^2(φɽ+,]K4^ ~Q0u1CGd&tz8m8ǍemG /6Al驝-<:΀kOt.'vMQZM-IMIQ݆6%>ZLӎoTxaĂvB\Mv+zX&L{O1BXuhG{ܩG+,F@?.bue&ԇl2}>BH0vEK WtxC~?軝1ഓp_y_w\?~P &<u1c>!w"}|{T+VL'ק<.udP"6۬˷JS&-]$yJBw !v%$3C:A a{F^֦' [SMBk,%$3_B9m\TIA"tihO8" uLߋ^/{a/~j DHFX4>궙>B U /`nȶ[dM6N "k:[IS d}% עL(fa:}~(:bW 3{NDAM<RRQS ?| N]nyA&V{;0-.<,H k47ui(X)Me,cq be]9pJLq<ڮM9a Wd;h?Zkpdnm&t nЮ/Ro=fnYZ<^OرA͵6TIrЇn5$ן}2`py;K@L E ήYj2H0Lf|)l۷H̤2 4xmYODrhz?ƍሳ˭%Z7npsP;BEOb V[~Ꮻ1@5qris.|B=62\mWH߸?\g0bo:y?p3H]Kψ/.=Is8J%nq~p ~ybe^\B.->\%F^o. Ȉ%tCDmYp~K<ɥ;݃m}sٹK}R49g\ʙ#%> |_\Vd{;kpۈ%}ʒѷ&JHJRJ߶r-(Kh+;Y>pw[Ys.'`Fåu.n+ߧYB[YI١l#r5%5B}%ee/Т6p)>LSZ@p }[a^<S؇H\BF?\r/R_צhCs=r)eȥȥ/>">peDh)}z2j2˨K[1 M[~~㉱G=o^lp˥ȥȥ/"ȬHs{W,X;}ѝ^=4-뽌뽌e\聾 +r<֗IŖ\\&, g~ J[J~w`NťQ.[#n҇K r+'kߐ..-o. ]\VRztxxo_v8s; eƙXp+>Jtq)7ٮ|_\Xqe9zύSjUPK1%HcJufRK:NKZ|cJ{y)沗sW=sgAdkA˙R#/YrE2\( 6WW +ۯ2`Um?bF ۨ™hrXH.Բ2ÒGNMjsxz|NKO\:;cPߓm-g3!Kյ# ?E7𧖧Gsvt( gH{X[oHF o;r)vcw E.l)鑞 ( ۼPitEۈ[\p81_V dmZζt]WKnV˶R0K,Иff_=Z~gRg6SDba, ڐFף}3v.vo_(&4ufq?oB?kSNîh|Yaox&cV( GA`AʞZ|6Mmߐl#nq6:ZL[\ߺ5g/ȖR?KɬໜE̻ l#eo.չXJUDZBT6@V~tR*:Sʴ}0 R 4r 0iY^\: }Rns{,O[Iw (K]3; ̛zjR-.zg)P9Ǯ|QE&C3k iޓ&%b5&L NX/m݇HQsf,H; ?"&tڽ^!Mפ<^N e\ T(BO-Ҏ ~3mWt"ȳ(<.b|rH(MF&M >H; ~`x=p|iyF](aG/|ތu*L{x-'.4X^2LukLPVRNHK 0Tc^3k<^#"#894Y"AC>zUE7LIxSSEzH[vߑ6^7^8m=>| fp{('2n" "iр^a+xdZ)=;ȴTu3Y)p;u~ ƙ腵/.Y:\ݭr%^?\-OAYoSeA0[l |sic{pĵS'x'Vfd@s|Ctl}sIu1piDBIeF-ӅtqY% =Ss,()m]mJ\'|O[pD;g  åe,~ee/um/.aG R^t9ihj\Ύ@q jf߶; ]=S8u}sٹK=g͸ C/.+6u|C 汽p3\Z\ƈ\r#riv4cە-2` ͥz) 㦩COWRB=V8S8R1ȆRꭩC)cg #ZΊZ4mA0huf9#἗Pw:SSG{^h{pg5=RZRу+m|z_Q)#car\YM?~zL#V}c߲طl۷^\z[wJ["鉫ľ|_\Yu8>fK_%uL=\i[ !Jb7oE.)rI!A=0{eXQ\:K?ɥk<˛{;Hȥ綾B0|/{?H^?\w\{Ő..#*Jjf~Fƛy!E.W cs;=ob"?H :ߑxW".|tvsm/7ι+HY{>ȅzb-yf5x\3Lr!k汽p!hlEBiQ}oBCQŴ(#шKPTJͣq=R?_`3OIEUSt}ftfQ2vwr:ex}q͌@aJGꃃtް-PRPu6$}):ɡ `JEOa]]o@RyyEnK/-Gj\zJgܓ ?&،='f"|sP\kwBLHl>CMR%>OS[)ٰ]CRz\.[JxbWɆOdIqVKzm}l{uhv.R0lK:P|v"UʨMɖR(Jy0_۷G;oH󖞸hqCBNHv[g)vNm(VNB(VHHzێ^X<>iTJeCpu~YK(q]Nc1[}g4*oꉋ[K7@@' .I\vZnՔl!X I\E@G.`ױ&NB/{@R*~G#Xf;D]z(D]Uk?vJX;{ul5Zu||kWo3둝壐J4`imù8+q} dpy;_U]O-|}q{ۂ]7#\rVs5rH~pxq˼6p9s(kra\B=Ӗ9[dFSΡO%F7rJy+"#SJڑ@vi!r Ka ˼}m>-u7BA2BOH7;}#Ο&4";rO}T he"5^9'N)8H8N9q;R%ۈå{lT)MjiNlxX{KCk]iy̛zG_ͥ _ _~*[JgyR, )r/ #e?K,cb}H!{QhSzMQujYFL?2[JgR8_5j7$0ͣ/q} Ņr. |:'{2G?\_ ,vI8pm6fl/7滅7n)r^DV:˲qL#2ؚUTKչ#tq^ߑyN r*^?\Bȝ)X4/. /]ƨVf.cȖ!u!wM>?\(MD  [Ig)ƯP>KVx.=>6>?\ŸL'ds7.POs=«-;ҵg ͥd?@^)8'E\vg\J:Cs.^\ ྐྵ(sD)rXi+)L)l6SS(ka^e]ɍi9REG}I' QRd+zV"uy/wU3 Lݾ 2T$$]HyZPE7ꄿcە [Έe@Jk=apYo)l\Ge'N7=|a4c,1%h{ʝژ[h[IJRp'mwlC8[z\-[H8a"lK|s$Hiq.{I۵lɹt gAo?}H Ȗ5pJ6 Hw4oH󖞸hq .‚1g™`p<八x&fV[T|ζіmU'j򦞸|.bG6S.mx;Mzf dK)t¾m٭bWUCQoqvpY. q̇ W~Z'C 꾋 Fo./[S{-E~"fKtpќm`iO7UFw2}O0?H*[H3E vڳ"HiqKA}uRެirg=iip駑-~Lݐŝ}P8&(}7)#lmÑ{~m)LZ]7L{Tm#\T26. CZ);BBjv pxM/hh~k (A-NFBQ5k[ .`3a/*A@AG>* +X/\𱊖O>Pvº$X*a=uȓZ]zv|a4jIKތ9=05[:[bD);')-.`<`\IӒϕO-g>5g'r'Z 7 ~aIq\s,F@CZ(;ad?0z}(&\]z Hx0  lk&|BA7}>@CBB?r!D9|>CG _^xGJS+u~V7rkHh>v ~?5iJ Y;Oj&A^#o;Ōb; |[7VwVWv b$Gca[Wq|i vZb&;W)-.`sT>>';>O;|& D{Pf74,$W\5š:hק0 : ": X/+&`.k"Zy6>B| cn >c'.:qGI!VKT+>~| {= kTW{Ȳ X/{v6)yQ \o(ݖR9CcFKcnAJn0 F=DYH"h 0D17 gݥeSMCmݱsgmksbNO.s\:9a E2Wh[29a_'̼7QJmt謽t1鉕Ym2V[Ou2}G.A,K#DJ ntqyR 3nq/{8\J,\%.=m|/\B.I\fѓ m#W(ېȅڡ-ޭ\zdK)Dki6a}'GyStť:趰4.i.: t?t;ѭ:..5t6⾹%\;۫N9Ht 8\)c8߹;ehۈGF?_~W496.ozGhu..8I\ZSw쮓7sjpR%ۈܾ\F\V\VrY-r%reȥȥ/"??\'3:aͽ5)E. M4WÛ'˥R..Rprq?K\ťp˩Rp˴jq9SK3:\p״jqqQxчZ/.7 ..!Yrg uۥsm_.kD.E.}}s)vh%kYg 樂EB=֙{Y"+7˸ZF.ɏ8\ee/"k0o2uZ .yn$\jBd\|C\Ɗ\|Ysg"ۈ%Xť \e:Lҽ ڷL?|ފK}~Hu.>I~c2׃Ho"rV:"1"1\ƈ\Zo_.mF.eD.e|RSHo\n|+m٧>KdHɲ?\2o)JfܖR?%ҹo__בåy*rY.~pY.e]\.ǷoW_\L.2pWP}bבÅz2mFS'{N )rXeK\өK>Kl#\>ޢs }H.aU_<Ĕʈ}H7)ۈ>2VT\jl ]\j֙ͻG[UzbF/.;~%_jH/OX҇K6p kee/y3Kw[YbЖk;=f޾6ۈj.%s!&8_.D.^9G._,pYoixM.}E.}}_=z%<_P;~eoqhiz&eq>|3#!]\w.cŷT/#D.rO2.S:vE8#\j(cu.S Vz\m)ceJWd~"u|_\γ`..{y9kr˽e#eCttrVPp_;m#sC.Sܐ+.lY1gyzՑSƨw|p{wxؾ"{\R{ˌsPwUz/aUo/y0˕ȥeDBs%Ҿ\f\z\zr }F?\e]\.2..%%m~pYKť|GK}ֿ}K鉞ʷox\oٞoRzƫ}p\z:{^k)rXeK)`0D._3̳\feqXlee/y:t/K\VK EۈG|EN=֯XXi>񱎓Nd{Xc?\xKKqŅzb{0.|/=cFaʛzG}HXs58G)rqRvlﴴﵠg\K~\\B҇z"0#\҇K{"0{)ߑ~R 7k,"y˖R>S~aّzNz|6 eo vհE c"UJ QvZ7+=qY}KÎvƃ8_]< 'Ie=ޒ-rf#hG ̛zm41X*ۚϰR#FYel!sjWoHe=}=-ÿvRl{r} AR\_D`*lRqXϏ'.F܇^61].OCF={l%5?+D)ExjvM=q6';7xdnJXr] ]iߓVV JA[J3z:2bXG2pSސ[X^ӌ:w IBqWlys$|㯙2vׁ}Sҷ?t;oOZ*hGR٧e/`m%%+gۺTa9򖞸ը)4i"%$C=xPbvN΄C-iurupE]v. @QȾ x+ ٸ4&z#9<@9| ~W ÞHv]x:飶U|ӐbeCSJGm w:;6w^o.5r8Ev{_)@V] f %E;CgQqci/,)#0=VY,&ӸE;SgOoBz:ZCgcSEs E U=T>K|ξlmK|wVGl ͥI)Nj_#R"=TJj(8,@_6c{4fte-#= J:0+dls,-w8nq螗]})zg]q^!$yw}8(m%a( e?h? Υ1qq/Ƭ->Kw7}ƹؾ.s|C^H;r]Xb~Gz`- zxN&E.O.؉ZQU5ONŮx9RДPl|.ʖ wh;\= n8gx]%ˎH_ZmoS0'[r\녋Sye)Ç"9R E.+m%pRpȇlҾ%ɚq+w7:uI:=0.d&Oc &}-4p;߿ &>gWexϴg I; Ż!d r{A]gٮ.b| uhCgY25kTT}HqwЙ,۪CbW &޲'{|W;Ǯ[p\] KyB>8ַdH'Xf] )rh{&$# nX$`ܒ2fi€ x>`EvI:bI-|qgA0 2մ!(;a)sy]z_$YPO#\Y`RE|i;kNh/,#_ڤ9wc69;OE)P0=dK82m|)ml#wp ΋'CR"}׬C|;r6k|k9`hq\r{T4ԝ'R\9͟ |G.H/n,mzˣӃl%&jH%WUvt2Tͅ=ڶ7\?b2o)r\~;r씑R"}+=o.{ysH).p鑋lno.wphq?\z8 Ņzrl)%b㲺~]ߵ.0]o\m˟e^\.sYPjc J*["*ᾮ))KoU=|g; t \Wuso \hke (e:[eq_\riSN>JV)`SY睎Oug6s; bmo,u#-w $0]6d vl& ɖ4?)m#nq9˧g q TЕ6m)e Yc۲4l7Kq=q6b*HR}E޶U-bQU56\dɒn]z8܁Kw'+5'u2r9/*Ҟ@e٪ xM2Y5[ ZMn:(7G%Y<{ ޫ/y沥d/ -_ú.FҖb7Xg d,G?Ӟ0P 2`aS^?߳D,١Ss& # ?c7=^!4 Xo~ p i@`@{E?O66 X/禷MV?kR`z-l*nșB!-A0Ad[ ly#HDcKD26dYdaZ7DE.{boiH}gnj sY%]\gT@Azl٠T dcy/SuKO\o.bݶ:m-.ldu{jK$.{bK}Őeal;|C]%ۈ[\;߶?BN<2oeX+wiɂL; ^,'zvܷ$vE=x=;w\jNR =PVߝG[WZK #>n G E.+m%}i8 )roo)>M#iߋĕx˞ s)>B\x˾I)!<HsEpg;)GJu[IvZΥaǐ\(KSBr }H ev,t{ۮۋ-^fWi iG/c.]uu2;I-.b= &M?WA=iGz_}mymw$S?S.b7AU~{KE5O@!#{‡a^{y~p{{~}i@Q(ϯLK%ϰZ095ʆ5 ۯ7zg}Hk{G*mW;kW, 0,4; `ίnս.b.FW0hx `H{Ҏʰ.KG!Ju&K5hv ۱{`EW'WMOhS^#|wW:4vMெjL5*Z~0=iGX@# 2%t|u&mTXo-P0l\6TUg Zq= I;5k{@zn_73(qujajtEÂ~?=Y.½b -5>O@Tt E*T ;iTpv^%UշPOsE.ĺv^o.Sg/#5˞:xVJYY =l/4Q%H).Q\Dqa+)YB%sⓠ-J,CP_٣7Q3#>:n.\6}=p[ߍΛs/y}iMO34}qi>w}a酫|G.;\vp.AR"=VgKgگgޟ2QpbŒh\X D_:wrL׊|ˊ0m/NXTQ |g%sw#8uozP_jȬ>\pӳlwwRݟ)Vp?\ڞ ^\jK/kOEzba /.r #nû_aWdZ}3 EfݨwowwK-ʒVrv&Ez`-8KFl;d_F "쿏g%{k~tqaB8`t1J'l* J[I.UZ -HnL~Е\pHJ\6POu.y.\"..3l$}se%17q&~'HJ'fTcYm/w|v g >`j6!.Gm%%EgIm8Rh{v. *߱SB[֡=h$.۵L(i+)d! LBbS1D h bϖR%byj% ؞IH_R %2Uwx;Y^^acV> KF[J~J,gݱ؋oLuC/\E] VY`k%$ l@&mۿ d_CFAF? A ~uJ 4I%*~% _UгJ]GieRI{WfkwKPT7Eۈ۹ͮbxaC)ڀ Vʈk/T c1$+]?C[JW.Y$-Jߐlҳ\uPC|ɹscWpzw>.yUE/4>9}C]%ۈS NᲬ>H*ۡ’} ,|'?˺"Ro.Esx÷} E.] 8KC eui vW\;+i ߑId #p^T%K_l:yQXeK)e ϋ–A;eWWn|{aBLLcm9tH?u#$CSuآ[lM-wg$n{)Y~~{GG֗${ #l) MYϲ(m;V-'m#nq9G~}.$Con( [J~2K~wfM4ʬ[zm\GƗqi`T'82+=ʖ-$pgs,5tI 7V.5F 8ҶD; f, ?s8kTRSZ]z?ݗ%g{΅)P(e+)BJ`y ,c i+WV~ 4SFp/(E8m%sB6⾓?:BmK7&6]uXs)v1@/9> sY9rYm#K0K 0%ar^a4vv:e Ueao.%E*aLw?H Ī㔒u,<$< ߐ"-qe7tKc E.+m%udQI#.bxSͥ3/Ҭ>H J[JTlw| )rHmߑ˯/+s)X[f}"ꉕbl CW O;vū`qKS(L- {xyqx*Oﬨn+/QIU~hAT7Eۈ۹ͯT ܓY)I\0oV_o\)[\)~uꦞz8Ф*{nSH߁^Lb)coH"ny;J#|i緶5<+m) |R C:a;ѯz"m-.,Zn{uI/e7VdžD9.z*Z(/5W۪8UpSEGmNQpj[`5YYۯUW#7,aJZs'rh>HK@AxB3  (oyQh}~>@MtfjfiP=iG!3؝g:c _~ %^#=_IYV>B/H;]6ePi3[d&~2h &XŽkء ,#Nޝ(|+2竆ߥŅ6% E7iA/oiJaZb  xxW .$uD ɽ- EBW4Rq"ax"8@k#Y1^ 렛JJNtՂDFNITBWkB_`/"y/]=DZDU)FD'j"!,/ k" /?DE_D""."HDEd>YUCEZNd=D>yOy=OٛKe -,iK-C=VReڛ[..ŖpPƒT,K7+m\.^.cp>G}"} [g.?{?|@ྐྵ|S Pr8.O.i!.ŦUz>PI%w'Gp?\/d*EJCW f⡾hkY4$X.ƺ-2|iݸL.oͧmts[E[I~Vʹ\̫/KUz˾W3n>dJꋂs%#"؟ysa-q%mߍԛ ɥ2 [gVv:O)qJpw_qus% h\WKeeI|_\oݲk[bշlVx'VEvϭmf}ߺeЇ>.O!ˇVA\V `Z~7u7}qYoס˺?\%y>7K?\%pw;V>-7ĪVokJh%ہ u.iǦ.Li2O zy=o.Ϸ_o\~/׷_|?~r},ҿ%!=\8ٯ>dKhRe"K7$]\FֹrY=r-r2Z}_\ ܥda, B=VR2g7>-WYbo)I^pϷ?q~:WozbsrY׃RW n\ؿߺ~lhw I~(]\jp gXjkqR"} &4^H\م0j2-s9rY%rYzGچT^.E.D.\’+m/eyYx idHꁕ)+*5K|G.J=lUK㿐S\ZVR|jϴɳ;|B .5\-N>nz㲾ȥ˪ȑ/#U?\e]\.2..Hr+c>m/Y26%7cC=VRVϸ%9+KHp?\em5~/2em~.K{a|.ep/.i|Q&/;D.<+$i\&ތZ1rlVY|B-/}EzB;"Q"Q^.D.=p.V#V_.-|!u.^%pi@<$]\p?\#v 2%֟R/"2"2^.j|?\2粮G~r^H}d%r >Ki+x[S]Osz|B.9A&[. \Fvtq!J˳7j\-IO.5wPOrYqeŵ+|_\gd o ..=T찂TcK}9;KoG{)rXi+G<,hw5N~ǨR^o.=G1؞%Vpf t/ e=u,Y o}>HJ[!_f\c,r0eeO’\2#.WE[I7b [.rYˊHj;p9{,0̭rȽXw4$Pc"4%=sCyǀP嶙_S-ԕ42W1GznG`o n|VǡbB!%SC){;^H2;r5 \@ƕ>H*[JCYbα- ?nҲ^elk3O%9rPow*p7Жy(ѹ?| +6v.8QpyLxFDҞ4n0=]7~#j^!X1L 4]ݽk2_\uW`q\~Jl0@}"Uﳄ3I&5owzztJΛS}Bi..+m)yakMƭ?.s!G.%$@}"UD>`qùt%g Ʌzxp?\n/.v%\d/ B["_6_rvg\po*Bg,\ȿys8oC.RR(PO.5f߼,*Y7TPe;o.GoY>HÖLKLt6_Ss )rY_hq\Ʋ]n̤L<{0=.H4<׮J.]!E.PLGeae3;);f>]$6I~0l)5XRJی}g_`YÓl#nqAPݯD$+AP0HY -(\P!لdq;MW;znk`q@aarP\\ }gXw0FeoOnhź"+Wq0v~l!npZͺ'R[)_?I`uhEevôg?@v@r]!x~FuV.`u#U*)q2Cf2%_դ-%OΒa[8MYĕуoqgR8CT̵Nǻ<죹a@=PV_̒}:\ǯU7 K% KJN\ɥ䶒 'ktqYZX6~qm5^ǵe䶒|q޹i 7u=o.{x?E.%RB=Җ|G.yF.{!E.Wخe֋KxK zqXi+)X%u yrߐ"&6v.{nէmd \<@ikoOnKW{^eA@Q8^mI^eǏ|?@mЀ]˱ʿeϳF0'6̗M[I~6[%gHiip>@]Û7,G%<5 K*RB=V7$$m31;C:NNRFR nm%@/U|G.{՟tߐ..w[Nzs.:.{J ٞB'A}2ߩ?t|?\$wRֹm9"U#5=N-ɤlٸhٹe?R g>|2|Ù\7.{p?\E`UrGX}"=˴L7 Ul]'cH GZҵ*˹AeXq^\`+Y ll @CFsw\<q?\Yه ef}3.0m%5;Y##_.=G.t؃?dU}!,POrO8qK[tȅz"r|^~C.~9@/._j˼0j]YVTYTų B[IeE%Ȕ"[fYoϲ'.fh..aq.˿3oXħ;n;oW8OA=F<{=%5.9<{M- [/Hpivrܹp8ź eYsYւAl~*n\Nɇ}xlԷ`BVRIJb.7 vG끋nrE_y? s킳ѫm(Փ۹L/'R#YH% IdΚi6;S[f-./s$ 59D(ߤ-JJv %(\e-F/./H V]psNrJfH߾2k/Q2.JjGL }OO˺'.^et27θc_JxcVu[Iҩ=m|}C\O\p?\ڭ>YKU,[B9T:-Je2ʬv.X<O#W '>{a VR\%Y֏l5^kFryq̋˸?\ť\\.R/.-rz~*v+<;$ke. i%'˒:xm9odq5mÎ۹3>' xO[]o ).Z= `0ֶ-8A%d@ W(7r2&˲O WNûe/I_tSJe% '6 }oHm/eܦ%eOt*q:Q;v/=cK5cDM{ "+\ꅔ"K*aDȏO$VOT r ʶ*')r^{1lJ`w7'fX%=aO-iѲ*`>7$54 WxߑK#qRחz5/Gz^I[J Ûl%"ꅫ)|G(ɶ60_}a/Hg(==eeOۯk}CsE=nxFv,@=>{}CeSycn Ww|h>1{ tUiUq>D먋R`z-iUұ| toH %1j M?h~xVRc*! ZǨUwDRo /.kHt]OxJTlpߐ"ꅋ1#l΢e!B:T$.K1%Rv$ omem1:|>.; s\X|FL[&;{SkOWs:)+O4 X/<_,YzػO( ?(͖v%OA )1=q6v.aY鞧7/>ݮHvEf|"c7$quKO\^5 Tɰtząg:S<\%#Ȧ3{9..{˞RIWCC;P'gu/[ eKK Έ68}gRm#nq9MjG!{\(geK)/˒O6モRq\6K}qi6UIPf<cO}Ӈ3/|k\Sv[,wa.62 å۾Jfox}˧ijtu[cVeM-xa1"5ϾѠ6X 8Gzb-%O< Gx[Dǃ/˼e]\e\%.pY7{z ]>}K Rc3伟; 1=qЉKťb]\`.G4%bR7ؕwIoKp?\U w$nBzb=n.i[|̺7{p?\p᭢1Kf&gܮ{ #?e>nC?P}7Cx'VcYax)ۈU20%(]\VX0ۡc휵l#KInd_XB}ųU*[J)q{W,C9$GåRbRb"[RpYqqbglT5Xri>H<#R*css.?<%NvFuS˥\ZKåE.\\...vq?\å)W}#ꉵ)0lIe]\.+pڜ,ťuPo7JP#RJ8]˽T<7F].. E.j.2Eqťǵ F7,wJ^KF6d;*.ԓg2B.<fnB=OؐK Kl)eߗk/[|?߾l#K54$ 4rF.+m)~sA(k9}B,%czw_Xޱ_| =\;w_ޱ3z)I<Y"R_.G.F.\޸e>XWZFri=ri[|=y Z&k;_VVM&O~oya&[c66y> ko..Fg}q"4!\hs޸;H9\%􎲍.rƊKs?HG`%rϨV^&ٮ{ЯྐྵnVI{;lH%= gCB;6}\7aB.~Z~ ccjl˼߱osa;02m}sG\% ,ڬu#N<s_W rynꉋ Q? U}ӓTl>v%u$ m>y;S~UV7|/G]..˒[cf;;*.3IF7ޱq^9f[B\VRjr89-!E.W_|G.{vl )rXeK{LquwUzb;&߁KNc/ $ChvfKiةLBV#\al#?\e3F^EzbqLr9kKsB=q6⾹u~+q4#=ʖRzr y}1J%ۈYal ?0Z0`iYuFaÔvAWC[CAJlĥvAQ|Ҷ O^sNuf'U X>]iqyG*$QHs.ag fٸoHF>ke KAp[]` uP0ٴhs%FW`K.!^A-7*b_b@%r$ /K|Β5-Io]46Y6/V0 rmY:қi'9vQidǟ{M>Fͧlu~*f? #*DKݼsz}"ꉕ"~5'REzm}s{/ť2ZׁWD>H J[I TŅ*2}`@.SBeV-r7NvZVȅzb/[MRN#DJۈ҇ePҾ?˨/ꉕدJ5g< )ri20oq8Z%SDMKڢI(,-Wq[J-.L?ml1t[w2C nbClzP :,."~!:uZ2~_(~cfB礞?5m%%βd/K}oHQH\p\_41@]C=V_7&ۢ7nq ,)D[}\5'I[I^ h;> #n+X| /,i=̇-K}Uۖ|)=VڣoH­U/n{\8M΅%r}Onh$.>ct[I6T#[܍-++/΅w&)Q@9tLBy,N/Q\_tѶo؝F+ezԒנnԶzGRh7v\|[@\/vSs)ۆsӹ,v~sY an{~ ٺoVEzbC۟ߡ!~fpuuv=\IU۳4 E.$ |G.{RBpum;rAK/sqq2B=VR5{.|`;=n{ᾹiSauߨ"J7TBmMM+,DO]ƐKv}J..`XEz`\eRBp]\;r'h2L.ꁕ]BZ9OSYwՑk(&ENxV 5tߐ..Cgm/21>{PŒ6 נqϞzdҴ U@n~gK!ijW酋As_ͳɨ삆d';NT 3+bM p88WNhv[lT!je,b8GO" ^s~>k?@A[JX){ :Lߐ;L#< .Ru!.r\`+'pebis#;CxZj%Q%HWOjK~gLuS/\p?\VlUsFJj̬2v9lˈ,q۹\՞ߴ,{0V~>cKUH*ᓠmnHuhqSsSbFeٛ-kM7 kD=KӲ;DuSv{i^!ؚǐ{GwңMXg[s\'ayhQͷXRR! p%s-.cPҐOhg82D$2]_qm!US "h[&]=:uS/򊸝ѼbIK |7]9-.Zw[gwj}^aj-.?U/š1I~=w kNXz:넖h^syEs${.J2[JWƪ2Dw1 p}s#K6V\EV~zfGm+zksP/\<q?\\%XjEzc\ĸ\8! "v.¢ϏG͗`x#hk ~bZl=.+YV|˹ YK:z/,lS&g%ԣ-%_!UI=ŀE=fҋG}"B!#ՉGc 6M N6^el%եǮgwԢ?yw)nF~ w),mxº'.[Hw2YUI({YR"}S1?$KKwڜĕoqaS}/*,CѮS^3e[J)~/gs;캥.Fl{)*a)# \jꉞ37v#;rYΜ\Zjo.uZJ4G>H*[JuVwP-=quT (Jp#@H(v`RlJul*K>kiSJoH6\\KaY2.bG_#s5eJJFnmɸ Dh/"Ԓm}s¼eGVx)r[tiu)YKNlMR"=p6~B%UcCZΥپh$d)*ŶM9yg[?E|_\Yqy^Ez`-/weXKGWm?\Zl#nr'v 8ef'Kltc[]n$ac/}CUEۈ۹Fe EG,w BWM=tU tF]aZ<=5,.`W-*d>=wnŦbڡiB7nWM{.`fw=B/-ΗNT]F f;:``4#4>ME)P0=ik!֭yHC2ۄ7<7dq?\qVtq6rLP w)Nab߱E|?\r;@z2jeȥȥKKƖ%5M5IP+28\$]\'.F7}l^ceG>HH $ڢqm+>23/ҵ(m}s震VxLzr\ xB}_.R혳J`d.c Cg{R脱egzseX[ZܼtqJˈ\ݎud3!]\V`q?\o\۟׷?Ck,igkUb{x>۝x}e!ny_ٛ/xrkc j?\ݿ0^ɹr)޿ָ 14.+E.+\Vx,<1ߑ,Ja]y BpN>7?C{?-CxMm˸QWQhk =\/5.^@\@\BJ.K9FӆG.ގz Sz Ne\}Q \n#Ϭ Kp&B=sw2Fo2q\ݭ!.WPrrD.+)jYz()rXeKӏN hrw'RF7b8Y흿HO.ˏye ˊF ҿȥ/E.5E.{C9 k|euo%\% =td5IVUڦq5ISXb9Q ď6ȰJ Km.GG{[_ #=] 'k%xUKG% Ȱm\oH%hq;v.9Je.l!|V%IⲲb{v.gcA*깔c1ew"3] HS0Oݜyy!L)A#62Vį L.JJTcIƗFOŽ󯺞hq?\%SIG'AQox'VR>p7vmVӋ C|_\eR 7o_b>HJ[J{ng!\l3I}Y}sM=mh$;TlX}"UK9Emh̒[\}iUm#vش^fd\˖R؜eIG2fId\뉋`޴Ok8YEvFfDcIl9>kZ|%.m#۾!ˮ[zm4,%2۝c)6ť~!4f۸昑}C2.մ˹XґQАmsW洁4*3m2U􍇩w#>$bmj[\xN_)U2s<ŲVl M?[A[I6U,-"ICSw4vۈ[\ڙ] Xb[<;tEO Dwp':THۤm;mS7ĕ oG;Œ7z߂ ?w}YFon+K*)X}C2.Eۈ;p _,Zh8]qijK>R PSt=q6v.f\ ~Ԏ^òGd-S6āUR~JvdOZs}v.:u*)p稣K^M?cM[IVMضz I\N\5M=KC))Z>8dl60maS%F;$.n+iťyKzÅj2}\N. +l%5k+Ǟ6#,Hl#o<:s o)rXi+E-mK|."oZo.kz KVcO}鉕xT#b Ezꑋ|?mX#,ý[ǐhGaX7:vjPj Y*Jn:=V f7]hmaѼ_(DO/XTžN IDvWq|~DQеk?ρ\qB-n8}X'v^C\(ꝋE|,f9-rS+.f9T|+11!iEzfV*ArfR')01=q(wR]*8U!y⡞Xi+ɫ$iDm3' )r`{~TK;̡X%tq^Xa+Zbg~=_}s׉X0u {B=VRu"3@u bLVp0R: ;M"<;m+Z j2J2eeͥȥqnp[IU=9>R"=qq uCJxʜf>k  [g `Rܤj7D^.&Q/y )r^VȗM:ג3M3>pD7.\&/d]Cpl;v'ì"~# -\MZشբyOf^Ygєr]z-~w~UA=ed]ſY),XoO;m6\^6T4|O0@AvΙ<7eB-t} ˽'R\1*~5`H{B×,hEZl.evG˳&C f/C&ɥOR玟'iC,[p(ML}o2ǫ1Bm{rK7E$J$hKɯP B:3@sF" ;rcI nk)E.7%֕#dBGC)r^x ~[#_zR"=Ӓ)@%}ߡ^S@/C#|G.yY>@\o̖5,eدwvz!;r)'ťr\6Fqϥm*ɸ-_ P\lf[,g#S_J[J7@kn[Ѐťjt2= K|E@\'Vzcka4<emsa(jL0I3##'4\}Kk-ކa^|HqN(m/S,#~Kwn9S1NV@cSer&6YG63@=XV|ڥk;9iXz@q_,#_𩘽+Gr+|F38jbvea/u?Xkb!C2XV~>-Hֲ=cgem}`9`ۖ!(3>/`iyUwzp+e5ekG?wi[6ts3|@=X wbzSq Rψŧ][k>{b=t<|Xv\S,|KRsIJ %%/\">~eq]s]s]e<ץ=eq]s]s]ץ<ץ,Ur=b ԃe%?&c5fH.s?Mn7ﱻWk_ WX#\XrX=ck|ɻp*b܏lﱳs?##]l?X=| a={L|Hk:c,yM_,{KK}R,G,WΏ/U D b7GFXjʻ lG,ID~Ƅ}~=!|qG*`1tIylq*2[0 w$.K/.%M _R,~]Lאץuk.,5\>~P>KɎ|'}'q<-gUZ=aULobA{XEo9L r=fRÜ }Y80fI Ζv,eaQ*o7Y1~)ɠK>]1邂maMGkv۠e$S; L2 1a4QK.(}C]RwA` lxM9nr5G,g6LU>eG*`1tIuSc0vw$.:2n[Xd ?ӰR[<[=Wa܉%]R$'#WOd;ޑ[rEeE7m}r_)+~1r*]Ra2-]nՊ3{sl[v,{*wi??wԛȽ|!KsEwKsm'f~&ss[dr8*A ˙H%5}C@ ߡmPh._ԍ~X/ss,UmKRu%F%FNœjTr۠ p9J{`[XZeX aM)6؞I$kꊚI!NǞ9uSq1uߎ#E,x(Һ(aad"Mۧ.JXؒ/FmrA@g﮹o٩Ԗk̔odԅ,tE@C-yWQS"Vva!gLT+֚v(k#~HF޲hgY WX> lWbؔ+bACψ ,lX(IS8۱l2:XTȱXz@XΟ9p,B,E,}0 Z\`3:ur:`:ײ]]uPLՅxb |be@qzp,M9 ]˥,=|ܥ+Zo\7!Ypql7n?Xx'x}i;Nn;NApMs?o i),ܗQ+tEMKtczPN6Jy`A}Cڿ  u7t8`mxB/+~rn˩U|XU*n\WTNdrql'48BipbK?P m3nIaiKM@biUwHB 4.*D|xmaRW';,XBb9Pnq_,|']c,fΓ)U<4 w,P KtkofP+tEuKK+ݗ|(vZEj(]*bRWT²?db VZ-u_,a;O=ΓdP wK'a *b|(%̓e┴zԃr ]G>Xny~IYu?/m w?|__5/>}Q}wMp]ŽIvo$QWWgX ۟mPcKN'Z]3|W& c˄l溤`MμmLk0tj:’qNB8~ IoG'h"V{VǘZ \*Ε-|N͘mX Bs9RQWTn@r]&v;붪Xn`"m2NHîlY@tEu;#NU3ث[ .^ cC.b#Xkb=[v~t.g蒚!fU49RfSue]RlŲ]f ]麢Z.,>f}Xݮ U}v,7`Z.qڽFKTP¢`UuEMk%CЭ]cL'Mb!bNÊ=@E,WJ(74 Gu?X/ȱV*7Q=[; ⰵ3u8v8gu_,ԘVf=7:}j $}C[WO9vԹc~YmMk*[^=gK{Cz Eͮ˟C0&fܿ]no:a}" GUK~P2\7툥><.jおX$%լn8nJ7KE,˯l?X&ܟW՗Erͤ.=vD$Z j ||LҌ~XڰB|;à-~DE,WvJ@JhlWW#yﱉc7E뗨Er +=61nF34٢bYAFR1o8U8EO f3oa7Ԇ/SAɟ{ oD٤jٜXivL׭XvƆ\~A۱h?zѼN>vu߃nG ^cS.V#(`gG*`1tIyq.0e;Ǵ;%i.}&Eo)9|P.Ð0nC0YFu*H96eE:ku3Y 98t۠uv=rЍ~;.$9ZXd\|K%,w%=GvPnxnm=-9JM`;`90$ۦ@^7221Hhr@)I6@ !9|*T`!=.?ͺwߛ鷰i͔7 *b7tIeqI`_rg`=F_,lߦe6^vDGr*ݡ:&]E!rel?X'9'64D?[r*]zgMa?),ӥ\#ߒO[nJ5,+E,WTT2rRĢT]t,Z֋3X>c=uIy] qẚ`Zz](׃nҽ:8odxݫtIyuZq&Wge۫jlWoَX؈Xؾ|x"tI%;@ uIhT"9n~{$F 2/]RgT"9n$6-x'gi#/ˮb) ~ #bY ְT"9|PNK''߳²!틠~k_ԍ~?XNe!-rx__MT.3Ĥq`CX$g{X2:?˩bR^["uѼR[cSNz]ma03sO1}YHotXrď;uV[az u"%uܱ跰W%G{&JޕrxHlY'NXv<%ԍ~;J٠Y;ov^ݭP{aCv! VĞbiUE :|=J螬 or=Of f]ӱpCTk$ǎtA 5;n(((a9cKnwh%ٯ,-\ofLn5YeL\^XcSNv, XR27Hx|zc+{j8mʺJ-~Ńz4[/V+yeV֢tI_!.vǦ~e{-,{__˙ 2>TG,f(y9jFua1N?ԭrm׸ڹcWaA7-,:}ՏoJksݶ8qUQC,Ì7u&%˚n۱oq6G,ܠGQfX95fXz7a;]|-9n۱^#Y2[B~2 Z$2Sz"P?B^* V^o|~fR:.-(8gNMר; DiI M92b9C烥` iおX5lq݄mX$_ؠ|`DLf,M1 ]|+TiLEt۠"ͧ`;b9\n>4Oxݚ+p+tJ UIjMn&Tu(8f2NL,hxc-~ ;Mo J^z9=D9*QA(k XCw,>a{x ~,~AmfON7L=p=q%GA|fOeԵٵ\/ߎeY~ ;*(5),5j(Xd o;خ,*^`2oa/fZSpmc^滈sK^o^节ma/"t[s8܃[c r9Aa?g?[zoa;Gl D\va̱mPM۱tmށs*( 8#5w8L+ + ܦ=m6( _6qӫbYòram)HtDE nnEٮ˱+Η4|c[y>1ri[꒚ Jv[f)n8}@)؎XmRĨGr*ݦʕ,}st;︬L͜,w=ũo`9u1>2]|[T߻"wep?uIMu5htOf J߮%~Q7V5`2v[3.6&!wNzXcO%NiV B~cJ |}ܿ}F9" [%U_g`컥vQJra#,NSq_ PZzHGKjz[@'A(&f|~Ԣ6i/[m6ZtI4ص{V=/F_,mhhז @E,WZ$IV&ijhcW.sЍ~X=Mv KH_K*+ ưš~^Y",l`4R)鐲aSװꆜ_\Ų n9 =HkX젭aR Xvݻ4vƦ~?~X|irveOD` H#5]~]:u$[-ؾA7R%6Nb(qWB\vnHng 2a-ӀVQl"]Rw"A".ol.u,MsIJK85u3~]Kϭ)t@Ws]9F_,jG8] T@E,3]_nl7cEor<ݝ"kl.աYZK*=K&}wNA7Xghݹb`3d3uΣ|8uIYF c;VƖ~Q7t$=Qh@"1V~7ةY5~GwvݢU%ccwg跰d’Ԁp#pw(j˩OD q]!$9F b!{fb'1;9_ϻ ]P=D6ȹv`ƖR7-,嬙#.%Gv@!A$cH}2jIIwLI O.߮pj }ITiQ`՛QkDp_RxC=HXtAv@qծBXA &ԍ~XU5NS'a6^*?W钲ʲ.+umm'+ؔ/F?X~,}D,sF,s~TѰRgȪCar76`H YSٯ"lT@/aPeEr%eOU5FiYTbr_.MrlX$/ڔ/ci(6aؔ/߸~Ͻ;p9ŒcFSlINƊ q-Nؔ/F =1\. q[(aaՊ+_js%KmRFӜ-ցIgO$4J{%_87_ ͶYv=+] *$_ҍ~;G[ș"5 c,=~R2ˑs ]Rc0u )]<)_ԍ~;[Fl?0) |˒ntف[`4ױy60&ӭG0/kjt\;~ٯ^WokDp_RxC~vX3kkO)FO'1)z۸S1фdC L*rE*Mغc"r5{F4 )|^pp`6Y$g#_T!V&[?-{~Y`s8 `GXN+k,nnԃr/َXβX>.%,O$ʉk󌛜~5`2<`XVvPnXc9 {,W[Qj!`& W JH?W6^,L&&K%4%'`Y:ba;beB]C>e 9X89#Ʃܮ_,u2`yV#P_Kʐgmmՙo̅ x‰tkaSבXJ?s"y_}p Hx>K~?;E,?Ͼe,7cpe,oC9}.Y.K7/r9خ`c07 8h%%{hAE,І<%Ŀ}`n3E Gԃ9t gsDxMԃe9t,,-,"OZ lK'Pնp]올tpNpG14% ʷ57t8 먮lWpl7T8Tߛ" ~8M Tg);b!RAdo&r b,LneXJ|'zN~ewmz Y,W/##XvXƎW/Y"0s2CY:O3}<7Cw>H9Jq ,'ʼnaq&]yq?YoܰŲ"c uZyɰuZ 7SՖ,+ғںRm1yaB g;Fv2UqO2,8']R÷iبnEz*mWO_ؔ/FIDr2::Z X%,pЛ]RgdĜc!p줄tߎ᝻aixs1&cUx^Vݪ|ya:T{3e JXxI-FKGe7;R@NQl|bmW U(a[f[X6w==6(a9cK!aHXe\ 5[˭5`V[vy8eQa\CW԰s4[5G\vy_Ml KG ᬤ 3Ռr԰.)˙x;6(S>~;VˎPuSh!JXFE캢Qf[|`&%,e׺7M0X*6Bpt^7GbBqWKЫ/ @/*o&Y7}zvVK/.^> KLݫЯl m9<3~ݭ6LVUGIY'mtTnEQڮɱ!_}~0L1{eox]Q/8Ĭ6L8~0!] ߎ8bo5l-Ry]UAYQr9E//ns.fuXtʆp~?tQwuϷ1({˙cJ]3V{5ݎT/~6cwK#ۮKje#]E?*j#0gJNYTq]K߶/ JXn= u御ўHMg=Ya<Xͤ7\z w~ffhscտuҍT("oc9)f+~+7SVND{{\ J_]neJzʲ|Ʀ~u{t'D~Xj:3 mXvXfv*ٺñK22YƩgXPXXPNktѥY }j?X"71w|X$ҥ䠠~4MߑrzJMnO$*b(꒪`!',Mv"X$_YlG,(~V#O"k(o#䧮O" Kx=Ǻ(xWtIIc5N=6\NcҼ?So|aDYe򍝛vs0]R";OƖ~Q7-,d;Q}cdLo1+N@ɻ6\>POK;PvAi q{zPv,%2,8؇Ҭ#_z&6.lYۆD~%_ҍ~;_M3 ]1D MDXjVO tk%يjlu ۊSHIb8IRSmyƱ%_Iߊle-F4uk1?} HnU[- &oW5-ٴX|}?ԣ1;Vk,RKjXҫ8cK 5mWKzؔ/F_,XqjҚu"tI0q҃[ŏ +E,^=m=X= n@E,W钪2"`C]{`HNM*ox0B!'U~nݣq(a9kos%,K u&ʦZ36,ۓcAaEU1 tBMXd,1m[O Co.Qv;AsySK`꒪'NR8-ٯ9Ǧ~Q7-,HXM0N-n4@ Km.GtI nK_tOZ%,8M}9vR]`4Mx#D%]R~tM{Vaw$Ɩ~u9[?V>rBݻ(ywjP^cM]Qwwh;ı)_ԍ~Xr8rl6rJ]Q&²  |&~i9Ԃ툥ނ`Kͺl+uEYCGqEH~f;^ lFX+uEBW[ t3vh;֗Ʀ~Q7ҭ8#{K`xCgŻ]~?r]ƦܼwlG,뵈+VoLN_+뵈+ԝBplu/ݿ>dih!~ JQFmƊhU3jrXr:HBtZ@z&+%-ZeE#@Pr㢐GWTV%nYRf rEoRqβ\6Xù(a9[)OQŔt ne.EzqoRW8(ѵ)}D K&/ @XU>ߊ:f/1MZ‡z$Uo*q{3*MXU7Ћ>*!"ʼU􂫎M*@0RW8 |AOؔ/>~Xb:7[T?{RWEtoeQ4vU麏,;Dknr#9|<2|k],㾘e{X^\u_,Xq8i&[f۰t+t", '뤊O o²m,,ܞx/,'sm#k[TB~xާ8ѕٌ0aK}/IH,| K:][_zR=b7KX% U}5CYǚZ?Wzo{81s RW{8a;b\2?bYwiL ]Q^±6Vp˵%+46eZ)q{;83HN_+jC[ذc4O0*>0 eWϠ ! XzzP_+Z8uߡ;DlݞYycΰmbRɫȍT˯eiќ{l{aZ~M}~{l-rۻT"9jg$ĹM73dž\~A[XW8s\c(-P[TUax7Rؐ/>~;SqP.)oݢ Hn?2BvҝHe86+[StŠP\ؒgϹk]~[Ӟ0 Ǻ $+vuInr fS6m?ͱ%_ҍ~ Kbq EY+ GЩKBU(lר/FMv+^w¼qFA]]px)VP7#J9xY{6#F-2-vu#9y2nP.𼐃kԭ|`cKN 3[3$\Y%MsIv/u/~iHΘ!tEe  ˺]aY>&=t?Xnوv{ԃrz]QՆ5Enl'+[8,,,,,,R,,,O,g1_&V;v^_hʫ>c=bXnòZngֵFb{_;y5O.fBɰmmX֭ ,Ha<XT: KK_,-\:9XʊgMc)K30X֮˴<auYl?XpR8L)άjl߸, eo`yC9}]io&qs\~11b|OZ绿O]Q|r绿Of8՝}ByU OouoEDor`լr2Id XL^Q B,WﮋXN!w (?冧m.K*bRWTBiԛI"rvBirU2툥u+( P\5o%F$Ei\ZŗHƮ(oaYW'cLjI3l *eƧmaiLJeM:`;髝\۱ZOOãv֤=~HO-.g+鉃w-5vzrC~eߵezFgO4Z6,c֙[[@8gD݆ ct9يok&5<.N=Ej9r碌L78mpcS.3[ 'r"lc݁mB:M%MũS3PcC.-,lH8U"VO({?K*[gqQeaF5˯]l }Lj'}yv* 5ߡ:l7) zn8S+wA }@.OMn;ԸvNI P4O:ǦK*9v]~{ccv)SvQj0lĩzMLzDr8*]R-rnq_[G͋qluߎt \&lLo. }].LgkцAfs9 `[XfsVhOy'Q%JXN§䨸"]RݗC❲P̴]M9`;bif*bJMݢ-k[kE˩,#aϖma~Q72,RǡB7eX@._+jXJ8($]X ֡B_ԍ~Xf3=́PN_+Y(B=vLcSNdͤdyġ~;ѐTLyC~uEyp O jI,%(Gr,H˿T~[eX[A2tEV$(Sq۠ t9ʚ%`[X]"¶o{>BފT]Q*ڡ%nv 8~5vu㷰38񅍣NYuuw7-]R8͉tms"۠,)}~I gCK~eTbrJ]Qfo⌛cH,MTIJ{ຏߎe|jp)JXXgڐԈ8nXؐIẏߎezH)XIwrLp Y1RPsvӝ*C۠^I r''(u]ȹocowB٠Y.o:F>SٶS)5TnlrEoǢqհt& wL)F#7%婙 )C7al{jƆ\~1#M,am||eǝߝ &JZw}m.f┻rnm#TcSN|m 9;ឿ9'.fQn%OD1 Li4tNa b0"{3sVR8D#h߾M|9fk:5ʶG#Cpm\]NlmÂW/K -^8˪ KqTx0#mLb> Kw9n[XkEA߇VQlH.z*"tI%K%ƷE%,=~I7X:ڬi7LuC?{ gMJXfu9b %5l7L3u"m7 ؔӯUw+)"5$7}P96q"꒚}!mJv+,)_ԍ~;Ԣ PN'Ѱ |*&M5ATN䤅U tO/ JXtߎeș2wKvkw_3]R!e<\!\t!, D좢Cq–L\]L]Rga >]Ệ[r%跰t4M%[1G%s%6( 芚vxQ{Hɻ?۱ܹ=~O }jB2k[L+h_ZuE5;..NyuQ"Tϊ8v^n۱b`y익,=TE yKM]R 3nnEwڮ^cKNOv,Se麫nZwb 1j?_jV~T@tQ6@9v]][X.խyXUnK3!~C{Nz$zi'uYHA߽ۇށK%NDxPyl7;!_}v, )ȩw9}.}YNw\AOrK)A>螥6ۤM&_}}a!v?:gbooQ(tIekct ۠'/>~KG˨8o}KC;;͓.)ks~链7ۤF^mOh8<$//6'WVM9&ze7'(u;9" | òFDqK'']dʶؔ/F_,}ř'Er*]RsEn%\R[,bY޺m4FGr*]z AZaB9=nŲ8Ge޷L B]R6nor.>ؔ/F,wԝr rܦ+-ZvyV"T<q?60mA%tIi 9g`luߎ|@'rtSEXw>ǠutIqM 4m?ң)_ԍ~?Xѭ`9wbIwf XLtAvrɢiNnTbrzJ跰4pVm'qgE`{hS|xtIy+q2EV4r5a)w7c)wv:'$Run/}t.G>tIy#q:fUg O;t;58]`}3KixT"9.o&r? wjv^V# &!!FB4H_KʣItѤZ+96oa nu4[VaEɻ\pl~֝m7%b@Ս~ E>+.Z%U7B6o'X%AtZlXY}M9n۱_ۊؐ{{v"^c"3K 4cLT('v|{"na.ԍ~ ˝B7BFG#q[t.ƭ޽ո}J@ )!@?͛OaLImCI!ŢHKv`#@m46˙qVw:PN_+*[Q73ؒ/F,gQ8P]^-: ]!) ]qn|awp8HN`',ՄS1,~ia\BWT_ZIub rE:1ψ巴m@ꉗr=Ul'sluߎebV%Rę7Ego#vT%,{%-x.Ν?n ٮ<ؔ/Fˉk{yM$=[ƻoۀrb.)o!έ%݄"ǖ~Q7-, 4+&θQP }~N&JXjq9ФK٢]z߲ő>#rEc)(?mpqpPi"iqGPҊob%}AMfkluߎK7,~ m^p;&*sy]-.o ?_]RP~"_ؐ/>~;6 9P|?VQ-:}_=m%図훳rob9jX)꺈0ךx3-][Ku!q]h;uؔ/F%<"g Q={) uUۺJ]WԴBZ+uYAYYaYO F;?C~..) #79 &luv0-9n۱SO^Mj[Uv `Ӽb}ʧYNy7qP ˼qluRB甄w璢BjfsPZ *t5gyu6(=KՍ~ Kői;[<荂D] +Ul.z9vWM9nrFWۘsO^v쨹n`6OؔW{r/YMΠ8y.?W邂eܓ4% X]s<8F6-;\68bS B(+plto,:)_h ,5g8w[Qo`RN.br {bcSNTH7ٰϜa@ *.L8t0mP²u‚.^8FMb5m_2~]sF73/SW0έA݌"69pVrW9ӰԻ~j+EaJW;['6S͂7R2SO']CVٵeTEFfuIA)3nEecKN>XOu_7T+W_oP[[ '믿?rPWlL៿H?`C$j D{)@}vS[*__k[YW??KG쮛H._ݕZмK8I<ۀ_CIk &ᑊ*"瞞i??Pnf/7me5,Xqy'+8(,̗,/rQoI^{O}|`u7uX߿;1&f_D|\P9-8?ǿZ-D؂ شd=Cbԏ%s99gUv:jɜ_~([̇3B&}W/Z!7{y:e=ߛ ߪdy.[LX}I*?#BcWaKSEnLBV?"d%P>^DɈJb𦑿A % ΋Yuqa\u^~k}({U y0b<8=`UC3ocՂx|"V_cX~ݛY3%gTPwOM4Q! )r -_~M2Mktf{!*3wN!dR?2hWQRKBN$Zm#{WQҽOH{0ml 4808kC울2"&\3.,8Ӄw<0{##;0qnѶ唷~:Vh>7h/ѩ4iWa1]īvB.g_Srlh7A1]}՟tPRǃocPbsR TZK7kδJ[J%j [*`pN7WUq.)>Kw(=.ˌw.Kw.ZWw.=?erYf%Bg;~*.gAv = KYճq)_uN Rp<Ñi{;LpE8x-QPS΃/Ҟ|cFKfg }r_3mJ7PU=Gi}m[v\+t:EϝU^F;UZvNՒ"yd}a?/v~Zo/}챁p5~q\'wzUT*|իBߩ%/ZpիbF괡{.1v?+ Wu}ܫH>13HKZi^V {VAgp/iO/g3ǂZ'ʡ0v>Os~suZcA-8-r(hcAf?"ɷV z; c1~$}L-!hi@: )h/o[_4uEd-t[hvq-g5{|B-8w?3 B<OZ}f;(gͭWSvz}d|Ua u?CDNT,!QqKZr Fnc+ ~2Nݴ߷οlwן8οf t=:?>u\ }ﱁN_j['[1ܾ! lyG8ikXj m3( }wM{}RYԂZ![@OsUHKTYԂO ZT+y {TZb}l>e?6;?9}<~+$2='}ď>u+D>ZPcZQZw}jRf?jWf>t:ZP(wK,Du4͖13[嫲dݩ|6$5K>-pMS Gs`|sG$޼$NOHxd<l_xHڲBD%[ڝ xRo\FOlIRxpUC*+%XlC V%*_|^8#$\Y pY35l3$ D, /o"gq$nv 0ahH M+8$HnZ˖{.?Op%s%Z!q75ݸ_[y᛿%Y(­pk %PktzXCF}84~K(io+/ JQSͲY[90&4izKFRF*X#"%,1\CQ:]45 4<*g;N/K(@>޴v b\cJIF9b8'G1'd,7.m%A&3FOHrb8('@[Y 2%NMfPNŃ($P4lo8/_@ůt@ 9D)8޸Sb}\Gh\%b Pq 3tYiz ΘQbR鐠 JЉg&.]VHȉ"iXKiK=%U) 3L;H[q$2L$QwĘ3c5lA؃- %;5sاq׌\ҁQ$'$teZ޾Dس@q\"W޳wn7]S"Jw4o\{i\:uqK7队$}l֘򖈆Zm h'l0n|VҘzW{p|CM+ endstream endobj 66 0 obj << /CreationDate (D:20220412230519) /ModDate (D:20220412230519) /Title (R Graphics Output) /Producer (R 4.2.0) /Creator (R) >> endobj 67 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 69 0 R >> endobj 68 0 obj [/ICCBased 70 0 R] endobj 69 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 70 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 62 0 obj << /Font << /F16 8 0 R /F42 14 0 R /F15 12 0 R /F23 25 0 R /F47 13 0 R /F41 11 0 R /F59 15 0 R /F20 22 0 R /F58 16 0 R /F48 17 0 R >> /XObject << /Im4 57 0 R >> /ProcSet [ /PDF /Text ] >> endobj 73 0 obj << /Length 1383 /Filter /FlateDecode >> stream xڭVKo6W9hMm M),ɱ`Yr%9)h`"9o3H ?ID ;\sb17Јn?Ss'Q4`F/{"QKa}tjU 3lUDªٮb jqkqDa)5^xW/a*<8r Jՠ8P(Q)$E?s2O!@!*=N@$:nIɷg@9{v6lu.Nu֗M=44J"v6_$!o4_vSHjeMIkSut RqJAoɿ8~AZZkiV36+N9 s"LSi 0!6̠-Pr[[i6uү.7ǶYQސ>U.<}aW/8o}%¿_8cġW&y41%s?*K`pMm$:}4o.;-_mo<ӨD:'Ҕ RA$5Zd2/^g>nm7:raQRx1OeT7*:6~ȭ1yQ9Ù&XrbNٰԕ9%ބ=!B2 ad Qׁ^\ Lz{$DZH 7g?"ATx +#;ndtݍv7nGa;+NډAم#0x@?M][SC 9yUNkS)8|ۜ\ʦm+vgsThi`kM Ob9-.K8qEt:H4;`tj(OL| 7FX}IÏvb1 UbC;%^  a#:al\Ty:c9cr%d*x4*qbYΆa׾(c,xc8kͫ  endstream endobj 72 0 obj << /Type /Page /Contents 73 0 R /Resources 71 0 R /MediaBox [0 0 595.276 841.89] /Parent 65 0 R >> endobj 58 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-018.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 74 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 75 0 R>> /ExtGState << >>/ColorSpace << /sRGB 76 0 R >>>> /Length 80818 /Filter /FlateDecode >> stream xtͮ,K6b?vL}؀}IX$dDu$YՑdV&?Onڽg??Ͽ'Ͽ/>ן?3~Sϟ6Sg׿Kϟ~Pw>Jۮ[|TQ\ 1/_í̿{ )6߱߅@L+(بoA·kBh4*ޟo{Cߺ$nOQQ a_cT߮i 1/}S1E;꜏o [kɏB;u"vkBA4߇{y[_0|>Go ?MϮ>Q!GqM( ogo1~]h_ $|WMOj5a%e?oor `tEAtrAdCn9jO횝{e>nIj(.n7+? 6*_P(k)_ `yOR|b6 `; [~lT)4*\S֢X_V$ȦΏK?imn]{QQ )WW7*(I+/c%>b6?IqHʏ>];߇[?wdQQ 6QM |&De?ϗﮑyYIwMaѨ&]V_߇Mk?IaSYmA,7(بon4 oׄh:F%χ ?Osw&N[c QTïneJsy)n%|>BVkedIt? 6*O,7.nV_;65’Ɲ; -kJa5+v4 c[fFN>vZ"VJ~I8Z(ƃ߫FyD.eGbOqܺHOB 'E{O+Wg8^V1/fj]*Mz:8Y&4p? U3+F@Bci%VZGj@VTI'F%|Pfk Ayt+јVoQ$V:9; o)>IQ )>"BP 4 }O(:X҂]w )>Iq? >J~7:>iAQ!(n%<˕%(;,7lVQ,)\~0*;~LGXZ (gLKާs{, :R|P4EPQտBci}auaRqUGQ 3Q!< 3/w;$ed}8亵Y-? ]̕lYgM3N(>? VCr4 [;j QT*BPۥ< `$0}w'ͭ]X`>KݯpX]BTMeipӨ :~TŧfEXS͎)@݊$Qo~TGy,g~_X~GZш+[{|7%aA'h及W5ߨ"hOp@>Sj;nMQ {լ AyB '#0.z'g}FaMЕ HQx+JV^Bc~_X}z+"7 YWdur `T|t'L)@+Qbj{/<:n_>Wޑ*b4)s!Q `K.ǒFZhVKЏY [EQ!< 1/v\0F~7LN-?? }*Q=o(5 }au҉]=V%;։E{Qʂ4 cBc~_XeL|iKeUi}yA :)lѨ&(]n%eyKԽhVKЏBT̗o޿KBci%elSUV;i(بdf -!屴 2V]u_-VU>vZ~0}Vt|T):G1})7XmNcvqզМ'ŨyׄQAb:f)5{`U N[-?MaWjV_M?I|wR(T==.{?V_ `ˎ?Iayj;[X {#?ZkJ4XtŢX-b఍au[-A? NjE*6Q!*Z+7"SG&dmȼOm( _ 6_kKB&Dwq|8$}ǶhrmKC~v/hԪC&D2Ҿb3/&Zfe N[7QQ b39׬&*ӭ@C`?}lZ|| $X𻾢ŏR[S^V\z\iT?~ͭ )ֻ%jw'5Lڑ!QFRaRgɍFm6&Dm0 !屴YҨyLXZ;֋E,Q*J4X ~!IqԜI1E 2lKm1Zuy) 7L6' X)ƛgK-^Bc~_XcOZM :Yn*>~z"P9>Q!< VOE+|@V :n%>~vJޏO~mШUhuMS}a%)6W<1ٕG'ǭI+RSec4ИVOm>\iudYUK Hޕ현Xt32): +K'T JIݯIP)g8J&\ol*R0ڴzQN[нڢZp+/}רū-^ptVU__B U5T;'ݭC RشO6_nQ!(]R}a%+7`m9OvíCMϏBy*_o< cD/sO,45ͅ,7Bs⤢شBP{ I {F%VW;duX-A? lK GmlׄBhl+cu/X۽%2jҜN[Kx,} XI0Fqr(x)):yi`ǨMkfQ ̹H(~Ϩ.lEU1|V϶Gm;g(ᗱ:9 buӵK9侮OhE~pTc[fV:|2*3Df?y(ytg0;J!Þ;JxMZb+w*ij+'b9D'ۭG=vVЯ,ƨRK+.~4*w)4,2+W@vd~ՎqT)h:I_<2wb(t=ʛD5jV]V_ö')[ľS Dr^)j Q^R4"g 4jɐ׬xNe?h'+?C໪j Ao үĢRK+/cu0p{ܰn&v(~f~.RCQ +/cuvݒޟ8ժu׹?*?jG!rk*4,ը[ x~÷J;&,)jsttiqk-j1P3")Ұ><` ;[-b; FYR<] \cm=7v_&><-FJE{upx;\jLlyYX ~Gq.ES˓ƳD|+WpKKǥ\tVs, #3[ڤ8 ggA{?}zl`vʹpz Lf-pAS.B( Gq1w'k]XnawtTfavv +G~f8QJ?٩LCLcb>;|WkFbA{ȩ`^$h9daK)CKawEu=_^Y9a!+Ϡ=G,TpM*w8v @Bߡu5/񆷟;6oY==,U38auSay3 I֘ nT)cSKaCc£o}i]6`h><<;baJ#nkI_٧ʙvBOoo{?w)Ak7]@#c 9oT` 92RQK)Bo}r/צqG,\B3mϔ+yh}Z[ 9[|ؐr-;q--4bY hn|wK^9S\t¾TwRʮO/Amq}_vo/]31? 8oӾTҲϊ4̊9vY^ia}k4=5hkkX=}Y%ݵp6]lڴ}3MXf#[Qb~$*KY!,zo%}=6ϴ}3e`Yc\%kMV?\}|)j >N}Wo0^}K{|/g}{4CZ޾v·cNu񽐥\͸#a_da%E3ͰoBݪjҰvnvq];~mډbiVWv\w][wmZ˘i}k|ʣ=.}mtjX,M;q7X 4V3ÙUJrf:a^ ef[clH_Y7Eߌ;bQ7LTVc9ShtþP뷸T-]vitrH™V,oX؁yDM[~To/$O=mjn_wwr!+g5GKzK_·Z3r=s;.f܊]qxЍ)Q,:#vVʈG`c5÷.jRצqG,ϼKgs)>~T:!U=vuŐo916YpG,U[lsف}YH*$U{,OS6ЯReV,Lmzۓk*CglqKrfZaKik*J,r>i'.fӋџ/,_,Z⮩;}# j#0֕9x ;q7V,Nԭ̗,zV0 UdWuW;tcH3wx&%y~>5 wIJ`z,R.{,zuߘis;𕴴5Gu߁ڇc\voT9dʫm^ILBzm:/MpsZN\­Xp"O,ב"ə麽VTH4t5ݺei'5V,ʓ٨ȔdOjQM!]chpzZ?a'uĞV,b S8أg)Wj]^랯4U n5]i_;b\{l")ci?~xnw>kJnAJ_ؓ|pG,wΈ9GM,b@cw,,z,k~k{,wX `m'k&S2:˵si%V= _I: MCVYKcWSfX؊)ϙiio\!>il}Oc\vޗ2YOu00O@37FHWҥb+j#4Wtg~Xj1<í *d`{HY|cM]_ڰ |p+w5[<n3XߝDo kgCȏg.~Xx&Ta7r+MbQZ _I"5}bѬZ~XL|Bez^ _e߱//3qjluӘo-faIYt>lsZNǢ oU"bfQ.f OW͈$ ĢL}BTU7#VPmGѵi'.f;Tb=YݙYI ؁Mz25 9?| ֋9vd^[vo?\;S5`;n ܗbLd-yı!\Ȕs;'voh}B/$XL ϷLTܰ)}3nRuԂ/cvN,Zc&8.MBD_H[$߲T!y^N͸#8U,0cJ[(FVc'Bymى(V,U+M-),Zc8%}!al|-_cC9DJߌ;b9KSUxPNJswFD_J% wW}wM )|3ny25x,\s/;^g0b@gy2| W:Og؛"+aF~Kj^\["AvzB* P,µ3\[Kw22XU?)Ո $_HS1Ga!\v"o,cY`ٛXJ1p!c ?ym%;!_#5%YxM1G?K)1n·jT'Eߌ;bxBU j-|) ?i$MMVnFkWqG,l{g`X;%*Jk: i,t⌚|3n2i?ˢ`JmVkoK\J꾳Ao4v qG,<ӵk c*I^!+|% X9jep\X`᥻>W^C2|%u+aCߊh6QQQ큫ilL%_ꃱgheh<{黨aF_8ό~%ߌ;bь1</yj`QiKAȳ+ߛ̥mF)_a9W\bY:Zf12b+$+~ݗuNuVQFt^L[Ocf%93-.+_fO8[+UqN\ ͩ v3 Ϛxƌު=_IWiV5]ditF[l%I3Xxq5Ycִӳ$i҃23tgI6KqilBVca{%B)c`8٪Nw]P!WRw| f5Uhma'.n^y XL,Eg7b*4VVk/wѵVw~X8cⱨ؅]v =R1 {G_I˻0Hc ,zGmtյ /܊R٨W`L+|%-g&iA ivջko5|pG,z㾫ޘ_/|;|%uQrY痫/5;F gb iviveoњrۅ _#]~f+c<F }VՍCY7Cwߗk _U}cp&SܹXZKoGHLT݃3}^N]v᪺K[ TFh<#i]FЯ;T=)48e(ߪ~?sӵj'ԷGewb-a$}{![U\ctV4vh6/ Oxi4z勁c`#xOTH^+]&.X.~Xxgp|?C[3 6#YTwWp 7ciE]յ6.mhSiz&FjqiP|5w6.qG,=u w3,lB>mw٧T^Δf!ݱc/ѵe/ޡpۓdipjU+qEoCG>~}vSU&߁|3nR{jY'𹙁O5k*|į4Jq 7p7X\94y;"y9TK/TH]<_߁zF=A+p7XI{TTm1pnl/Ϲ bXyżN7XuԝC[ut*|F ЃXvJ95$_@cW\׆]w{[`X1,xʪ+g`f敖n )VV-zGEۅ _#Ny`atyJe:>J),gCsdgY|pG,5)/ֹg5pU'ȏv؇8F^K7ؐrNp b]]+ 3GZ *|w}/ ,Zrؑڞ?Kbe{u SgiAC?uֵa.>ȸ#gSrx^SUNEK'k_[aDmxuݯ_#RaiΔxXtɼ_Z}amwKX s>7>5$[Λ#|mVk^'X /?ɷE!93/ i{ji8`=16$_a/ιb n;Δ0aqt¾>/] l9̼'Ɔ+?%pm4?rW~/4{q/'wۖyw*Ei6"i:DҴ)}3gNX:}q5˜I>pr+{̾P!w#Jc3Iy+07X-{,Cjfalo~Do@]z3>#| QQg\͸#v c٘#,_+8~}Bg3:/޴lеidx/eu<93N2k/]{7*$nդu# #_@9C҉,ᚚoq\ل6:5?toTH'sVګj=jϕdi_7Xx«D,]e>_%份z*u@oҵio) tL+3"/8}#/_@GV'2CZqGnu('|4Uc#7;oztK7&>_ |N*$=}if#Ui=K5-4? <ut/ް=1ߣﱓ ݷcy$ߌ;ba=BfEB k|lµ~oq?Td-X{<݂Wbs|+(ފl-14u$ߌ;b,|d}0g>$)~Q!ȯz{o=*Ɔspٻz wrP7\d%`fŢ~d{U;4vӷNd%K(Qw 4][ |xdipL̐,c*|oKTPՓڥG%Ҵu/E3XfzF 7X3 l W;1CȚ7nE؊'tdʆSdіB UUTGXҴ)}3eqXxgW]5ht>*+iڸ4xؐrpڇ:il3]'Ogw< U%/*GA_INiX;?ZGF7V,?^Qi fEB>Kn`+)vJ]^Vg5+}/ڿpG,un ѓ&xjDŊc?XwR؊uO+16$gاRw؊eOҴXO|z؇5/2(ZUmc2&3f^ߜ M+Y˝n*$RJ,*Um8cə)}3E'SSs$ga K c+yZcC[,|ޑ~/Jrfn5JJ+,@kyca)|pG,1fB s'8zR.!\vnłsN-J3pWkc``+)Jcm{v5vյi'.~X8cW4++dal%O3ۇmWOV\M%б¾pG,1Nt1 {V.Îչ x4ַ/Œ0"!SQ8n f:a+i4vsV|pG,(ɚ YHrfaM=T 5BhW )}pG,ٵ_{3tgwT4B7"?߫];b`Q<t<)1LUTT}g4;U?\TW31`7c->PїRN zeؐ<n.~V,hާb,Oa;T괁4Vgz,͕_#9z, OfKb3u})Ei/荠S`zgVXs],\kf,WPRj1WR=seioiO4Cb,<_KS?ufI}Yѱy[}wN0JSsJcYQ]QךV,왷Bg^JoWX$“w ͝-^c?ɠkԕ_#*`J{,Xn^";|Nd \͸#qGW#رnO-17Qo=z?+}!\vo#XS;i>z}4;5xR'1}l!\fk­X:Vo)M_Yxr{kXg=z?@JSұwG Wnػ^~Xؑy!STbxy:ziiCY遫jMt {pjOE`QHE$?YkJj~[ojSb;ґ|X*zd0c/vgfZnEŨ)Ww-|.FbbiڇzG b9r},5-I`3m9K%vKs/ea'.זHqG,痯S eb_7×RN}z.iזHqG,dU=u{IqUvc7|%"H xLbsD,M;p7X6yx,\6ΦEl:<ߛuB*L L߂]T=ӻ_#"h:%Xc%Ҭx)5Ŷ˷l<%CxK[,rGمymYT= _IJj zӷl̅Re.~XF,s* mW'O;)ȷlavz~Xw85rJXO!fQggUuϗV,v߲P]9CX!K})Xԑiy,8Pݫ.3 fZnM󥔲Ei8j1vnDz4W4b'k+h73Y5=|%E7AjgclH/u%\q0v;RGykY?XWR؊eak}?XK ))|pG,3T/ipL,hfŰb '8vSb!;b!V&^VeٻU[wI9];b!<4\CWN0p콛  |%EuiK|?wNbi؅ _|4GU/,+?xZ{z]_!JipO^)sv}MR! c؂obkJR|=Ɔspڅ _#דX&S+>E'& _Iד&,ߎocXa.~XV]ŔXHrfa+)ޕ& NB4]vv LitQtawx]X=|t3]d4V,Nai1%xzhzCu),5ߖovۉwz];bϯث@7SQ0F%C,!I#iZCB^]veb5+g#3`gWgz 4|uQc"um؅ _#cާfb&S.vQR,kzz4-Y9vy_.w~X%~/Q җRپ)Ʈڱkq 7c~Ze1 DD_J#jjfbXcȪy&ߌ;b!Ff}ْEC^d CҠS|C;tmڋ"c}؊ebn3 iffᲔa3L'})3qi20/g6Ք4b9ň`:#r)WV2 "+N߂cצ*sNL9mHK z@G߂cuڴ}3>}GȩȔ+*5xY>ULjWGRN\͸#uOe`Nj#X 䶓ېn/*$R*aVm݋M)n7\qG, HSjEXښ?!郇ݳJwHf-v7;ҴEv/!k_吹O0n{+4>z|lJ?­X&Z5Ø2}mnWQ|%U94EKS>6%gا柽~X*S^,t.+ _Iq|}ؔRN;b{zp%IUP!V,aYmwB)Dz;؊e{|/ V sh(񽰾{U^|!qlB va]>6HV,d` Kmqװ/$XYa>6%Kا*R~V,K=xeSQ#+yt:RJ% ;COӋkH;bz@WRtfY ߇ؔRve}ݒǭ,`V{Ͼ**AJ:n) ߇uؔRvewZN^|%P{@}lJ)w;qmU;;Xw/rM-0ލ#w|ҵ/$X:搲k3S7|p+upXX=jzoi؊4jC|1t';nդ5X:9ұjQNԼ52,kj c+"7߇ؔ<?nR~X_6ЗANKUo/R,E?i~!Ks~!R/wIJ1ܸ6~etU!=_H6Reңޝnga<ռu/$XнǦrpم_#uz,s6}3{z!q" /`VV9Kdvsz]iJ uŧwIJP,<3Xrw5wf^/͐NF,7 M} , p wr0:iʩk%kfuwf^!UI[4wmReҭJꤱW`Qi*EXXHCՓVҥAWڼcSJ9/K/XWJpQ,?R,cob%ߡ)Jt;1ȱK wBVwN+NE/`Ne->T// . !d=um؅;b٨p|ާP<"q |'*Ea>6%ۅ _#F,ϧVeT],z#@GDDߩzF,w _#Wvm؅ _˲0v߱F粂#;Ka̗Ҏy*C{)Eߌ;b\Knpbͳ}/fjͅ>6B0ߌ;b`m/ba>Q!wzoq6Ձ_#la6HlvV;¾P!w^ik)yN\KNc+F{A?ȃRrfZa_T/i5Bk)Eߌ[ԷMf}/gp@,\=?bz̴þTǙR4{j>6HqG,~/jNn}/웿}/eؿ{Yn0jA-z0pt]SUٷ8ݨ4Vkyd5ѕ|341OhlG ܂5[X iZ 4߭N,1}lJ)}3n{IՕ`O z֑|:=R>6HqG, 5/ : +q#JٷPݪ]@eRl>6H2V,O"x.k9NIb9wzauk9M+qG, <=$ҠcyYbajJ!f!Yl⩀3t YEߌ;b9`m7Apz.ބ:|%7Ay6̜Kd}3n{HmƔ)fd`>fa?{Ti4 >Ǧ9x ;q7X:/E,϶X-b79{T͈Tz }ϣO [uOc+9Gkį UHZ?8R>v^77X6esmr s'z/:X:WcSJ9ۉwr2pCBn~=< 9ؔ<a'Rf܊ehŨA/SQGtp@Iu23|cS|} 2fKLY4j 6poƭX&>_ uu󬮕߮c=;:W#JdplϚBF$1p/3ڍıKw{WclJۇ";oRc?knu>,|ر[GR=- RvzJl۱t*KL\;Z 4'QI[lͪު7Ʀ9xv,5MXx˹,{g<u\wJ^z*V)o\E, E$UTǝ"c+SF`cSJ9x)ԛ]/].Iz}.XH? %4M :~`V)KO?-bYocw#Εc+>6v`m5.}NOyeKkk? 4F%NE`Ѽf=:}z){Z~3t}jo2aD,Uf`ף* JZ ]q{ ۱sckNXfDc<Ȣ'2U -f$1BKB#)a_CIc f5Xj*d"I'c%ؙ- ,lGϱwf]؏ߎ>OҰc)7@w3U^$ҕ lo5v}ܺ6 ؏ߎ> <~ŷC,zo껊+iƎiCvjj'6khme;ggY4eE^z-Jsvr}H|]~۱@ſAMĪ4P7˰^VcHs _k.Xxi7e z*~zpj뗙MRiVtF#ؔR.caޭ Ҭ,ُ \4s}]J^|F؆ c7Ua_C-Xff5\O'SE`'ڻz֕]WHsSy=׆]~uդ3X6FeY3t*Ew1α^خ0Xt{!; a_~V,~R_֠YkX]{Wt]uZKǪjVc9k.X**X*52 8w̄c羍E73p,d 9Z5wsp8*N?BU;a'U$3Ʀrp˜zZe M \LB}hbౡJy՞*3x,~cȓ 2%Ģ)OqCS#޸Tcklɺv؏ߌe=:}9xW^6Xf0! 9PgkB/vf9PbN\,M;"6X o=K85ՂE))uA,#a)X!<<DZa;"6XxK9)n&XF} XJ+I3Q U5Ʀi_f tGbl#GѥQaTzSU]Y-}clJ|( v,bY++aߎ9{=vWb*f]^#׾b-Z^_7o{gRb5Xh"jw2pZ5r oc]Rw`N?1v^]<5Uք~;銹fᢹݞb.2sR7),\G^[<}Oح4j6"{blJO)oR9# {wc^O^p͙c1baX:cS|;4bk5:Ͷzwp^giz^F=l< 'ñwG =+hfOV,ԡz_=`Ѽg-ruzp&4MVV,ԡҠXߩZSݓlzw{#:TacSJ9x؛ubԡHSP5 uPz0S{vOtl?~AQ/X}>nU4cT",\M1p8b9CCM)rO۱OAػ3puqԻ*c҉?lcؔ"/ӭ{lc<6ou OxՊSS/ S%)^¾z0n鉿44wVX^)<3 K7ˊfr~98,e'.Z쎅>16}}v,o@Hs@%1n}WU/VnCs%}clJO'"cQ'baƚ9|-vQk5Vch]4ؔ"_Ou2Nc'\Օ+:<3.įn-p~ȯxv,3sIҠcX]Lb4VR M-7)/kV5I_#+)eoM&lXT;gobiWL4XO=9/ U/]T]T3{blJ)Z+Hc+; hA,w/nILz[G,Ҵ?:kVߊ $'Cs\6VYݵO=ةPoR^ɰ j4G3{xLJb)4w7hc/bߎl{ڋ~u]NNm.]Uz1{8U"6XVt\5Gy9Ƽb'v.׾AbkW4v)Yα|bQ yiھT ^-b9',v{ױ~ OxRS2 3+QLzb)e[ӅaDao4UϞbi:yrSW뚅E)3۷*ݪ"O=ÁU?П|-s16-  {4c1̢;[k?Q/5K#vJum+iMﱙV,VKT]TbQto^أ0pPsiCRvEl[tR1i2`9QkOuX-:-W;kk'c Y2fX4:':wKE% N ~ %K_PW~v,x~v, V{)'r}{f_Jj)]\ ]Nrڴ/`?~;^iеXL;X'z,\kJr i*, F]voBV;b>nՇ$Ҭ^߅؊j!ߗеi_~V, zݒG2JbEkLc%՘ɥC uIxݒצ~۱#S y~2/1z),KLc%+Ҡkk]voY?/NjEN?Zl^۽um=Ut_tYGR% ؏ߎZQӑ`E~y{ 9JǨ)Lj}S޺j {L4wJ0TnOg wU/XI-nJSz9J`YWQV؊R_8i}b48,,ƛ ؏ߌS^0Lifgk.vaP!;T4{ی%މڴ/bߎ=ʎXأi2%Oo\DDTUUT50CwcN~;5? kC𨙁=z} ;nXKD]i.~V,'Z)I3'3p) r*oK>$MEfk06^Y?~;H w])NU׾T!],%H%vi/ڲ/bߎecrj1Sv''뗩*# iw؍{};-;zr=؊ef~߳E{{75۷*ݪ"ު [xlHOor=b9dnT+b,Y|[Փ.̓XGY"_W?cX|u?%i$F$1)Cط*~J{:B؍~IbhSK~;56#f۞zEr/U{wiHgd[Re+4bX,Sgvuҗ0bb'[56NO~;k+ҩcwaw J4'KcCNO~+_YST]UT k@U{z'| ؽT/*)rf;6Xj5><u?7]i?/h8WX}_xlHwᗰoһIs keS?މJpEj6މ2,2wifg'Q=hqB$? m}4caޭp|,ff槙;U0b# Ʃ)3qJ>Ӟ4 a)X 9J0p0G/ңF>ف}WxlH:pl_fKeD,V`Of`M8uVV,sD/} )rvzJl۱G翬W w3ӑ] !Eui6s Z,/aߎe}}|E ohb`Clu$v~Ήy/aߎr n7Q_UK8GlHji6bרRe_~V,?Ss}M WؖfU:R_R܁} )raT0ߎqF 琉pp]5Jw=ؐb%R}'4{lHO_@D(|Լhu@w+Ɖ|1,_BM3#Tq=GM*RS )NI.`hKX}^Brpr;=/HW B)=/U}^*B,9¼wM۾Ǫ{U=1`}q{,Ũ=v,<3͎3$yL:Μǝ4C%vzbhKcLeSffT4IzwH柍_ؐ"oȯ}+4b/p"d8=8h9/]{SYHq:b7>Ggnv\w߁X6Np煚*7 Xf{S_TAX<_9%X*VKMrIΐXzң4=vsR_~v,=ԜG,[8\f7;5}5}CoXzjMc`mOFx*_QiU!] džG3g۱l4ۿˎ&b2ӶGB`Yؽ7&<ݨֳߊ\M1h%\_GBM04[J nT!]PKĢJvsb Mxk)X.Wa")?,͢B; ;T=E2T)ؽ>  n>%Xf7/)QZe%)) THKQ Uckyk}y~;s9d|nIL iKYHza_ؐr.;6X6j~g$4ޑI1p|g2Ӷ}B"v^jS{;ъ =]퐥~+_ 38'Նٻ 􄝪c\[Uv }K/aߎ'ԚgK5OqK)vJ¾!\v%l۱t_}f3k.R֑foFdžspᗰosN|'lv @ˢ]ba } KRfPdžspᗰoDzX6 3b _/TRz@o_a7Rv%l[ThuhqS,M{/3 ۗW1bauP` 1Kݶ/aߎz*KM3}%3Ӭ:vEUW"UP-8c;6X:wJ,OfV2} إ.ť j=}E )/aߎ''4H5HO5378bUAq.e8=g ~;Jb1Y,ua,XZT)Nc!KG,XNKXZϱK+9\nUu)UP-eXZUhIci<#s`} \5 iߪ.Uzjdž9Edo2f"Y@3pdK+׾U],YV=w`SCOdiHcYsfXx=an=3p W2 XJwl XdžspᗰosNXm0qr;ly'm)Sw6ڪ0Gku aߊG{CSiu9* '/3-ۏ^,8/q}߯xlH?w?gX:jX::bfP~TawмPv`UU )rb;6Xz9}7W>89{yP!+izU"-{WdcX6*"(#p[^UH/V,3yفe{1T/`驕ołsN/i$)V<ɧ Bqdžsp)ow2OX.cda2i^k䵗Gx[] +ЭE,d/aߎX:)Vd kBXIUH}$컧cC|>T!caXSѤ\6ǚQ^ *$`%yM 5`jӚ6Xؑiy^pЯj4\"vCw߂iJO\-8yp.{8y2˲^+178 s~Uu܋4f^vʰ~)~+\K5%pdvXIC͛jozު~۱y"je>e)IȵWq/Vcz ,ߐs콽&y4Dz9v |vfdnU{myX?^eyy/b?~;;3ba{f93O_{Sb%ŗ<شCH ] Xz}lll3*xjZ!.UFkRt=v,^ j'Xx«"3^5cYXIŬ v~H Ұ/b?~;udj {dp-,Zf`奪*o9G R8k>'ү~i&XtG,:ۊE$Bﯽ{+Ҽk)3tؐrN;"ct?0 WC%V1}ר7㺾ք몧^bR~fˁigϽu5"U]lWp؍fʭ/eK_֜dE+l17{]Փfri&j`߶Ri_~v,3T<:u qTUx.T/ >N,?(&*Z~v,<4 Oy=,h^gXX]Pt}j&}`wǼ!v5U}4bO@GĢXw>P KokaI,+ilѵcoRY&bJEO{lիS\l5vQ/6c\)T75-h̕]}^"R\IMs%.1Wڴ/bߎ>wSbѩS?~8 K[iYX|QcXյDGf=}4B),:$)ֱ>Q/K ̈́-}.Rצ~v,/kK2 f{z<E3眒r.;"6XX=1jx)}״tNKRJ5O{l=kN~;zKl˪3v Ͳ<ݽqL4'hg^c[\vc^2T^;RJ Z SEM"6X6{lcB"85cBD,‚5Y3Nb9`\vyVXj}^"R}T=O4v|7t_UV,أ( )ytڣ]5R=`㱰V8{uG+T5aߎ_;)pE[?ڣ}^"Hì%Nokxmګf<=X~JS'h}akka)E?ДK>~צjorOM,\ffoTHRniS'2%铃N~+sjoh:)ǝf  HL XJ-V)w[O~(}6XoFgLo۷*b?4̰%㻅qm[?or5%iօxj'^SHٷ*ԼD `Mc?k?Z v, kIJo Xx* ExԈ<UH{T=EsRƢ2C7ۛv,7B `'3NY^Qt@rwc7@/bߊ/kNL9u.IfQt3[aXwj[IcipjXf!F ,rgHR,*$b"]89WԵe_fܡ"5jVZKTqT)>'n )rm{Wk,07W#1̢]]/3Ͱ vqcCՁc{ߎ48Tx* (^Ö XI5VVb|mRw1 G.iXcMk'6Nc%X湻]\}ؐr.;"6XzQ&SWb.T,&m$xIs;ncce_fOǺ%5h,+ĢGk j04 s)pmه柵v,+h%b/XX%K }Vc%X% ., uZ,}bƾ i:NT 4ZTbSHEH:"h1c\AK*Z_ʃG7PЯq)4V9vzyt ؏ߎcΉ, >ע i-K5riph؅JfVQ؊eb5P`ARm^ږ̴^*+>XiMBɱ!\vorQ2 x `|mJKsOG$ Ҝ `E_4 s0B f:aU}'!?`I0tI9x~۱4T86N jw[ bmBzJtPĆ؅֊w^xM;"c Bm)wG,ﲪUҋ`>|+xbpre۱,eILwZx'{z[5 g]KͱZ+~۱әfam.7*o,_#vaCXvEoŲP)XELzJ 5 pbb}dնbo-bidnImfl8M{C'^jw0 mpm8bY=`GY|f`5P.XI>G +Eb!}O, ;Rv,5b٘'pg?VU!]lW4jB AC/di 9=^룦"7 zH_U@,=aX:CKؐrN;"ca޽[R9G£eNOk敖Z@dž9x;"c}"=T>S nqvϟYm敖.kN\ kbymcpb~{gޞ1v}Bء)旡Jq=]x!1Vtˎ _΃iq֮vU>BJb]ہ] *ޱ[,5koc?~3sN~40vkI fUHeZz??5/!\v%l۱`I;0NJdELءP+Ҡ C+QdsX#4``ኙLzbGԅ=b9CF`|gV4O?oDzZS}#>U!]T]kJԐxlHW۟ڏߎTաf`f%J_'*$bXډ]ث)^NZIb)7\I{0N,$)w>U!V,K#+W,M;=]Z+(ilkD, Pmfa,ҽ,%)lj c+.,qlH9v,d#*/pA5c$ezSNUOS}߽ ^M#K^T!oDzo,kXαVH9Jc7s,kXV8%b9Ap G1p/3-ۗ*]Q=⨁ylH9.e'3WJs.3SW#aB!v4b+Ҵ/bߎcgc ceGR0ӱ}^XJ>5prlH9~v,.58+!9 1Yԩڷ.v.[;ipV؅sbhK^5CbaLXJy25h l׳xN~;Jlչ7<%(V{ONXJU(5h.$,>&P^v5T_4b`_A<115c,أջ_-arl2O.;"6Xj2bVXɱK=؈eo,vIJOeX:/eS_FG7*{T=jxfՁVl۱}X{d~Y]QXVX&b`\v4bsn 3?X.'a`&_X27C.d1oDz0h4hjXӛ$ܥ^zspor5b9#»fGu󱴢Yس *jtb3ʙx&=^R5Qb%XIf`Նئ.ӵVuJfK[4T9~K0pe2V'A0a+r~;(JjMf'+ɻf':Eka]6&ilŲ0,<)}EU1 B faoEҋ4c4(L5:ڴ/bߊeյZw2%وE;@N|JZd@ckkN&X*XLvcD,~iݝeaDc[v؏ߎٟa.VgaYVT!gzgR|_aq\Oc{MDL=fJ|NN,nު*+iD&* >,lC??9x0Xl/k`NL&bQU Tc%XME[g]6kNXpi %  E$RL6JYN`K? ؏ߎX*z:Ģ;2VT?_FdҴ [#ݒbuؾ4bt؊lz_i؊eshwfx|۱,T8)c8 XI#iЬ^X|#1tKWjJc+9L>,b7_ݵ7K7 h Tt,4vv/qXA/ZUdy^DBR,؎$JjqrBL3>wOUеa_|kv,duf\Ĕ3BeTѲXIq"M+bi fo"V`M̔ ը+)>1>k.XxDUéf+)mM;)-^ 2c9E{ŔĢ#֯[SwjH=>8㹋׆]~,@[`#q~_vY1%gE{oM_{W%xjߗA}ĶJ )/`?~;{Ωx? 5)H fڶwKeZMi'vm Ǟ;Wi_~v,duM ĔBK^هꥋTb5Mؐ"a_~v,P0|AéՕh<K;TFC ;qcOi_Dw?Rai,\Jf{ՅQP vbacOڲ/bߎ%u˚Yfss&~l$vr= cOW3֫jfKE|YL KWe',15'``ڲӯGU=Xw.V,kfڻ y{ 4kor}eMSA~f` yi>U/],1 b'Z"OKN~+^5JӂSfQHLҴ/CK` y~Z`ymף'XjXj5 y> JR2 2biڋ"[o20 <-8pba7pj&&mb'plH9~ v, eqp^%)Sl_]"fs+URe_fOޗF>ſ Ђ$RX/ )/aߎeemm#*oqK).[w v]]|w) +X;Kv|\XJn55.߭Kb9?~; ij \cICiwuKO!FO3v )rj{lKʤeM\nG7|e[8MFDV̭iX{|%-{縧D3D8]hi(nՖk?.zRj&ؐr.;6X6feczY"W"izGB,";!s=RefKW޽@Ψ+rU2pu.=UhQd=V,,ܞݟY=?~; q,u @12ӰB"zz\"`'ߢ nRV6X:X[`OE-6LBbd;V,s}!-{ˏߎeڎeUǓx8>?4CKv.e%^[vzJl۱@ݿ,tYwاf$w ;[,wIc' 4^ K9M M 3Ͱw47&V,aʱ!\vz oD,|gӎY=2 XJ[,f5s .CO6#K>B?~;4FoDD{Bz0675X vzб!X5{ oDzkE,UNEuT_f:aUҋ*xi}X07C*S`?~+|@б,<͢=UK c+U%m,Y>؏ߎb>Xj7XxE!)VרNH[R|<k0tE ؏ߎ)]:w|Xx#+)]bvl!V,b{ )S`?~;w ;bXS Y3ko〥1Kb'ҰS`?~;w -b٘#91L R؊;S38צ][l{_` #z^7KJ򗨥A{b'{tK.X*fX*XO3wU@,XI+OzI =׍Xvŧ'Xf }o z,#)ޢ^z,48<%,Kil}ӵaoDzfYUp9f̷;ڻިXIw$5C ~Hcua۱׌XkabX:io﮽G4,4byHc' b9bu-;NEM4pXwcػ*z#Awa]cXյa_~v,4<,z%ŢQ>˂w9hlWnB oqJHLie)I خIo-))/`?~;F, sz̔xh fKKinipPئ /I9]~uU+Xwc=r+z]n1j:1bfy$E]~uU'c8H9SO=EYcsC#1bɛ9kV^Gn?~;mD,5n ם#lƶ{HTc:pM;"6X&jfû`2W?ͻ>U!]T]/ kHߑֵi_fƜ=lUwiMO[ᅥ4c48*,ڍh{ҼvfKe >aEXOQcl1Gv`Oc\K?,6k??>U/]K]ZBҵ/bߎ4ilә8o^~}^ݒpI۰N Lk7#~;B{[u1%ުEeeRtFQ$Ŧz,]"6X6co֪r_JH!3mۗ*]"[eŮYb7YwEl[' )7r&8tl_4GMGEMlky-ZoẌZ7Sn?ԓU~%iF,8`.e/bߎeuE|T1 3Ӽhr(R/t/bZ_tmoDzP. kj]X^FDV}ҠQ wڿXzگ aAMSw;h_kߪ.v^ezIHX/e~+܌5|Oy0YtJR,}حzIojX $ MMcK[44̩Ȕ8 Y[Un_TĢ7Zgһ/bߎeu~_tSeZZL*Kӫi[y#="l_fFMރҠ]ǩa=q򻣹GUKP34O;ᵻjoł_b++dQKs%{T/}j滭JIcxkwU;OfK煚iˢl~+rry vEl۱屮w6SKiVۏ]ౣ7i< =]sc|X&戳3 8>q/VҌM!ۘ+Wr ^~ Lc+}OIJ^cMoS ǣ:nK~* D(,Dh4]vEl[ D ׅ8xhX4\:g;)E=Zy؊mSX* <ɉj%i}<^$/Ұ9{;/Gn~;j8LPsc̴>UHO㭀4"X:%yڴӯV,dugĔ؋*^՗NGA%gAacwԼv ~; G?/S"ɢ+#Y?_zGIKñ^^vo2zf̢+i%c%XiE76 ؏ߎaܒY|/fxTvx#_*KcWs$]{6c?~; G^n:1%w?wzݫ4.$ [coi_~v,̻LjX̔ oSuwUkUo^$ww[Iw=4vlۧgXGzrb-hZ(^XI-PI3tuEM1bY-JеN,:#au+]g^չ^l_~v,skQ3Ƶ#ofc%UEi=%a󘡋Wme/`?~;9G}WŔ#zJꞍW0CǮ`ƜS{IJ1߭fwPHKzi5K=2ip\r h}6 ؏ߊeֳ40fw׎4XI=fiHŦ+bK/oRYbC>a7z6K-. /a xϰ/`?~;U{/}c;#*lc%34ؒ$sj'Zڰ/`?~;{eM ,%س2pHTzJX|GqPblH9]~۱l@ωX6f͔h̴l塚TcC'x7 )˯'5c/dm)QT6S͢#z 4܏%bWx?=)&^v.ilBV׾qiZdJlv5M݄+a{jP!;TjUý;xm S6TH /jڑ ;Tj??5zB(9p`^v礱W`*1i J0>1ДbaHXJ%V9%O84Kcaޭo JfgַGW}whCu-H#"4=~v,Ps <&M,Ffi>U!]T]s&ꄹiUue'T]xՠ/5T2ѺGOc+'b͢ k_zr+Var8ʱ9|N~;BSQخ.n^RKRzb垚q!E>m/[Toe BюE ܢ??: K鉯R3Ўرcrpᗰor9=o/k 0"4m_8w )/aߎ٧7ǂ U(?K[;ȣ~;ydiHnHR#SU([w:LibNˈwGK^5c9dY<phltw<-a'}OZ0C؛k^^?~+_.p_WEm-biuғF`ﲫ~;*}h"-]C7Z>j%VVdžsp\؊e`R?XjVB.M.gB~MحI`]}cC91BilŲmG, ̽W0}A|,U򒰐;K/F;&>di)orp٨_,gT815?ͬBvUOUSLc`ef >t9N|[޾@}$GՓvJCfJiזv, 3΋Q3?(ogx$3mۏqB>/ l cKNO=Z[L%bOee7tR*H,zﱇ*iLc+QBx0OEzc)alR9)BURe1Pu%4¼J7V,s ʊ{xlHwۇ柋~; yhvXZ+l18z4FɁKaL jfKKtc+lw=.XJe3y9=|sp.=aߎebbP_8j&>5i^uKoϢ i̐06bfHcC9tIA,a,IL3"[z,Mi )%\iu/Ll ƌ1U,U0b_]TRS©?~; DZGI \}D4[XJ[vLͳdXH?~v,kTcG,,']:IL'r>.yXCo筫&U/L4wLhjEYUƌh)6bf۱ p>Ky⋜&IR.+7԰6ԫ/TWfXYCzbaAר1ޟy رtru4؏ߎuY7V7BR,^Urr؊y|X)>WFb'۱ (R՚˔䩑X{_fWqE'V,\㤴XxlHm[,G,{[f3w?/yTK c7+u }K98؏ߎ08D>,̊ vf,xS+ W%cC98t9i;rYQjwdfvILv|XJ_feX=uS`?~;tF,BAVl {SEc+VPJqxlH//4bJ2X? [XCGj7RVcC~۱lVO#b\jf$.rwFĢ j]ؐrN;қbAcb-!In;QU-‡* )/b?~;>xD,kY1|=:cZ`[boțw~v,鞈]4C~ ەm4ܐ 옢RṆI؏ߎebGnbfXvFq;\J`Yk]g0__O\leZ ءzIu:㱇qڴӭx\SUnvXXeHءG;&|Z;ҥӭuĒV, xT΃?UbavC ;T/ S<2ʗϏdžspC؊epOcXj4pl`NUO F16NOcHc+,Ÿ++gi&By$T\m5 cC|NO[ilrb?ڿ[攤tO-Xs*wycC|hIc'ܪosP3mfMKR0Ӵ}{tv؊"+cw3KOfK4L,B|%uSՓNIxNRbb%l۱ V83bb/Y gS閶HjٚMcC9k*V,Ҝ8:*2"VV'.&,%pfXF` )rj;:1`1j^l$c; T=;7.,m_MحP}jD!\Nc'%Ys 3sgAhnUHl7.j{hxlH:ploV۱p{TcԜV{q-=6cO YWvmRYQy_Hd"512t|cxcp t=R M8^̸FDۊyCR?~;.85brxwEĢjm?x(ى +E-&jj{$ڂ36Xk7#+WbfG}qf|58. [j9{[lHc9vE <:iK fZaEIJQ!Huvsg&o2gkgŔ[ȲLj^qڻnizKi:rObⳛƫjfK璌pmW3eIt¾2m+/Cl\R=]OjR=XO\؏S7Xx΃bJފEem{bJSJm{o]B؏ߊ8>i0+ #bQx#?_{vUO]Ga,$mקg<~v,cT+*еdgg~ `z]r# >bGmKгyjj[tQ5^h\jˬwUHYꮑ*E28mгzno21Fg|d_+wnk k/ه긋c54X(,2muֳa_\v,<525C8j䮅>4rCw U~C-XW!oc?~3+8FT/]η= qm-lڟ|v,cTGp,s2v2vh; Zm?ٴCָ t-+ELJC#Ѷb`۳򊝻Cmw0e{oDzi48ML9n鳚6j}^XJ5[JF8mC9Q;ߎou,ͰȔ>h5!'*$b){G N%c;ۆspoRꛜ,MS^ ,k.RbYj~yP'Jٲ/bߎ0`TjUYgJp>| 5%lA>[fc[𨕘#%8J;J !WmH9~ v, =T j>Ly6ր/UK&5_n{ϖ@g+Xz `GX+KR0Ӵtxмvhaېr.;6Xj݊KMMfqĚ*b T2=#ٙa93ΝiKl] l%7mCN~;XԈerԪ)S[YYҗ}^ح0".mC^oEu߫4XofHiߪ.v.h75 :;,Qo}N9v<>(\dߨq=j8%mC9KcaGRܧqeJ4Kg8.<3u"nReocaޭ+Ysb`8vڷꥋ*]j:nV#H1biᗰo2QM+C b٨67dGAD,9?47˫Q9?-{U'۱lT@g! vM-nILc/.> j^Z`;vMWK~+5Ud6GOkמ';^!\0bߎЙԼh7 c{aRR0ӱN m+֝qqېr.;=%6XX{V1V? 뻁r.~/}H,2C4soDzS5__o[1N ~T!XIOFTWغmHwۻ!cRۊן؎^Uh-/b?~;f`ǤYxʰ~'컨BzҨ4x V4joTt 5wZ0DzXJgH/by&KcO9Zv,K>, 2WY]UǽXJhzz`9vېr.;=c%_mLQq}WUH/V,w {}ۆ9}8Nm'@c}+.d$S"1?x,kUҩ!ud @C{'-RL4X*ƨVAzϬ*liUٖvUľSmH9~-}5XxXte6 cC :&K.XVw! ZGKݖ,teQZKl1b财Ϧ]~۱Kݏ,Qo̼3sWz XI+2QizV^HmH9]~۱,efa\6z XI+f쥙7"ϳmH9]~Meo+X$X؜ozXJ|cfi~cgo̿.#;%I9N6B f$a'>K3v,1,]~۱rHߗzn|3pdM];zR+Dl|1ٴ/`?~;}/,Gf^VzoCS<忻:4|{ql?=W _ݵUH;T=5X@웣mH9]~M;cPhFm7U%)Zl^zXz{c'ۆspoR13U(fc>SO a)Lip. C*fኚ,="6X:F4n)w,̢ç i4K>MP'#c Zf6o2X̱cio,>U!],ˌJqֱ7r,sXX6ǨVIJ`f~Vf`/3Mۧ*t4XGlTKΣ_f 9{ǿٷ3S7ueeTtS<KgO^N#ř5˾}^XJ&M_,m}ӳzorKlf}w+Kzf %Ы'ٴ/bߊ[}D>& ŔKy G.ՅQCyjMUZIciZ'\q% )w~%,q~j z6c!L\^xAPX׷kߪ/Rti*Ɯ-jt=vEl۱XREG]}XJ3`y$EN~+b_4ҟĢ3ưRwHU(J =vEl۱KԽ7AܪrYhXX6IJREӖ6vr=>[vU4^Sۊ1XiMet8@[XJcԔ4umH9~v,du % NS1%\a)ipwfضoXѳi_fKk߫4Ʈ>(jjB"R352_`!E>m?~;kq>FMU, eE1!;Rq> 8mچspٻ"c,5X:zY#W+鉊j&kuېr.;6Xz(}iR0&_ ~XIO aA SlRe_f nIH-FVΣjf'FVC+qېr.;"bʻu64UF-f`ߙ2a$ߙBMCZFl2LKXX[gvISî3-MOQ%b%=_z6zř]|؏ߎeh-ba cEw/JJza wspF5c\̷ΣҰYgjެd-[d4L^׶ 9=q47;`v5 hڍD0[$pېr.;Rv,,|Y9 }Q=Xq2Na؏ߎeҞDjڐ,lbYvuۻ*VBj>)A%[mHӥtkAñ]QEV=1Ӱ}Bء0x\FOl|Ha~v,{9r a_CUO*Wpz-a~f,/Wj: 3"XCrk m+V7E10둥iԶbtg=5>K#)>T!]P ^L0<ɶ!\vzJl۱LQ-X}>V>5rSwfN؆f ۞v,r~j:8 I_UϨvHh[R% #U~+\ 8*wEs3+Zm㈝KF쏧ۆspo2Yf3~{ھ4r{֥ le\fz,ZUmŲYU,BI Bi_ֲ6t:b4Ҵ/bߊK2 }c]QEy08}Bإ)~Kn:6UV,eιlRbǿ*ziK˿j->m2t,M{Udv,=f!y1%ŢꝪ~/'aǿomgwt#aߎey`C[^m kߨ{|t08Omo׳i_f`U#>\#dQxkߪcɷ8J 9ljٴӯґV,=ԎXjg)qHțILzb)yG4vbõڮqM;"6X:xy_,ڑ)k?jbcxՅz`P>{FϦyKkG_ٕcD_U]Q%x|4QتTI7o#T2Q5K Ģ+,U[fYjZX,V>LϦ~v,YKĔ YЊӞ'몥*4v%ڮ_Ϧ~v,{e{SLc,5!}b`ٍXn)>;b V,ܭ#\]I;6Ѵ4}ޏԶiӳ'aߎywL Q}Ӽ40r z6"K3/ v,<>580`WT[Dáy}݁ )NZ ԚGmc;"6X* {XvE5ozL[KY/aR2t|vU^6Xᕆ .4XZXX\nֺTt+b9{A5$!VI{ ) ͽj(\:`k_cii5 Dypy̢;X/ 4 OU۱ƨo,{f__O`C|cgolo(:}cdcY:%b9ΰ=U:aBsl=q ]v,g,yX4R]VR[0tJf,gX .kwĿ̴y} )veV:3X~5%X5S,|y汢*+* )5N^Kapo2uF,}043ۛfTְ454wa`Bg"i$n{#:jÇYt/<7qY~MTi9Ӥ p8ołqN^f3wjR(gh;{ lbǣdgۯcji?ZL#XXzRTOm]Z{u/X:DZtwsZ$Ţ444 l}GUꕦmگ{j[LtԕLX}E,{Q _k98V_5v,}ΎX/ E$ڇ긋Ե$4 65]5VYz/̏ߎpF,U~2 ?530߿tUHK)v.`dmx6ȯ7b57fxmheJTI,\]u}B:R, ME&JlAEͶcgi Yv,ΊX*Ym+*iiAh%}c%)rm{UPKOL:x>cfcHPإi< +ś({+[RWUfSۊeẋ |ug\v bU)>cl(hLt&l۱T8A/,\Vf⯆UoTHnUO}E, ,|fcv[Ϧ~V,\뉅vXX>x/#a2cgIvEl۱4fK㊆aa`B}kRj1v cݘ]O"6XxzepE%3p/r}= K)N  l|.i_f^B=X/~T],SBSߟy` ~klgN~;5OrY8. U:b8F5`m]8~WոIm'@{Oe4m?.^؂,mgՑG?~v,3b,M뙅 {dT`܃m?ijc9Q/SbX4U'wXIa@m{oM{W?~+tUh:F+ߎYtꜫL+c%xLm?GܒoY9/3@{dwlc%j)5^`O'i_fd Q#3YtnwK/VR݂0aTl݂GULc٬!zIJQjϗE$Y߽߃j4?}0̶4Noc?~+)V?aHȔ3[=A5Jr}0Rζg<|6 ؏ߎj:l亮4w=:'1j5c[BW9,h>h__TД ' ֺ t(m2X5r)o_EGGk +)n MS`<* K~۱l9YxyƖ̴^qlZ|5Ҕ{ Ɩi_~V,Ky'Sӕg/w,\U3*/VRՙá)}P_C?O_~v,̻kXkj ]gu6JkKRjĢPx53McD,5 Sbg%bYUҋT#湫͈}(nR- ؏ߎei8S5E{xQE4,ըByz޻mH9]~۱9ZC" SF8$K^R5$ [$eooېrNLW'ST6A$ҺMED,= O  )˯GV,-X_4j'SFO&fJ=}SI`#X:F ./y24 }3^`c{WtqL VP[qc43ߎz"Z{ྍIݵwK|/3V,F!vv,ʻgr58eB,S&KS}&vvՅѿ@S6R`.mC~۱LviD3Y9k샪MݵK;Tje5^|,wwې"a_~v,dX6j"ΑE!/4ۇꥋK r^l֨Nm'@{ޥrT;XC.!Α'[NNdiEKEߪ5W{`Ql4m,1xmC9c`m>X`wա8̴l/RC!YbiڟkkO,,>/emZ&NLd-b+: Qd۱撤?˔ze-;6Rȉ-CY,"/bߊe#5wUY6kL~}XJ5Ypjb,M;@Jj[4@ۧ[c_>U ^,%8fnxʼnXv5ů-Xz(ܙ50ڎO<¢sa)yMg궋gҴӯ~o F, =YSW#+C޵/UK+9Ė +Ҵ?۱T@ϊX9VY u^f[CW )rm{IoR/k˚ܭrWԽ7]S/3Mۗ*bה4S b pi.1S6XzgD, hfʃڏ,zS޵/KKiŪvi]mwݗϦ~v,=c셺`hܝې[Rɞ!5N7M;"6X6X[ SZ_kߨ4c48OaϦaS1qi2PcK› Kizl.n؆ȶ[M_ȓoBV˔CyOhʰ-V%XK)â. lv}Bz6cĘٙi?fQzu7*$b)y͕4X7%,Tmҳi_- RۊeR, NxSwρVTHR9xaq«ڮloDzCi483\LaE)i~P!KǤb}1=jc'l[t^ߖL=FK?\ {Y^loBVZkir 1zQG^z%4.'klW'Զb[K2PU_3vEk1.וXJݬG G-xl_HcY[EYf_ލ/%Q%b%X$ME&JlAs >vUԶb9c52SE$Yx-c%㓦!`mji_UIm/)4ɔX}pak"m[FϦ}ߎy΅f"SbX'ףjZJTdrmd=rk v,ws25(, ˎ#uԃUb 8ms2MP3^w!MW ,]̴k/up*۶]O v,=TIL{!GKA 5wNw˷ۆsp 9{)ο"Sv~܆t^=a<5Sg㯆!\vEo"V/2Ĕ\r(|a$. V!El_~v,d1#{٨4 ȎTdOi{B1nRvoDz1vAMUm,=hSc%8JmC9؏ߊdT/k \LhZ+[% 6X}N8_dJ֩w@cq쭢BVO.G٩g呎ٲ/b?~;) _+=5mC98؏ߎeDu dvǨ-ưpM*$`%t jf`/ 1K؏ߎ倵w|Sj( \?qжbi>oE XlRqR15撠ѭ) \b$fP!K m+M`$4؏ߎz'͚sٍ|멒~}]RBۊjp%ҰS`?~;w{OXUr.{4eӯۇ*>-M}͑|6c`;CmFĖl ~ YUhOcy9GψekLɯ5 )ֱ>Q/KiD+Mox_R-0Kw v,<=VL$1%K<6{5a)<%ip&8/Im<%=M~+;~Ԭ;.m7˿fU{oP,,N(VͿ}>g?~; izqn?"[wwSR.Yi:Pb+P]z6EXYL1E yUTjaqրYz6cYolEML0J]1^ؾT ^,34ށ5]cVϮbԕorY3)Y%/j*$b)Doidb d<$l[T>5_2o,:۟~ὌF[fi. JfKkni[eJ \Xt\{QR}BVX/vfz6cspFέE=^þT/],4JM/ܫ];~;Xjz̔\Bkߪ.vG]MM+(gG>\Ϧ~v,glCXƲT1s,mjm;gG,gXKoQH3P)̴mߨ\PSGj~ioXԶb`u"?9jXtTuZ [0tHGOc`mf` ; X]8zb)X,M_؂Y`hfֳi_UoiF nʙudfmzb)ip^ W@~46Xnt4K,ޟ?BXJWܥ+,U۾WϦ~U=-aW $A٤}&3~bןhtz&l۱lnfܛImg1أGҋbFS=`Q>vEl[EW1Xiz`wX+ځwGҋb4E#mcgN~;(jdj5=ƒbQ}j+F,M-mSJ9xW︥`v"YĔ!\,cwzTc4!mSJ9xG? XBupל˾c.עXedJZ1v! ƛ-gmSJ9+ƪgj[_/sWg}!JZ-J`W9z@8V,Źdd箯?+;eJZ-J3Jp`__KM)rvoBV׺ ijڋuWJZB)nxOM)FN'ԶbGfcYIc^c)$~ ?7~WrpPSۊe= eBA a%y4M~w g4>vor}F,};r/]-.wV`)͸B{s`[դg.XN 5bʭz wwTR1) hnq ~ci[[d]*ݱVϨwTRqb46cSvqK=GOv,k@uO`SneX̴m.O.&]}vxUOcǤY׾3G< Tt~LX3C?'v~v,b٬yVfa27">\ ֳ %X~+K3գ^YHIk4bCV63z6+'Xwk4XE/]zk/҈WI,l0t?z6E#mګE,5jvlofQ؇껎7Rw@MCO,-4CG,4b X&X{Έe)e9j5͢>OeaRtz&MCB>4.NϦ~v,5l KՓVRHτ-gG'~Ue-XgF,ݻr]Zb_T}7{9 T^X/c zV]bg]466XX[-~hLW,1ߟ?c}B"v.i]=#lAʶKԳz핰orз^F:+xEgjxnՅ bXCR^gN~+5$ҌO.5"bQ!K]{ UNlcFDm{ M;"6Xz1jFVX_$2[R"5Xo bۏ"M;"6XX{ֈep)'_Xݪ u#4U}';ٴ7U۱0֜4dʁbjeY]Qtĩ^m?1'g\l[tct~EG] QԎ% DMm{r{6X*j7+gb޶Ytz?^*Rzj]B>Cېr.;"6X:kQL_m >THJq;4XBۆspoDzYl0fʁ:uxf}Vc%vMi#omoebw I}&#,;~^ZŒA Bl{!>[g?~;BIMbʮ̗mnLc%y4hZ6N~;BIяh=u+D!̓ؽՠmH9~v,5ĊX&0 sң̴> *$`%y5b&`V\v%l۱0=b9-lfao{L'?_h8KV V6~!؏ߊe' c!;FknOGQ%b%=1L{T03Yvci]Q_zM3Lw?_|g 5{)^:ٲ/b?~;G,5QK,\|1p?4ڈoK m+79A^i[ԶbY衖jqˢCbQz_!moj#!\vz orث9R,4/NIK{?_жb@W )S`?~+L50='zafTU vOTd絈boBV_+bi^&e.qLJeEۊjˋ8 W |6t)com2ѷFy07(`c{S%b)mojb]a=5zQҰS`?~;;uF,vEl۱4P:?Y{n0LIګ~%,'II1D,v'IU-aߎswFEL!XtQ; KiE,U۾WϦ~v,duo) Nw+3_FWw|Þ4 _$؟KϦ~v,軱+j/dQZ7OTHRuTliV,E/MGMjt?ś Kߧ'jqg? jf˻iX/ n;SޡˢEba[NXJ-K}ND{j[ۉX&x|o3%VEh_b4Eц3JS=QO76X: Z +Ģ3΂ GӨ)ↇPjhM;*⤝O:xQ'KvEaP ]܃]@ )ri{Uds۱\_K)M3bʻ,XԫƄw/THR6iuHݘ|cK_Ῥi\^j,c~LxGBD,썚#~m{?>[vh˻5bmK fZoTHRzcЬˋ] אϖv,eOR.Xj˪9\\XFf˻SLƽe(KR,~P! mS&z# )SbߎWjY^KnA%h[\ vkig̽iIm'X`:Օ-Ye \$i9Ŝ *Am+z/˱olW{mBV+bYq(U{r%1 4b4V6HNXq^4S;F]17>+*$`%BiڭXC˶ki_~V,Z5S},$)ֱ}VTHJ1r/MڮqM;cixdJ}YKR,cBVGӤ h O۱DiL_3YtE^޵WTHJBK_}sjx cY[cYX͢^9B*$`%v –DwAߪ QާY'̴loxw4BrWh|6 ؏ߊ^t4CGY#)iP! m+&_샷Ķ8@~Tc?~;51jFVf53ݣ)3*$`%5cԀ}nc||۱LX?L9Ujڻ*PjD*>x יV,m0nfJdb}/j;*$b)5`VX̨_$;c1LM+ja]Xnj{GD,%߀$Mc >z6 ؏ߎ jfl LXJsbOm{OU/], 5Ձy{Aېr.;"6Xjrܧ)#[Hҥ>Q ;UFO GG|IO?>p 5 #X{{ ;U=-w;~lًX*.@/SX,*{[اF ^{hRvEl۱ T@ǤaKʷ̴l=iײjr[+vӆĮYA \HvI!q#UcHZcqEU^kjcqNe3oEƱb|L-5_8]蔤XFD,$X:8:6NO~G,,܂'-xb+`}|]ui lt;yg^,M{S#~4~&f+J3ZS㇏v۷WͥK^VR9Xilcc̱'`7 7WJ;c"}FhG 巰Ґ1v9]4SwRk,cKR, w4x$lwNw@ KU1&q46ʰmHż 3P؄c3Pv({mBV;6=r(jKbVRo$5*ll.n}tle )>8bK[};E+48qܶ! ;oŲZ#M7%h܄WE ADM}]mC~wbtgP1%dg_f:aT}dfbjRi_dw20=c*`J>Xv/%ŲJ+*$`%`=jp!p )˯Oi/4ȔvׂhX XIq4nX!!vkk4>'3E㻓I5 b 5gG;lrFma¾i_ľX6|}F: j(3XGERmw 2j;;>=$y>N};bi[{XLCk2MR,cP!+V, ޝDZc)+K/P  /e`Lz W{7%>*BV,jfbv爡g%a\ X}&ʹY>k]Ya塚XVmC98{ߊյn9a0V̴Q  m+`N1˭"s%X3ifثx8 ҈! n"vL9xu<]ʣb!k+5 Zj0p{owTHBU؁}bʾiL> ,䋲, I5@D,$Y1QalPSsg٠KIizovرip[ c K@c*Xz&؁}󛱬"V> i򌊪bXu%6|4 ;lQ3}biUWJsT2p [5Ҏ~^%s5iMm+cgKh|uN#%nV! K)Fri4alz;j-{S/~G,RYxx$93OTRZ[R33#$Cw-sτ~G,#攤#qZ_3=OTR?Zbq|3tKN@Z '  ˢ$jt,嫨b-Qېr.;zRۊuJҮ\w={j8&)gK3 BD,U(5!blb5W7xԶbi`g{, \zF#Xa_ K)NxgVe+EcJ%3^=.ipv٥ -};bi6d, X1ʁHPX3]4CUwb7?wTn{%p1 ;.3WKJjHG.l,Io/`X{k)G,:|Oez XIglaF,RqG]~yf8SۊU3k)3{C#+5x )/w~9ﮕݠbJ)ض3 {Cg:)6Il6.};b1_i*S2%xP! mijFp#zo)o~3]Ji6j?g3_إIvlXҒsXL Ĕ3찔ggܫY ^a) wj;!oŞ~N4޵ubupQ5Le{ۊ4ˤgoSۊŞBu)7*A6Xݎt,]& k{]i/l/~G,1x5ncmq] XJg9!kGx-f97by9}bmsbs{;ڭ8v,o D؊2]}~XkKŘ\v+?[3 IXJtIdZZmW?G}N~G,wS>$ v)>g3 IXJ#*j:b%;Yv }N~G,"s`m#ŢWh_4SkW;z5>EM;"6XRg{Ab B%H,TQSc'u> V,7cH{Wb}$R.~GM{Udu~;biEbpΗLɜ,r h_Ԣ5.^oWURۊsjc~L9lӶ))zozXJ|]Im[i_f#S=3eǯyh|1{oTR~4#Il=I6^_Xטi)924>8.T{oKRJ0>Mb+avy-;*GNj q258CvcWTkE[dXvw˾Q!KDMeoS6$KᗰŞ~_wdJJ'-1K;a)N#bPvۆspTfSۊ$J35p , Iv+KDiF bqR~|O~5{ԶbjǤ02eE$czDN gODξi_fK%QS9B)_-, IлXzBBۊ4| 3mHSb Zki͹1vqX6TRZ.6,nUZoŞJG|_,~Η?*$a)TqadXl;NUߴӯ*Nmrwp=3k:x05)d'֬޿XD8UHY<.1os*z<2 31ݝېۏ-%V,Ɂ-LYmC9tkz3v{~]`?vE!93m|=+fR= )/b=<3kp.`YzLǎVY 4zpG0Z xu$\v907_n%MO^n Ia܍ݴ[A&Ǘ[AslmRܻ|.aܧӠ2RX8h:KTcw ĘB!G ku02^~aO)@A0 Hk9 M+X6y6[R-+|.;l7ө1qEOlx堠ZIQ*~*_ o˾{ڨxf6q#!뱅Q辛fqcӵlms\??߿݃"G/-oGo?Now_O&?|||bSluSLmg;遷.݃/~`ӟO㷟gRŸр Oۡ ?)?k/CDꖰtkB~?Ε z EeU[gؒetbz}t=@1=N@!ǘ}7/Zp~6_/y~g^W/zG-R}W5m1oj3@/_y~9oWL/_3P- endstream endobj 74 0 obj << /CreationDate (D:20220412230519) /ModDate (D:20220412230519) /Title (R Graphics Output) /Producer (R 4.2.0) /Creator (R) >> endobj 75 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 77 0 R >> endobj 76 0 obj [/ICCBased 78 0 R] endobj 77 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 78 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 71 0 obj << /Font << /F16 8 0 R /F15 12 0 R /F42 14 0 R /F20 22 0 R /F23 25 0 R /F26 26 0 R /F43 24 0 R /F41 11 0 R /F59 15 0 R >> /XObject << /Im5 58 0 R >> /ProcSet [ /PDF /Text ] >> endobj 82 0 obj << /Length 1831 /Filter /FlateDecode >> stream xX_o6 ϧ8zXݵ}Sr|vj>HQ=b)"7¬g/zUsMڮ'oCo/ש,<9 v BwtpqFz+}wYǫ_I|9Ҭ8m$4RhVE;r-`>cȖաAonrHܢn)2Qw_Kcj-өԭ7TEsd ;OxL0Ȃ೘*Ÿ EAǘi$hjxC0!7 'Kt4S Sf2a+\ ɸ@[\냈l;t=y4jf 4/1Ksѕ,6tGVB2%[sFb0_dpNZ,i&y&Bk.욧O 972֫MæaBu×Uu͒uۉ .XYG2r<Ҷ=zjBy;V'/pG/?6qa 8?^[w~p[W^vCs }Cק!Nr U-!0nX\9y/Ky 0Ȕ:R1mݵu = a4V"=c %WeH}}$p ü(8Ӆo.s`0Q|u |ܼkANϭEi]A+FkB2|Ѭd[7AoX 4eΔMcM.$ XczdaIxA=j2hgy _dʼ:k?O/cA},711ڀ$;5Tvd]GPuLZZ@SNύk @ i7`N9.M=$#6Yna{/FY̆ϣ9X6E z@!+t/0^ GtX1s6,]©cJC`*_nj0U !Cp+z86?pi+ ;j6N ,c2gl ho(o |/:4:@XD e &*" zy.f}%8muYkg]'# @bN$AnqVHd!-Rs?L5N9/mW"'+L1珊<άH?P:Sg+O )""*EgJKBoi uxP։yISr: D+Ͽ>nR9spѠhN M:#zF|Bx _巯'ɘ3fszym} HK)xJ0VՃQ~F endstream endobj 81 0 obj << /Type /Page /Contents 82 0 R /Resources 80 0 R /MediaBox [0 0 595.276 841.89] /Parent 65 0 R >> endobj 79 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-023.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 84 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 85 0 R>> /ExtGState << >>/ColorSpace << /sRGB 86 0 R >>>> /Length 77626 /Filter /FlateDecode >> stream xܽuҦ埫XWȾq)$`)iT`pxhr+?EƊx#&_ןoj?S[?_OW_~+ߔ~SR]0~{wV 󧟨JQmmfz[l^pyFsB_?^7?N 8鷎|Ѯvp?E'EFpTFsB~{?R]#5?8~ 8S-;ï3z[7Yoz0)wԛߘ7/??Pn~_i4~eok16D}_z%!n|?/g+”ͽ}ֹ|6%i۝-[ZR>j;[$h&KMXR~=~_VdJ>>ifKQZjq̷H[^⢭Xjk,'|v럟U: '\O$rSojo6"8M˞Kg٥)Bj'uO~P_:|^fYiJ9m)we!yC6M2ךȂϫ-}rjJP>F6lhKitL)m }_-z%!n|<_cS>ʏ)(ִ$эSs~h FJo l?6"_K#.ҏj^Iy9OUo$R S[$=hi|>R+΅Kq*!n2C}OƋ-rBHy+ͷH|v'o؆"1QC2jƧTݩ҇-[)۴ͧ=g}=7Ymd۴ǧir|r?oH]3} m!]גrϤoO#.؆{d[1e:koS"I~ԏ-zږ[ywyC`,opg 9Kt}{-_X>odWߐ< >n[s R}Y?ӢP>l l!]ג]Oño;h&˸A~D[POSq"%}rtksfKFJ ږ|_7o؆2Oi>U- m6uױ;͊Ӭ0[J׷5R>Md>#o؆e~ֵ~aʼMvOCgiP"˧RhKk”v[ =aq)'{^ϯU}E;X$ҧd7Ynʼ/lD{ZOyCH6M;pFCʔNNqߡ[ BbtwH&e6l!w )wc& q* Lr6N+{KZ,-[z=ٖ/+M`,wS>FQ O$BJ[H1۔=Y[$B=₭,cLi|O1$?y  m!{ǐmw cMmqe%\:5?>E>O9'"t[ogHRm!]גR壆i˙o%olCK9ej`H.Jt" JNC,ʲ'-=#L,i9_ZɳP/R AKɳ@`,wy;VD,KK;< NYgb~Xo[,㶻2,:@a ZtZۄ#[){d[3uXWr;xE_)SrO4w\[}Jm,R<\/\ŕjYNygo'g^b-cdY3ᙏ"zF|I@ˊe.v.R&' wL|ޱ{ɲ;F1)7ew,W ,#z*َ,֌w/mj@}_ɳ@oHOܑg<=&'g^b-lHI"dF3. q?,3h{ R`JgOtNOzU\_}{OmYߙR$BJ[Hw`sHE^lC8"d!w\)@a ,;ӈu%KlCdٷiTH:9ܵ"SME"JN-kR`ޙlC`x8vu Swǃg*O$oF͖%#=ɛz>nHU7wLw'Y]O+;Eglt)UHfi3wqXОr,TO5&Ar,H%b+m*77)l}diI撘2zOOwZ>ѝ kel.)}V撘7􈫱>K S?742vqz %wV[HEg7rgiy#I[ IKlC`υ)K?E`')I~w7W_[H׷5Rd7leA>}$-yS`,guy , K}`t#zߡ&;l#l}dSXgg:3wǐQqsoߚ]M?!B)]lMM [$+w-' >n=5gʼ)y?[. h@?-a>Ri[އ>lVg6!e.w0Ez )5B,+-LI2/ruo\G\q˒ڏkR* zDzuzlKOo-h&Kٵ6mS׺oJ_w-m)َ7Ȯ5ʎ6oz[ògYF !H&aF ,#V2-QLP%#R##K:drRq Y &˺c8dY:C=l}{;6mOE^l)ٷotiy5</ ѧSo?,;K6X"zc)>cӳ`Xm,{y}|Ʋ>=>>@,+=q?,6.D`w,W ,gbK9jP&zYG\qp YZ,:,5 [cሗ|gKZD ;]~S$23-E}*%.^Be~2beŲ ,eR˲"oi)xbR˲gq}#*Ww`_ *v(V([+)1w{15z_ͯr쌞Y}:} 9%VR^/Yn3u# >/"KBYZ,,Ybk,3wdg)G\q?,]1euWӑezhNw`iwmeU}]eμG\q?,鋝Hq4ɳ@Xani X닩;䬧0rtz5pd=YĖRSa"dzY߸'{XhLזXDXw`cE,ob)K ,8.Hpa9[n/XG,,ykbc}w]P,,>w`*r(r(W9C9C9ʱʱʱUPPSaͳYxY,y1^<=eeϒr,"0HzƺC }}YD;,W ,?òdK)~)=l_)E2}B[wd9,"GLXEd[#ۡmy=KƲNll +D߁X ,[ R`YnOWߞg8qҒYG4q˳-ϊcA,#-'.q(S MYGإrN׵PYj`Jf}lזT-gj6=ʬ+M,KDEf o ZL5K Ad9,l)]ׅcN5-Podc09Y\|k_C"lU-l/R|7%+8iM49!ue9]&+2y?ctb-,KNvl3g8x~DW1Uϸ gOM.?QjrS0dYvB,8.&˖J E5"eV#.؆ɂqN)˵C}owD-7%ICgj"ch[%7L-6[cY@8Ax(y%VBrc``F|f0v3ncr(L:.4m^b-$[EŔ*l K(=#5[\b6-L{Ƕl+2w5طװ bSJ5ɕH2&3J -z92mOYPրeN2r҇InW:= Rgv=(GJJW6IɳPȰTͯO~aنfcH<'ƀmHz [b˸'mculyޢ;̬gD0m7@MVJZ覠dA3IUQV6I̓Um?6"ʝ-.3t>%g@,9fK6P?d [9r};;Jj`r'%'g^b-#LemaS7Jz[7YdYy ;ZE pzJ2Ki SD 6zv7lO[`!6&ӆR_r-L,#~p%Tk&Y7L2ۦL,tEМ,p{'T))-yJ + qsowHIWeDo?yS`&Km)9O,/GTnW<2Rd.2OL6̼G\q vԮ,M!3`yT䪓 @K}eI÷2{7ol}dJF6)r4jsGJT,ˡ+)Yv2RaEql}ܑsg9|1z[H׷g9 oM͆g1pg~X3sh }:6xGd;9,#m;7}Oܑe6gV]ҹ'TK %Vnqe+S0+8ͷHłu>q?,EnjZ<X:黳1e۳Y|Y\>1e0a1|۶ PXa 1f3{7{'@YʳQ47)@/R)nsa-;i~XbɤB)@Xa HOtwt F_ò UZ$Ǣz [HF:"'d0`_#l}܁ySs_T1Ioj )Ic?]3[{'vqOX0r.ntkzD\ߎ<➋WmplaY:/Ɣ-c’{ 2Cz [HZH=N~Q=₭ewFbXβhN1%V*,E!*p-cq/XF`_,#2Xf`e|2#Kn7)UeRmeJ LjQ[H& JDCzU]F}S,SO楙[3+l,Ȃՙ'\R`ldg~XnX 4ɯRvll% ^dRd }kO~˱|9v^F}9F[%{ʱ<}9/D ,×cqج69^<˜e%boHK_z۳44KߧHzRՙLS;V/vOtv}1HeBO_w\|/z[wdGvn?nc7o=)#C:tN!YA~x-$})W9EX5"ϖG|ۛ\oɔ*]Vm%{+D/=w6ĖRVS-G[JЖhl}dw:O<}J~[$C[–Pr`j#]~Jf6&#XfOvx}\nQ-_s\Xnޅf!nc2f1diS[U%̢-@RJCJC:aۦķHd9yS/q6Xʹw{SGE]R$BJ[JSOfJ#;Ŷ4.w-cQ= ηCJrɯSRvIcJqSΞη7μ3lCܑe7g!|͘(g–RM`l3G9KYG\#B##esZ.;'$A܁9Է5RPZ[$]qmXNZ]Iϫr30-1T}ۿ-V÷H:#TH6YZqt˔`:6N4JI}{Vx87~94g`qwd9第rxoʹYoڹZz1,KH3wckq5=oϲg9g#mD6B;devJZ25c!l!%^.j! ^/\4.˸sel '"r (u{N SDK`+;[{v`9$э);P*w`e9ko~Kg/e=O~仲U;_&$Ǣ"Gde2m}_,+,5Yxzlk[p+Wr,+KO܁pKՖ=NC ,ЃHf~-{q%Ma34Ŷ4gz;d-oZ`=6erEnSTx'+շgIƙ,cߗZal!%c0Ƶqq]8 8*Ki͗N8I`tSHeͳYxY,ҧgóY|~X-t$Rƚs;I,eo2nce2keY<7-7d;Kܩ'֏1eؽm֏I<#V?" ߁+argl$/=ϳRxXv|[OQYՕy`V)qGtX\ޞeeo0aqmFnҷgqmYlKe9diFX͝X6ZiR`^o;{grH N~Gn|r'ό#e_[v[%K{R7E)VNäo;oyC`6&wh,M8JeʽCj)eLKRSxy,3qm,8Kky&I~P" Ve~#w2r =*\m֝o,Y RDg|n=)DYfyKR)$k~A#rXVHsE4^-[KƂuY;ɳ\=6~DXxva`6)'<%`˺;&[LNեdJb{N7"eW#.Reʷ~d4"#{%X*vKV4.MlCmܘ%X*q橞w=Ar,sh+Rv2u=KwE/}ڇrQ[wjJH$|7k!RwdU1-,)'g**Uf֔’ڢɾE =*R uyv5c0IXt -F2u]X:/jYj,ͳ-ؙ7tJVVdzOTS`qeOFߞŝE' xրgg0IabK"Д)G-owNo22٫M˭,GUIG4k;qUvY,m,mx</KᙎO,k[JL,8Io'g*׬)S.Ke[,]/Uwd2;'i+"R`J}.zYwpE$B=*2B~Xޙ”뉺79׫5c;wl}P ,c Kmc˲6?Rv[g$h[6BZl;n)rEyRK/Ȟ#+`YeYճYr}YF,zV_V=hO3r~i+WU5)#sr~k=a\&-aɝ{${,my^WӋc+;dE ,ӷ6Ydga#'ɳH c[%V!JJi|~G;;d-;}\ἸwLRd+cg}kʆr|Ǩk}~X+,9)M142L[YnsһgqeHwxY,5u,/1eE`7۔:cAƺyEQ߁e:ʂl[CO_,#|'E#K"Xn bcϷ?|,x]^ gNJ)s$EN'K張eISJFmM+ , 6':#߻I>2|;܊gq}d#6SKhenR`鮦{J#E|-ɲQq5_J/rت4a=wOE},eX ,3ebYe'/# 楑[k<7Ec]rYn)뾵|_)@| S;]ֶ@$")vm,õaNtŽciè^oayJ}UWf_W~?XWx,mzXW~?X~Y}/9sJ%"#eӳY)ܞeen$Rz~XK c[G~3|#|۟߶WYf`粷g|=X,},=lc,eX ,\Vx;מ#,%<*gsre1Xvx.Ӎ#B ,gh-qY\)Ҧg2|?,e6Cre[͑ĸҳg̯2s&~Xz,zZ_Z/$Ųo_n!KssKssu,qN4rvsvsⰍq?,ͳX2gdk,uxW}|_,,#yU<*/*e$ϒ2giųYF}~XΔWNބޱε}XlYzޱ,4ږwk9 e<~+]OpF`ReWcճ$mM/R<ܪ:/zD ,KqƸ}ezVx]#{߱a6_X  |\V(6/ؽmME<7Ec]Ir,7^r>ϥRrll\be2,eX ,%SoM,;{_=L%S^,={NI2Km/˲r!FHPlQ[R˲gM12gYaY,gٟVnX2m.jS&O kџ-=zeYų<}{\yc+Oܑ4 ꂻ,MXD,KTl+RԥwVg{q?,k5eu#SO4,#VB:)8]¬sXa<#)gk< +m[դeK=]4CqGs"]xv2] ߞ׶;i[q׶T߁e\kM~gY2͂,N4g i؈RƁm3]y[-вtݩ`nZ~["IlEWsͳY@2wN< 5e'ޱ籠>rrVW7C ,!a>]o`E ,ӵ-t)ӿ"=l!uە9JS. l}ܑ3[Y;Zڽ YXi it &;~ =₭,YNg6և,ҧҫ>mHǝ¢-nc}Hڪn<|CE[m,gK{Ng&'#’\].zP?mEHY۳|97>r=-ǐҥ,A:3?HE7VZH)R LηkU#o_MI M)EgD3Q?m! )M2VGdgW*|厵oc9K`M3.YZ1=VvV$M!#vlVo :}۳`u:Lued ɱ^yorfNB >nci~Ӻ)+)V J&Oռ+$\nUM=Jl6,r2ǧ4s4bJu㚳T)"%ԻIF;SD#̑|+ .i6^#r*Vg )YRR֖.m3+)%.ROSlrƖ!VȂ8 ;[5؍4+v?oxkn_w`EJVؖ-sl?zqXYEd.2~=|>lL$g, D,%GNa`2FòyS2=/c= }z|j,o||Xtzw>Ȓj NK R`,lҕi,(l,X|~Xo[ޔͶwvVO$B=߮n%є3w aYRR,/K;@//*]e ϲ˲>'RB Ν\mDek=X` [ o`[d6zGߞkտcw^b-c-wnc#߱;86m1%7r 3t֥XqcJSڃwf'⋳q˜\!ORvt)Eq}|+s4ϔ:4"V@#glI:q77NӛؾFPql! b -oc|M="ηgYw#gYY{i~"y+l)U`JQt oWfC$;߁垈X5%[vj=c[J9֜ͶȀ|) yxXbǧ *XC{6)iăpU}C,Kq?,j ff,VEh&N6rn˖Hl[5Qy>;E HE[2*֢=6LwvtX~ҿX&GR'xGvJz*u;8.ѭjZjX5X3)vRV+ZƲ<rwzz~Xl[M*ōFG#8:_Z1mh#lC_,;G[]d!K,2VO$[C|{4? /F>Fde7xDXz;ֶm-~6 NepNY#zƊߕLbH~Y_L,.\~XQZ=ؾ}9VINݦr:l!-)2eh]YV1=ÇXiճ\Vӛ"g~al4Exw' g,g ,m3=u@~B %VBu!,l^(yW犨|g~%S]AyjDIKe!*l!e]b=6f-ba*l}r.r=cUYnJqrw$1=8>y{{Tt$S2kI:3oWf]1orNuX.>1D,K4/t.E1w7 >ec ,eXE,=RXj`a%-O$BJ[%Jײ`&XjFwdiҤAeY0R(di_@!oWt=K:'Δ&:_ym^P/˔,`+'ҷ˼G\q?,M璘>F~ϑ,i=x=bReEF9\ޢ/OܑeP2PclMɳP/9'c׷Ǽ[m}K׽ LRIߒR䷬UxGԭUbʖ]m yW֎ۏ̔ݙ7m?2Vta,ߘ,,k{2m`4;{.n,XWmt`;,3{_wESx[Y#R`0Re\fbo%'gs0?;@Xa `Aͯ >e3ϲ2gE k3YXiȷ*k؜]i#`eL[wd^f~Y"R|{L|c|\)A?޵/FޞRr^\G@ad->}?{.z{ѧj`At`A,CYH6c{lə+Ewż;13L=0,[Nnp}1K}1*;"<8o}1#'v]|Ies,DWs~e^c_,O.=Rڜjeŗ°q?,w kJz6].R` b*Ym8+eR7!t>18K}"'/bnlw/,\)^oaɡ֛ߴU!ze{i62,{{7c˳ Ax"{Ŵ4lEYcg]mEՕoz#cyt} 9O(|xcS]/ wX3q2rl}܁宔Xp'NXQ! `);UdYu O\w:]\{Lm!=kt1v1q?,C& Vz[bb>#K[V$;aze_,3Xv`e,5X,5=q?,۟do}}+D[Hne}Kq߾Y ,+/Xf`Y/KNeŲڮXWf| pzX^|LɡC%_r_/9_W%Ko/yq?,mÔ]9< ۆ)8@׆)t߆ez&?/V3/8,_2c_+~2xt>ŭSXW7>VܞweqceY}ȟK m^v^V^B1xrerXXGUSZHz[ 1X,m,B[e=#R&nEF`^Y|,-V}{5ɳP/R~c-Xݾ=Vq%q˞ބҋɳP/wܲ-7t"yVGwLŔKpVu265~/[YdT˒9G-M}ul^o`өgY,$ ]j,ml'7˺y1Ld#\#8Z,ܷRu9Vɔ:tE"F~Nm!)IZbDwvM=J*7Y~OYKKX-q3O<XM2CnW %Jd9ypm}Kl=/c [;}$E>k[8z2 ĶǷH,OK\EOEηg9x*ǰxYMɳP/R9q$^X}lr-gqR˲tcR ,+˵US7NY,nXpv>e:%Iٙ},GD,KEvk/SKcR,Kl}ܑe>2R6Fyeyxr}d$,=~.~s?ƤYG\zvYŨmKT]aZ G x˘ +t|w,ݕczpGkw|ʱζyC{J۳i{yز8Ӑ< 0Y q!_3șbqY> ɩ!mU k˂z!jfr< |n-2dLS^Ze[5-a-}mvI_p/Uyoy.8h+)xcvu:[HJ&4$8p:뢵yl}ܑ%U8/F+)$]m4tY7,?" Afy6&{qFU&;'GR12(e4͈j i,Rpj[}CRiz5tVV50zhLוe~L6y;-Nږ8-gάiYe*YxݣTAW MnO8DYRkWR,䛭Ußb>a^'OaDp6J_kXYojܵw:_ɧ0 \BYRQ-¢,@]t!{}c5֖hZUh ~i[!K*db:ftdɒvXXfHoX%-DR9o,+-E΂ŵ%BT%[G }R,îϠEeDD0nr\;|:y yq[ГNO"aW-X\}܀$]' Vʒ/[ҩC;tƝ2rՉwU8Bڳ䫢,*golV4oVŹnŒ^vqcɜh^R,VȒ{y]}/,}/~,².,˺ KRK*(B~R_k'9KaҎ+{,Odv吽R\_^/,{YK KR/,Εds(>l,-_~"XXŜOE?roܾKhRaYR59"s\BTDV a0DԷ-VK{ ˕V%}&Xk ua)u25c|vm3JO[M61C>НU467C|K7un4h=oFy>lm8QeMQe\0d/osCK7V0|c+"9.,i)Ǝ{V&E,î'۱|5Z`<ۘjrleCjbϖlo Dw ><̢X(G-FϦ6H:МCTDhen<#@!|3~r,X,-ԝ54lYPXe!겻 C6JUx*{5 ,TӻScFK~MTde6>CQe9vA;tSc9-<9vCXgDZUTٚ=d/Zמ3jyk; SmSvj0(bh/,9#lI\.]E9#xU ˨17axވ*°|0[,.v u -3d/o,SrВyj٨?oF !l,p!E ~Yw2!{`k-~x/R,䛭%4 DI\(>-<՚[=u.6{ٻlxw*Qn0YRcؒ=G1Wx6n])/,3bWl*R,䛭3bh\%nB|.,3 vS_Q~lc f+dl=㘇*&zcXRq7}gD3oyF)֢#4t+@C)l){XΒu(؟J*s9b9-[l+)?iΧ]Xv,de;Iʱ;6YR`-Bͮfe/ŮZ\%̚-IX~aX'5>^mG6|·],[߾!f:c`'ep׻']e۲ {VRlѝ#>e1Ų ݁FϾ2Nש^"Pw"-VƐzqfEy6.쾱} e<(B YR-h:uM uY쾰,3T ]ogATdKŪP6Y)i*Ăƽ hi֛?3o|.D# ~ zIdK l:Qԝ$m|ڕE7Ӗs[qKˮ<7~"#\Რ|be,gWr[^vXBbַBF<(BJYLbPM7wBQ7{R,,@yzʂJ@NGrGӮ{&,7vNbo ԃ%1u,7v"bol?7/,5[\{^Sgf>l,1WCR;yu >)Hro 7 JoRT2XUTגNg'Fn~lY [w7 J[! *Fg bK[H,vufA4ѭXJ~K)^=^4}/rbY{Y?e{)~J+Xz}tL%y%d1A>< { ,u݂h$fygF݂l![ijɇUo,)lMeZ9xQ|z,Nw@ ~у ?U,t#e,#`CTd1LoX jˉK\fz{,R|JhIϜcR,îĝ',̱ ,sX.,;9 sˎ2,}*>_,}*=v?XbQ7mMXa+dAE@wͶgg >U,c2Wż;b!l,,_si#5qc RDV=ed;j+,`, dYy˲~o,l_bLlvEJoRT Zy!rgvAV~T?gK2`$q{ˮ/,.#)g'.1?U,. ˰!ML[!_%Pi t³ Ok>Uo,+[oM+VʂhlR,îsOt_Xy.,lN.ga+dA;e54B,2P`94rp?F,Efz+NSwڍţj?U,'>bu$u"Ѡ/! *AkNWw7NR=ς-;5yވ< ~g]JY@6s? Kf'j?6XeK̎.o[/KYKYכHuٲR4u J[! *NȁXׁ'COdzhfz`񰗸E۪:oXBn.,]fUsۆ,1P,1u,%XfV,=)^,U Y)Y"cMocY)-c2Zƕ}<-pbK XՊ",˾A`x?cM`^C-nB%v7"7Q薫[$^C,˼J>v?Xׁg"|cj!Xzx;Ui۵Nv~]>vb?Xe^Xyae]Xe`e=ش̢]>_~Q|͊e=ߘog|c'^HXc/e^Xօe`YyaY/.,²~,"3'u{{7cAclb!B6vcðXsR|Y2=v-KWI_ %X?X{y֠fD @FLiXZĎ)y D5rf OK.p`Ucibl/RȪ\XF&bb!ɗʞʖdX;km`q~`^-WS`4k`YAyW岃uO%rDC'eq)b9/ MdnPkUV}1Kq Sv2/7,h9bnPXbՃ&/,+ Xv-XR,O^9udeZo0[CΓ;Ȫ7ij.D=O~=dGgZ\^0j"vXjZbz4f+eAɌXj;dz JȪ݁7%ҭ*>JxCvGʱ/SH\7Z>eGZng>]t˩;,˵URxh>H>i{D( J"(k:MϨODV~a|!p:)Bb/n2?Z3[;a=eJ˲ԟ3E."uz=*̊:sTBqcSV̢XNn,Ls?_U.7xZ`Ybԅ㘖Ȫc2v9&7.X$c2[1y}coo,+3J2o%}aY5,؝(d>Yb,eT׷c|X4z0cc#tkLc ojE^RL3ZyjoR佢y?@ݚe9Kt|:Vg 2Qyׂ"UUb@K5OdOt)\OdrjSrDz?}Ϯeg&E,Eoi<62$1ټ83)?)]U|#93͆e{CvO_%E,MeLlF~6tr^D7 d+218'RS\_0TŌlH.q^Ije]UK/CiYRHBTS;4 [yutWC- jw`َ(E9-8gip&ovNOYRwr*e7Aǃi˪؇x7[*G* .3Fr~,짛lA>d?os7՞~EfcF3Gb5 tKl}6JNН{쾱̨͖EC_bBTԂfK:zʓ5I)}]x쾱y]'WxS9%U=-]l S]x6+k,u?XxL+I7"no( 3˜dbX|~h bg=Ga]SL!+o)XlBlXPMv_X _عa/r'(B~AmB%5| Önxp7 XxDQV9/k(>l,[tAR,î~hL8zcGuDe.N),Yl,O%jit?(ԭXJ3: oR,VȒْ駩L_D4+?E7LJl7]W[bլ_! *-~M^-, 7Ui<-9ko6r~9%(Kyl[ g#m&=xvf +在$;r JoRT}%[0R6پS+la^vX>bL(S{%R,SG8q.f&g:m\Ezk%sjSl{?|[_1)eI}>eG,ٳ],-6@K7;ds#Q2wbȒ-{]3| =e:Ƕ zAV E;C N]#>,7O-^- ,͢%n ɒ6ؒ,Xps'Kh7=\X-B,{,F)a+dIcF e|caWe\PߩAKv7Nao13QT,u!72m: {`Y^YneVˊi}CnN]:BK>#`O)ԩXP,Sr,%K.bSAKQ-zR,ɒIߡq$8SDOP1BSTk)TsKTE%VȒl,bY,_?R]R|u\ߘ龰\XR,n2Zy2:XB,&K**$';iWwn2X%M)~#.,䛭%ŚXXeuX 2`^v?X_'+QMTso[*w"².9i|jx,+1/!K7-XP,eXP,2sR|cm olyb&wdƦS[QƏ7ceF">wHX7[!+e?r44Xa`zǧ[K)/RKʊ>M5ŲbY"Q2~ ˸,.,˼ 2.,Ãe\XVW,XVW,C,?,Ct)GTt棌쾱^[ `3EbX2ӏ뾰,68)5b>#-3y➚b2M@6{Ϳ>&2b ۨ {FcR[VqĞX&xbo\3D1xM`珨aƖO.,A4)dIySOua<!{`Cb;⥓gazϕߘ7݂ecol]Ɩ|c2ۍZߍcD */,d,.~HxҚbz!:MRb)Ţ{ngX-C>/jakKD:}/VU-^ȕH3<΃[{zxN(;XZW,WJ}Xb,XFU,)^,)Eme Ţs׈<Cb"oh?SOb+l O߷5bd/bYocu9XVyE=j8Qgz d^%'c`ވJ>6SQ%RYN ԅGrp8es-s,/,KXK,Rc/b.,KS,Jk|Z {`Үr0zGT^Ð[Ε9Gt1Ww95 {nX_'~*K]/*_UK}O֔,.,Y){/X޾bѾ~﷟13 XtL?cdd;)vϘ ~`K{uQ&<хog~U99˜/>d/<><חc|};`&`-ꃽsQ D|~u,u)8W`bG{XʧXbh^v`I?2b2bљnDZXjV,weK/?X3LuBb3,A6g~i_L/)#WSou?XxWY7"q7k ^*TC2׭H˺:߱h+>KIKދs`ٹ92(Rs-$X#R,Eϑ){JqDU!%j 4SI "{1~4cӋ{i ,p+F]X3qF^v?XZܓ:u{hdY %3S~nRdzqw/?v?Xz価esV`ut_X0Ew7<7zr=-ofոYoBTdV!.,C"({`9+b?q.,U{dٸ0VPKd7!'̕Xd+w,~KRbҨ̕~ԷTz?l7JOK&itKմ-E@#Ǫ-Rf]ށ/[ eIeͱvL.;sn =|q0E?`?5Ӗ!Nu럻Qr28?W>STRY%Nم^݁*~Z3p t~UBXwҭ׫ gNW-|ڕʢ[qhV#<KuoEYRUOK;E8b!{M,5)kV|Znd-ho'LFDfy(o{6.ei-NS_Ef. *G- ͬZl#bNWw.,.~bGQ߲U b&=V:2li6fCXtb|8WL}aqfXFV,gp,~fXVQ,CzYBJegWVŚ!{`LJŵ,Xȇ4n,V`J6Xk#me4_c91z J䫷S֯,ט|n;Jfxmɔ쾱N:7[) {}A|ce7V { ,'זlɌCw`,RĂjX*M!Bw/21UkOd\a,Mݮ/fF)(b[#4철B+{U?QZaW3nbbdXiR {Sdosrc5\voCQ¤vQV,,:&`,%Xο͹ ,p) ,_X/XN(,v`ٵf'/+O+ʂt#tO&vufz.75قvڮ%g~Fyo.g,>Z6@Awy"vsdE˼q2avk7;) J*J%dDzt(a&v%7M,;KkaKfZPe\a베JXvWNg'F6TU Xa[R,PldT_Tv/ՠ,\*جRT XV >7XVIdK/ժ;S!eAIDK0sLȪ7[_˞gb!лnu+QQAtX7(v?Xaw|y=up㽘n2jB~~ˊ{ҴfŲ{VVʂ{bwOSN<"v?XÖ!g(vm|K0ᾉ|!UJ[.,_{~D8[\U z^FWdlqElzƜnrϕLVJ8b9p|eK:lW꼣Lԁ=+ԁWCw?&ӣEV&Bˆ-^ a޹1I c?3k2dݪH)=%r݊7?{eK7Vʂjqb>'f[@wڙx6 jei-㳯dgb!l,,__Ђ y`鼖R2EVen*uaX ŹZYGݷvUMѭXw_Q2?}|ZDZLd3CfxvfYr|3W9~!/g4(|hFd-}F(|yn˿뽜;`bl#ҍJ`A]Xw[y쾱wTw jKp!ˉd;c;W{UYxK'RbR@ֱEw~/.Ȫ?XV{`,)^,)#XV{ԡXrS,XrS,uvX~<^,m <ÔU,Zp DJ=vfݎ%-D)dDtsREX&E,=n|?]c?XC?N^Ȫ݁e{ǑiS92l#r,+VZD4XfrBwF<;ӃDV~L?Ɩe2(ٞ۞gb!BܰXG`iH]XvfY;l֎`.NJ؈l8몌" 9-( D [!|l:Ct'g'!j7TK{ؒ N)J𗕣,(ZL6 l)³7(vnlqCvCgoiɔX%fY;n3g"jw`i6o6[==nW)b++jT@KZȢ:,tǽ|vMdnD^Tz+>#XbEƚw[@%uzт E^4<|YҗPe@b4u!sCJYLbIvD6t9۱gK'Oњ,aW,\>ݶ5"겠JḌ 4&/R jDMHfL߃R,/OAIMI 5!l+r{&F4cz2d. [T6l BTBobܛ[HlO|[kƥ"2>ϟgbBT5?[pkZuXoXNlk~$[[Ԯm扻-c]lm!K5틲䩻nPrv&UKs?C-j1RғdzN|qu 1Rt;G><|X:wZEb˾s}v?47Q=VȒقb t|$e ˉ9U_w(BJYR!C6ytK< >*VѭX,DsDXeK.ބBQ|Nƒemn#ryXL%\[&~~NB>*U/=D-fRȒjl^m]۳cep>ZK|(BJYXneDz]7(B>,YtKH=y/ۙ%\p;:aF1!ktX4c径/tM,{ss>,#rm[Kc8Z[Ȓ}fK0(SxlaWD7t7ٱt۳3}E5eU( "Ȑ%U=Ø-0NQMveD7l[-'+iԹ/9,=hv3dHm'| ݁e8-Dzlq]VP}"L7e?5Oٟ=&pCK EI{E,#J.FYң ^F@Q 5K6)> ,n)ؖݾm@q>B3ԟV,  X}ru+n^m(gDhB?qmn2fXX\y.Pe&}e ۖtXȇ&{}cOwgYv}(>l, .b!/ﶜ;"lFR<XO,. t5..`I1飥XGbԅ[/XoRL.eŲ>r9;߭OEHR%p$lEHd-|cI\eJR~e/^Xڅ`izai?Xƅ]Xva/K#D5|uT[_v/F]X4?X%;IiiyݻW樓KW:{V䶼XsKKr^c% Vheh7K4Rڋ4c<^,z/k(5^,UQ6b{iCbQ- ss\!kK@b1>l bd~zH1eF}~D K( Dwt ,gZ7cn,Eؿ*?Pzޒ`9f1uxKрI^XRR ?XPK;dK)b|j 5˚/5MH`3uB/,2 KR2l_\6>=v?XA76;uayv?X$h-Wwҵ,(>m5YR4 e?X!M_^v`iƂch{?PV ,X,2̮Xf̮7,ˋ2iMwJ$O Vn,%&")!irm{ReƼ@]XX“/XzV,=X[A,r%촦 KRK=2t_XŴe<{d{?ƒ_BZ^͠.,' d9#iŀ;n,<iFWݾtPTV[]ton}xe\y/XFR,#Xde @!1no1Ɲ{Uw[^19k~Gvb/,E?Qj&d~OߟWMjO#7!}o=e2< Yi1`i[jO¡e.2׋e.>,K KR., ˺,’c^,QZ`۪!GKkK<>j,z/`Yb=ߋe$>ҾK,/zfҤ{  dY/3(#tuaieg/_ߟ1">辰}z/(ƒz$!}x7-ׄdY~Y˸ \֏` ْXI`9 Džb|Z丰^Xɀ]_o7@@wk6[/ 꾰wmY-XKזummڒ|umI݊g;,++ R{z⯪٫aW~׭Xґ>czӞgbBV,TYc͓Mv%g7OVBgOOEKOo?L7ֺ.,] d/o,>qytcH(>l'""q(Yk3&cާ|1Mˋ1ي:OwM,;ٮO[pmيX![G|ίDZ@YRWlɬ_,^)Qp݂B9G塅dN>x|8o!K> `H:QAqN[S^v +c~9-]A;(R_O-eIe%1'X F9|ؕXP.nb6+XDlvS?7v]͐%5;-aZ_6X]&{X]X"r5nkRIJZe%#-NkLv,ne?|ڕ8sѭXT? KY^J8.>,,7݊e aPL|nP|Z:Z^#!q #Xx>  h\whEV +s?D76??m\5nW_X̠{_}/N;E<St˲epiZV7) jWh߲L7+])tE,Y"9KtN'3 WZFgbwLTC lН#~r݁!s,NEzMAVX$Xa#rIJlՂ׋PĂS?D,"WsmgH39p||5%i$ƗH\d/jGر:î-ݾN[ DYPսl)UA{QwT>;WM!{X]BdkH`r#XVe2.h(ǒOKOV,;l^Xv'}6$~,_a8l,љlJO JOpͭ}a9qFYQ) 07~?Ȃ(ZZ >R|UEeE|Rc{^kaf+eay\{ȖiɅV)tua_!{}ckrc1o! VY E" Ũb'O;S)iW'=nfo’;h2f7{Q|5{&bw[0N~OV,rK)!t} 7-YP93)H)iǝ[r~cWعl1,iZx4)AC8#[y )b9Ϯj^v_X1$hAѷqxN1$.gATr__Ȗ#B%v;xvaI :Wh)XvXȯ,^V,XvFN1wƧ]3g%OFKwǩoR J+V:yr n`،O @V )ZWs-!ۘ h1/d*gC jw`)dR+fj`9r/,InЉr#ua#%>#zVBRw11R0ZNnc9XR5O`Ȫ7Gx.2{:X||bESutWم&jD+Ty%\RiTZVĊJY2RQԏ9)X7[)XvX&tXgTV}c׼߰5J}8Weē⫢#y|k`ydGxj݁e!O12w, >D}+ve`mJ5 }9i-طoufx|ٰ])b~!5]7C5\ 9JV,^Tlyq JYP²râLwrQd#EbYNg>*v)6?)e2(XF}aOR,"Tw_ KU;gY3g}cIĨsXycɒdX"N-2lhxT`qYƲLƒ=sXJɛf`2@mԅeߜEV,ۥ犲Ksis% *$aKU d?wLjaWױnbձt0&"czg1EMeA $[>ɧ8'}6ʣ4ja1nǂNKbio6ٮ4RMeA}ql-{O0\Eס[]U J`8ǖ|G߽" ,Z1{6BgaW86D7XU9Nyd!/a!ZّUt-G&)jNrr,T=b9W|!-zszxvfYƒ[ [Nt\δꅅQ&964}E5gXHg lE).}`zb/," [m-WyQZY7l)j`vV+Xyr7ZGT;Xa ,,rty~`龓YƲע77l+{Q|׹7仝n]~;j"viDčDϕr%'|,r<{?_]7(S enb) T>7Q>OvGT-(O Y' ]c}c#ɅWL3JoRԈZ 5ܸ?^+{6<-XVY f+e2"t{#X/o,x[c}-D]`bX DZ|;Ml'jw`Az cw̌ٯOd;^M mA|]Uˎ+2x޳}!v̊QIJ})ϳۣ,Z*WEV1Wlϩjkw5SVʂZ2o#-Sxladˊ=lAӷPǞnCJYPR-YCR} vAV~Xà'öz>zK&%X[! jƱX*=%T5uU,’.,K K.,2~  ,2b2䫂#sI]XϱȪ4ɓꁥۯ,=be/Ȃ fInRNuU,M0=u{4yS03| 谆9(Нu s"v?Xz-2}Bb[\֑KjNxvB`y1QYSq,cI1]׷t,+{sc Tfb JYX:ǚK]c}KK^mx^EXjzԤXXFzXPXF̬ށ/);x`)~c`iIԃedYTTKɊvʪ9G ε+ #9=/^Z"Ƃsm7Κ+qGfʪaJg H,]ÐXav Xd cԃ^oK޾_}Z޾Ob}Leh72SV~w/,fe@]X(w!<~"?Sj`j?bY?XօeG/,VNQ|tIn=ko(Bڮ龰\_KTe'1kB5HeŲʋe2-Ȕs,*VK+/V˨7?D{??(BJYPڄ+|Jmb!v}moΓ03)^YPR-b&!Kl >사}c QȎakTy׉=ݦRأ[//e7U:{jbg5٘Xf9,Os2FYMþ!m|jw`vhw~lۮdwH,l~9ne?{w}cY=|h֢TZ5Ƈ%$ق{![ RA."v?XeZca^%`9l5@FJ`A̲dW\ckUa[VXCM.+3I.Kll cA9tJ "v_Xȓꅥ|\2,˚ձXȂ2݂6j6J8+gv:w}XeG߷Xi;81ʱT7;,(XLeSg]>,X}_b6;"?['3ys~;WsQTlɾsEtN+Y[2cI_|Fc19,ci$fBcRaW.!tE,]UX?c:엶uH:C&i%+AQIJM>,-XV75TY-vpipmˁh@#7_)35k6J񶘂B[w[hd7nBTThY),&a踘IMd _|Voz:Ⳛ*hCTS_rܮnbi)VĢ&!|^gk YRV|<4?Csmi / bSl [D_9=%0-VdRnPr%C>v?Xj5ms,]'dIU$(!x~%n(7}^Z^(>l,彜ˡ(B~㡹V,-GTn-{^.>l,]b F)V9=v f%*HR橽|25R8@^ me[H9|XJjw`Y@c[ D+,A0M<|ɖr4)9FLXR >2nb9w bד, )b٣ʒ-QBLQr.#eeҺe&n}Y< /Y5sb!O0}a^Ζ-Kv9yF)iɒdK3 )B~ e>vXbJK,E@e]Xe`X[@¦XN2^E8( f+eA}S00;/t%XKBK$df-.,'ĕpI@Pu`wbWK\-G,KF.ʒ:K+a([<䤐R,.\'v`2e)R)#4t_XqQzc!ua7/,I<. JDb۔M掀E$Z >CsӪ>RNV d t=l BNnWLs;CB²x9B1vr}̓D7_yu>Qw ܌Z9՝߰1YRgrewA6Xν5SKA[3X=Wf}mcoYRq1[+de& K%BAX;r$GoNZ!ވ?[sȂFX~(Tg_`l{6t݊%W/MQIɟgbBTfQ61R|ؕ\0Eb1b)ި5%·%^"Xzd .^ۅ|؅ XpeZAOR>cgdI"bS֪rPw %]|݁eύWe{H)f_A"C( tK&;.=3St;|s}?d L4.z-3Jާ ?#SIzv%#[D e| uKy<;B[c'X z$)R_X>@-8lߩr, jw`AxOsG J=FazȼJ"Y!K* e7d)e.^vbG;b*Vnr^dA}Q-,#!? Fgw>-52{d`NF=pm|-Sт=2d iGlajeľ-p[_ob! 7 !f9W}cU@DbeehY%f+dIE[2˂_]t'/;ve!/,uaL;,,xC:t=b?.<!{}c3JZ˞b>(B YP#N;ʇqg}쾱_X2w,Ka,R}4麏,!n Nal/+uY/LJ|[r<=TlG,%{n9Va#4aXJiec־ޱ=mϜe=Xe²,a`ٿKR 9v@bԻX5B9#[;Vp-tSX(wk859%Rx]G6y2/Qo-A=XZtP jGyj;]RW{9(q83.:VU·Am*g,e%[nGg B9@Wo۱wtugW|etK~e%9k}zPN,%j// bY^bXVr{KӎrK/(,W:>huMd6#u,l~xXfŒkd+ug\^7vԃe52ua`XJCIo;P.Oxb-b gӱ[_%b}bGj^E4Ú׺z}~{9b;식B,P𕺢8#f;uaëe/A?X/b^Bq{3_'H%uH'g|Oѕa08XﯱQ!&@]a.tۊlédVc7Zcai Kmv@Vbfٳurr9ДnSA H^Ե, hc۶uusN/C7O8(2\n/92mXuϵ]y۶{ﺏ‚~5t1P ۻ:m_&]S/`g81캏ߎiKgS{ogQRo(tIu;m NŎ>uN,JXZ1*5UmaO=\]ENQ ^>͌cJXNZr\']R^ RWWSv mU/>~;cɛX}']pra61/ԎerՕ ւmÂߦ2'2Ar!/KѶaiI^bImry:5iNv,3[&JX*PAQ6e&JXnMߎe 3cwœQH*hCeUwi(_ ]q`aryl Os0PDbpA<;1KzĶ+_sUM03[ ߎe~l"f"σ;-\qiuI^l櫛ղ(am[6tory}_Q匼r{q4mkWg*A6t*ֵ҃/{g}=P䜾S%9|#uwnklr5t`;ފEȩҬ#/&.k[X6.E|mK<“ڻ_Ml,F7rPWY۬ 2mNNT6&nM_)_ԍ~;9oߦ+r63KZ1PsF>0QləYCSc{y+ږZ e7X9HvԕBh4Q30]RdDr۠cF#g;F?X:qp0E,+u Y`sŵt֩m?~?XC-bgfM XL>PljSvr2jw]\}(~ڦ~ lG,LE,?^)*=PCv*dh]g6h.@NI- l;tߎe1ޱ,}>H{e_@s9O R -rȄ-fhݶ)_]l Ym+Ĺ.#¨C$Sr9(eI49A]r5v2iX Dzv*bhvrosG,gϚ{=Rɱ.;OPt3ش;OI]Xz ˨5,5,7lXJXJb)5bsf~=tF_e>e(QbK<빔Ԙ%e{I~#OT*b|*]f{IKv,.,S+/,XZXFXFb9bŢ~ 2Ts%<@jBYnaXT| Jk  OH7~(-✞XœX(_wvu*ό3m5>~or3'E,*/{ lx{85t=Ӗ3o;&y?iy}1Km?/Nj'{n;'wt3`YvZIZ/Er*]Cfg ]o?wKT.0ymɎ%4*E Kr{K>D~l3>~XJ q.4<ދe'(aX?n;3~K8ee)bYPTE,ݽ#aqڮߌFW.ʲXYS+kJ~8VJPJF_,BYzL.!bJTݡez|\"vf!c}==Xyj<ä㷠G՗+lz4EvЍ~XZ) ae1ԃr*]Rٮw۠3#>+ԫnғՈ',GO4EbaK[oOXv g;VI7 ΉSL]izf봢P$kXRT~4U>YKtK#P XP7/܃g4;۸% Gg|{ >gs/aAy<'UR,Qe|!/"'#[tjw3!&ʶ)/9`cw8> q2vp,TD@ I%,8gYM̪6(ۣ.._ҍ~,ȔUWscDazfu]%5|EBNCu$v5n۱uwFNW>YY<1&%,k|0钪˒SIavNҏ~cٶEe ˯K/';vwG&"İ ʰdïbܫF6";nMb(fztIɱ']R~8c|fR.C%,|ݪ?cR\!kivSVS o> Kc anSBh$N*%"bgvWֹlG,%y<#zXqTtI%';60b_OW-F?Xj^VHWO,#~/.a6 #%|ZЍ~Xzx29Ld{0#VAX'c'5܊"۱<bTb]`1:9^3.f*f qiNc{V?oe/ZwIJ ܓ1' )`;`Mm#벭=֎b1|tEU)ZQ_݄TW ,w~OjSԃr ]Q>KpdݷlYۦ~?~Xqqry)x߮e}υ28+fnT"9,lG,uX]qpe'ڲ@E,WzavRlzvS Kqedɱqqܿg!啫)yq)q跰t{4w{OLvT(vSM݂u㲙?P oSkfȍİ2WYa&vc593rmPZn1v,_\=1ַ8g*&Y{EGl f6l49]o;6,qrpBrZ޸@>4fyہI(ym'&]N-,kvdB8Yl6XE K&u(ÎCԭaǶ%'gߎ3/&VWW/0uEyqptVn׶/)_UQlu#h3`Y2v6,'zEq3m+O5F6 50C{%LrJ]Q5iI3ͼD={n/>~Xj|~rVwcTRmf\WW\3_fzi;T\ *\2<8YCI|a'5,KԃrS2=>FV[wЊz v6Kjo?jZKuEo?h?Џ$_)cYu[ bRWT ̣~`;܉=u$;>~XF}r<7ˍ7C(9St i>.oX: ^tS5~❾BRDjS";=c ӯLlzg$&:xVC88wW IK&8U0u㷰`_:wχ!gjw %]i.7ÈӰڡnw)_͢[4|\ӫOĿnB}Riꊪ1)N~mC."P%0娦{,WE¢[:&eqlry:ޙA7);N3(aU:GWW',mPO|w[>~;Y KC$#NuÈ(ò]uEu<Eڮ1EkX7r"o{%?+G q.7ieiֺch=`8S),m+uI5BNVc\DӺ~Ua,ͱ,pjOQyOvtX gw݌07m2,5ߎE{ڎ#oi˱Hh[X*6Uw_lzv!Sw G wbw8}*(ò\~2%<299A irEoQ%9*2SXI^*L6tVw/mu,gSEq,;+Yf)D1bHv%{q]w`n'exܒ_X-e AeSVPRcIWWĶKvϻ8 1[1KOÓF͸:R냅rSJgޭ^aj2|H,[olG,k yWېoO\_/FF H$iO-HG}Vp_l=szJ;RD{'[{X{"UGIYmPt?XXÞ"'h/y+uLYlF;-6߱+v]łtK/\,+,W _9Hf.W.>bcpC큊X$o*h)vrDu=)'Rې/>~XN;VOivX *bB OK raۋe)MwX9V2+tVTgɐ%yjca =o\mJcYhN/g`OMeA .r֝@R]<>~, S{Y"3Qh7vsWEN æKj@NG6u(L.vVGk>(OIW WSxؑ(v$]R~87S)´(am7v,c_AYUL9twtpu)c;..mk@mgeXM5׎=DZeX}դK*ֽnA m2,Ko20m\.gӂϨʮ\Vw9+m_[%8n;OƉ׈-,w>ljLGCWQ)9KʫpoFtJnSmu’o,&'#~Ň9n[[5Mn;:tOAκeqU){BkSP|V$JXvЉ *8N2݌ZiSDےӥ]lG,Y޸8̞6IT"9|.)&(;I1vHۦ~Q7Xbf:@N8)VetbSw(ggAznw)u/2V8Hf&, uIM;-#NWz {O˰mur ʤaKѹ[PƽL*![.)6(EK._ԍ~;Sq%Qջ+wft+.z K*y>?8s)9۠Žt,I_{Cٙ=PUS4`Y8aa虳xMv8wwShTb -raXdX$ԍ~?XZJw q?v~EVEr`.݂~@Q]TuN˩^,;b99\HN,;b/;;x^5"َXNͭ`97B}9'asPB9|cúcY,&A7 ˨/XjXjb$kXӏd=b5beWfn|XC,!A,WN֋fv\M/|~u%9]36|T<}tIu%9fwוl)`Og*u-wQ댽l?X3d].˲rZ9-c@{"tۯC[o_r[bi3ߚ}R}5d0ߺ[[? F?Xո#:. حL[JSWwl<a"W>=tߎ#:,<p#NO Ζhe#dMqKN3fh%ԍ~;|Yu"pg^hM:B̷&eێlۆoiwL(3S\ n._vssjinEhA;R8maa&v,̐b @ID<VNv;Oi~5`/]}29 qMUP5g{^sVEs%,~uE[mX+Q~8Y YY?v._w+]R^lV=oKw} -fb~I7b-A͎ *bJTZrPMIѴk;ŝ6ˮ!i> =oQUaJ6qׂcۦ~Q7` #j`;`w=6_XjbavXc)JqܰJѰ2ZIJKY,D>W?W lNCgnT"9nv=TK>,CExHtNW$[L̩v[ض+ٺ*YIrj\hENqXDrS.ms;r2ۤljv,~ v2 8I~\u%嵠A:t+^ ZmSNS΋34{zlU[{]q>[UmgxFrk}䮢5/`[Xoa~b~ (kN>l^+n-mutgޱ2lA7Xx;o ze_s7uIkqޱ{W6(a9mKNO~ &bQ)M큊X(UO CUlX$_ԍ~T;3"NCVtK~X ud:3"#Mv3#j;if8nŲBc[#/+uE ;/NGTP]*N8F_,;/`QG{k],WEoa;bIA7R̈8<3U2I7|#ӊil'?mf8neZ.8[{x7[O~+udo|ok[CLRClKNYi_X(,MX6w(+NQN`)9s˓/sKRudR7J7%EH-ez -9Ӡ"+tEM S~eό`;bE'ԃrJ]QbJ² k#RV_`VB1BRَ=t]8 f²dw>,s XlǤNQ X|wӱekNQ=t,~fD;3ZΌ um?XxfE1:EE,o\bLmoo+tE,ŲV>,j9meBܱw3KxJUi +^$7,{^_,Gz:_,>`FC㓘/,~lÜy_X(w,ٴJeeֈe/_InR{vו5H=XbO{vg>R3K\8r=]Pgud}9i~Q7<F!|&~Tei\]Fh;vUK-z_K+VC:bX"+uE!N}fd4 B9JKej,z@XVX/,E,2~a>~;ÿlijxn;}+CN,((tIdLb'm]n'sEU^tgp4s/3{ɮ+o"G'L&_SO`[Xj{ırvScnL>*iMl =VvamW;FsTxqNݳSD O.x\WT9q*zxe3%JXv9C`[X΀}V˰ddS9'g gOJf9~?ub 6(+9}߸2oBeX'NRWINb 覥N~s'ۖ~I7X&27lϢl-{3fhi]Q>Kҭb^5f߶vfЍ~ 8y]N>-"TKt\Wz%Nt/̶$>~;Vñ/NnEr֏{|;Xt_~;ř4, ~?Xn.ƊXy H,&GtI[#@[KC廋F`2}>C>7 oo|PN_Kj| y~ehA־XBKFe(F$7,WװhuXvXfX>!{u?XNaq6HٱB9}!SU 3F<KO&م`M#agJUǓɈ33s\~e;elG,F#rO0}bU?W*[#NȚvP.ʵ`;ba/g?F{OtI$rDݶJKn Cۆej31Kgp[iy&EUA԰L qR`i͊cvvߎ[)zl&L!%,?$MW'݉t omRe\~A[Xjy29s]Ȯyr r.drT.ʲIM.X&nɱL|9Ζդ'B@ k#M]RbUmO6oDzrFIoBtIyv8>S'&e;dgf̶elqO^ dokr??_v۠r =#s| ~"V޽z垃|UxTW[~⻷afffٻSG*`1tIeBL7&m XL[>qƃe²^PNǃhGٶ~.řm@wav+mKNOwϱ"KJgyY8jEZ[(a*$]RW @Nez|QŘ5/F w=J2,q9Wgoйɇ`)ZFKݺ5.Zyo,2ųmho7#9|.ξ9Nmgضoa)s쌸} Ha%Q/߫M[ H]S3cz#.ˮ+x0[Xϰrb.3,r f-i;{mg~xFXn,%Yq" XL>Q1SÔq"NG/ gq۠/F_,5XXP0rR^lkc.)l%']DmQU4Klk1qee/{^,[+7 VkA7rD,-iw쵌_큊X$%mYLsmX$ԍ~XzWq =+z&*bJTYnL&fݼ#wvĒoO3#Hl~W#N{̷.,ݾo3yurb=Y/.b,IL=erE,ILDz/XcGn*Jp 5$_l~?uNw']ٓXA7X6*_W7Oo#}Lxkjp'ߔ%5}@N[3q%*6)%Lӯ7nwrCgIf}JXJu9< a}M䂶A}vZ+R-,%!q˩:oy͓D K._7_Z~&jUQے JXNے/F˽e[r=s6=L`+Tmt]e̗%,}R7b9b^:,] KwXtd -tߎ5,vAO;ęBgUz+ 3,rЭ8Ggے/Fo8^wr&c]=ztI 䴛*jq.JXn&A7XDӟ¯UBv>gN$[l]ݭ6'0ǦspM9n۱l['oYluesڷ]ݭփ3P#J4t0{9_ԍ~,ɵƯo/xeXY.jrfԭvY5ۮ~{[rj/q|>[$ňeo ErC`;bS4{w,5EH_K* X6wXZ͌%*`19n<`b޷K,מvy2N`$g"MXqKC9}.)XSRPmSnq_,eμX =-U.)$2`mWe`ڶlI ~mK$5dO}XzWBm[awЍ~XMNXjS`,ձt U ߟb>~4Ð*@=X(5d qaY;Fa|/eeo"9}a|/d K^j~//F?X-ə 9X,ykj~0vY5ۦܼg#B9n|Ǘz_@=Xz_K|Ǘa|;/u7l?Xg~-TJ PX(3q-dνXS2vot,.)~/(׽Joϻ0{i(h-,.nd^Kov8xbڎXWD&ʉmG,hG0e9M7b;-36K_K|g2RX$*5eԵ6!'ksnsyo%,=N^LTsYKsA~{u9n۱t|qձtqY+KEˑ %ݭ:knEmߌ~%e`Ex(y9Xk>+7AuI%ڈMC5f%ߧbFc-F_,V`iڷX'ܾX5@WTq6!)f6puƈP ˹[}.+#] vB]Qj`;C0?FehN4WD#S+=ꊪv_#]6C3Qxr-,gC /xOvYol]> WVȺmaaVL7EmPKrOy6XnFΎggm%,s|eJpj8kS71KA}2~.7 عsΰx.]se֏||>tEu>[E+>D=ݢ5roam{ γ8fZw%,u|Yj~˵8~(m1VnE+.}v,qamud}[3)ai..8IZ'Mc9NNҹ-dncsP2quEUg#]|6|mC.Xv~m]i74^8nb%J}/tW$?'EyEtE܆to;6A Z^q<,,H,auzjөjuzkNTcN6u?XٔXN.w7큊X$ԕe /︟?~X~湻X ʉUZ ہvyP۱Lg4*T.:ûP&]Y(q*za%+BL.XnE'/ۘmNo+j蓱8drpu d؎X}2cwc,2% [8~ʰl7EV2 rPΎ}܉ mҼMcbѷ(Ҭ~G[|1nWa{M9jqPa*Ng]UJ.)?[-*/;Sm?[yz+IJPm65۳gau^46/%I#jg!%o^YmuߎfL6,(C"zri.im a{jٸmPj._C1l KǪWdq:~ I*2!œ7tI5'G |?cOV۔/F}ٟ ivLb;KTřnja͚\NO~SnӲڦ~Q78Y<IE,z~0O,]3ͲE=XzM7rOE,8!gX FiN#,E#lXV|{grߟ2R,~ai3Vz_XVRS"f5_aX 9Xή]Fڦ~?~:P։Ia(YzUTqp_X0yvVr9g>6;wR-,kuXb;1^, Ƕ ȃ*"v ",ͪ B]C6>!",'),Kt߿|VXZ+[0V+yGXv+0V/kOq!B9}'anlIl_oJn/C9}#{|]lſ_~ۈe~5gܗ._֙3_~{}F_,?(n)N^/O~XGr*]R#^nz?֦nQ>~XF\kqZ,o J+n>wl8;]"Ws~َXP7baAe"m6shwvA%5}ONť0s~M9n۱ ~Ӱ 6%,t f5hv9n.(_39rꦮMM-9=n;`F&geF,nc-j.G5Nݚr%1ArzJcf[me5usQȨkw.uv쓙=C9J'c 31oǙ)JXEJWw^&\jwڮ>篪ؖմs:ma'N^ZU~Teú0%,wci65nrig4k*`19$%5=jC{Ym XLN:lG,eDRVXG#r*]Rӣ\tsn߳muߎSjw,eUgv[7+𭉊d;.)'N[CݢQDi=q.IA7-,9FFΈpZ]1zē'\ήGxm;k^n۱,r֍8JufT upAl* nF--fl\!`օwtBfڪvaŒ6gZv!܏|다+Wp]_P闍3}6ރ:c1}}.♦.5ꖎ+li%SYw+y. Vnqzx'Ѳ(a=G3cU 8(]T]gM9nrq,gn =/g X$iXQS}vU}Ki6UdmkTB9}jhg.mv]4M9^ony-䅳yr ]QݲvS1O1Qm1t,0XRF {@E,We@Ls2n Kv]v{r,~@WTUX6왎H/t,`A)Ja٘w/Ռy9@.+jiqz~`~Y f9[>9)@vg|KF8WRWT]nq,nF𕶳Ga۔zb9raδ{dʰdWꒂ툥;uOu4 ʰ4S>~;>eb6(}θ|!d\lc/Gҭiz϶)_M} RLa&g6"/`Lk,+ }nB >כ 71r!丒L%nunC%)H.XN됐3QKZB&˫.%;됈Z"3B됰m)t ވxO)n/`4vkU<}V05N6or:gcnߩ99[q!Pғqxe33=uD%,mw\ma'KgO6.JXFs9 ZSWT\*]QۜЯY k)!!w,m$n)$ʰlc$]R~8'>v6 /ܭF8Y WxtIyWqDJ{в{j{ ߿bC$RRװbA$RΔjt]ʍ/X 4kKP{H_KjXl\KHl7mWOI#3KӴגkr#9|.s~r֣nC'QK}%Uh^?F$%)7&]m?!_}X=LxwQ3CGJXp;tI ;"ҭhj 7lީ,?y-TA ˹Kr.!۰5N-v*]yҞ[uw5O]졄YoE)t1N9nۣ)vҵ|y6*S2]b\?afuw[MWeus+K.Jѽ~iM۱ Ŀ#ŋϜS c(%y٢~~~JRj_Lby ->FN[ {OyGr ]{t,dT뷰,K69g3։v. tE\΍K݅l\eqSݣ/szX*s6"Zw`X^?ru{ Xk2vWne+n\o|‚܆ci"J޵rj*]R3΍qnAOAgl1XRݑ*zi*b)Z>%HXAE,_8V8wþWŊdOQeYRwDqYn:! Oem'SѯXXn߳޸qު\(y>%ei7Tm+_mɓ_跰 [8Zi%%~CgW.0eL.Զ+ima9S~8X{jw:wPҪK*w[0XD-۠徃/FˉlX.ػco=aV!r.F 'K'm[r%B,wV1@{"tI%EYޞH~^/3Wp,#@E,W钚p1NGsmX$_]wrE˚A[/*)})eaK*Sw6FmW:o#/o蹐4[d%;Te]Rv߫q4݊&m}6Ean[X86ݙF;?zzN]RKi8o u3fnmg@c}Iyd3D_<O{F,Q3 *ʢ2]SP6)}~Q7b99mXp׺]"͒.,9@m XLN~Ԣ}1Tgˍ'ʙQL]R#[լXy H+t/}$g`616gbf6̦V*;2ZFşbʟt‚]P)]Yņu;}A 7G:tIeIt,n0quߎ7ro50+N+e0e||-yͻo퉋{FF?F-J ـs]R-, =omPs)uߎ2N;}`{EW)7*]QvqLtfմmXY۔/>~?Xjrz[ tJ4H_+6qn2"K_M9ʚ`;bKc|svh*bRWT.q ҭ7U~Ał"b{n큊X(l%]nAԟmt?XXga ΜX{"+tEM2έmXfozPN7n+YRNӰ)+u(cm->R3/"ƭ}v,#Yޏq{f!nl+*[O }Y򮽛>~ TsG{[(}ʇ/C'$W }rWe'S}l{)_֟`[Xи/ν;~;Walowv+@Cݡ~}r >mPrږ~Q7XfSFȩXeI%,|,꒺%7eKys۠ n=tߎd7rfy֤r.j8ҽif;ۚUmSNv,̷4NpTw>x0(aH.|K㔛%݌-u跰?\ȹe@S -,.o*>!ҭ[aoh[rE跰`ߗo4(7/--7ido0жu)_ԍ~ asq!~߼뮢]. [fka۰mT۔/F9lXN6XJFA60߭R. SQGWT88#=u3zpQ۔/Fy1Lcz(R޺-΋FLȠlW)_ԍ~;]Ͱ_3е;}wx%+?芪 1=9abNX-,%529k`T et5yv2 ls6(aRNO,T<;W@,~`+#bXmӔjmb94ݎ}//ƶ%_}v,#l+,hkh6, F亢-Iw?Zq۠e ]eoa ն5μ=Ka;걦{+zjjroQ"5r93ߥ;xu!ޚrgU \-o$l{Ѷu_,"s%~cjj{H_+ʣw{Ùt *b~Q1gKRw,vψaCWaw~d<Gw{,İ`{l/+tE ąr~Ϗ߿b}RFS˕S:[Z }Ie'i XekT"9|dr֭)e#=qnus6`3bCnT{%EU2twVi4{>~K|n8T=sޅ{"9NI* PEEkr]@.f߶MNO-,7rnJG={{{H3|=(]R";\';6}v, g䳸ݾ3^_]. 邂m596({RN*/-|;Gz:u.5+ॻTNo8FH&dq~MyUՍ~XfW "M{f큊X$%-EF{flۙZkrE7t"dqB_mG%GuCˊSolC7l6"/s?ÿ|'?Γ?>rPcGxŹL$I?8gtg3_k@?`@? d?7Ͽ?+ ~)?,oej?k[={կ '<>IP_[QH]-֏BuޔWy_gJUwG~O v.+9ޟ8/0ҋy㕟``\/q *+*+SRPul|kQ ,QLԧvvf|ķۀvҏ*!,q}ǟ;DU4Ǚ>Sق(jli0c69QXEZNdg>xŊY_tO'=r2@L㍈ rL8-Zߺ3cSUaǁceTa0O`Ec 02{N9ypk?10[gJf:hO"ܒ{Z%L.s_-zzH~z0`a*x+g8@& ~ndOl5w#C4=*W" 0ۇBHO\.Saǔڗ@Ĺ~dQٍin$^DEApMtp iO[gZͅmuEmqb O sK\Isg5ZZDDpmi!bagU!Y#Fwc8Ci5*_IkVቾ֨Mő/ #Q82ٟ&oB>|> endobj 85 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 87 0 R >> endobj 86 0 obj [/ICCBased 88 0 R] endobj 87 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 88 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 80 0 obj << /Font << /F16 8 0 R /F41 11 0 R /F42 14 0 R /F15 12 0 R /F59 15 0 R /F60 83 0 R /F43 24 0 R >> /XObject << /Im6 79 0 R >> /ProcSet [ /PDF /Text ] >> endobj 92 0 obj << /Length 2172 /Filter /FlateDecode >> stream xYKsܸWL*uU)VI0aC$DzӍ9,\: FZ^z'7Fnvwv{Jl߷m-MtwT[i]T#-kNC6#CS]ՁC&^dESWMMߍw\뮊Vm8 &+řHIXD4bs2/\K1)sf$>[$^p4~B7t_f+ä)@kt\iWyWVY_YvnT6<ܔR[Y)= mD*xpi8`Ea UDt&ˁ^|E,yb ج| )mc~: ᆔ(!Ä 2K՗iMnVr~[ȑ7@iQd1i`"X'=,v_1Y_#XyO2 8ٶ)\&ˬi/5/.\VD '("}Bl춙+?59]I"+}mO./9㗁?aU2Ec8fg] թhN ޣjЎě80u7[ 7>>qЌ1rS\od[Aow/mi ?ڨpYtqڀiuhP P79N 1\IMW/ bg2MJ?ѴGL$xcٕk {=1ڽǷX&X.z{{TBa a7$fsOl_r{} 8Pk^)U@35+cF$)T3,dy_߳ʨ+ n 5ѴmzEN\?5cﶔLe6zC azt5TQ]?mwn< Ƶ'Q!ps!4+ =^MBhgN$A?SS6h>RafOt^v\pjel K=l(y*Cbn4sPG~B,-_8T\״rYj.(srTkrvHu4璅))ZVjВ4Rdjh#TCd.k28ˇrF+ T~׷OA6uG b"4/}J"6|9!Q(=쒨?gFY%!P3nԯ(g$ v6,_zR nLc0cޝh]Ճk/ %4544s.7)Si~4B___79ZHC82bb/Kϱ\վ u]MC4y^'PO]triQh:\HdJ6( Yҿ4lqs̮A]Գ9q; H# ivFgkSIE I>>Pyh*H5 DeoFLbMx:4f ޥ\ayo?woiԏ#3)uQlT 24u} "twhi !q_{/ɋE0ڬ NPaU$';&f .1=YLO83\dq) ״ 1|z*@V[d N^V "̄OKIĝYpg!]%D2],BmH'г!BÀ\8W2aɁ_7 [n` & PO>Aہh,3/OmK=Rf0J*u, dCX>y igBj-.;3hw-UFϒ-8Ji"m,y9 ̶q(aEp(}\DaY )f endstream endobj 91 0 obj << /Type /Page /Contents 92 0 R /Resources 90 0 R /MediaBox [0 0 595.276 841.89] /Parent 65 0 R >> endobj 89 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-025.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 93 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 94 0 R/F3 95 0 R>> /ExtGState << >>/ColorSpace << /sRGB 96 0 R >>>> /Length 8564 /Filter /FlateDecode >> stream x͜KqOq AvF@8E$ ɁA~S;<Q &YU]]^?}ׯ_뷯kgչ_clU_?~Wǿ'_|y/~z?QW3_^_?߯?7}ǘ9_V?:j>J}1yܧُz9>ݼG#~U71q |ΣYsmYyǹqՎBsُU?[J98֌j*qHf v?ʉKöv`ĝXj?m$nv9vabu?nt=q8&HöW|^YLڱ|;G1,a7qu>LnO?vs=l?vgE[oq6J~n^0"ϰqh_<ϫsx;΅_m/{;q39.1w:'}Kӿf ׽®q?4`VϊB?w}x {o.}_q=~Ϝ@54g|(nh? =^Wߋ{_ k+B3џph{\K?h?{>/~AA?V;oa&jݜڵqz?3?Z?| ﷚??ѿ?>V[MCj{ [xqh7?b{+aؖ/?D`7ÆO}fº:ڇGŃ'y|M|8O-^ g3ИOqx|*{|DX6.{/|/Uahʍ߷|! ?, |a?4=͋|/H#|&x|?2?wh6v=k{/?׶bc͑sވ͙a`#70K%}j?vǴzLBޠ[x>-ޚDӤڳ*u~.o~g>CN/БW "p6'GskHRԀIO{Oî̽Ac9_`>hXفe?>?w[gZ-з~GTOG?y'q. |Ke]ZE|čbU C ;__>cW:j7WY*+"=CշJV $F/iJVDvGɪQ:dG=VRrԎyRޒ5eK%.J dUm IVJA$Y㐬MIU@&%IV%+Wz AZ@IVDʟ d(yP?JVfCde!AA2%vRd(PjDIV)$+{ yQ Pj'%;JVd"jQbd(IQ ِ )YeaC]o|HV>ƃU+%ƔW7$,HVf]r;~O CA$+$,HV9~P°?U(PjDIVH/*%ƯC;]ɪ1dM$+;ɐ$?Ƈې YdՈ(Bd?lHV QAU;)yRr ddeʿ@\JV~]n9KVnBSߋ%Y-Jd$)JVחd5~Hj%V𔬼q}IVK%EICՒ$J&%dՐ$d .HT]Sj'$vIVv?JV,J$Fdd ՒɪIbdo/%+.Y]$FddeYUcdd%*ϏQ,χ !!$:JV~=HPUG~Q%+}JR?!YJZxP !Y5I||}d $)#IV}d"7.Y5Jؒ{ɪIdwɪ1d%+_HZ܎SQdeH$$JVz<A!9P W%+'8%+? Y{d_$+U-*ǟUKI U/JVχWIV=%V%Y&Uk?JVM(%+\ Ûd$Qd!i]s.YxP7$(KVPz·d|6$+x(YiKTt9Dsߑ'ElE[Bq3E,TlOL"E"z D 9EV&Kއ(8@iN#dC昝#T(b6gہ"A;EoLvD#0(b6G(2@V"Pdr6Q(2&LΆEz@HW*I'SOZE&O(Bԓ( @1~BELkCLDW(25ND/_DمD>{6EV(لD E4^BI B} "fG*"B["a*(2yBt7lPdp5PdpuPd"z^BIt "G" " "%-"t"P ExD!4!L̈́"7\{g7"fMi-%K@o(2՞(29[/;EEjs}"EO"yPdń"Clj"Pd N$IB&T E~ tPdqPd"Pd1,/Q~E/EQH(8,YD":E'(]"7":_(2!$ >O$* E/EWE:DJ]"KhBYLBAT%B",&,?BE"lP'UQ E>Y#0fˁ"fy'-'B=OD{>Є(?Qdqv(( E} E:WE\3 1(҅DNte"RPĮrzPP@gQĎEٵ/-(J?Q_tJBf"}HDE񱣈P(_"Pĺ]vKS(7H>Q~A1Gz,Pr P4"[hnO-=ƬxgV̲G5r>_CXh'byVXa}"'Vs[U&3(F,Ol !by׊H˻շ^-k'z/1Dz)"by7A bRkXލsXx}D,[[&U_Qݜ[Īb #w#"VĽ>+]""V # PD,x D,_7,>ˇ "V |"V5%DM$2b0Xn[aoxij K3ܞXտD,DxXn3Eo.!0bҹ$c}crE1 m/#FeXFzS5kX'^Eb"͈֩u)b9x[:SzYE,>zpESC⊀WYVI[8G1_gY=Hq8sgV]/d87Mir!™ nRdgV'8\!M;̌MmNkSb 7]ڛ KBz[&ㅴהn΅,΅mI4 mq)%^T.Zm8BmiaԶ!-NQk[P(-NQi[ 6{Lc_\Jmq1Uթ@c[%Hlkq@(lvXl" SYq!kں0/BqmE@JmmQJf/W&)tE,VN(SV[TSTg$JjK!53mnok&TBM81͎B˃$BJ[R i?̹/PўညTB?cL#%4_=M/.祀S?3%ꙙ -iΖ)HgdBeYL[L@x|ȟt| {l}jN!y433A2C $1Cېύ?Ifq $ȩWې gU BH`,9UX ~~$3!@1 &  N N`G B-mG ~IfnMX@ @QPR @@.{0HǓ,۸>$~& %0& #(dn @/f@m,>6LX! 0;HΏ6f qYsx}H4H_6mG{IfHR}m'nC ϘYp)\?Lkn >c)qďs?s2'x{̮@6;kkgJf(E jo?;${y@}Vpz [úOMt%ր%j@skE{[__a&ٟ__%ٟ_]Ge c%%y<{a pD姦>ӭޠޠ}[sa=>߿ĉJũ^C#VT[Q?WR_e/)JiƟUU Kl#,4~BY\J!@IBEᔏBܖAhRЏnG j[~(ѺI~(S?Z)2p4u$FHi\HQ!:nc#5E~#ҏGd,Gs%[E*$n}KCD_PBZ: $!-iFvN-.ĉjH~ߐ "E?b"8PViU$p"jI{:8K$ pV#㊪JE3NT}4pt0iJxV5OU)Rp5@*8v),AwYMTmq<~RF' LK~=xM L=Y~:)6V5تFn۞1 pDSL8j; M{*KS $8$H)7Bo'p>I$^ה%ړ(rkΚ(2\,' BLd0`*.'p{E&"ܱC(RNUE "E.$ E(Q'*G(2A(b"+P(2Up~&"X*Bd"pz8 E)(RT@/" U"\](2Z EE_(ުF"EЅ(pRAz#D*LPW(r3=&LQDPh$, PSѭjm%ShE נ"bͭj$EHaPS' Pd:P @(R*O)IQ0t ERȥB0@5$76@+w8"9HTJPe֬4Q& DLj4Q~-}LJ4Q.uiL=MTo34Q.i@=Mԧ4Q&DmL4Q&DYzJ"tR&JDEz(HOi]&D1zEOi=M@z(COUi=MԠ4Q.i~`= endstream endobj 93 0 obj << /CreationDate (D:20220412230522) /ModDate (D:20220412230522) /Title (R Graphics Output) /Producer (R 4.2.0) /Creator (R) >> endobj 94 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 97 0 R >> endobj 95 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold /Encoding 97 0 R >> endobj 96 0 obj [/ICCBased 98 0 R] endobj 97 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 98 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 90 0 obj << /Font << /F16 8 0 R /F42 14 0 R /F15 12 0 R /F60 83 0 R /F23 25 0 R /F26 26 0 R /F20 22 0 R /F59 15 0 R /F43 24 0 R /F41 11 0 R >> /XObject << /Im7 89 0 R >> /ProcSet [ /PDF /Text ] >> endobj 102 0 obj << /Length 777 /Filter /FlateDecode >> stream xڥUmk0_a ŪNd{lv]acd~Pe_'Yr@#4tw=I\ήiF. XnfE\Cp4n^K+1|oB}#Ak=qDx(w9h~vP36ߤKVdAq 5\cI^Q>g= {TsM}/{n&vk_1 AL2"ܠ(@c$J֔q^ClJw8.;Ђ!zJ$Ӕ] \r"$ʹ#Sx Dena9-d(1sAYf(O1NGh:WL^_1pU]˟[d(FzN66_f+Z]^,ZH譳otV.5=,lLaOwʶI:'v7,?,`-$sڭ\r,`HA4"n} :9BD曈 ؂njm]WRAٹ 1,E&F6DŽ endstream endobj 101 0 obj << /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [0 0 595.276 841.89] /Parent 65 0 R >> endobj 99 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./Multivariate_Extremes-029.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 103 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 104 0 R>> /ExtGState << >>/ColorSpace << /sRGB 105 0 R >>>> /Length 2273 /Filter /FlateDecode >> stream xKWRZ&Y|n$3daxaKHHvA}ΩɅ/43|t^H㟗7Ƿwbۿ⯽Wt _.MBGPCqɸB$1|wO-̵mBƞC\n{L4O؍aͽᣏ/_>á8R>`?L CϏuۋSN'#.:|}j9Hyz|1Cڟ 0PSR"8N \BqRkmBd^'' 1 & #3< & a^F'ر6/>jGS\7TH2r&Jg ˳侽쾹\>M_^Im~v)bl=YtB_ï˛78P5\?>?o?=:_pO]!%Ӗ<';ʇ?W d6q'j6 ,ME[(x)HQhG-)fSCy3 3sv5Q *Pb FOՀ&Aа~U?n%fT=Y\?u6ue譪' : <[^5ZS=Y,69:^ Xjض\G2=/jgC]g4zdy _=4 CiD#3fP Bhšyg1bN/HO=DU?#^t2B$dg[9_jd|StړQJZi$i示J]-ىb̈7RUPjQé5rcP]A ˮ {WH#Qdô8˪6!tq2$v]Df">B&Ϛ \?7|V|j/❒GH|z/U҃LFՈ7;@٪ĠE/qV=7ٴ^x<ILT/uESTc#%j?bdZ%MezGCu絊o#1lUϥ' z^Jݴ1]Fck|6$gPwdُC;u58P(pہn9 F-P Zg (𬖤F 0,m@]`(q 9ڭ`OkA@A_@Pp;0{(v^Js_@!v,m@a^ (K-(~Wek'P0 ( 7 (ZA@a] (7687T7,m@Yڀw7 ځ{FۀB{^x׆pZ= (uZ>@YڀX (x vÁm:PK܀Ҫ;P`F.PځJv:R^Oo (UOP(컲ei W@[wۀ( k'PPְ(^N  Ң (@AԺEvw7 M TeЁ2x9Pfv$p! ˶ ( Pؖ pwwyO6 ppt/.(eH55y?d8~[~ތ798}aoԃ6" lϺuCpl!LcS8cz;8$Me 5:DspM!ojAyCR ¨e 0ٛC VplZA]6pCrm4ۛ͟~)8x>c >;(ܿ~3P8M c ϵCM |^ As^) Oi !"Vp5v7pXjZ4Yc4_FZ8߲Afo6o9Af=).pf#m`~ڛ;> endobj 104 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 106 0 R >> endobj 105 0 obj [/ICCBased 107 0 R] endobj 106 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 107 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 100 0 obj << /Font << /F59 15 0 R /F41 11 0 R /F16 8 0 R /F42 14 0 R >> /XObject << /Im8 99 0 R >> /ProcSet [ /PDF /Text ] >> endobj 110 0 obj << /Length 855 /Filter /FlateDecode >> stream xڍUMO0+rt$qol T\ʶUUzf(3vړxx::9W,JeDˬȬ.(3.[mdYU{ߕd5<9&:8ưl!9N_uu’8_Ha%M6_[?uiGt6~ A2lp*/zri&SS5l\QʽʡjCH{dz?CkNҒ|iĒl1f]pIJ>>mϡhs>PJU_B+L1{!## )r ,#4>&  rf'+<́s FPqmis\@7fCNqo}\ݵ]L[5Zs O>ܐ#X6eW=cRiʄ%lh%)qŮFNT )rrt -N4q)Sz(i"QR@6R]*e=M)(몹 c ٢ꡊ`C]Tl)OQKOO¬#_Ҙ4ZdcC]al9-pA2e60DKj'E".V*'e{&+^Al2ꍓ* =)SSc--~iʚ'7ozu)bBE¸+x3 yjxAMOΉ۞0 ibT+trX8r)DbۈpG7-1>71;CȜ0! (T enUBPc KY}.JצtA)&C<:[1 endstream endobj 109 0 obj << /Type /Page /Contents 110 0 R /Resources 108 0 R /MediaBox [0 0 595.276 841.89] /Parent 65 0 R >> endobj 108 0 obj << /Font << /F40 10 0 R /F16 8 0 R /F60 83 0 R /F38 9 0 R >> /ProcSet [ /PDF /Text ] >> endobj 111 0 obj << /Length 97 /Filter /FlateDecode >> stream x3233W0P04F )\\ %D89ɓK?\KDx*r;8+r(D*ry(177@:.WO@.t endstream endobj 112 0 obj << /Length 125 /Filter /FlateDecode >> stream x3233W0P04F Ɩ )\\ A,ɥ`hΥU()*Mw pV0wQ6T0tQ`c`g`C B`P߀bv 'W 4"m endstream endobj 113 0 obj << /Length 231 /Filter /FlateDecode >> stream xUj1,{Xͮq`-zOQp|OAL&1d&D STT9n2 W6N]LJ+3 9Y`rK[fD1t#擩kD]=˜!b-̝D;y49r q&l5=)9љ?Ƙvk oGipH endstream endobj 114 0 obj << /Length 265 /Filter /FlateDecode >> stream xmN@ ]e@GK H01NPshy> stream xmAK0v "ws=zA> stream x}ϱ P+Yz> stream xmбN@lA2 o  \Ug3D+ cmGQxJ ?lLNH;;3[W-\ Aח!NGvb掿>(?_sIJ.99UOP"~bGBN+Jq]yC9÷sPKi13aHwn\0fQ˧C_Nj0'It\WZ.7q走ut35rr-t09Ŵ(֞)d6馡 endstream endobj 118 0 obj << /Length 271 /Filter /FlateDecode >> stream xuѱJ@ )So`4y),J--죥5nBn ^|3EE%5tpDcz4rK,.d^_X]QŚn;l'm s2o>ӧ_BI` .¨$^I-Od# r?« k112Oh/ݎ7ͬl$cNt{sE {;샎Q->@ue'w 5Ig[/ck endstream endobj 119 0 obj << /Length 223 /Filter /FlateDecode >> stream x}ѽ@YR H2O&z‚` ᮺBTGˣ,-$ln [nfm)$6Q6fcۗ=sf(9k endstream endobj 120 0 obj << /Length 219 /Filter /FlateDecode >> stream xMͽPR2/&`F0nX`!ZZW|+>m,IDLsLج'F< hIH>3̩ˍɋx~X}Iј>{VtVpM\<Ȑ(뎎VRt5DXl㍕!=*%i+m&W'I֘6qE׎s m ] endstream endobj 121 0 obj << /Length 191 /Filter /FlateDecode >> stream xm= P ,dھ ҂V8PZ֣ot(j/䃄=4@ |tQ(̀N'fox6ْۑjR(K*mѱ9TՇb(5('ʎEZnBS?@_L=lV$p03Z!:p endstream endobj 122 0 obj << /Length 255 /Filter /FlateDecode >> stream xMбN02D%{H-BK+" &H@b@My%>XPo'm_.]-#9-Z=/*Ok..\E}*OϷ\Lώՙ\3!(I[G#4bM>Z|#gEcC!!Qnh# 7.7Y =*bZSYZRji([!#>mL5?Iu endstream endobj 123 0 obj << /Length 194 /Filter /FlateDecode >> stream xu= @෤ B. f.%i`0XB-GR#V2M3%cl4 '.k4LӜ-ǚ+]'KΰS>g W Bxjz R_5A"EYՔ֯KUJ9'"}hP^"mOނhӆqD endstream endobj 124 0 obj << /Length 222 /Filter /FlateDecode >> stream xڥϻ 0Yb hz 8A>Bbi` .f$wkj m,{XvXq |WnX1.Yo : 8qОBE&׎0R<xZJNC:qP&z 8g!MOya9KKyR2{Gt;'3#N)-Z"&ga֣jHb endstream endobj 125 0 obj << /Length 231 /Filter /FlateDecode >> stream xEбJ@ )o^@7%@2Kɬ){Oh˗O,+{2 -_^uD) x A4W3fn endstream endobj 126 0 obj << /Length 199 /Filter /FlateDecode >> stream x3233W0P0W5T06P03PH1*22 \.'O.p##.}0BIQi*Sm`P~"A v>rd  @[ DȂX??PFPf j`og`j@B endstream endobj 127 0 obj << /Length 253 /Filter /FlateDecode >> stream xEJ0 9/ f^@u=Ƀx((l}fu%;|fy~I3YJ3ڤ0Y?@sOEs1>,VWYCJG,~ȉ.&H2:&`D1[ %[(ŧA68p${O%/OzC~> stream xڍ= @b?BbSZYZ * !h%GHi;UHF$iBCE:(+jIh ŖD45lE"YIHiH1K 5*|d3*jXS3ϩؿVCۃ@gy g p?eHn endstream endobj 129 0 obj << /Length 272 /Filter /FlateDecode >> stream x]ϽJ@R Ly/I0nRH +VQ$⋍o22Epatߜ9Mӄ"J c$W)%s(ץ ic ){C71EܐӢhPwv\|u곅h::CEݢQO 0@5e|a9vsm|.vn ;{\PfnjcnŇ9, rQ{E.|k F9ߪx5<+!D endstream endobj 130 0 obj << /Length 228 /Filter /FlateDecode >> stream xMϱJAYX"л B ^BR%B 17[da+ͿvaդB&rYx$Mok֯<88ǘj)/ny!hBTYMU̍mh` taMC;N{y⹪MjR<7kR;ugH [ ?i}ĂzG7lVxBfeI']ŏ|[ endstream endobj 131 0 obj << /Length 201 /Filter /FlateDecode >> stream xMο P# ·{RI+!!-GQ|GɎVs|''z:ӱA'_2 zߓETܝNCqWMz=&r=?:HPUO) pr]X5rT$GpʬLvCO" &q"Lǰ E`/^ ,SGOt endstream endobj 132 0 obj << /Length 250 /Filter /FlateDecode >> stream xM1J@?LxM. ;s&K% +T$ 9!eM6&WOo.wdJo^I4ͦvJ_F}~|PT {UT : X}g6ll[aq07ӈmֲl9)@O,GI .H6Zij8r䤻E/#F/[-=~1gutGO*1s endstream endobj 133 0 obj << /Length 189 /Filter /FlateDecode >> stream xU1 07 .IiB`A'qRGh=JѡT8 '8PJ\ NR~r|q| o xc E( iIΨ,Y)3TLT?گʬ"!X^4[C`R;0KտP/? endstream endobj 134 0 obj << /Length 196 /Filter /FlateDecode >> stream x-1 @пXSd. )"*BBRPQ$GQr-SflCy9JxAӅ"-ːG?QQHS5ْot5ege3hW <LD(_O5z Ne)Q ( ?e&"L! U;/ѠU˳x#4hMHH; endstream endobj 135 0 obj << /Length 185 /Filter /FlateDecode >> stream xڕ1 @ )B@Tp A+ RKAEJh9JB5&{yJ1eԕJi+0&fFDrB|PIcZIר^7S[SYc{ۚqyZ|gVa,+;P?a]MʼnJ endstream endobj 136 0 obj << /Length 225 /Filter /FlateDecode >> stream xeJ0&/@X* iI(TQ詛Gˣra)]T8{.8sf[2O^Y93m:vPu=ݘ=UKu[ETVGiJ ZQ-SEP?^:P,_.~ 0;s=8QVd =J0LEL* iPP7 H:2UGwI< endstream endobj 137 0 obj << /Length 258 /Filter /FlateDecode >> stream xUJ@?aaJw^@h9ԃxRJy9Φ)[gvdZrS>NK8O1W &|Z[4)^rVP|-u~xxv{)sK9zXv@,‘n'Xp#P4{1v[lkzl~Ā*?ۀGIDVՏiaL1`t1 y,\1]IW5-Kk` endstream endobj 83 0 obj << /Type /Font /Subtype /Type3 /Name /F60 /FontMatrix [0.011 0 0 0.011 0 0] /FontBBox [ -3 -19 75 65 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 46 /LastChar 121 /Widths 138 0 R /Encoding 139 0 R /CharProcs 140 0 R >> endobj 138 0 obj [27.67 0 0 0 0 0 0 0 0 0 0 0 27.67 0 0 0 0 0 0 67.01 63.47 0 0 61.16 0 0 0 0 47.34 0 0 0 0 0 0 0 65.77 50.71 64.53 0 0 0 0 0 0 0 0 0 0 0 0 46.1 0 41.49 46.1 41.49 27.67 0 46.1 27.67 0 41.49 23.06 73.74 50.71 46.1 46.1 0 38.04 36.88 29.97 0 0 0 41.49 43.79 ] endobj 139 0 obj << /Type /Encoding /Differences [46/a46 47/.notdef 58/a58 59/.notdef 65/a65/a66 67/.notdef 69/a69 70/.notdef 74/a74 75/.notdef 82/a82/a83/a84 85/.notdef 97/a97 98/.notdef 99/a99/a100/a101/a102 103/.notdef 104/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116 117/.notdef 120/a120/a121] >> endobj 140 0 obj << /a46 111 0 R /a58 112 0 R /a65 113 0 R /a66 114 0 R /a69 115 0 R /a74 116 0 R /a82 117 0 R /a83 118 0 R /a84 119 0 R /a97 120 0 R /a99 121 0 R /a100 122 0 R /a101 123 0 R /a102 124 0 R /a104 125 0 R /a105 126 0 R /a107 127 0 R /a108 128 0 R /a109 129 0 R /a110 130 0 R /a111 131 0 R /a112 132 0 R /a114 133 0 R /a115 134 0 R /a116 135 0 R /a120 136 0 R /a121 137 0 R >> endobj 141 0 obj [799.4] endobj 142 0 obj [399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4] endobj 143 0 obj [639.4 477.1 609.5 852.5 529.4 374.4 671.1 1027.8 1027.8 1027.8 1027.8 285.5 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 799.4 513.9 799.4 513.9 543.7 770.7 777.7] endobj 144 0 obj [511.6] endobj 145 0 obj [826.4 295.1 826.4 531.3 826.4 531.3 826.4 826.4 826.4 826.4 826.4 826.4 826.4 1062.5 531.3 531.3 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 826.4 1062.5 1062.5 826.4 826.4 1062.5 1062.5] endobj 146 0 obj [467 610.1 544.1 607.2 471.5 576.4 631.6 659.7 694.5 660.7 490.6 632.1 882.1 544.1 388.9 692.4 1062.5 1062.5 1062.5 1062.5 295.1 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3 383.7 615.2] endobj 147 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500] endobj 148 0 obj [736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750] endobj 149 0 obj [413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3] endobj 150 0 obj << /Length 128 /Filter /FlateDecode >> stream x-A AOSԗ03;vZeQ!?_ \?U`ٚSq{iFJ[m^XkIߴH. c!(p \E' endstream endobj 151 0 obj << /Length 90 /Filter /FlateDecode >> stream x3236V0P0bCS CB. &r9yr+Xp{O_T.}gC.}hCX.O@Pgj* endstream endobj 152 0 obj << /Length 158 /Filter /FlateDecode >> stream x3133S0P0b#ScCB.rAɹ\N\ &\@Q.}O_T.}gC.}hX.O 000c`? $l: `$H $n@@<bu endstream endobj 153 0 obj << /Length 160 /Filter /FlateDecode >> stream x31ѳP0P0bKScCB.s I$r9yr+s{E=}JJS ]*c<]?``6 c@?* p%AՓ+ Z endstream endobj 154 0 obj << /Length 174 /Filter /FlateDecode >> stream x3532S0P0bS 2TH1*2 \.'O.p3.}(BIQi*Sm` 0I~0D2" dV$H90Y$FBajuAI R\YD~L2Ip$'W zxk endstream endobj 155 0 obj << /Length 155 /Filter /FlateDecode >> stream x3534R0P0bsSCCB.1s<L=\ %E\N @BA,h@&00o``dF"H\dB2I$LL K2PF2C#\=*kC endstream endobj 156 0 obj << /Length 242 /Filter /FlateDecode >> stream xڥ1j@/\_@@"ɪT)B$eHGQ|*Yiee?Kf'3v{L\*Ä74/)~eR$c7_ϟY ~7T.0PM$.YE^-n@ rG 'r[dw!g"Q+a$S=М؊d( ͠FѴCv!OrkmA-Kz#n endstream endobj 157 0 obj << /Length 102 /Filter /FlateDecode >> stream x3237R0Pc3SCCB.#c I$r9yr+s{E=}JJS|hCX.OAnՓ+ @P3 endstream endobj 158 0 obj << /Length 145 /Filter /FlateDecode >> stream x3531S0P0bS#SCCB. I$r9yr+Xp{E=}JJS|hCX.O@l`]+|2D=Ɍd C$Brzrrb endstream endobj 159 0 obj << /Length 179 /Filter /FlateDecode >> stream x= @,Ӥ2sMd!#BBA-h9J"d*gTόfʚClFl>t#3P\SR[ H-qI9&lm~8L%~t t+ /CGpsw x衩lQ٬))m V\. endstream endobj 160 0 obj << /Length 229 /Filter /FlateDecode >> stream xmJ1Y ڃyJԞ ASPPB=7Giߠ˂e$l^0u\XV'[ +P>g_?|‹%Uv>^^ X(# Z A tHtޓvG\D4+sסE#tw:"; ד6g@}u M+z?Y endstream endobj 161 0 obj << /Length 188 /Filter /FlateDecode >> stream xm= @O,iraP hSZYZZ(Zg;$@:xwfL܎Æ[!Měd(ެw4H/dOz"t6%=8$2Ί[o@`K ( 5/ .P/ Eu% WV]6d<3SQ endstream endobj 162 0 obj << /Length 186 /Filter /FlateDecode >> stream x3133S0P0R5T01P05RH1*26 \.'O.pcs.}0BIQi*S!BA,;`a$?``|w: 0@ &~L b<"o@ga`nn:4z.WO@.d endstream endobj 163 0 obj << /Length 174 /Filter /FlateDecode >> stream xڍͱ 0[:խ4ISNZN⤎O˧2:5Er߽> stream xڥα@ .8%7`A+f(<EHh mӿQ8M HЄSRҁEj=ٟ0S6$Rd Ft܎ȲՌ8@/~/^kڠ} N5N:W& fOi),ϟ)pQ#mx^1ھo$\_XEq endstream endobj 165 0 obj << /Length 180 /Filter /FlateDecode >> stream x]1@G(H֎. h"AL0Xmq=–\ky5C+Bb>)Qp4] ;+Ik~ܟgfd{!4PW ׈Ӣ홾pLUAu_-U R`kE@4z1nв-}@ endstream endobj 166 0 obj << /Length 143 /Filter /FlateDecode >> stream x3231W0P0b# ScCB.#3 I$r9yr+q{E=}JJS ]*c<]00g`go`?P#IpL^r0Փ+ QK endstream endobj 167 0 obj << /Length 235 /Filter /FlateDecode >> stream xuJ@baĝ$.p` A+ J--Mk)Sg;KQuʵ՜*z:uK>'ZTܚKS^#s*.Ԯ@.BOCܶKxBb&'hcLi`_`/p`B1ANGKl`iMB.ɒ&)yc e6j4Lt }PW endstream endobj 168 0 obj << /Length 152 /Filter /FlateDecode >> stream x3133S0P0bCS#CB.c I$r9yr+[p{E=}JJS ]  b<]?000G%A3@?700gc`"0CpM  Apzrr^ endstream endobj 169 0 obj << /Length 116 /Filter /FlateDecode >> stream x3236V0P0bCKSCCB.C3 I$r9yr+q{E=}JJS|hCX.O {??`'\\\> stream xڭ= @ )s7?&h%+TM"9B!4jơ׋B89 xӑXj%=%%1f|>]v})|֔lJ)bˠQ V0 ^Ѐ*T7tGX붻Hq9 7AJܘ)?$ͣkC endstream endobj 171 0 obj << /Length 103 /Filter /FlateDecode >> stream x3236V0P0bCKS#CB.C3 I$r9yr+q{E=}JJS ]  b<]C4'W F endstream endobj 172 0 obj << /Length 171 /Filter /FlateDecode >> stream x33Q0P0b3cccCB.3rAɹ\N\ f\@Q.}O_T.}gC.}hCX.O30P3>70~```o}A`?L`o4?4'W Yz0 endstream endobj 173 0 obj << /Length 142 /Filter /FlateDecode >> stream x3133S0P0bCccCB.c I$r9yr+[p{E=}JJS ]  b<]?`0P`%~4%07Ls endstream endobj 174 0 obj << /Length 178 /Filter /FlateDecode >> stream xڍ1 @DgXM@Vbvr%GH"k+lpc,SO1]Iĉ; e̎EȬLƮ~{ddr H_]XB5 R5t%Z# p/xZX(!T*ﳔ= endstream endobj 175 0 obj << /Length 189 /Filter /FlateDecode >> stream xڕαP?9CxVٚP&0+f}>•и.!a|?QKGZAW"_P8ԗ>> stream xڕ;@Pl2 7BBGVJ--4Z 8D@IAāh7ɼ@OBC )Ch"j hĢڐP-.zQ%RwhSY;q+ZWhd% p+2xˇ/䖢pN-9 VL/Y]۵E endstream endobj 177 0 obj << /Length 132 /Filter /FlateDecode >> stream x3630Q0P0b# ccCB.#3 I$r9yr+q{E=}JJS ]*c<]0?70``@\\\`d@. endstream endobj 178 0 obj << /Length 187 /Filter /FlateDecode >> stream x== @WE\@\@7P),J--t٣Ao!׼7BNaHGFfwqBj:"5Tz 5^N8 5M):h<bmD|?5kb-_+k"69<;ŗldF Oa3%VZ@U endstream endobj 179 0 obj << /Length 142 /Filter /FlateDecode >> stream x3Գ0S0P0T5T02S01SH1*22 (Cds<L=\ %E\N \. ц \.  (>#1`` 0bq vl@NA.WO@.0> endstream endobj 180 0 obj << /Length 144 /Filter /FlateDecode >> stream x3133S0P0R5T01T06VH1*2 (@ds<-=\ %E\N \. ц \. D`gKДG%30~0PnA`aicG endstream endobj 181 0 obj << /Length 178 /Filter /FlateDecode >> stream xM̻ @BnV+A#Z *zy3!bEH`4_LK6ۚ%PC^+ړ(YRߐLŒx8mH'V$"+ 2g2#]}:> stream x3531S0P0T5T05Q06RH1*25 (Cds<L=\ %E\N \. ц \. ob9 ?d@ aS,2 T5J5){f %~Ac 0?fSP;b|PA1Փ+ >\YQ endstream endobj 183 0 obj << /Length 198 /Filter /FlateDecode >> stream xE; @``r9` A+ RK!xXYLd؏IV'#yIqWm)NP/#=8%=t6&ݛ9"=L.(-P38G toOy qR`]bMqkl*)B!Wre4hJ_`Jr endstream endobj 184 0 obj << /Length 213 /Filter /FlateDecode >> stream xUαjA8`n^ ]רƀWI"ZT X}}qn/;˚ ߘ{^Z˪;Nw^Ie'ULxX>?!57zJňn_}ZpUm[ 4Ⱦ\(G?BrH]39|$.pJiU;B@O>F endstream endobj 185 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍM 0ԭ sZ,]AP7JWMt50LM{6ܗ#&OBJ6h쎔9+LnI9߮l1a96r9{* m7KP<@B)0 *P /"H[PGĕ,:ZoS endstream endobj 17 0 obj << /Type /Font /Subtype /Type3 /Name /F48 /FontMatrix [0.01338 0 0 0.01338 0 0] /FontBBox [ 1 -17 63 53 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 27 /LastChar 121 /Widths 186 0 R /Encoding 187 0 R /CharProcs 188 0 R >> endobj 186 0 obj [44.8 42.66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21.33 0 21.33 0 0 0 0 0 38.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52.26 50.12 60.26 0 27.72 0 0 0 0 0 0 0 0 0 0 55.46 57.59 57.59 0 0 0 0 0 0 0 0 0 0 38.4 42.66 34.13 42.66 34.16 23.47 38.4 42.66 21.33 0 40.53 21.33 64 42.66 38.4 42.66 40.53 30.04 30.29 29.86 42.66 40.53 55.46 40.53 40.53 ] endobj 187 0 obj << /Type /Encoding /Differences [27/a27/a28 29/.notdef 44/a44 45/.notdef 46/a46 47/.notdef 52/a52 53/.notdef 69/a69/a70/a71 72/.notdef 73/a73 74/.notdef 84/a84/a85/a86 87/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 188 0 obj << /a27 153 0 R /a28 152 0 R /a44 150 0 R /a46 151 0 R /a52 185 0 R /a69 154 0 R /a70 155 0 R /a71 156 0 R /a73 157 0 R /a84 158 0 R /a85 159 0 R /a86 160 0 R /a97 161 0 R /a98 162 0 R /a99 163 0 R /a100 164 0 R /a101 165 0 R /a102 166 0 R /a103 167 0 R /a104 168 0 R /a105 169 0 R /a107 170 0 R /a108 171 0 R /a109 172 0 R /a110 173 0 R /a111 174 0 R /a112 175 0 R /a113 176 0 R /a114 177 0 R /a115 178 0 R /a116 179 0 R /a117 180 0 R /a118 181 0 R /a119 182 0 R /a120 183 0 R /a121 184 0 R >> endobj 189 0 obj << /Length 114 /Filter /FlateDecode >> stream x3631Q0P0b#SccCB.C I$r9yr+Zp{E=}JJS ]  b<]00>``O0ZՓ+ V4q endstream endobj 190 0 obj << /Length 171 /Filter /FlateDecode >> stream xɱ 0+ ?D'0iZM ftrC>Z1C 6wrZ,G8уā"Vz˯J-9#cDzŁEqʰ10;- 0q#1™3Zkg6T endstream endobj 191 0 obj << /Length 170 /Filter /FlateDecode >> stream x-1 0t{wMtB`A'utP:֣3jox?> stream xM1 @D'`ࣽ?B+!Fp Ab!j)r4o2$X8)fIj7Φꃞ$k;v8^$bJ͂Uӊk}ܟg1fNL;v/P"w$cf :ޠBR!e}ƈ1dXƕFOy ([=9 endstream endobj 193 0 obj << /Length 166 /Filter /FlateDecode >> stream xUɽ 0@ wr,(}/\ B}>J!c&cP1rl-I4R'd P%= -ib2jE\HNc5>Ȃy-CRL &ЄC827e, 721 endstream endobj 16 0 obj << /Type /Font /Subtype /Type3 /Name /F58 /FontMatrix [0.02007 0 0 0.02007 0 0] /FontBBox [ 3 -1 28 34 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 49 /LastChar 53 /Widths 194 0 R /Encoding 195 0 R /CharProcs 196 0 R >> endobj 194 0 obj [30.44 30.44 30.44 30.44 30.44 ] endobj 195 0 obj << /Type /Encoding /Differences [49/a49/a50/a51/a52/a53] >> endobj 196 0 obj << /a49 189 0 R /a50 190 0 R /a51 191 0 R /a52 192 0 R /a53 193 0 R >> endobj 197 0 obj << /Length 211 /Filter /FlateDecode >> stream xڕ1 ` S Yzs[-*T;:9::(GR}?( {I^kJd3JҗmYtCDN9,gLgt> stream xڝ= P_H&Gp/TVb]r#XZYbi4$18 0Gg|'e9r&Xr;fw[9+[)5<_JYh0hAJVzƒ5/M[ߗGr:c#Mm'rIT2f6}]]b}[q7S3 endstream endobj 199 0 obj << /Length 183 /Filter /FlateDecode >> stream xڝ1 @E'(%1[ZYZZ(Zǣy2EpQcz? xL"M1KvO;bjQ)QY TrJUFCz6#LO-AGЯyp{w?~;W4zRB.cRHU}{3'h,$EH2 endstream endobj 200 0 obj << /Length 174 /Filter /FlateDecode >> stream xڥ1 1EW,i ʺ),J--=G#|yf\pʎ]{ A) X~ƧyG:ْ.xe٬9A^ok)Ȑr _6| PcGԾ?1F>w=F$ ӂ޳I endstream endobj 201 0 obj << /Length 171 /Filter /FlateDecode >> stream x31ӳP0P0PеP05Q03VH1*26(Bs<M=\ %E\N @BA,N؃$0z8Q'`& >`& `G${ ?Qr `E endstream endobj 202 0 obj << /Length 171 /Filter /FlateDecode >> stream x}1 @ a!s51VBVbnY-DM(HgjxD1alT+ Q9O=|1!w)ڠ) B T{@6\% .:Z@ Z|ae_U/b endstream endobj 203 0 obj << /Length 146 /Filter /FlateDecode >> stream x31ӳP0P04UеP01T03VH1*22(Bs<L=\ %E\N @BA,B$p=p< ``Ga32Ã2 bv.WO@.F endstream endobj 204 0 obj << /Length 156 /Filter /FlateDecode >> stream x31ӳP0PP0W0T0PH1*21PACDr.'~PKW4K)YwQ6T0tQ```gqHȃ=`Aԃ: ?Ŀ0 ԡ`L|E<Փ+ G` endstream endobj 205 0 obj << /Length 143 /Filter /FlateDecode >> stream x=1 @wn^Xbhi(m,-q#(|cYj9֌YJUT΢yךTN̖Y ƭx܎b*N7qDoRp, endstream endobj 206 0 obj << /Length 99 /Filter /FlateDecode >> stream x31ӳP0P0Ɔ )\\@$lIr p{IO_T.}g E!'E@!ncr h endstream endobj 207 0 obj << /Length 176 /Filter /FlateDecode >> stream x31ӳP0P0QеP05R03VH1*21 (Bds<L̹=\ %E\N @BA,ȀI;0Y&!H? d" H`Dڃzd afaX>1 ;0"<Ȏx<1LZI.WO@.Ls endstream endobj 208 0 obj << /Length 127 /Filter /FlateDecode >> stream x31ӳP0P0f Ɩ )\\f@ IrW04 s{*r;8+r(D*ry(0` 0~` A9.WO@.{a* endstream endobj 209 0 obj << /Length 167 /Filter /FlateDecode >> stream xڝ1 @EL f*#X`9GRZID~L1uQQMg Oï۟06jR ̒ۑT%okGd k³K(s~x=r䲅vͶaΤ 1 7 endstream endobj 210 0 obj << /Length 129 /Filter /FlateDecode >> stream x31ӳP0P0S04W05P0PH1*21 (Bds<L=\ %E\N @BA, `Ad"@j&3p? \\\I endstream endobj 211 0 obj << /Length 103 /Filter /FlateDecode >> stream x31ӳP0P04T04W01R02VH1*26PA3Lr.'~BIQi*S!BA,B?$ r \A(a endstream endobj 212 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0P04W06P01S05WH1*2(Cs<,=\ %E\N \. ц \. AA=ga{n@Cq `ar S< endstream endobj 213 0 obj << /Length 297 /Filter /FlateDecode >> stream x}J0 =Gh^@k +؃='A붏Vk"!tʲ(xI;-؜ùifvbkEsV6UuKՙ[ծ y<$GIf443yL/tQ:ۋ(]!5*:=t%I>Yl,P) HK . O@Kj7:3,E{o[JG]}ד}t2y1: s)`W+]^oe:oյ> endstream endobj 214 0 obj << /Length 193 /Filter /FlateDecode >> stream xe̽0[x "~- &2`A+Zl+ z1xK7}`|8CQ'p7.h nv7Z͐1nc!孅+ ݗД>!uBG3%9mM5F4V.կf֚RFiHk7e0)#W^a> endstream endobj 215 0 obj << /Length 219 /Filter /FlateDecode >> stream x}н @ H!KyZt;:9::(ZpCLrE>%ɋhH)#tyT?D@(rIfRfFی3'zj[Cp\; f[ k} H{wZI Nd;j<WJX2.&,iT !q^P endstream endobj 216 0 obj << /Length 194 /Filter /FlateDecode >> stream xuб @ H!KyնԩP+AAAQpGNA70i^4(]G 9˅ŊL(9O=l1EN 9A*lTS[lolnګtѩY|guU^emz'g'(Ieގ endstream endobj 217 0 obj << /Length 200 /Filter /FlateDecode >> stream xڅн 0+ ~`A, vtr'utPt5}4б&O Crɗ3)hX֮*ilEAl&Ws:.{dbB3D]$ p %X3'=íU6}C IB%:+Brm^CseB}]P8qOdz endstream endobj 218 0 obj << /Length 168 /Filter /FlateDecode >> stream x31ӳP0P0a3S3CB.C I$r9yr+r{E=}JJS. @-\. ?000+ e8Iv!#!d>B2#dn?`c XYc%e0pzrreT endstream endobj 219 0 obj << /Length 234 /Filter /FlateDecode >> stream x}бJA ,[ G.Νg5pVZZ(ډ;ba;$'XHglEQMaE%=!H4uB@)m=__S~Cۚ;l6-30sofs0GЩz*pR[3fK鯢ق:w#ĝhI;3Y:3]VKq4C;࿟y,mw%wfi_ x x endstream endobj 220 0 obj << /Length 262 /Filter /FlateDecode >> stream xu1N@E"4>Xq ,  * ()@ QaK\#Eg xyxԙ.rS/I9,/ݣkoK~<>H:Bn JQ 'PG>&f_S3 H#>%Xh:Y3ICE2%3ЁUmr88va;7;׫g*zɴ'H 8o3.7F>se弖k" endstream endobj 221 0 obj << /Length 183 /Filter /FlateDecode >> stream x31ӳP0PbSS3CB. I$r9yr+p{E=}JJS ]  b<]{u 1{ H2Y&|$#d>B&vFāj\= m endstream endobj 222 0 obj << /Length 222 /Filter /FlateDecode >> stream xmϱj03 |/m&CB=کCdА͏GK@כG)ŖRURղᴔv͇ۖ8lW96۷'lviv'Ncm6Qrő9n6S8iɷDEHȷDE5G%j`XI[B 6t OR%L@EaM-?ȀN endstream endobj 223 0 obj << /Length 219 /Filter /FlateDecode >> stream xMϱJ1"0>Bt7BBGˣ#\yŒYC_„kJςƵƠoA{]VyfIc/ݝ]Íqh H<YNW͌!#|i~8-v:Q,b#X}n}Hْj`O:Aom"jAk1xp3YvG-m endstream endobj 224 0 obj << /Length 235 /Filter /FlateDecode >> stream xu=N0\X&G\hVE"T+*D49# '@|{SYO7-մ-3.ư١m--Z.sUwE/oXmϩjG;vd)3v(&_*r) ԗ(G^KoNP=:F#Ȑb0caߨ``u`;}!A%gyY$ქ<K~ endstream endobj 225 0 obj << /Length 210 /Filter /FlateDecode >> stream xڅ1N048feH-AK|%G2amCEg[|w[>]r-;mzM[.NGxSӜpϟ_{ ۇv}a@ZJhD2Ȅ$2c4dvJuNͨ (p7Rij/M)vAm+uӿ@"S endstream endobj 226 0 obj << /Length 232 /Filter /FlateDecode >> stream xmαN@ `W"yG8DJS:TD$02ʚY%AC:d) MܜSE-ԬiSTk> stream xU1N1Ei|kBR[ AEQA h.SD;&O͟7+nykzeayH={ɏ#~@~  ,FI# $Hy!p9sP SlQ S]BS3O?9Cz 5I[lIݐ\N+*iD=ktSn'-o endstream endobj 228 0 obj << /Length 190 /Filter /FlateDecode >> stream x};@%$p.$1q ,ZZhQ8%aaD)e3&SKp4C g0GgԂޠ1mx܎ cncv`3TJyĨJ6$(r&;;/Xy9pED]Kv6}zκOY8ˏywf.'+yWana Oq endstream endobj 229 0 obj << /Length 286 /Filter /FlateDecode >> stream xuJ@g"0y!SZYZZ(]-rvABs.ovI{F%t\tZSSc/ش\-iYqaqKM%ױ 9UXl订 d ybR.aa cX"`?5̆o,, ߫0Ȅg_RPg)$.z4/@ciJKJʓnyA u%>@+ +0@:ɝs<#Nz3b:%^txۺ endstream endobj 230 0 obj << /Length 207 /Filter /FlateDecode >> stream x}; @49 SZYZZ(f=Z"xSg7 ?2Aɥ ^H[]McajIj*UTNp>"՘VkQrtaQ d,ɹu|--"1^JBR̉*z&v:N{X5gS\Uo.Nb\ endstream endobj 231 0 obj << /Length 168 /Filter /FlateDecode >> stream xڕʱ 0+[| LBI Njh}x&A Ifz9mPkcaP,IkSע03:;|L EI+Er$ 4./ @'PE \b<<Iya9PpbpO)T< endstream endobj 232 0 obj << /Length 210 /Filter /FlateDecode >> stream xڕ; @YRxtJ +P,x4#XZH 6.W 34yP#PKkwFzV[s #cQ':t@>!-| 䪧䟘L=̿;w3'EP+l7jӯi=|:s+b-SJ}e GrQ3|d endstream endobj 233 0 obj << /Length 221 /Filter /FlateDecode >> stream x}Ͻ 0C>B Zt vtr'utPtS,GB1EAA1$$wKҬ`[43\%4}r`^jijD1w5ޤ l. 0Nߚ`gTj*YO8:uȱqJꂽSyXND!uаڻ7ԗ:1D&/e6 xE3~0)<|] endstream endobj 234 0 obj << /Length 159 /Filter /FlateDecode >> stream x31ӳP0P0b#S3CB.cS I$r9yr+r{E=}JJS ]  b<]``Q"? ?8 8{0u L?` .WO@.R_^ endstream endobj 235 0 obj << /Length 177 /Filter /FlateDecode >> stream x}ʱ 0J-}{B(u* ftr'utPt+G#t< pwxb1?p dsԍaw\XL@y B-r@) -=/4mVgu𤆚N-.Ѧt+.Jf{m?FN3w!ct1]a`/B' endstream endobj 236 0 obj << /Length 190 /Filter /FlateDecode >> stream xm1 P ,jEB`A'qRGE>֣<;B|?Ns42!Mgohu۶՞Lj-)tC*.G'}4!r8FJp-27sX;+YJ>!PDhxհ#qʩe#\Y.D*~ps endstream endobj 237 0 obj << /Length 217 /Filter /FlateDecode >> stream xe=n0 ^ !Ȕt"YkMG4z0R :]ށ"ħ=,\'7O>i:aAOtL}eÞܖ[V($FFUG"@'C;MBMIU (5[resKMSCЩAgC4jFV"j"kJh+bo endstream endobj 238 0 obj << /Length 247 /Filter /FlateDecode >> stream xuпN0/`<JUeTD$02G#d|P,'?.n\uۚPk^kozETkToj/ ׯԭ 6~9H$؀BzF{baIu=L1;> stream xu=N0\D&G\eHHE"T+*Ak&\GR> stream x}= 0 kI NEzbIJS$.(qfc.1xIjsq$Uj"ۯ1)Fy#ҜN&"Yy 2$P5sΚʮTz)z@=qQg5椳[o }6 dcq endstream endobj 241 0 obj << /Length 222 /Filter /FlateDecode >> stream xm=N0_4{2lXҲH@j D (GQr.L(4~sr>p>ܟq q<> stream xuϽ@ ^H.1::htG K6idP@ 5E5^0PጙAKaRݮzNi)أ F8/nO+y\җ1DgiP->Ձan,Oz౽R0ʞ^ endstream endobj 243 0 obj << /Length 187 /Filter /FlateDecode >> stream xe=@!$p? b"VJ--4ں{4 Fiͼ$)%)]"c0;9߰jP(PlL񺢨v+Pt(> stream xM1 @'49(I F0X]09ZRY73las.O>t%ߓ1y8^(NIHdK*]87 vI%w9PpHZ..XM!/3(ѯz?Gh ź1n_*U JU@h ;0" cd:0&I˔dU~ endstream endobj 245 0 obj << /Length 204 /Filter /FlateDecode >> stream x]=Q+In$~SHB tˆB9;0f0;0A_r)*kUW*PFgD3gpQH)nQ]Z.VS^-:dmV{9muju*<5MfوݼoϽ=f<\?l@/!g"bf#~vOhr endstream endobj 246 0 obj << /Length 206 /Filter /FlateDecode >> stream xmͱ0# $'" b"NI4)h< бZ{upФMGlL%%c4g WfY endstream endobj 247 0 obj << /Length 232 /Filter /FlateDecode >> stream xMαn02 ݒG^:DSD$:u@LЪ:DGˣ=D1>$N}q2QDcMMtR1% '3̶{FܽBيԂ4570ze(mi_,h[i[s?v%| ϛ'a73UVWhvV۩~rk endstream endobj 248 0 obj << /Length 240 /Filter /FlateDecode >> stream xu=N0g4$TE"T Ah>E3ih>Kckf>y悟kzU+Ŋ7 :*yRy-e*~8P=?\=RgDnrT#t6"9!7:aJjT&M/?RȀޝDzN񈉳Ba(9duek!J $5Kf| !@W'}r endstream endobj 249 0 obj << /Length 179 /Filter /FlateDecode >> stream xm; @YL#8'p+U F0XٛQr)$㬈k ?S`O'QD4>&)"fwļD$E3\|=ɗS)bY LTUB3K2Pmr/*qOrZv_Ծ~bnJ\ \T endstream endobj 250 0 obj << /Length 244 /Filter /FlateDecode >> stream x]N0 @qK?j`Jc N'q@p%~J>a)ODiVkh)Y5a}[mpaxfV;x|ŰÖj?D˃yp̓gYYC;@!&_@b˔?ճGefoT8g~цv@Q6tozazkz4Ut_)ΔQMEјw>7x@ endstream endobj 251 0 obj << /Length 251 /Filter /FlateDecode >> stream xU=NPrai_{p,9TBpED hc-G\[+ό\]TЕ^ZVַB>,(.tYMY7?kYH~OYA~%_?*Սn9"F>= 3ڌvвb8cw?2gFGD=2;x)fNUSgf91.؝¹jvb4qsItag}@SC$<ؐ rȓew endstream endobj 252 0 obj << /Length 225 /Filter /FlateDecode >> stream xmJ@;d1p7y'pH6j f!ʅt.k|@MҢPgTRM)5ƨ{Sv׸eW3dJy$]rU %Z |+_HO`x|d b۸!AR4 wJQz{DAi@A>B?=1GLW#ٿEw8yO endstream endobj 253 0 obj << /Length 225 /Filter /FlateDecode >> stream xuбn09rOjJg{mT$ߛN[“ҀY $HI'xi%'c2D0#j|,| endstream endobj 254 0 obj << /Length 256 /Filter /FlateDecode >> stream x}1N0E'Jai#d.I,-D $(PR@p%%GH <=kiq'K+3yVV럗grs17?q>us"RQ#׉ DeLU걘E@H(補x@5dD#;D/D8cNl'"k3T{ 蕁 5BVnBolU)3PϿ59ዞo endstream endobj 255 0 obj << /Length 203 /Filter /FlateDecode >> stream xe @'<su5+! A:Dء(T=#x ڎI.%.c:J!Ҍg c[KWtO($v=MAWUUA` V`'ٛ%6K{*a xx_łiLj%ڷk4S/h;;--'p?![~ endstream endobj 256 0 obj << /Length 273 /Filter /FlateDecode >> stream xu1N@ Ef0$YejeHŊ ()@Вm#L"Nh7}?a/䪖 y lk-lGA~޹<>JIεT/ܞ( _UMND*NUX@@SHHk.MCQ3erѾ` fP#q$H9uKV{Dxn h> stream xmJ@D'l&$ +P5, eu/`%LszrJ%[9ieھئ4vyxΖTlJ^ߟl>ږ{^|P`TG . dCE Hf&&/ҫG\1!\6$E:ꢉА*-z kaOZKpS<9<;T"LM٧^Yѐ> /FirstChar 34 /LastChar 121 /Widths 258 0 R /Encoding 259 0 R /CharProcs 260 0 R >> endobj 258 0 obj [46.98 0 46.98 0 0 0 46.98 46.98 0 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 0 0 46.98 0 0 46.98 46.98 46.98 0 0 0 0 0 46.98 0 0 0 0 0 46.98 46.98 46.98 46.98 0 0 0 0 0 46.98 46.98 46.98 0 0 0 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 ] endobj 259 0 obj << /Type /Encoding /Differences [34/a34 35/.notdef 36/a36 37/.notdef 40/a40/a41 42/.notdef 43/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59/a60/a61/a62 63/.notdef 65/a65 66/.notdef 68/a68/a69/a70 71/.notdef 76/a76 77/.notdef 82/a82/a83/a84/a85 86/.notdef 91/a91/a92/a93 94/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 260 0 obj << /a34 212 0 R /a36 213 0 R /a40 197 0 R /a41 198 0 R /a43 204 0 R /a44 205 0 R /a45 211 0 R /a46 206 0 R /a47 207 0 R /a48 248 0 R /a49 249 0 R /a50 250 0 R /a51 251 0 R /a52 252 0 R /a53 253 0 R /a54 254 0 R /a55 255 0 R /a56 256 0 R /a57 257 0 R /a58 208 0 R /a59 209 0 R /a60 199 0 R /a61 210 0 R /a62 200 0 R /a65 214 0 R /a68 215 0 R /a69 216 0 R /a70 217 0 R /a76 218 0 R /a82 219 0 R /a83 220 0 R /a84 221 0 R /a85 222 0 R /a91 201 0 R /a92 203 0 R /a93 202 0 R /a97 223 0 R /a98 224 0 R /a99 225 0 R /a100 226 0 R /a101 227 0 R /a102 228 0 R /a103 229 0 R /a104 230 0 R /a105 231 0 R /a106 232 0 R /a107 233 0 R /a108 234 0 R /a109 235 0 R /a110 236 0 R /a111 237 0 R /a112 238 0 R /a113 239 0 R /a114 240 0 R /a115 241 0 R /a116 242 0 R /a117 243 0 R /a118 244 0 R /a119 245 0 R /a120 246 0 R /a121 247 0 R >> endobj 261 0 obj [496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 465] endobj 262 0 obj << /Length 116 /Filter /FlateDecode >> stream x3632W0P0bcCB.#c I$r9yr+s{E=}JJS ]  b<]xlj0ĦPqzrr- endstream endobj 263 0 obj << /Length 205 /Filter /FlateDecode >> stream xE=j@'T,La]Xs'XE``ra $ 60MG#L! !){LOp\db(^4oHo8HJye隷55ja1R[!rҸ%B~q@$X&JDꉜėa`&hЎzf}Ѳ5J# endstream endobj 264 0 obj << /Length 201 /Filter /FlateDecode >> stream xUαJ@_,8tIKB` A+ ʃS}fl}n4Lfn|HZh^Z̳{zډ)oՊj*up Q3X;#pC's0 s/ nRЉ~۞\%D~OIC endstream endobj 265 0 obj << /Length 169 /Filter /FlateDecode >> stream x}ͱ @ BP:w> stream xڅ= @,Ct/ \@7b* V"j)(X٣(9e 1؈̛ua}pr&,};zG̜ÄXd -t!/كcU*).rx7ZrYzq 6d[|.l!ViB\[©&QJ3z@ endstream endobj 13 0 obj << /Type /Font /Subtype /Type3 /Name /F47 /FontMatrix [0.01506 0 0 0.01506 0 0] /FontBBox [ 2 -1 33 45 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 49 /LastChar 53 /Widths 267 0 R /Encoding 268 0 R /CharProcs 269 0 R >> endobj 267 0 obj [35.27 35.27 35.27 35.27 35.27 ] endobj 268 0 obj << /Type /Encoding /Differences [49/a49/a50/a51/a52/a53] >> endobj 269 0 obj << /a49 262 0 R /a50 263 0 R /a51 264 0 R /a52 265 0 R /a53 266 0 R >> endobj 270 0 obj [500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8] endobj 271 0 obj << /Length 197 /Filter /FlateDecode >> stream xڍ `4w/Pj)MPԚ>#46_Gth =(TWC# |=yrϭ3;/ft싳^l,N+=u-',]ƠBR"/ w]OJ Hѐ4MJ0?_9.6վэ-iN͋eVL endstream endobj 272 0 obj << /Length 196 /Filter /FlateDecode >> stream xڍ= @ GbVbh%GH"/Vef Ʃj?8$C(gbg(X]r;fwPL@ | ~nF <z/@:Mrp\3]8[FihHOҙAHVxuO endstream endobj 273 0 obj << /Length 194 /Filter /FlateDecode >> stream xE10AH MR.@T@I< )) bex{6G9avὡũ4!H#8%5))z -lH1r-9 "HE H$;5ƚ2 @Ll)a7lI3G+lJ endstream endobj 274 0 obj << /Length 110 /Filter /FlateDecode >> stream x31ӳP0P0TеP01Q03VH1*22(Bs<L=\ %E\N @BA,BQ? C GG\\\0oy endstream endobj 275 0 obj << /Length 112 /Filter /FlateDecode >> stream x31ӳP0P0VеP0P03VH1*22 (Bds<L=\ %E\N @BA,B@ C \\\HB endstream endobj 276 0 obj << /Length 142 /Filter /FlateDecode >> stream x31ӳP0P04S54V06R04TH1*24 (s< M=\ %E\N \. ц \. ?aC??@P`4,r endstream endobj 277 0 obj << /Length 96 /Filter /FlateDecode >> stream x31ӳP0P0@P!Ő H(`\.'O.pU()*Mw pV]zb<]\= endstream endobj 278 0 obj << /Length 104 /Filter /FlateDecode >> stream x31ӳP0P0@dbUeh䃹`\.'O.pCC.}0BIQi*SPE!'EA0XA0Փ+ 9-I endstream endobj 279 0 obj << /Length 111 /Filter /FlateDecode >> stream x31ӳP0P0V04W01Q0PH1*21PA#CLr.'~PKW4K)YwQ6T0tQz ?*1pՓ+ JS endstream endobj 280 0 obj << /Length 102 /Filter /FlateDecode >> stream x31ӳP0PP04W0T02VH1*26PA3Dr.'~BIQi*S!BA,B?ĸ\=E:( endstream endobj 281 0 obj << /Length 118 /Filter /FlateDecode >> stream x31ӳP0P04P0"sSsCB.#39T*9ɓK?\ȌK(ΥPRTʥ`ȥm``P !\`߀ Apzrr]7 endstream endobj 282 0 obj << /Length 190 /Filter /FlateDecode >> stream x31ӳP0P0bSSsCB.1s<L=\ %E\N \. ц \. P߀ J2~~d|"N`%값 hL F'y,$33oAYՓ+ H06 endstream endobj 283 0 obj << /Length 230 /Filter /FlateDecode >> stream xڥбJ@/L i +PysQ%o镶={[r\/䶷\C#;"L E(JdG)23!_#2C[{GE{ʐ :Z2 fFb֘9e)QSFO?V2C鎾?9ru endstream endobj 284 0 obj << /Length 197 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.C I$r9yr+r{E=}JJS. @-\. 700& @Y4$)&?H L2A :0Y&q RbbH.C _@|A! HC, !݈I endstream endobj 285 0 obj << /Length 149 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.C I$r9yr+r{E=}JJS. @-\. $BփI uD6`D2JOĥj2|$(47Ae\=WD endstream endobj 286 0 obj << /Length 105 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.c# I$r9yr+q{E=}JJS ]  b<] 0 %\\\6Qg? endstream endobj 287 0 obj << /Length 201 /Filter /FlateDecode >> stream xڭ1 @4 \kP1),J--!9D,,T]S[̃3nQ*9zK5.sWj9!!qSdaV o,cP$nPPBz@Q(>Zll/5.K=&Mإ(o9)[-_m0v`fs8 endstream endobj 288 0 obj << /Length 184 /Filter /FlateDecode >> stream x͐=@XL #V &naRK (҂.C l}/N竌BJh&)^PF ] 厹Fq(Eu1 }C$QtQZۂgmJ9Հe 7Fд?oaF k ,|_F&h endstream endobj 289 0 obj << /Length 182 /Filter /FlateDecode >> stream xڭϱ 0H^{ӐZZ+AAA(}$]8N KM9&xg,\Od+ f.S0~ ,Ђ)qo19/"jB.P;UuDF 'aybhF4j-iMːO*"`a oƅt endstream endobj 290 0 obj << /Length 218 /Filter /FlateDecode >> stream xڝн 1 Y|;? N⤎磝"b/Y>Jڤu)&cjiɈZ=qYh>&xޡG*hɘR. eى/".Ҭt ҪwVhO/o2C xBbMn7ݥ| "Ԁ3ï>$$J endstream endobj 291 0 obj << /Length 250 /Filter /FlateDecode >> stream xu1N@E'rai=1IL,  DѶ. (ig?lncQiں'Tl=yE&lk\FZ,6KNZa| 9|t5iûH Jbz<rd'0 (9qp&8 %?cFi=H^Q #t)g/pxLkDυ3zA endstream endobj 292 0 obj << /Length 127 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.1s<L=\ %E\N \. ц \. D?`OY$$ ;R?$XՓ+ VX endstream endobj 293 0 obj << /Length 174 /Filter /FlateDecode >> stream x1 @ ) fa n!he!Vjih-GL2 +7&.&RY S2sjOƠZKFe7?/4#ڂJ"nݯ;QO7ZB؈U$fMYD@ ϝf+;|WW endstream endobj 294 0 obj << /Length 220 /Filter /FlateDecode >> stream xu=N@ _b%79 H" * D[n&"ymafYy.\O:/wa\gVVOK{Ǵý~~|m]=(k}fϋ kEm&fhF hrá +'2ʉ3q4|PY؁0e齳s5\@e'XreSU4Q~MQd endstream endobj 295 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥϽ 0+->Z+S*AAAѹ}>b$*.bBz:ԥVDJQܣmT;fiTTf3:; :Yc6\;lhkb⍹/N-Z6*p|ZX?4>usn tn N2\KKv endstream endobj 296 0 obj << /Length 205 /Filter /FlateDecode >> stream xڍn1 ]1%o )$n@S ZYG!i _ϲ=gzp;:٨T6{hh.DmyءQvF0`80cf̱b9)zA}T$"'S|_Q((M I +TPGey?4dѸYz1_ S endstream endobj 297 0 obj << /Length 220 /Filter /FlateDecode >> stream xڝ; @ )isJE"b=A aS~] endstream endobj 298 0 obj << /Length 216 /Filter /FlateDecode >> stream xu1N0E*ir ,-D $(VT@Iv(>–)VAaYO??V=ϝz`U6]oX?ݕvⷺ}qE XXͨ̎p[P0LhB M 4ESDiDf( DETHIc %)>/~Œ\r/_})oG endstream endobj 299 0 obj << /Length 164 /Filter /FlateDecode >> stream x31ӳP0P0bSsCB.c3 I$r9yr+q{E=}JJS ]  b<]300? C=`cf ?F%5Ƅ@.N%\=CSt endstream endobj 300 0 obj << /Length 275 /Filter /FlateDecode >> stream xڅ=N@ M_(E"T+*AD \%7!H9Ec{BHLid=RI'tT%=VjIM}h=<|ŕԱh UXiSQy :!1{.g t<A9Nt¿ɽ`n [Y'(3@ ~sPoi5E,b6y0ɬ1$V ٺ[Lz #h&;ij$^MR} ^x?m endstream endobj 301 0 obj << /Length 165 /Filter /FlateDecode >> stream xɱ @ : Y k 7:9utPt>ZpcҘ(@>?1t>C1I0IF*x܂ڡA ʮv@F G` t>'C/fH= b賚'b6l Q"Di endstream endobj 302 0 obj << /Length 137 /Filter /FlateDecode >> stream x31ӳP0P0bCSsCB.cc I$r9yr+s{E=}JJS ]  b<](B` D00 aDHpzrrȧYA endstream endobj 303 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭνn0pH' Q" vP+ċekdUGk?>48^iƏ%Ii?1B4,Ⱦr'd Wwc'/kL8TEk%t:u=|?Q ;DN d~U7 S[v0ؼ?bjv? k1N\*7V*=4#S endstream endobj 304 0 obj << /Length 123 /Filter /FlateDecode >> stream x31ӳP0P0b#S3CB.c3 I$r9yr+q{E=}JJS ]  b<]``? ×0? 'W g endstream endobj 305 0 obj << /Length 161 /Filter /FlateDecode >> stream x31ӳP0C CB.sD"9ɓK?\ĜK(ʥPRTʥ`ȥm`C}?  Yo`*?!*9=g!@d\= endstream endobj 306 0 obj << /Length 159 /Filter /FlateDecode >> stream x1 @бa1[ZYZZ(ZoG 2΢]> stream xڍ1@E #0eV$&ZY+h+{4(- 㲘ڼOϛ$ͦ񄇚1'O6MvV6&U~{I7 ֤rkT dR" "/x"o"x Aā, Ң~~5oU9qNȩ9IR 3,hK` endstream endobj 308 0 obj << /Length 221 /Filter /FlateDecode >> stream xڭбn0bt @Y"QPNt@hycs U.ɺϿm˧ > stream xڭϱJA?lq0= %*#xE@+ I-SD5_,9 ,9nsckc_ťc?f5ySǣZhZ}dl5.dj0r DW@`D$  F]67@Hmtt9OYw억g߹٫e&ڥOM&7ۊ` endstream endobj 310 0 obj << /Length 172 /Filter /FlateDecode >> stream xڵ1 A i832VºSZYZZ(ZXYz#llXZO7荆d/9C;GtVibs0W,lQ9O=l1!洖}N)!0Z2-ygg"(.0P5tŷAUɲ+Y0\%-nYW endstream endobj 311 0 obj << /Length 218 /Filter /FlateDecode >> stream xM1J`b`w.~7hXW0VbZ * vnUra!,ǔK-tgQ ->Gy劲p3%WtpK-Ϗ kxzX 33䎅rCF40@:b #LɂY.dČ 曶AȺ lB{,Zxώ`1K{+orSN~o' endstream endobj 312 0 obj << /Length 160 /Filter /FlateDecode >> stream x31ӳP0P0R5T01P05PH1*26 \.'O.pcs.}0BIQi*Sm` $?` #$`'0   Sd.WO@.] endstream endobj 313 0 obj << /Length 159 /Filter /FlateDecode >> stream x31ӳP0P0R5T01U0TH1*21 (@es<L=\ %E\N \. ц \. `,dF }H<00g?`G"?\=kqt endstream endobj 314 0 obj << /Length 174 /Filter /FlateDecode >> stream x31ӳP0P0bScKCB.1s<L=\ %E\N \. ц \. 7P& eJ``$? @cg@%4*PFF2?F2~~F2?N7 H{ r V endstream endobj 315 0 obj << /Length 195 /Filter /FlateDecode >> stream xuν @ > stream xmν 0C(vAAAѵͣ7Q|AwݤGr6&آt&=>'|z zzBQvi z0b zoU YUX)է-ؽFF'{DžyVJtlH!r&u]Ŋ;7RCSQ񋦠iwH>ʳh endstream endobj 317 0 obj << /Length 237 /Filter /FlateDecode >> stream xeαN02D%{pҊ.TD$: &73Ea+RősƂ)eTQS9mr|IJҌ.kk* C秗{˫3Q&l [f۲cvӨh+켍 R PPÛLm55wۃQ?ڋ_"|v։&Ԋ*Z IM ]4O`9kb{0D>7k endstream endobj 318 0 obj << /Length 218 /Filter /FlateDecode >> stream xڥ1n@E?@#\ ^ c)ʅ*q"QQ8%Ŋ2[$r~y.9R3.#OcE_/T_ܙt_?g~)O)'o6`Pv*;k . , UPC< èzDNe{Υ]ɷ~+| 2%E_Iqhҁ x endstream endobj 319 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0PbSsCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O@l``z 灸C??P szrrRZ endstream endobj 320 0 obj << /Length 232 /Filter /FlateDecode >> stream xmN0Kxe' 0Y*E"L vd(~wH`O,+¯.wZt7j='(IB??v7ϭo^x# `0#,yB=:F0A.O= {řs2t 9FtJ:ZTTwHsͪTU!,)b")3t#}wo endstream endobj 321 0 obj << /Length 239 /Filter /FlateDecode >> stream xMбN@ `G"yv~%-a H0u@LбCQn館?I}LeC-c%H00cRbL5hR"&\/d /N^J+Jx#jC(^ Nw6d`NV?1F3:=0+(-aO"{|ldy endstream endobj 322 0 obj << /Length 196 /Filter /FlateDecode >> stream xڕ=@%$p."AL0XF;pJ 87[syc Of|F&di\%8])Hلט6?/#)"*C Ė(\ -p- *XJ  pZZYjW ( 0G(Yb_/*:p^ endstream endobj 323 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭα@4;/@NYYZZ(ښWG#Lq:q5_1xD1 P)> stream xm1N0E'ris v7,eHV ()@&9#L<| Q`ɯ9JrZ\\Q<^ W7(s W+:C-GnB"LdT@.ëGHF316 6P9n\ Pbf4RuYHq_#B}!\0gܜ!TFIAC$yDE}H#A _|o_ endstream endobj 325 0 obj << /Length 187 /Filter /FlateDecode >> stream xڕ1 @49s݄$@Vbz%GHbQgq80 qL) (#r(SjEAjgTzNe*]LG'o:+x*Pd܂H.'oR(@RB)`na \# endstream endobj 326 0 obj << /Length 232 /Filter /FlateDecode >> stream xu=N@"4>`m Z) HPQ *HIh{=KV)yl/[.᳊Rsut_iۑ%e-o﮸"NJ'v\8I@/#2DR9LKp)Lz OnPY]D 5ň>Lr>AʍpgWi9ԫo0ZTj~]wtO endstream endobj 327 0 obj << /Length 261 /Filter /FlateDecode >> stream xmбJ@ )yŻgp` ,J--m/Zy/0`0h#eg?|%3Yq-SYc/> /FirstChar 34 /LastChar 121 /Widths 328 0 R /Encoding 329 0 R /CharProcs 330 0 R >> endobj 328 0 obj [46.98 0 0 0 0 0 46.98 46.98 0 0 46.98 46.98 46.98 0 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 0 0 46.98 46.98 0 0 46.98 0 46.98 46.98 46.98 0 0 0 46.98 0 0 0 46.98 0 46.98 46.98 0 46.98 46.98 46.98 46.98 0 0 0 0 0 46.98 0 46.98 0 0 0 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 0 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 ] endobj 329 0 obj << /Type /Encoding /Differences [34/a34 35/.notdef 40/a40/a41 42/.notdef 44/a44/a45/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 61/a61/a62 63/.notdef 65/a65 66/.notdef 67/a67/a68/a69 70/.notdef 73/a73 74/.notdef 77/a77 78/.notdef 79/a79/a80 81/.notdef 82/a82/a83/a84/a85 86/.notdef 91/a91 92/.notdef 93/a93 94/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 330 0 obj << /a34 281 0 R /a40 271 0 R /a41 272 0 R /a44 276 0 R /a45 280 0 R /a46 277 0 R /a48 318 0 R /a49 319 0 R /a50 320 0 R /a51 321 0 R /a52 322 0 R /a53 323 0 R /a54 324 0 R /a55 325 0 R /a56 326 0 R /a57 327 0 R /a58 278 0 R /a61 279 0 R /a62 273 0 R /a65 282 0 R /a67 283 0 R /a68 284 0 R /a69 285 0 R /a73 286 0 R /a77 287 0 R /a79 288 0 R /a80 289 0 R /a82 290 0 R /a83 291 0 R /a84 292 0 R /a85 293 0 R /a91 274 0 R /a93 275 0 R /a97 294 0 R /a98 295 0 R /a99 296 0 R /a100 297 0 R /a101 298 0 R /a102 299 0 R /a103 300 0 R /a104 301 0 R /a105 302 0 R /a107 303 0 R /a108 304 0 R /a109 305 0 R /a110 306 0 R /a111 307 0 R /a112 308 0 R /a113 309 0 R /a114 310 0 R /a115 311 0 R /a116 312 0 R /a117 313 0 R /a118 314 0 R /a119 315 0 R /a120 316 0 R /a121 317 0 R >> endobj 331 0 obj << /Length 327 /Filter /FlateDecode >> stream xڕӿj0q%C `*B]WC:Nm-vG#dt&?RiD ~i]_\V;WzG*I꒚M dߑ%)YRtZ@m^HwYmVaܶbN4RbXMΔ\uNnnb| mbީLE捴]$ⱱ7!3ilz.2Ob'z>уt!򸴏97 טC.k&) 7Lʬ k ͹!!KkK!#ܥm<Fk(4J@?mG/c endstream endobj 332 0 obj << /Length 267 /Filter /FlateDecode >> stream xڵ=n@Ǣ@f9Al%"C$SX+V*;eDIpJ zְ̊շy^O=JftॽEzKIzWQ+DXQ:]L@GjQPizV8Jy<_oSrJ^CoCK(vRਾB,|.WKuɡ`DuO6KN6_i JGT+ɭ KPJ~ s uy endstream endobj 333 0 obj << /Length 338 /Filter /FlateDecode >> stream x͓?N@gC6QڸHaRK vF8%^0 Z-;;3|qvrXЧhsJL6~Em*iS^o*\R[}OT@WdR;Ȉ,QG9Ci 7rXK0A@$s;:>GOÔ11PVGG { r(ܑ  J}1*7S($;SheIL>oC^fi0ӤIΧ C4qHGnJ谬cC +{7Z۶> ࿢*E!en/ endstream endobj 334 0 obj << /Length 228 /Filter /FlateDecode >> stream xڕ= t y G('v3#NI4:(IӾH~iՍE[LK;nc<`gq\$A95(8;H(beYc6,wh*.9)"1RH HP+whyś(/*P#qRDҥLSc_擽P[+^& I)Jt*Jl)sŪJSN2\U\ endstream endobj 335 0 obj << /Length 105 /Filter /FlateDecode >> stream x331Q0P0bS #CB.C I$r9yr+r{E=}JJS. @-\. A(9TH:հ endstream endobj 336 0 obj << /Length 311 /Filter /FlateDecode >> stream xڍԱN0o#O \<'H3D'㤎H GBI%)+,`z aJOJ}o 9ƙ={MyqB<>@<1f#q8&t3x=%T]_'V1 S>8|bGx ~ه_(Jf2Lc# ן8~w[stJptU,r,]#c},=3ֳTc)frLiGvKA;+DE 1]*YB8k ~oL endstream endobj 337 0 obj << /Length 325 /Filter /FlateDecode >> stream x͓N0 @PK?h Hכ*D$02`~J?c&rNldH^؎{U.+,p'%ΰ:ޠ%On _ K,!C#44~d32DCĚZAO3%,Fb= _&g2dFLdt^c;ȓhMZE=p8}ډݴ1Mt=[liq<3Mu;oϚ0qfUȱ:ؠqZwѻ$D#BHI!ihD W xkD endstream endobj 338 0 obj << /Length 209 /Filter /FlateDecode >> stream xڳԳ0U0P0b c #CB.s I$r9yr+[p{E=}JJS ]  b<]8J,fn0ªc5CX@Y bGb}e1ce H,ln~ #BBP`pb~Y 0SFY䱠I'W T4# endstream endobj 339 0 obj << /Length 176 /Filter /FlateDecode >> stream xڳ431W0P0b 3 CCB. rAɹ\N\ \@Q.}O_T.}g E!P E?!u?3bSWbWbWa1gXu0V6V eG,eƒ'c1%r C< endstream endobj 340 0 obj << /Length 270 /Filter /FlateDecode >> stream xڕJ@'LsL 'BB> stream xݑ=N@FJisX[N"GTPR; 9BJGZ0; Jifw<~EqUQAg9T )fT3j4wTN\IM}MoOhf7s,hSv`ځ_ hv= {H 񞡱B [r%kT3. 0=;  ڿv>;bC _\Af #c,'4/+;hq1h?7p% endstream endobj 342 0 obj << /Length 243 /Filter /FlateDecode >> stream xڵN0/`?BdS` Heꀘh XI-#d`stgۿ~Iy)x 5_XQ&oG\7vWEF<z{O5 Tb!ȣO!2J`@;PP<;Gg3E9c̈*l09t / inm';)),bߘ^Jq݂zlgF endstream endobj 343 0 obj << /Length 253 /Filter /FlateDecode >> stream xҽN0T"GȽu~n! & 7+Q!ʟĄd嗋l4\jU<sMo4HQ {N^Kls/dKɮꑚgʱw_ s=$p8E . (sׅ42*ȱ| ]6&ܴLpڋ_IHGN!X>] 7#f".F?^Q 3ҙ b= endstream endobj 344 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 345 0 obj << /Length 324 /Filter /FlateDecode >> stream xڥ?J@'X&G\@HBL!he!RK E֛L2ɮ9o[,Ƴw565>UU7v1.tqoYKtq ˣ|QђCDF"RcB|&;J e%wpU3B?O|G(^'f ]THد|X9/O8E.> stream x373P0P0bsC cCB.33 I$r9yr+q{E=}JJS ]  b<]0$0a aÐef0x:`P?H e00?C(v q'W l2 endstream endobj 347 0 obj << /Length 138 /Filter /FlateDecode >> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 348 0 obj << /Length 107 /Filter /FlateDecode >> stream x3635Q0Pac cCB.#K I$r9yr+Yr{E=}JJS ]  b<]0a\= endstream endobj 349 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 350 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 351 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x͒N@ ]uG_.!MBH 02<Gx۹F:.˓"J:lN錞c|,5<WO(m(KѭEGWbtK=b$(#!@5@oJ 4{aŌfJ`o}4.lO%wm_mte4](z`_TU` endstream endobj 353 0 obj << /Length 169 /Filter /FlateDecode >> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 354 0 obj << /Length 259 /Filter /FlateDecode >> stream x]1N@4;ۊB$\ Q%ڬ\vY)yTk.拊57 UIJ/Kn6O\k*ybx[~|nXp8HDF#々~7'QȔ^;LKZ+45qj@.dtv!"ieh֔j]dV絳Su ?hgcfKxhGZ endstream endobj 355 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 356 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 357 0 obj << /Length 252 /Filter /FlateDecode >> stream xڅбJ@YR#d^@7l 'BB+RgvE8X>Y؟/Η%YJyN^RaaB> stream xڕ1j@7Xx6l6@RXR%)S$$fB.2Ni!7.V?u~f*U+uW9o(fKUn*< ݖIu>?_dRLjG/zV!C؃@p` 'h'đv3k"t{O<8 F evb883MmH Є̎io“z>Ba"0i5s?hb8T0c00c*Cٻ1 i<8^gvJpi\DXו!) endstream endobj 359 0 obj << /Length 270 /Filter /FlateDecode >> stream xڅN@EPL'~ >X<&ZY+h+| K$\gfX){ʪߗu%B-k_Weʡ/ϯ7/nyS壼'7e"0қ0Dr92DI-٨l+s@!٘b4Hfoq!C?I?b`6|tC t} lLD2r1uIU'TuIk*T%5P%5!.>Z/1 endstream endobj 360 0 obj << /Length 310 /Filter /FlateDecode >> stream xڅ1N@б\XG\8M,  * D "To+l"0DQXO]yx:NbYٔOG8'M~ea חG/pl%ގqtg%Qm3 "Vϊ<X1f3j ԄMVl!ey o+ =̃Zy[coFG\{SZƛЦQ?䍉`߈=m;4M?l½};YTjĭjө IPZlklku釾2#}UJ.҆Rymaɽ endstream endobj 361 0 obj << /Length 137 /Filter /FlateDecode >> stream x3337W0P04  )\\&f  ,ɥ`bƥU()*Mw pV0wQ6T0tQ```c;0D0I~0Y"I ?&D(I"\=VI endstream endobj 362 0 obj << /Length 301 /Filter /FlateDecode >> stream x}MJ0)YؖG_]x>.]W҅h=Je? گiftߟ ChÞ6 s/\knCs%ux^ߟ\s>k o@B,D'DdZ"-,-B/63"x甙k p7q|$pF暿 dL@AvZHFӬYM5k|,ZdIeb4j`Mg!@Tt`[Bͻ.A8Ew̕bԊW'bt7}t endstream endobj 363 0 obj << /Length 305 /Filter /FlateDecode >> stream xڍN@LJlA gEr&ZY+h=> @IA烋 |gf.K xQz!eY^#[E{_o8_c#>UX>)EৣNGG#"qhfH8fEAEI=-Β%$#쵂H\Wfä hgcgݺi8iZG`s+,25\i`2[[E3)D/bZ1.8G IUuuR:X&oݴ]֯"Mߴo endstream endobj 364 0 obj << /Length 225 /Filter /FlateDecode >> stream xڽнj0 ['Pt!tP2;4qh~?G$C@Bw&,+]po1}R28^~в$IF~{͒/wu|'ܯ8&旘knLM@;&ED-tw>5 pU/jh:؊,PW+D5^ԝhma#:YVp=Dӊb~9ag/uwiS]]q endstream endobj 10 0 obj << /Type /Font /Subtype /Type3 /Name /F40 /FontMatrix [0.00836 0 0 0.00836 0 0] /FontBBox [ 2 -25 121 84 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 49 /LastChar 121 /Widths 365 0 R /Encoding 366 0 R /CharProcs 367 0 R >> endobj 365 0 obj [65.77 65.77 65.77 65.77 0 0 0 0 0 0 0 0 0 0 0 0 99.31 93.5 95.01 0 86.31 0 0 0 48.44 0 0 0 124.77 0 98.78 89.85 0 0 0 91.47 0 0 0 0 0 0 0 0 0 0 0 0 65.77 73.08 58.47 73.08 59.81 0 65.77 73.08 36.54 0 0 36.54 109.62 73.08 65.77 73.08 0 53.39 51.89 51.16 73.08 69.43 95.01 69.43 69.43 ] endobj 366 0 obj << /Type /Encoding /Differences [49/a49/a50/a51/a52 53/.notdef 65/a65/a66/a67 68/.notdef 69/a69 70/.notdef 73/a73 74/.notdef 77/a77 78/.notdef 79/a79/a80 81/.notdef 84/a84 85/.notdef 97/a97/a98/a99/a100/a101 102/.notdef 103/a103/a104/a105 106/.notdef 108/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 367 0 obj << /a49 361 0 R /a50 362 0 R /a51 363 0 R /a52 364 0 R /a65 331 0 R /a66 332 0 R /a67 333 0 R /a69 334 0 R /a73 335 0 R /a77 336 0 R /a79 337 0 R /a80 338 0 R /a84 339 0 R /a97 340 0 R /a98 341 0 R /a99 342 0 R /a100 343 0 R /a101 344 0 R /a103 345 0 R /a104 346 0 R /a105 347 0 R /a108 348 0 R /a109 349 0 R /a110 350 0 R /a111 351 0 R /a112 352 0 R /a114 353 0 R /a115 354 0 R /a116 355 0 R /a117 356 0 R /a118 357 0 R /a119 358 0 R /a120 359 0 R /a121 360 0 R >> endobj 368 0 obj << /Length 211 /Filter /FlateDecode >> stream xڽ1 0H[z h vIMJob҈.u^H贗bU5&)8V\c2+d9+ !x>]g1ruk޳|[h#FWLrH"yDw3+šVDu30/-Oh=ؖ,ҾsRUܯ!QH%iKx. endstream endobj 369 0 obj << /Length 208 /Filter /FlateDecode >> stream xm1j@/T s{h!"eS0)l MGT!4[;]f{gN8Yα{ϔv>˦o**v ٕ^^gEX/8%[6䝪H N@ F>J4^{!g#Ѕwo9&K Ck`DZ8eEotWq endstream endobj 370 0 obj << /Length 218 /Filter /FlateDecode >> stream xmͱJA`7OX1WZYU2ABN|Wnn l! S_U\nsuɫ^)9L}z,74o>qS+߶k.Yc^]G!`<2%sJ@!Ꮙ2ShRxV&GL#>|G@#"@&{ @ωCdw" 1E{rb,mK Sc} endstream endobj 371 0 obj << /Length 247 /Filter /FlateDecode >> stream xeнJ@H0>sSZYZ^qy^]E⣴> stream xuJ@ 30<.zXWAOēz}y>B=$++B$,^lNm9*6MWuXSZdx|zw{I򿧇D#v{/R図x^9H`mZt/O/eegZx~ǜ endstream endobj 373 0 obj << /Length 247 /Filter /FlateDecode >> stream xڝнJ@U)LkyMs'6.'B RK E;!HQ)XnXbcdvv>vO%8ny'j^[nWg,;mx>(*1> stream xڥ= @ )f.(XSZYZZ( br#Ɲ`_1˰uuߡzkF,ͺSw8HP-(PMU2E5 IRSdD j 2S|[ob.f" sgMY_ 20_^RGt%9}kN9]m`~ՖVR˓Z.qs|z endstream endobj 9 0 obj << /Type /Font /Subtype /Type3 /Name /F38 /FontMatrix [0.011 0 0 0.011 0 0] /FontBBox [ 2 -1 55 63 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 50 /LastChar 118 /Widths 375 0 R /Encoding 376 0 R /CharProcs 377 0 R >> endobj 375 0 obj [51.93 51.93 0 51.93 0 51.93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57.7 47.48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 54.81 ] endobj 376 0 obj << /Type /Encoding /Differences [50/a50/a51 52/.notdef 53/a53 54/.notdef 55/a55 56/.notdef 100/a100/a101 102/.notdef 118/a118] >> endobj 377 0 obj << /a50 371 0 R /a51 372 0 R /a53 373 0 R /a55 374 0 R /a100 368 0 R /a101 369 0 R /a118 370 0 R >> endobj 378 0 obj << /Length 240 /Filter /FlateDecode >> stream xmAJ00f.i%|]ϕ q.](m{Qr,(3xh$'<9J.7 9.*Os5??_Я6W\_C#k6GF֥R-tJ/P\`ʨ4 )Vbi,%14I, ǶkL6J&m) fL~&hM` UgCr0'_57OJUw endstream endobj 379 0 obj << /Length 240 /Filter /FlateDecode >> stream xuбJ@YLᾀy,Alw` A+ RK E;#Lq\WNf*C-reQKw.+oxٲbc|~|_]K` +BQId0;Fqh(tE.ìg o]KDlh;?2f_h SJD`#"fd{ 3)юjt#0h0-@|Rg endstream endobj 380 0 obj << /Length 241 /Filter /FlateDecode >> stream xuJ@Yr̡y!u$b`=yOQТA}}>B94!ɿ[dLr:K×7^l$/bm}'W8+yt=q RRJ@q m\iǷ\:mK{t73-(#0q _@ⷿf0ң4/TKxyD)jq =F`J0\Լ#5Qe endstream endobj 381 0 obj << /Length 198 /Filter /FlateDecode >> stream xڝ 0Eoq(PhP+AAQPQO}i,:IΔܓh4 b֜ 9yЙBf%HYAj͡&5}RłہTr@*MzKE΀N@F x-%08W\g-21鐹WZu2sw[Z,巷EVE\'hbD[ endstream endobj 382 0 obj << /Length 199 /Filter /FlateDecode >> stream xڝO @Bx @ػ@N( rԪEAEAKQt#ps}x4'cZ{RTYpH*}K@ ]6XV /a& +̌Sv47fUEc]~s|lm[sIaU].Gz]H||-scL endstream endobj 383 0 obj << /Length 132 /Filter /FlateDecode >> stream x=ɱ 0  :t AG˛i "~1WOjŊ/|:=PM-_Ul[Q6<*]+a˃.&dR 1YG$ endstream endobj 384 0 obj << /Length 95 /Filter /FlateDecode >> stream x3234R0PbC KCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [x endstream endobj 385 0 obj << /Length 102 /Filter /FlateDecode >> stream x3234R0PbC cKCB.K 'r9yr+Xr{=}JJS ]  b<]d7`= S/'W " endstream endobj 386 0 obj << /Length 94 /Filter /FlateDecode >> stream xMɻ@@E|wGb BT(H4]])8+61|cZGHO@BJJ7" endstream endobj 387 0 obj << /Length 91 /Filter /FlateDecode >> stream x313R0B#cS#SCB. D"9ɓK?\ĄKCKW4K)YKE!P E?|\\\KF endstream endobj 388 0 obj << /Length 370 /Filter /FlateDecode >> stream x5J@Ol]H;/iP++J] U%$wYi |3\v`'|bg;y31_lSKAbdnDtqIq"z\3:QԻy;R<+,=8گVzpՇZz/QW#W/}[7+iS(J!Zp(1o qI}XK"=Ke>l=OOȯr4O*Gy.+Gy,_sp_WP> stream x3532U0P0b 3CB.3 I$r9yr+q{E=}JJS ]*c<]1@  d0%d= u  fh gdՓ+ =ŀ endstream endobj 390 0 obj << /Length 181 /Filter /FlateDecode >> stream xŐ @ A xxUp( vtr'utPtmh} bIbH `sȑ 3xćd|/'Js61Η|܎Ռ#o򌁎ԥ>Ŵ)mPN8J@ Gּ y[ʽVRl"紦 endstream endobj 391 0 obj << /Length 208 /Filter /FlateDecode >> stream x; 1?XS,vNH#.+Pͣ,-ĉZhk琄onכMxю>XmP8gQ8*ɄtRB: (Y(U ᔣ 3Ԯ LʉXSȼ)p~\'ȡ -#{<{^0?Ը[O(ćJ endstream endobj 392 0 obj << /Length 248 /Filter /FlateDecode >> stream xmнj0P6%hHSB;e(Bұd!C_[ǾBNWd,,~r3}iwo;w>ؾt;Ŵ3+mk`> stream xڕѽ @ G0opz'A+AAA>Zѡܙ^2T)dJh-Q6/.w\ehd--gd;z=74b4)bΘ|!T0' 4, L*0V}Uv~ݷ'CdxxJDv5vwԁ?/uҹ |.uB)&) endstream endobj 394 0 obj << /Length 269 /Filter /FlateDecode >> stream xڵJ@!E`8yHE p` A+ T,ɣQ)-[ww"ؙe|SǛN )9?fJEnYJᙶ .rR6L'R۫3H6'@hXkcznL 0>[DPiG Ѩ zCt`:D_drfZjF=c?`.-l[/Ǎ;b?Oy=^F.Dd/Z{ FF\n\3w* g7tMVXv endstream endobj 395 0 obj << /Length 211 /Filter /FlateDecode >> stream xڵ10p lAĉ1D'㤎z@j %Ŕp6# 8CWt4G΀)|4.1!Bv> stream x}ѱ 0ДCpuz_`5ŮDQPQpOS *Rr<.p c4£+(erQep$A/*l> stream x3гP0P0bSS3#CB.SC I$r9yr+r{E=}JJS. @-\. bH700C(`B1P(|Teb P`BPP9J>4 B&!^@\=6 endstream endobj 398 0 obj << /Length 268 /Filter /FlateDecode >> stream xڵJ0) B_`V4* ɃxR(}=ɔai I:S:<&Iso+ +nZT+T|TKQm=b%0V́a͖A;Cz\;Pf3b6~^\`pfg GDؿAGCF_> stream x3337U0P0b3S3#CB.3C I$r9yr+r{E=}JJS. @-\. ? t 0 lPoՓ+ _* endstream endobj 400 0 obj << /Length 106 /Filter /FlateDecode >> stream x3633V0Pc3#CB.#3 I$r9yr+q{E=}JJS ]  b<]?``o7drzrra endstream endobj 401 0 obj << /Length 170 /Filter /FlateDecode >> stream x1 @БbVj(2n6)F#9fÄ4᭤̇1lT+VI9_b1aIJr&S2"/:wԍ_OS#hG1;XD级[e endstream endobj 402 0 obj << /Length 266 /Filter /FlateDecode >> stream x];N0RDb}RneHJ$@P'b;NA(s#L`$ɏ؞ln]*[gv~ԅGԜ]1g큳-8ڛ\otdd<KKMKMa; .0. >>N w&`>koFc7$կHo8={jp?53j~ M7wנuI}Ri"ӡ|V ! endstream endobj 403 0 obj << /Length 144 /Filter /FlateDecode >> stream x353P0P0bS#3#CB. HrW0r{*r;8+r(D*ry(2`o^$3^L 0H9$Lց d Brzrr3nX endstream endobj 404 0 obj << /Length 252 /Filter /FlateDecode >> stream x}j1 . Wo;OZXB{ -= Jt(ڄ$btUd5"|D~8k '9s|)e(gg5JҺ1*/G)g*G=Cl-[VҚCZ 7=+q,A wTÀ&u4-U(qhK$)n;%<.<2!WxS endstream endobj 405 0 obj << /Length 250 /Filter /FlateDecode >> stream x]ѱJ@ )O`y),DPN:NEn}$!Grq63ͦXYbl1c7ƞ?ж7#zm)~zw{ix7!pu\ĵ khì>RQ|jbJg1T9XN`1,*/rpnLXb95#OSZʜ> stream xڵn01D%8AMPH@fN S(y (96c-ٟ"3(҄lFV@$Chw:;4ˏhSbM7 -oʼ.+aWy!a paN8(e~NHb+[&|EGMl#K!e_<۾zzP<vOlgԬEWGWWO} endstream endobj 407 0 obj << /Length 175 /Filter /FlateDecode >> stream x333T0P0bS33#CB.S# I$r9yr+q{E=}JJS ]  b<]J쁢 ??0BC0eB} B1PG@\ٹ+ ` (V9(P$ endstream endobj 408 0 obj << /Length 330 /Filter /FlateDecode >> stream xڵAK@Yk>; !ST)#B@"$n;*c~33Gl&8Op~wzR FZ*dS __U{F\nhG9SVt6JӘ_q- 8;g4Nu bi endstream endobj 409 0 obj << /Length 266 /Filter /FlateDecode >> stream xeϽJ@HMګ̾rw y),J--Gˣ#݂ˍ39TWEn0 *L2~5,'itvck]pXgͥy}y{:ۚ[t 6vZ5'@O6a&~`QLɤ䀄hADDND(An%=٨X }d*;Ad|HףMH+>o ߄k endstream endobj 410 0 obj << /Length 158 /Filter /FlateDecode >> stream x3332W0P0b3#J1*2" \.'O.pS .}(BIQi*S!BA,0`0?do `L3c ` }L3 D3@hQ'bDc&@ endstream endobj 411 0 obj << /Length 207 /Filter /FlateDecode >> stream xJ@?Py &^!`B=PBcAE[|4cZ/9avgaϮffzR}\^ 3f/U#n>wX\o;qbLk]Γ4І~,O~=[yR+>ɟ:ᑸgF#bn8&kufY f0AjekQ~uI endstream endobj 412 0 obj << /Length 262 /Filter /FlateDecode >> stream xmбJAYiSݻ ^!he!B@-s >=`y֙]T;3 etd3zJ 킇Y<:G}GvǨkx|FS2oȹ qĕ+yD>8c8c\4{`*n;5[F6UEJ8YHrg@s/>p뭃Xl7i$S>~w_Wiuqyؤom endstream endobj 413 0 obj << /Length 321 /Filter /FlateDecode >> stream xuK0+a;h;{A'a,7V4Nz|H&">NN1b\D8!/2Ih2IY.S`e^ Wg`w2]5(kv?=k@@# sG0qТ崖8n֩vI벒<=~ULlab[3'qݧe*&!R3- -*C7. )E{sܥ ). %sc^ CaĚh_eӯ0H:}󦃬\4e~8qC㠡vg穼 endstream endobj 414 0 obj << /Length 251 /Filter /FlateDecode >> stream x1K@-f݀,b?B_T|ÿ%t_ endstream endobj 415 0 obj << /Length 213 /Filter /FlateDecode >> stream xmο@/, ShuqZZ(ښ<$y<–!q,䎁 1v<qƖ혭᭡ٌcfiNmFzƤw>;Ռ 9ξ(35 !+PLpW.Pe@"Qmڢ i"1Ŕ"?OVHnqLUOUo*D6i|UԴiMעL endstream endobj 416 0 obj << /Length 210 /Filter /FlateDecode >> stream xڽн @ B>Bzm=(vtr'utPvIK: #=vDzAmHJ]t9UgnHbR2pĻ~E;G3=hNa1/kFˈ܉Slx`p:FlTveV`9zTbr^MRV R':q@&x endstream endobj 417 0 obj << /Length 193 /Filter /FlateDecode >> stream xڝ1 @E00Mntft` A+ RK E;19%Gu`ak?r}YЁ2+bvM6{*+K,Ȥr>bCz+險1CD(p.ܐ lQ4C!i(]W!pE#k%7)%c\_p0T78> endstream endobj 418 0 obj << /Length 210 /Filter /FlateDecode >> stream xڽ= @ )sĬSZYZZDo7hB\gwJ)|浂F3"$;ԎhbR0 9IbcɄE:ŐdH 5:Pi=uek=BЫjn_t+k-JffLWn噞\y U;3ygz? endstream endobj 419 0 obj << /Length 204 /Filter /FlateDecode >> stream xuο 0/t(`_@轀:YAAAMj-#8viQp0?K|6隌Nc8Sje57 N-鉌IS>N[ِ҃ / '+*F PWR7HU8##;o\]>K-AZ//>L^T^('N"nhAUhwdZ#=d# r!I endstream endobj 420 0 obj << /Length 143 /Filter /FlateDecode >> stream x3233V0P0bcc3CB.c1s< =\ %E\N @QhX.O ?00``?<3c:f 1%P}Pszrr_ endstream endobj 421 0 obj << /Length 261 /Filter /FlateDecode >> stream xڕ=N0_4>B|ȏ宴,)@T@IF(' 9e kb (H/˛tG}wȣ]>n~ndKuETgK՟秗{V'fӍk^".ٷtD\0_f+`Gt~΀~ܡLcxc㠤2%Ii(ئ4rB8F+ OƬܫ>Q=9'|V)X,i/ mh endstream endobj 422 0 obj << /Length 165 /Filter /FlateDecode >> stream x3532T0P0b 3cCB.S I$r9yr+r{E=}JJS ]ry(0`$;dt"H @҆ 3g`D\$3ؑr y endstream endobj 423 0 obj << /Length 124 /Filter /FlateDecode >> stream x3234R0Pc#3CCB.CK I$r9yr+Zr{E=}JJS|hCX.O  P001aqzrrHT endstream endobj 424 0 obj << /Length 150 /Filter /FlateDecode >> stream x3233V0P5Q5T02P03TH1*2 (Xs<=\ %E\N \. ц \.   P( ulj3cP\=v9E endstream endobj 425 0 obj << /Length 213 /Filter /FlateDecode >> stream xڽJ@`_@> stream x3234R0Pcc3cCB.#rAɹ\N\ F\@Q.}O_T.}gC.}hCX.O a0\=W endstream endobj 427 0 obj << /Length 186 /Filter /FlateDecode >> stream xб 0  Ej3:9::( NGˣ:4qqé8Hķ)tJRWI8^0(v$kgfAuFX lYhFAQJ*˂Yu*>P'sx'`‚ʷs3 endstream endobj 428 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532T0P0b CB.S I$r9yr+r{E=}JJS ]ry(0` iH~`~ ?3 !d; \\\ep endstream endobj 429 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1 ` _qVdV8h֣;5I䅼Dq><Y>X:SwN'Js2c2 K^nG2jƖL[H5pG %BxʃAxNӃX:>ŴI=JRh4 V\_螡yNkPM endstream endobj 430 0 obj << /Length 208 /Filter /FlateDecode >> stream xڭ1 @YR &] F0X`er%GH!u6 Z+ٿȧ>u!)P)N}fQrIJr2xޡc PƴSkLbF{z`)3Apڀ\A4ikh+/;Ň/׊y.L[ov3_nBk/cC:՘M$;| endstream endobj 431 0 obj << /Length 223 /Filter /FlateDecode >> stream xڭϱjAbaH`B*EҔ)H!GGGuγFlbv;x$s ۘ7 }Mes֟4ɼMdN&2~<:ELtjtDEX pPYuwoڽmOX6JCT:knGC_ 8=Pח4%o endstream endobj 432 0 obj << /Length 145 /Filter /FlateDecode >> stream x3634S0P0bccCB.c4H$r9yr+p{E=}JJS ]  b<]?~x?̟0~g 0cH`3szrrM[ endstream endobj 433 0 obj << /Length 203 /Filter /FlateDecode >> stream x-AjP?d70sBtB[ܙʷyŷqRq,Q^i4d6Wd4&S/y&3[ْYqgc$Ovw x 4tHB8tmԨuUupAD#r&iNBKZӚ.8W endstream endobj 434 0 obj << /Length 151 /Filter /FlateDecode >> stream x3634S0P0R5T06P05SH1*22 \.'O.p#s.}0BIQi*S!BA,Vl+313C1#T8fq{v r wSM6 endstream endobj 435 0 obj << /Length 160 /Filter /FlateDecode >> stream x3532T0P0R5T0P01PH1*21 (Bds<LL=\ %E\N @B4РX.O `G%00a`f$Н l0A?? $@?P'W rjy endstream endobj 436 0 obj << /Length 193 /Filter /FlateDecode >> stream x]= @YB\@71JL!he!B@- 19%GHi|{ G.?'T>.o=(D"壜q2|ݣ-䡜К6N(]9' {6*};:fViucfU)1[m?6*q_D endstream endobj 437 0 obj << /Length 248 /Filter /FlateDecode >> stream xmϱJP? Ĝ{j@`N"QPQpNP|d63|p?=.%ww =Qjx>礯85eM:{SNH:asCºXWU<&.*;d (Faы> stream xMαJA?lq0lk!< 8B*ERKHzh(ufL4/Y_Ttz%RKxMGnܓtu|9}ۼ> stream x]J@; x%'S~\#^/4Iq1w-}<9&{@ 7lz P@?[VqtPA8.=փdFDb+8w:+cw9<<#Oʬj\ԯR*ٕmm`giM?AP endstream endobj 440 0 obj << /Length 199 /Filter /FlateDecode >> stream x5= 1oI!Ls5"Z-n!he!Vjih9e`i!0 #vܗ|Ltԇ&% {Ov!d%_/#j9osv;*g7  $Oy $m}RK ****IQ $ Q&2JuWk D$_h^Қ8.G endstream endobj 441 0 obj << /Length 191 /Filter /FlateDecode >> stream xڽ1 @EL2͚DL!he!Vjih'(9B -)fsofyH0d@iNjő!5T>'.&Ien(@*/SC^^$N-8b,(p OA-iU۹*m_ ڰ^!c9- @m endstream endobj 442 0 obj << /Length 126 /Filter /FlateDecode >> stream x313R0Pbc 3CCB.#K I$r9yr+Yr{E=}JJS|hCX.O @@\ <yP\=sU endstream endobj 443 0 obj << /Length 242 /Filter /FlateDecode >> stream xuJ@% f$,ăSZYHV2u@J&llDmwjR_@> ; l?hٝv* ؄'!nE5i>p {Nhd42FJgaZtEjZ!'Ēh } lV~hp endstream endobj 444 0 obj << /Length 246 /Filter /FlateDecode >> stream xuN@ ed!/kBR$2 щ1c<==B ULp?77K%5ZGo?nY'[,vxK톞U/m#yTLP%d'd`ofAِ'~VN\'(uˈn(Eu,_ڡgŨxqGc/VJs5M#1%-~nn endstream endobj 445 0 obj << /Length 185 /Filter /FlateDecode >> stream xڕϱ @ BP:w> stream xڥбj@ @_ 4z|k:ŐPdc! (= t:IÄS~¹ӑB)fgW)NnxfOnk醪9 mvarU();'Q/$C 3!`.z7l(ki?n!a먠luAIu2θ ҫq42BT]E endstream endobj 447 0 obj << /Length 249 /Filter /FlateDecode >> stream xuϱJ@?LᾀSZY mr| 3J duM/|HհXhS-7YwkH~Ͳݍ~}~JR>Z=x~]賑ix o@ʺ\ur'x; endstream endobj 448 0 obj << /Length 202 /Filter /FlateDecode >> stream xڕ; @A  M QL!he!9ZGHB;RXW?#l hS+z*ߛņBQK'jF;LA0Ӫ]WCȋz&\e (t XLݷ!)&e~R27ukd1y ]msXp endstream endobj 449 0 obj << /Length 277 /Filter /FlateDecode >> stream x]J@EoH$j),J-- ɧͧ']ͪ x}|)TrBf1^զUٽʮYVY{#/*^J<?v+'@-0#" |'İ+Y X9"1fm)ӎz+~x/ȇ3FY g,ڏ@'DV{:RRh4zQc;uD*` "Ah^ᰥKp[Vݩoqg endstream endobj 450 0 obj << /Length 252 /Filter /FlateDecode >> stream xu1J@?f. ]@lbځuSZY,Vj)h+ Bn+oayTg+ιW?Be9 e\֔]6e?R>炲 o 0@:)vr"yĂILiNיvFoi􇐃 `%<)ơYto%SK u+P ˴N2(vGU*DF I2v: endstream endobj 8 0 obj << /Type /Font /Subtype /Type3 /Name /F16 /FontMatrix [0.011 0 0 0.011 0 0] /FontBBox [ -4 -22 91 68 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 21 /LastChar 233 /Widths 451 0 R /Encoding 452 0 R /CharProcs 453 0 R >> endobj 451 0 obj [45.2 0 0 0 0 0 52.76 50.25 0 75.37 0 0 0 0 0 0 75.31 0 0 35.16 35.16 0 0 25.12 30.14 25.12 0 45.2 45.2 45.2 45.2 45.2 45.2 45.2 45.2 45.2 45.2 25.12 0 0 0 0 0 0 67.75 64 65.27 69.02 61.49 58.98 70.91 67.75 32.63 46.44 70.26 56.48 82.81 67.75 70.29 61.49 70.29 0 50.21 65.27 67.75 67.75 92.85 0 67.75 0 0 0 0 0 0 0 45.2 50.21 40.18 50.21 40.18 27.63 45.2 50.21 25.12 27.63 47.71 25.12 75.31 50.21 45.2 50.21 47.71 35.16 35.66 35.16 50.21 47.71 65.27 47.71 47.71 40.18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45.2 0 0 0 0 0 0 0 40.18 40.18 ] endobj 452 0 obj << /Type /Encoding /Differences [21/a21 22/.notdef 27/a27/a28 29/.notdef 30/a30 31/.notdef 37/a37 38/.notdef 40/a40/a41 42/.notdef 44/a44/a45/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81 82/.notdef 83/a83/a84/a85/a86/a87 88/.notdef 89/a89 90/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122 123/.notdef 224/a224 225/.notdef 232/a232/a233] >> endobj 453 0 obj << /a21 387 0 R /a27 390 0 R /a28 389 0 R /a30 391 0 R /a37 388 0 R /a40 381 0 R /a41 382 0 R /a44 383 0 R /a45 386 0 R /a46 384 0 R /a48 441 0 R /a49 442 0 R /a50 443 0 R /a51 444 0 R /a52 445 0 R /a53 446 0 R /a54 447 0 R /a55 448 0 R /a56 449 0 R /a57 450 0 R /a58 385 0 R /a65 392 0 R /a66 393 0 R /a67 394 0 R /a68 395 0 R /a69 396 0 R /a70 397 0 R /a71 398 0 R /a72 399 0 R /a73 400 0 R /a74 401 0 R /a75 402 0 R /a76 403 0 R /a77 404 0 R /a78 405 0 R /a79 406 0 R /a80 407 0 R /a81 408 0 R /a83 409 0 R /a84 410 0 R /a85 411 0 R /a86 412 0 R /a87 413 0 R /a89 414 0 R /a97 415 0 R /a98 416 0 R /a99 417 0 R /a100 418 0 R /a101 419 0 R /a102 420 0 R /a103 421 0 R /a104 422 0 R /a105 423 0 R /a106 424 0 R /a107 425 0 R /a108 426 0 R /a109 427 0 R /a110 428 0 R /a111 429 0 R /a112 430 0 R /a113 431 0 R /a114 432 0 R /a115 433 0 R /a116 434 0 R /a117 435 0 R /a118 436 0 R /a119 437 0 R /a120 438 0 R /a121 439 0 R /a122 440 0 R /a224 378 0 R /a232 379 0 R /a233 380 0 R >> endobj 454 0 obj << /Length 405 /Filter /FlateDecode >> stream x}=NPLJPwlV$HaRK ֏xQ8³Äw>7kU:YӍR=TYl-{?]#ފE\חGQT%Ty'"" D%ВdЀ(0Z@5QVD5Ǡ}۱(et"+Fr$ ; BI~鞜1PW!)fh=h۩﨏5`"!&7]kJZ.Yo'd-&$c%4>Cf~Ml3EHL1f XB ].֗0IAYeUÆ1:iCH_²Sq#F mnw',ڻ)8oĵkc endstream endobj 455 0 obj << /Length 308 /Filter /FlateDecode >> stream xڥ1N@gCA2 G`.@lI|&Rhea|x <Ć0̲ϼDmd`ggCګT״}Iz>\|ʼn|Ƣ=,VgGTaˊ+lvuLC! xr~`]T VIm o0/m+H-8٠HŴ̃%'b eA lR(~ FYtG%4xڂ~V *L ^TjCyĺ=LKg 9鏀-uO endstream endobj 456 0 obj << /Length 258 /Filter /FlateDecode >> stream xӿJ@+ }s8@88O0X`e,,ME}I @Xabfn?w^ͧ{]]"kvfř{~zlu~]+\kv2HɎY@КѩY`;zjeRZ58J$}¤A/yB$Uީ>?ï~_8zѝn7wEf7a9j=)BVM endstream endobj 457 0 obj << /Length 184 /Filter /FlateDecode >> stream xѽ 0-y'06 ftr'uTܚGQ;祝\݃~ +0.0xH:: eOPZPwA%ޮ#r5 )&;3D"Z*rLD^cj&Uؑˈ^t;;jUxa|t-?>W`na o? endstream endobj 458 0 obj << /Length 199 /Filter /FlateDecode >> stream x= @ ir &H~@` A+ RK Ex )SHY,{| iP2(mc)}"lǨR.ft:w9X._nY#4RFH}Uʨ|#yAmܚ[+wcw蟒/sk2WVr @T" endstream endobj 459 0 obj << /Length 375 /Filter /FlateDecode >> stream xڍҽN0:TG_%tR$2 Ā[dc%oO"]\LK}ɽ(@"6 Ub)TelΣVN֎X%ҲFV8!TZ^՞j#{)'F2N4jvQWQڱ/";6lC4*f}X `aUca7Pl*L5L> /FirstChar 83 /LastChar 121 /Widths 460 0 R /Encoding 461 0 R /CharProcs 462 0 R >> endobj 460 0 obj [86 0 0 0 0 0 0 0 0 0 0 0 0 0 77.4 0 0 0 0 0 0 0 0 0 0 0 128.99 0 0 0 0 62.48 0 0 86 0 0 0 81.7 ] endobj 461 0 obj << /Type /Encoding /Differences [83/a83 84/.notdef 97/a97 98/.notdef 109/a109 110/.notdef 114/a114 115/.notdef 117/a117 118/.notdef 121/a121] >> endobj 462 0 obj << /a83 454 0 R /a97 455 0 R /a109 456 0 R /a114 457 0 R /a117 458 0 R /a121 459 0 R >> endobj 463 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 464 0 obj << /Length 257 /Filter /FlateDecode >> stream xuбj0d=A-pHRB;u(@19G#d`d |' 󟖋;}O5\RQ`ȻO}c~[zIc%a,D!Q$mbG2bWh*^jL/.i AjS]3}`qd;<z<ĠuH> stream xe;N@rai=`;qѰR.@T@I.J|7a҈$Ci>˳؝I}^M iI/y78K6'of֘)nb-}~|bvwE)XQd9!a"[d72EW:,wX=0;rؙnW-WzUR,k9M<Iz:HxDLՐc|c=1;2؉^]Aĺ7_lo'kH;tۀ_"=\lhsoW endstream endobj 466 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ 0OKдv vtrAPGAEA0G#8:ANȹ-Lp;"dJ Z_V[UglJ#IWc>NҽIs-0pu@܀_x vZհu/{#ҡ^EA^UzN4 E A2;Wa V4'VhLr endstream endobj 467 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 468 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 469 0 obj << /Length 125 /Filter /FlateDecode >> stream x323P0P0b#S3sCB.#C I$r9yr+r{E=}JJS. @-\. ? :  .WO@.P endstream endobj 470 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 471 0 obj << /Length 159 /Filter /FlateDecode >> stream x3534W0P0bSCCB. HrW01r{*r;8+r(D*ry(0a@R` `$@z ɀ a/ m?C&\=?qjS endstream endobj 472 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 473 0 obj << /Length 218 /Filter /FlateDecode >> stream xڭн0 p[*y#4"t7p  }4бCHpH'n[~8{`zz9> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 475 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 476 0 obj << /Length 160 /Filter /FlateDecode >> stream x36׳4R0P0R5T06V03TH1*26PA3#Lr.'~PKW4K)YKE!P Ea9$luPفX$N#Ccagc{  00?r Jm endstream endobj 477 0 obj << /Length 207 /Filter /FlateDecode >> stream xڽ P FҡмVn?`A'qRGE7f}>BŚނ*3$|9VuQۀ}+5͞1%kTڤ|18Ux*%V738 \A&rOP deyܿ>X ?c\%#'q(IfNĴ) endstream endobj 478 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 479 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 6 0 obj << /Type /Font /Subtype /Type3 /Name /F18 /FontMatrix [0.01004 0 0 0.01004 0 0] /FontBBox [ 2 -19 70 71 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 44 /LastChar 116 /Widths 480 0 R /Encoding 481 0 R /CharProcs 482 0 R >> endobj 480 0 obj [27.08 0 0 0 48.75 48.75 48.75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 73.09 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 54.17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43.33 0 43.33 0 0 54.17 27.08 0 0 27.08 0 54.17 48.75 54.17 0 37.92 38.46 37.92 ] endobj 481 0 obj << /Type /Encoding /Differences [44/a44 45/.notdef 48/a48/a49/a50 51/.notdef 65/a65 66/.notdef 83/a83 84/.notdef 99/a99 100/.notdef 101/a101 102/.notdef 104/a104/a105 106/.notdef 108/a108 109/.notdef 110/a110/a111/a112 113/.notdef 114/a114/a115/a116] >> endobj 482 0 obj << /a44 463 0 R /a48 477 0 R /a49 478 0 R /a50 479 0 R /a65 464 0 R /a83 465 0 R /a99 466 0 R /a101 467 0 R /a104 468 0 R /a105 469 0 R /a108 470 0 R /a110 471 0 R /a111 472 0 R /a112 473 0 R /a114 474 0 R /a115 475 0 R /a116 476 0 R >> endobj 483 0 obj << /Length 243 /Filter /FlateDecode >> stream xڥӽj0 7/P=Aew @B<)Cv,nQ;T+&PBI.ɥ򽒺_8x|Yf-efяifp'l ɷ׸~);HCtR M J$ =JEݠ](F]JvOPN+NSݥw>H]! FnL* %aB΢,# endstream endobj 484 0 obj << /Length 316 /Filter /FlateDecode >> stream xڍԱJ0 4O`[,'A&qRGnV|mp\p9䗖J~qr5KBMKuy;}ts/g. eV;.N\]i_zY37RcUup]Q/-%u;>j{PkP%G*K0IX S]' aa $W&>a"a I0QGdl LL M 254Aaڷ#*bDM6~,> stream xڅ;N0?Jɍ`_ @eHPQ *AKrGp0] -Ğsr|xzf;{b]g{6M;oO|{T{؏՞^^ݣ^Z!(*l4C #]xKt"8ƚM`5ȩ$d͎H5`!a+VU\Y==R((( UP,RT|J`(@>ZuT2(NYS9԰pcY Vr6DjyW/jw{Nґq(8 +ZKJT͈ixHc@05sL<'Bz t!YgӫSԎ; endstream endobj 486 0 obj << /Length 287 /Filter /FlateDecode >> stream xڕѽN0> stream xڵJ@%4y˼nn p` A+ J--PB\_SE;%_tB=ܵlkouLn}{ ?T\n0`Bh§"( v3,rV (R0(Z1̾?^3A RW^SML j3)0}1F3f liX6e*yX i}lM󣫖 S-zY endstream endobj 488 0 obj << /Length 267 /Filter /FlateDecode >> stream xڝJ1'lq0޼fpVb]hy}-86L /;q5%QwFO-kHfr;r +ZoyaC 2i寙5z>%k<&r,`vd+q3ߒ1^+ \oxE<@G*q/|Aoٸ=,8U(`ش fA-pڟڤPj"{mI倷YR endstream endobj 489 0 obj << /Length 182 /Filter /FlateDecode >> stream x3134W0P0b3CCCB.#JrW01 s{*r;8+. ц \. @? $|@H3?D2I?`dT!?0ȁ ```! i? P$\= endstream endobj 490 0 obj << /Length 142 /Filter /FlateDecode >> stream x3631R0P0bcCKSCB.#1s<L=\ %E\N \. ц \.  30oAr 5 T @;af f!`` ȘՓ+ > stream x3631R0P0bc#CCB.#3JrW02 s{*r;8+r(D*ry(070o`G1 d endstream endobj 492 0 obj << /Length 252 /Filter /FlateDecode >> stream xұJ1;|Iej`]),APKAEn"v[ |]\k܄[vGXN n2rב)MZ/W4mɟ˟1cɷ'E37.\P;s0 ]*\T3&03vrHM%.,^{aK u`m)4`BO5䀳"mDV_—B.fY/ë/AG-!A B endstream endobj 493 0 obj << /Length 249 /Filter /FlateDecode >> stream xڭN@ }K!~5*1#ܣQ3T9l Iɾ5TUEš^+:pP3/F *-=UT>cKxii$@v#W@!'=r48 E\)GC B1:6b:wZK??"Xi=1wfbpY4?]e[t~x# endstream endobj 494 0 obj << /Length 185 /Filter /FlateDecode >> stream x? P ,dМVt* ίGQzN:xȗ@ iDrj* CDJbCbqNjILjn߮#r)o̙-S/XSeFԕ+^+k۪d%A3vX}X~ö"7iӊ^Ds. endstream endobj 495 0 obj << /Length 281 /Filter /FlateDecode >> stream xu1N0G\o$"-D $(PR[mr⛐#Lvq v '33n"O'5sj<=x/5j֝){S^˵)x|1jSn衦t8z[d yDbDΰt=ZbM΢yqPje^5X*>YY:#BIj!MlG-ƨH]$?r>Pc6A٠~I"vfD7(0l@/]3wׄ endstream endobj 496 0 obj << /Length 191 /Filter /FlateDecode >> stream x3531T0P0R5T01UPH1*21 (XXBds<L=\ %E\N \. @b<] @>dF"ّH~$RLڃz0D2I@D1aL``n@'03H~`c1(l@A(8\=~@ endstream endobj 497 0 obj << /Length 203 /Filter /FlateDecode >> stream xҿAr $7/eQII\!R Q,'s0eQ"ܟ3?(%V U Вn(6Y4n+|א<>ȭh\ E&tj8 endstream endobj 498 0 obj << /Length 268 /Filter /FlateDecode >> stream x}1K1Wn(ž/TZI* nw֯q@2P.R0:K2ONFQ]9IKTc$kmlv2JP;L5o<-Dw0ġ ;#39~cF<cpGh> stream x}?N0/`Cs' BmHJȀCH@l\+7 9 U6c#%glʮlfeח2foofךѮQSwՔk[roɴ{ q 4M@s`d<܃oh^53¼x@=tqeF3`0b)(jA>(Np5g PK>' o4s?u'4v)Jk(VλEӗM8"<¥1fdc,,@Y" -ji_[iOHw.zHhA~ ?4sxkAܴX endstream endobj 5 0 obj << /Type /Font /Subtype /Type3 /Name /F17 /FontMatrix [0.00697 0 0 0.00697 0 0] /FontBBox [ 1 -2 115 101 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 69 /LastChar 120 /Widths 500 0 R /Encoding 501 0 R /CharProcs 502 0 R >> endobj 500 0 obj [91.72 0 0 0 0 0 0 0 123.54 0 0 0 0 0 74.89 0 0 0 0 0 0 0 0 0 0 0 0 0 67.4 0 59.9 0 59.9 41.17 0 0 37.42 0 0 37.42 112.36 0 67.4 0 0 52.41 53.16 52.41 74.89 71.14 0 71.14 ] endobj 501 0 obj << /Type /Encoding /Differences [69/a69 70/.notdef 77/a77 78/.notdef 83/a83 84/.notdef 97/a97 98/.notdef 99/a99 100/.notdef 101/a101/a102 103/.notdef 105/a105 106/.notdef 108/a108/a109 110/.notdef 111/a111 112/.notdef 114/a114/a115/a116/a117/a118 119/.notdef 120/a120] >> endobj 502 0 obj << /a69 483 0 R /a77 484 0 R /a83 485 0 R /a97 486 0 R /a99 487 0 R /a101 488 0 R /a102 489 0 R /a105 490 0 R /a108 491 0 R /a109 492 0 R /a111 493 0 R /a114 494 0 R /a115 495 0 R /a116 496 0 R /a117 497 0 R /a118 498 0 R /a120 499 0 R >> endobj 503 0 obj << /Length1 1464 /Length2 6553 /Length3 0 /Length 7532 /Filter /FlateDecode >> stream xڍt4]׶ޢD 2ekQf;- ;Aѣh&Dzyy\y{iv.ЃC[Z ȟxXP} n P0~ 4ڮ_d\?@Pog wq|0{VAz# /"~AA6ߩrms#Hwwy=f%COo݇Os`p/fk [W^Csk"  n7؁> +`w[jAG'=Ff_#s[|Y*s7wyUtu9/P^ @q ń@A!A?t@?+ۃ;g?"`3!҂J`-/Y]2Ugg?p V1Є쿩ƐfWb poT 9 @`׬9Ca;v;``V!sK%nk CpەH[o!xy`p <A^ q!m?x]o/pA[n{@!`)8X"̱6G/O,ܨYDObT!_r]wWNdP;uMt/.ꍭ7̌R},ܑ{KOm wgو%CX'W"u7\sYOdMR3 8I&NN?|ax7^eğp>PnAƌ#f{Өł ;S`KV!*mB9O|xOKy&U>ّr}>.rPYlsyܓWDQ$Jz%Rz_Q 8,-a6Ij/}Ͱ!"{o "Ar=*>gNP$5in./̫j ʧ (7Xtٳa PE`(;xAʋKOHÅX3уZjb^:GMۭЊ],5!-lt_Uqr-Oe~ˍYӜ `ݎ]yN!߅-T])v#Boa?vQo9}ƹսs!X0mB;w쿾zl:Prزgv ~QafÅT)#kT#M-0@MM|SU(Uk{/vF(Q IAVV=*v9La>yZaz+Ӵ5 're${w%WoVp &qѦ HQa`5?H-[<4X;/;=xŠa7P'ϕ 33TীHH~Y&9R" έ9RudE,O4$~'"ܛR]yʥ[WJWn{>ߠ9GVmX"[+BlvJ|xͪ^f;u=ê8ET@X1u ;s_},͝ȦI<82mޛ&nU;8P;w2ʫr7څAFەQ̉Kԟ~$Ҡ&}20h. *g߲H̉`SeKnu/GVi W,g2JYÞ|;UT}8t2WX&ŭvl |S2xYz45KʏmmvLH5;wBȊ8q=RkU5O  tw%X6GC^x2ᇼc K.Yx*B )2ZZbCZmFAߺ}<}Lwn^38\ '`!M)l)ڮLv9Jy̵U-Z"wc |!TTLhM/-sCemYX5oݛ{x "YɌs>RH^IK~4>Fzi2.nn SLZ5o&yٔH9MU?pJT 㫰*o}ТQfh@|0Aj!!{UUXw^ѐ[%mmM}+B h)%&L1r}3rt̽<`RdD\X$U.j=?o>SJM aah֠(Q UFz`GKl=]~g8GߏG)9PN6%}3E4Bƴ&fB,[:s%v!*'AkORNƓ&v,2+oL Ӈ$׿}ZuBm8H "Y^0fhuȔT_n}jx/2Ui8]E=;Y5FR~t%ȅqZp#r5}ޝXvR;sn$HħήR"d/FcOaޓS{%[M1O:6K16_ʶ䛼H w Oezڎ?©-2}^TY}OTezS S(\>(Вl)w W{VjY~lǢC,\!$ ABTFi׫+cZ/{OH$ӻM`imUC @+Cn5r=6TE,QmpIDjƀiO|d烛 6aQH-K2Z]}.G—F!iu6lʦ*? VAj-K$kj)ldQ y}y _S{ɵU+!r˅X#w DuדКu>Cm`1e466 $KGnkdK@Əl,ldSk%=kzT{]Ni1u|S۲EŻ~ˍ"fU-7$8{[KsZx lac/2O}=kep&ݥt1Ӱ匪f2T࢛WcGr9b3ʾgʿ#]o-.tِ$+3sM4BCC~m$1g'R!h[P )~mfB^ o,1v'ZsƒUs辵)[J6DTe7x!)'?_4f${cV6+^1LH) ,NjPFKb'Zer/*kitYck4FNe3_0z~ 9JJ)mԨ(Clk-sDQR *tYæG&0 v2mY6-UYكIxpuאClN|2iBsش]b!^ĥa+Wo5q5m{6n$^OOxM.ߺvO Z$1ѬjӯX^mlv00)׸p NHڄs,~5L2R%^z2ɦQp($0{3N;%62f#ى)zڝK\o )r9w ojG1sOpǮ7(7~T x[d2T;&cS^#~p3UayXihRׯ[F ^[]Y8q WNf.Sچvɺ`E T([S̒5{yHޘ )#Sc z*O0@6yX)2(5"l+VtfbTYmL ?D [{|!yf&Zj iIZ^*'ZJ%#K [IS#.Z)vrtBJ-M`ldDؚ+Ctz)=%q"-t^lѱ5c?ۘGr汄:? ܣ;_e4MO͜b U7ardⅵ2Kl fq7AmKM4,y[kJ?E3V"qe'1.=5*/e}[L;g*>AQc"x1ڧ,>&'v_瓎*wR U)lD9?7;IKc餏4cO%*Co6ҪSCv5HJ jBIČ,X @\o0{H3" -vJ72O`6JypgRTko#LBvkW"QR}Ge1}wKWЏHj{OƐ{dwž_4Bf-m/93up~YOW?Ԋpйۭ?R |VxldjNY~]/r|:g3ZdjVAVdOR '2" MKd+MnZh(x~ULpnۍ[R?$ւ(Lj~`weE[lx &͞/͉BjΜoe:4Nd:[En> BtX߿;[m5=U=U,ÿ2SrW_ck44vka>kH~RQ$Ŀ <,=F{͒H[8[b̯d-}GO{љV(<('wOo%Q &%:'% ?[8 H>a(Uⵝ+EdO>|ƣPD뮭c4}RlBїEΕksFAk:O*A0r ugQ-;plɠ^͹P؅0^Is hk\n3ƚVX&}ʧ]DgQpu>v48…WAkEv}]]Dp 9{,O #Ⴔdn۔zSӤ#OIŹ"?Cҳ&H9½Yٛ7Bncr.͕\-K}{ۃHets7oU=':ϢPFM:K+` F#x\TH$=M=6C79DіwkB2zN;Za;tETcX)^k(Nފ8:y#̭.JEsCQoBC O4356x2+IR{pF'9,zQߤL,8q;w* nag2txh3\(rѶ~ endstream endobj 504 0 obj << /Type /FontDescriptor /FontName /KGQQSD+CMEX10 /Flags 4 /FontBBox [-24 -2960 1454 772] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet (/braceleftbigg/bracerightbigg/parenleftbigg/parenrightbigg) /FontFile 503 0 R >> endobj 505 0 obj << /Length1 1803 /Length2 11672 /Length3 0 /Length 12831 /Filter /FlateDecode >> stream xڍP-Lp A:AwwhqwwwCpw NpGf̽_^Q|kY?hʷ* !XjeObf01201RRB-Rm P+Eڂ61s ``f0s0s01X! @jCZBLL#ڈt%bM'-*P#JP[02:991-&4N{S2l~ Zjj ӡ5wڂ 9 <P(X 3030]߅ V$@+ b(H2;@v|#b4|: !>wWvFk{;;yfq+(leol|. dd n`ͨfqKlBf3qqr6)T]8{pZ{@ϿP쀎`ߎF`6XS 6? fz3O A,\ cČ2Z2tSD pgeг3ظ]Gǿr~}pvKm ࿋C Pt&v&g'UJ_F  "`reP +A,+e|^a+gI310iI@ E韲Ӯ{, V`E+9|[fd{.1TC },-yψ 02XAS={`mq2%AF ߈٧b0X}F1;3~bfN#\y0qsxfj?b7dyhY܌V0d0B-&b`eg,Z(_MC噎_Mq|K7WǜV0p׵%ԼϷ̌5F)_E],/+ue,e͖kXPYf^[CSȻō7 Bs^h3 +cO>l*@պX5D G_N$oi6KaeֺFZ~VMln֘\="u$/RnlTxycVW×ͅ> E?YM_i=>A_!Q[B;xGvHYֹ<݅~Sϣ<6:+(p!q y1#G+UaWfO~&ۘ [ӥ_ h:Uip\$P!xy`[?Ow3=lg;Vgkm`jZXWĘ C=0Md_JHJXTyp_C@6}č=쥻[cU,tVgAُշdftwhx{de MWͥX󬴌oկ|@uoyAl9<6nqɍdhfx\^#iW`&Wz6[R2TW1{ƍu|d#'),.W(-)t1S7́C^DK7ɪcn}ppC"3% U[fNSjfpo ^ծ ,l֨fCR'yPޤQOQBvHI:\^ygo/h5>_3h WQLpKa1KPk^k¤l&0]ZQ$j ]b,lf&$VKtz քj_BXyI|DzIwwo/^+1GE=Wђ4 ݺyϓ[ R 3ؕX>diI1_?KVqPʽy{-AlgOǤ#)]+Lh;>u9 q©%e@[P]_\  Q!t^7-iq GPөHlpőSߏZΎ-8ޛi qR׺))V5k0G۔'d+DdI9_^z2M30R*ZB]wȧR ]_pgDKK%Msp}S 8Ja zܤ^5av0i*&œ1DMWUY-OņlLfxSUUo5{e[?Ũ%U^m,nU?[MM1_أ B{1eFڄCz H+#dӍ{YĨ}f!KcEv]~?nlW+ޜkÕ>\+qmI܊-G[)Fe wY$Μev`ҵ3A=OpOmǖzH=yDo2o-ÖVo϶jlF@ Fӆ+hU+ Qs)NRug:e _-Ǿ깲R<0 ZG5bkl =h8,)n:E#/VNl!6#$TMUG;pmxODqH/>Njc}%U@ن+m@ iYnwqY`amxc5|,jҏ)ފ'r£vvљ]v Bqv͌Im %IGa+:/.oR)WNXq*lRk.7Dޕ<95\=bD&g. No3~d)hh2|Q̿: F]ܣgc$b1 L[z0cr[EfGmsIRbX6˝L&Z=tRx-lbJ 6sS eӚ3;x,J~_915>˂7;HqͶ_?U0ߣupqJD6& `܈sS\ Ps\b\C! a(y^I>2'1oG8C*CՋm^ 7TėaX4ɓ䢻:dbcy(0/Sw{vq؞E>x s |!e*%8_7Vt${wƲLXNףR:kҨcI`qɈO[{TzKcKd=mI&XaX4}^{=6R/_$ oS_^/VVȢ.0JItg=* B2u(̱ge9[~3$d}1>jy;\Ҝ;@ɸyP^Y[l iH=QJ\eqSt 2jy0qNDkA}"]ɎwJ.fk3:В+d1kTᱲ\=`ӟeo9$>e] mo@Q, &OXmH"{]GV`*}W_БMCmdEnNh" ɢfĎO y"3-Yi}ab +ݯ?T )w7HՅ;%KAf~zcA@%/ X55 a>}UDA /6g XX'ך ٥C&\2GLo}f~ <}tI2m3N?lTK[M}9lNex4BSb&y X4t;i#yϹxMw VWh6 );}4( %E}N#S +%h kqo.:2I.㪻ݧ[/蕳iGoQ& Y؃Mwܥ: sf|i Nv ʭV@I%i G% ׺M6"ۍVaaZ{1@y12ڲ. 6(5"u]B 9vj쯡Fߊjxug Ռ◗D*5|Pi+O|"]kQ"`Yvv*Imr^;|#>.*D{d-mPmA&@+p٨]7)#*TXzPKoxMw4L`El&# }fNe(y 4uqVh:FhNC(/l 6wN\jI6VlX- 6[.K|8Z_LWRr~SE\8iT&S%C!Q'j2T|r+B 9x:bR) P/> uB4L۴sEDE^Qx#πD}R#O+t49S,+m!x.S<95﷋+GDY-wɘMf1-}ɢH;!`ʗ]"E .F>هb&]:$EH t]D+~'euJԎ:"rB%//9D5O"ƟAhNw!BV1aCӒG5o ܂yĦ͖ bZ+l} fώ@OpYb74e9[<Ɂ|6G:.+coV |d#2}fm|ʐl9o>#gm? Fp(/gRZͬ4)og fU>@X[<4\[Pyb4<_F6>ϕ>tOl{3rsQ4n mAjJS V$m? n˭p;#6HRm HJ3&7vǰ5.o{ }+zz>@kmU[}ؑR2l kJ^4b儬6CyROV 6$1( Q*%f!#ݏ~ګJ($ѾX$͌vD8kٚ+e/%d*gNuT΢I'#Dd2Z>=)#A=Y}jLu ^q'PH0f$=Z%6G2F9SXj;H9?Op!ޒ&*bIo-=ٛOտ-!Uh7Ѥp!:-1c~Dh!C#3X(_" jcJ ~H n \|5 }T174{:Ƞp~xWTϠs"g~#=9w 2&~&f5PќʺmX*7>yVvKkmЫ`:>7čJ\~$klxeoL1!_8H¾[GPlh*]~!5Oe)|PYimP 0ˁ:stv.Ի~C_ޣa&bJ%͗J>n IfV9|KP_hz$$C1"saFI6$ u]-+/24EQ@3 K\O'ȨݕUYqy6Y9{u)d}Zi}pJ' 隷+kz׊g5AČI3+(B.vE9(Vc0i679J˾aA]7ΔK׿MzXՙ>GtVˠmr O{[8ʰ4HZAE- "^BMB[w~z ':^tmc/Pș5y#+t\HL?`ӥkǥSdK(}2oj6sP fn}+jƒ@PCƯ`oE9{*bWBя/KOpJ(AsT{ѱ(w_"QQu,%S>ߞII؝JPbzc} j*ݘĉRRsp,i>Pkɪx=Sc*tM J:Nv%]'kWnURoSk|V肗kH1>1-/x?^7 *g3{'y$I/K{M9fLp[868zC @AqWss {]י釴wd?Fh~H$՘c`/bY8m ͿꕶFBxM#rug i1;r;Mstilg>'v=/ߓO2w"tYБrr' a)>ѝ"T=ȾiJ*u.0]yK<9E}.NY^p$sLߧZI{$j3iUYRAOu'>x)̟3 WJJ:Zz-wb"=8vu9n<7meJ,s竘sĎ$i0E3%K^e_1\`օ(fx9/M~{7=+@zadUgF*|ϐ&^8 EuQ$ȼA8A2ѱjq3`F0! gj)ĩlKs e}8Aw]LqΓ$Ӫ8B574!˒8'#CL+u$WfZ.-'Me^#W6 4 :'~Qo33,፮N3)jNpI,2z܅A|*PQISu0R^e$/ XЄ͜ӗd>>sG|| Jb40)e0+cbv2T>K _DjC&*7IoF|mT3t}$ٌͼbZ*z`G2?[~to'!Q Hm7~B8GIf?r8FaRdlƤE*?&澰[8)VyТM7egm$[0ޝ4hG|g>tہ+o.B q%[)O e TVՓX|3y,Q>C#֍pshKHfrA c涿%y<]umoҫTL+=.PN3\.? Gn7S;oOƆc6~Rn?5 u@1CU%R잉:8Ժa?as'6!-]b34LHrӀ]I$mHF"Q8y; e1,mZwFWmEIXQUN04T|YBt.R}b<ߜc%e1Pb]xzagOI}@g]wԇ[YIGQΨjay+5I(e&NG 2Q*Q !.6 Og N"zb&8"ؼnV?tIwʜAl瓁=K?'DgwՉ޸^R0z\\fKF_`g0s°n,8`po)r6l;N\(!'zʺۘ́obaޤ;'J|LyJdǍ~ @Gk#q .=+ƴ@M-pHrC j۲-1l&yS34YJyKHϨnZA_ݵnOxs~_'W=AmWl_0pKW::EI $%J '͇dYvLy9+ɥ@\ ee|^\[RkPBbE Oc dž!ѷ?&XJ Z@|b7/HoU'ԋ/kV$_5K2"):bA87B!qbZ;pw J8,{YeaW_}JG'wxY{'P౱O;,qW#5O{}?+^>e)x r pwOz2ڨUٙƱI[5ɉhZ-;TiTKV?Ė ts3i Fң})ng3H2\1H !@g>$ot]uLlnXp+6^]Z^ gqk+.({p֑N≗;?9.Z23 !,|~K s`8{"pZz]\; 0M,k: EekIe2/jI1/$aH](Ji jV׃,'Z endstream endobj 506 0 obj << /Type /FontDescriptor /FontName /KGYKXJ+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/A/F/G/H/Q/T/chi/comma/eta/greater/j/k/less/m/mu/n/omega/p/period/r/sigma/slash/u/x/xi/y/z) /FontFile 505 0 R >> endobj 507 0 obj << /Length1 1385 /Length2 6013 /Length3 0 /Length 6958 /Filter /FlateDecode >> stream xڍtTo7)8PnFȈ!)H (m hQZCD)AJJiAB)A$x{=;뺯54 0vH(ڲ@HJp.ȿj : u0OxR@"XNJ@ r`0//u/#(D!H, Ca8G+"4QH?R);pn0Wq AEX9o#=X/$k`g2qGoyðH Qႂ#O4ܐ?zD;_P08C@{ x 'ah/G\`vDߝÀPFxp, !r5į4[D#1H4?  '^ğ:1h= 5MrDjku!9 q@<t"}қ!a܀!({$BqXOd6S@ !PhH?2qX D.^ ?+ Ձh655ПXSLRKJrC?P'TmA%^ӿ: 3Z$P? ɀCon,a(߿DzioWs#(Oj`D"@D0A((0D Goj.(4@w&D\1=#(,v`kG},S}]h^ 7 w|R[qSSyr7DsШNW~h(h}Oid&[ mw|Zȃ2ǥqfo['a; ,J%;6ߥh`rʧ^%x8]o)Ff3z_su?/ |1:hT?duhv;UR'cV2jC:jwkL%p_ " $i½yA4y=lW=~j=}UR͞-0\,oj)?mը>%@D~׺gz |thTQjO(mdr%l1m% 0C3L 6Z(qӟ'< |$i cfzb7 =WBt~L"/S㩵ki(͍T%ߤrhONKعxw[yq+qԏ|rsllSA˟abI^±)@fR_KOS@ĭvuD؄8Q\EX VI?TH3}#.|lur~:{l[קӒ*6ӈ6Y*1oc UR`p뢤͖.l('Dz]Ap!286GKExX6BuԁAJݲM\0|)X!ڥ{1]s3cF)F WKbly /6G$M1"| VcO3o}9^ S,6PA.iV}4 w, &5!CqKIk6oQ>Ei(jt-Oek$"ϘBrZDAtHۂ,K-E$#6$OL~ϙ{Q=3ZOy.2]YLk{3憽FIz[:CRwc}U׸V_/)R.~&쫸Ibɒ;9[Bk*Kq;︞rɶL;㼫־rD<1rrɚ̓x&O$Ø*RQLk˞lκ;ٚR Ms~";/g p3pvd4*] ywdӿ,⸮vNpp ub~=fzDiρ#k&,hǑlu뜕EeYY[ ۓGwR2n+Oč<Ğرt}g^u/^֖(r–HiY;I cGLhǏRx.?.qg>@tvUꎱٳmi@>H-ofMmyNߓ)7b'>u*"2KE1 x>sp0.j{賌7l{z3>R -]ޠvzMeJLϫsׄ 6*Y/%ʹG}B\vwQ̔+1)7:dSjea*>iDP lW3LHtwu+ïw&2/1opiA'du$ۼ_?%aPf$N}dB,)][ݼ(?o!Pt`p\=D/XyYZyW|~)/:P(ا^ÈX9oEK&rHӎȖvڳ1so]|W7%Cfq- 6+5x3t:IQuqP'P*ZoguԬpkMiMh\3%(&.7)ROpsop4Ej/]HQ"p-pY%ڀƥA \1Z};`dPjÄ(NPqgAϠCmۡ!;}FOĩНMy h2zt$WGs/@p#" o߰P=}̐\Ʈ+o3\;$e˼P̸c\ȩhĽɕǸko&Paw^Ҭ;jW|Rczg )T)EH ?l">ʜ^Զ83zȲ>?Q"$oP2A__]  6 ]\_|sle%\kunh̖Ӿ*YAڈ!ǮF#v{ŠaulJC8"r)60a~R&)R7Zdf*8#-& y* y3OG(®E=FuwFqZ\p*PQ< 4՟"#"Scu"4ne̬Xol7`#_NZuo4۱:Rp>=C?e2uMկ,mNaC ظDYٹR~.f*Vn|5W*H3N~R6w5W3-9?nNv'K_@;qn*M-ww95B"lOghqD7m{?8ʊvʭVqvI+ }8~ӕVPDl e'AN֢%}dž0m'@EڹPb͛@dE_iq.T I[L*[[9 ;~+\"Uw&'>鑍Lpom?$N뢴MP4 Ica^^O ҅>/uo=**G;[Gf ޾:[QR \5 `>ۯ|9>>[L] C56RHlEPP</X"@^>3OzJ]^TNmTn> |V(!X,7daBZ|LwI%G잽y|gp>>":x RIYœ ]^Ę$W.0ix4[nϙ.?bbv;vy_ThV;.P3Yv۬@-]cB R7gdh~lc#3-q0%oߗkpCތJN/j)廒t'zZTu+rDR(s,5/Ao- WU=02_IX!@Z)uEksՄQc<@4>-6xZ,Yfgdr EvFxfjgG4S$sR}T?o endstream endobj 508 0 obj << /Type /FontDescriptor /FontName /KFKJAD+CMMI6 /Flags 4 /FontBBox [11 -250 1241 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 85 /XHeight 431 /CharSet (/j) /FontFile 507 0 R >> endobj 509 0 obj << /Length1 1464 /Length2 7214 /Length3 0 /Length 8209 /Filter /FlateDecode >> stream xڍtT6"HS)!B.-$@Bޛ"w Ҥ"( ED@:{f3g~D%m) h.7P ,@^|&&=8抂#"uA#7G ^ P_@@sT I Cc e9`p(P`NG. QUv8l8C\aր_4 N?q3?~]  `p( d!a]e53  l nп;"!/8`w4ԸўhNa qD!1wbP@05 wFQp_#*9ey, @'wA1fH_ amkk7g} ,g C@!A>!>* rc&qF:l0C|60 ]`>P4 f G]1 <b2p~yt8L  ,|YF  ߹$.ղ_ `Kl@bh rS |@gNQWݐ08`X(@⿡?UYݜ;` Ű ㇣0k-8j3G(W #0Aa'AaԆ}lFOCEZ/Xquxcc> Ba F јff_ 5_LA&< oC=Oo]B\]1c&fٿ ?ׇJSyprFOZ$fg-V()۷kȸ|;YkxXaU$jYWX2"=XZ4w$m{tԿO`_ ڪQ[ZU:KS\4 zU3DEn@ahy~j9~ł{;>Vdut(e _Q^2gE%P-Rl H;w NӇFX-) $?yF4P)_1=- 3L5a&1}Wz٦-j[WibFt4I@\~a>;^7uW!MNKTt7?s&#r<ĥ=QoW}(z)VRuci-UY*o}헉t\gv<>OZ4 sPϡJi?tpr^n1lCZ@_G_D ͕R,| 4Ϊ2q&Y#"4>ZgW/Uݺ,d {>q\} *AjT`dĶ99qK Sl.NjdL{Լӧ fF'TM^EaKi >WZ^n[|xoN;7%Ե[ii # Ӹ}jpZ!ܦFcٶZYR_˚Aj363zHYZ(y8 \3=ɦi7-?^;%y_A0i9M_ #}_d2 vwz>2 keXXUJ,(x$gEC7<Tq&FDEILX^teq*Jpdof  |uHX|]ϓ֫BLf)+(xa_`vn)Eb qݰ&?IO /&5.yG& )O|  0|`LvPKi[{+ -J8lST^jN݁~l=+Fgkܾ<>̊g)O?dv2xKk+5ۅŗIlJx@:λ 9iJjc,Igb?IrkIs1ެgX$4}Xv&,{s-ȿGJ~TGaTLo BͲTAf}kü:Ë KRexC2s_e-md zԸwW~Ԩ':Q,F֣, :ns Y^Nof3oyEW^YSҤ E|Ks`IPRBx-O\V&]+13ج;—vyMs2MRx(6x5tmQg]}v*n ]zQ: ; -,b~5c1Qąo*!q4{3NYxS}È .I&[}Kb= ɆlOR(ScYjL~&CWW-_:cOlӢks}:,FE9 -_Tq&WGCX|LI_;~8FUtLcXŖt~ٱȓ~bj0uMsVL:AM0G3.~Gs"@"ӭ+bG`MsIdl7%zSǜ;r 9|1;6y7 ↄڡ۝=N:l>⤛mdg8 _xyȭwm#Y"d /tu<4@*݇-1pwY 'ĥ衽2&i U} k͡GЗ7g+{˖ W'dgM6ܑ]xvЪġ<8ք?җEhk_A!14;]{q J7=eUHKC'>uIۏy&&,2 gR- D዁;, $4^Ub Ijo?!gC)Qh;?\1@UoMM-Oqͮ`%?852}q 0MMeLLd3:~`. ӗua,}0, ~t` aJ~0`QFGQ~5 rױifCF7.dQٱR ݛ/ᚩmF>xVɂcAWAytFqO#7 =.-+&&T·']uF89_SGJR *Ӈ^H7Lݑ L~tvϩ"o`$k㴅`,1fɇuΑ+틟:y/nFDUiCtł  'ߒkQ^;M,&fҞ &T/s4{J8ȍOu]bR%L(eSKKieu \)J;؟ɨ,VvB@Ҷ}گc͝3z݂Pf < Te9o5 pl9QMY=0Qz9y9Kc"rE:`'Ø(N E۷=.'3Tg5Ɵ]WX-mj#S?>g m|&`V,;=ۺ&,vHnBuHcKpK!9$'*V|1]/O09}Ι~ AÓN\`۔h[!EbAMR+zޑx׺`Ζ9da26-|7jӄy+ `#/c} !9?O52M 9q5zj'$ߙDvNfROp0[mY z3U2̏{VNdN2J6/YiR%VlQf'B4_<4gPrzlNʞ"4l{ {KZ?*VBN&pǣi??tu1U4_*[z@V08d;yl<KwC ͘Cwc<%i''{j 3X6<]D$^ zӟ^iY&ۿz"0|b];֘RO=j9 sVjR.1G3d(h[  Y^Lػv={@vԽVʻ3v*GK7`d\d|6.m(n+7~Ԝ5 {5}D0~H7tDGIZɡAEv:(tpEs&uUY[\ݽ_iڧyt6 wB?crLI(Ie<#egǟ3M2v>K \}l+%ozrEj"й}ly# ^YţC9pܸi@pǎ90\e~Hgv U^6Dg|zܔ(|[l K.#Z 8(dNbHN1V~Kcy^gN3݇`募Zv cNɓ8dq~gc%v$o7E(|Oe*dخa40kc)OWj.\R^~W̓S8AGU@d=]#RZcz!m9oJn.^)wQǥm1Q҈}xZKonejB>-2ƦsB2x}z+w6A,}\*>~nM]r胝}(nOqhp~v!/ȪfҌ(XsaQ¤;EoȊF.ױ$֝ĿXg 큡{G텼Sƶpud- JF,b*E}Җ+tvxܝjdSOor{>pf[E'ivbOQT[p7kV_+<S ͞§9o M'EFRU9|5* D]|Y)Sգإc(I=mp۝vڱR+W1v_'\W̙ZCM,93VDLZJFa"u^ƕH=Dbi3( Lu7nq3HՔDVʡ\ɏ o)to)%iD^ o8>EgK<)v&)RW?@m_kAS9Ƴ幀MGKa u/uVVG=6o0ӀżA5.X`݀DP3;>BOZ[tEÇ Ԁ8 thS1+-ytoƞ*HB/w$<70}]7-(4A7`r.BcIk G!2fGܱDQăv^U/XgndAOX]Dy>wծHj3B[c.m6Hh9QA q7s켈-$M_@>q^}%MMhcRQ.}^f#w-J+@A1?#5<(Waa ͲAݛ7dAu=*މ~A""hR!ڞK^0gdYG fsK/a*//q&GjawC2SqS5q:} tӷ:ħs+9uumZΤ?Z8n?y0ϢuUrhЊ$x 4_)_cl}l=a冗j0@3kt\Sx)0#K$d3'AA0ᙘ;Cr:<3UOCUrp3uJW=O, endstream endobj 510 0 obj << /Type /FontDescriptor /FontName /SFAAHH+CMMI8 /Flags 4 /FontBBox [-24 -250 1110 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 78 /XHeight 431 /CharSet (/j/k/n/slash/u/xi) /FontFile 509 0 R >> endobj 511 0 obj << /Length1 1417 /Length2 6472 /Length3 0 /Length 7442 /Filter /FlateDecode >> stream xڍtT.-! )(€ 5tHwt 0303 *tw#H(9H t~csw{׬>oy6>- xy--5q(  @Qΐ01a+@0"ӂ~AGHAP[/@  Ϳ0'_\\w:@A0q9`(('/ GKsr<(c~ @LK0p"p;'`g(Cb2a9@_M  {6~^;]\A0o(`ut5yQ^(nf+䌄cA 3s@YN w<$uE!yP_#*9e%C!E@csN0'aݕus) @!(0PLTPLq@|xB~; |\;?Gy@(;;il`b:1ź~^Ybe 9{'i=513}p/8G@ D1 AO.ղ_pU'ŴBaP|;F_U_,ݝ9~77ZwFZp`j Z--忽j(F r0{ yxBp(RՅ875g( GB=., |0C?.6keC0zgJ00E Mz% (>^I`fĿYD' cm .{oۂL_ق_oC ^08(ı Jo#&u{&#ї> ,XƉ]X"ow鳑>(|N,ڨZI nUg`UAֲKlJŋ$T Sϒ[=}f):E{`}PzAQF[[>6*T[] '-Kn5t۹* RcdK[橽[dJ "bN j7祴[KS;Hx^]E-&"{ʓ=Opkqrr "? +$"`ӕ$)#ͿNzX=t/e {O~ mi(U~)XRJP 5Ґi7jkb2 ɐFwpdN(GVI~(:NM|@$vk ^W qאU$me+$O#/Lf5Jp#^/ݐ]إMZTFMˬ.#%|%_#tq֧#vv%|#ikZ2yoFe8((@{! B(U~V6]ԘI͉B`02'Qt ]ip+o;I#yTu;}]v}ݾ<sz7ӯk{e;Y"D\myw(X$)1k NI Dֽ.pⷝ}EJ3\:l2͊O]nS(n+E<ڤ{먙&Jؿ7VS=vy "h0XD⏩X { /51~j1Svow8 !bMV2Gl~/Aݞ锠k.%[$G!1V$kgVe&8EK@JVX+ktPG-mRmN_\)ϭ7ECCIG%3w"FCJc{ T2P L:: H0*eNr$ڼ =(a`rݽ=LO;qU[f5<`wl_CzY3zhz\KwnsV:~AfbL>U<'\[is|rJcdf1sdk(;\hhO %1bv`fM\(n@jz4]mPsطBɍ5~OKp@ vRkD =A@RyqKG7o8d|#:{f[\ܔ2NfIebe]\/wwy8qG(mqv=,J) ˔?A  F ڸD鹂Wx_x p 3m6NrOwx TX#Q{` ݦb θysykk+U-E+;T:HXuׂޙ4fNۯWӋz*Qi];oUcRDrLk <9c={㝙0p]n\xv]=Uc̉yġDzĽpd4& Z V-Oӛ|uON/?7-?yJ61J1 wJ\/}u6?2l!r*u㽧7 q1ءYc=u&SUyL b +__;7ugD0"ZFds%HӔSiDQw*SO/ٹ몆)9] j/g=ʴ";=vx6*"qw6+ϥr?[CnmBYOCK'fV;#Ə1JJLi_ܞq a(L9REmibĆ' "/ ͂."|x,ƃV>@ dSb0Kz(~xݴjyiu$kh86nñ_SXЩf_FӤ,Iִ9Vf0}|z-[A/|UnYQސhǤvfĥBFVQDfR|چ-!_bO ̜mrRdTpPncCmxD8vY'y`*YuJ-_S Hzv:WդbwXSP|!">߈8[j.,ȱ` ؖW'l, Y'P3y=P9VJ3JeFBד ɤ@+k:"\Y7&KNT"WKm &?UK}0ea>XF 7dB伧E²]B0LgIGO"?`TP"x5nR͊DM|RNZ T^ǣ }'D M%zro (H@9vtQ-PUuIBdwB$SNU)TfGWom}n6lSo]Q~S~y kIU+~$,!%ry+"嫽޷1(9ҭoղOhVj9>?if(DPދ~ :sQ)˅y/Mc]cnNo"镧T+˻͈/NG1mc;b~͌7W%?⪵PQ+ѼcHdܒ䞯E_tW_ 0c"( Vɉ"_] C~ę Pv 9 #l*R$PBi4K93՚mu ѹeei4| ggLX[$S*QbAZu8e}$mH(v* 1Wd ż_n]@WSV_mM%o!5E}:hL={_bmM%o TًdJRBdlYD}Mk U]Lc{N&瑦X!:.7* ޕ\f/'ydI֋ -m&,<{w4lQI2NEa=61N'׺Ҿ1ЭϢ]5IEgѼQDW{/gt+l1e5kxe1ៜKU^g˃J%hm}U0$Y3)x R|Os]OsYX!32&>#4 p=d9gQcڵ$ٌHT%%<UdV> feD!nof}ɬBucLScc+wNx;zRx[@55 (tkL(((~U:UY:zX!&"QQЬ]Dm;3Ԯ -Mv UT\7<P11aO{Z b-w?Q|y+syZUP>$P󖧱f.yѥ+;lȯ;ސjN}gSA3`k1][QEW(v {UaoL$;gŭggRbE]L:3|dGod20nhn1HxH>Ć+;:ˑzJ-rMư'~llz ^,tG䖓yȧNg 'Xi[IlBr-URMG7Yӗ]Jp#FLmj:*GmOdwltLVY#k$2*~LIwT W]=uŏ|guJ/Sg\[?>tҷ۾:Euh5T8il7dPuH Ҟ >~\ɦ$Ub"v&wB5wӡҏڭy]Y%~(2dal ɹEɺb"ĦdJv#'K ղO5D-HjBpCFZ%I5YqU+uo^1pͫӧMO yn[Jm6j+uө3HB}cɉr&9VӨw&ڕ3 LLrqso!Vep-߼p&'D'Pit̢sJojANq\< nS1.F}lA=ϻVmrb< oi|g(8*R|fj|n8-ѨQjD/9DJ|ZmiJ7Rp6W[c|̽iYʐ5|Te(D؁W@9TwJ|4wc-5yԍil'ܴ9-@LGv0E> endobj 513 0 obj << /Length1 1806 /Length2 12231 /Length3 0 /Length 13389 /Filter /FlateDecode >> stream xڍP\ #wwwwwiqwwKp<$Hn;#sz{1}1׮&Wdt28ݙYl66N66Djj-[w0" ,/IW ); vN;;?N)%@!RK:9Z۸#΂;@jk6 Ƿ@-B ٸ; zyyX\E^6 d a Wg,-M'+w/+8Zno`K+-9@S^ eYo?قtZX89:>`k*-0:9=@7?+dnݍY6ei#G}R u`'/߂-&,=Y. yM 0k;r-lX SA3 P z_ `ik0Yۂ`=v> ˪(WIH8yl?HaԀ/_yj=&AX*No!7gD#-HO5ݟ5o7z-.该UYz8_;m7R/ke` hm,߮7Jm[8Yb<+$n.Z$1xk/`ljX@IVsW=.r/yW`uprxK vrxk?yYAIkoDnķ98$KzDIf/[IN9-?`oW)7czkov6M-?9ހ&֬//0-;F 7qqB0ܮ.VȋywLxzW7oѵ}Mv.mik%gᢚS[L4&w[&pƋĿ 3k?C@Vu#|y$rnW}G|9^;( uy,>;3 <74f+B#bq ա FgZ -@ȾUf 9B|ʝC@UJ ƼqkʫϴbNiH,k ur*\/>dJ[ JewcB}XNu[wcGC$"zo,n**$Lp~9ܟWyEK ~ /x߮ᦚ!+ Uz=ۍ`Ny%Iؘ%=QT./EM[ܫK(xA6X uc0G]r6ehJӶF/DZwSÓT~UFzqI4tq1/V1Mk^ߗf֏FIPµqaf)0bΥm=%4 Wխa_ ETuCRKFk"L=|ʛ-PWeP}%DTjq]DOg oq -4K=P[KSK>o5!.YKa;9%4AM83%!`l3q˹WMNνZR57qryf7֞}y۳%d['PVWgIY8gt rs̤$5Ȳ8HɄ';4mC$%YCQPeIWrxPĜa؁4''Pᠶh^u0B\у摜5ÐPۅR1sl]H#=ѹu{=W`X#V|K#ɦ%՛q]o>r%˩m"vָ aW'lɝNT'=U?'q669ʻզϢ6h2x _|xnC;$2(eJ`n //Gӵ5we;t#ϭO6*vT1J804LJ=bUU+l0 fGp=))V9mj:J{B帧X咹E9~Ht z0`d Xtp>?d-<Ss(s E'e$S4]6W&m@\2x1Ud8}H)3-Д'd{ W +_}d`0+(DAt$t%u߭h,0}>m-ik.oSa9hSz7}pLO'J=EK3,4ĔDdД;1<Ό~;h*fI(%13`'e(ǬIPf7w[-AR=\(hFEVeQݰej㫘# ;6xP*0LOj @`]ݙd>UJtP>:;l|Rgǫ To4})$؟Y~&uU +8/wE)),TjU姒W}I_&;@F) $Ȩ_)"~L Zr(ٯߝN84FQx!dE]@0%D+Da0.QU,>bUaTDoC,5RKANS!lTM%h-]=rIg#UvW08C#) ˥"å9SIjD|otPL]vәucR|ud1o ~ggϋNȤ2W T8&}*IrK12> {XZiÙ:X8˘RH˗ʮ*u҂O۽XXnB (f: m6{qSdJz&1‚(&99[o iͶHQ]tT>M_l$ C6!]G5á{UwoZKZ54 iZjS!z."[-&*K"eHMjo*͊ 5sdž%YO׽X'.֯ % QjWc2҅Ǘ/qӊahrqu"bchE;e=4O6cig] Zݿi\f3XO JHtbuU*$~2&Yk]@3"ce`v^hLϭ3B+t ,WGSO]}`uh/CnNYb~I>sH䒒d~x,A g{lx` sk7tK*I,%!0f};x`Im`) #4ʋi:lփ;".G[{-! hȃʨwpU@Iv#1yu:0:N͛+X."N,6>ݦt!{XƉBe+iL5ou&Tw-Yަ2 *~clGjzz_v]7eJ=&$@GLs긕?׼[;]>RVOTjWѻX@fHF8x|gN]}wVYE}b ` TtӫcJH0/A0ތvLQ"jйBVԄ(᧺sR$aEa4}GdC}}k &-ɏkw _+Iӱ 5,@}^y.`P xa#AI=E=J42U";.A\H EPHU^ @{ 4­ ^^XȥVm۳}U $Nt|qO>)?[6GH}`Q"]tL%,8"oL ~ nưA1TT)g t}reN'6~eO76B;8yu}.;I);qPJ.} '{%qKdib`>zɡG&Rh)Ho5#e(Z-o!)G* Ӛ| ɑ %6Z{ 'i=͈kA^}j>2~*s=5hBK*F>$ sM}c~O} Ro n!䷪^_& 5ܦYpw쥏hq3H/#[\￲WMDaʭmHz!ΔL~*rW{ۑwu9/]ǰ Zh<;wEE"u}#dI Q Hw@>b.Od¦j6l|xWL&RԣLiP 3܂%r+y'Ojέ\â>߆*Wj K{+ѫE?@`lg7EC"N ]1J>%S\G3yfJaX TtnQa'1wB `7T?(X䍶w rf@Cq5{i3Vi̙YifLL`,t[hpK{dg2s\' և֣e'3|V+'Zo^D82G /2M:'\@Nu'ȷ%"}ŗr\*q^_~RBʽWnzWVE_'^ǟK?nwLtS0(,kv,-L-( 3VE)|RKYIrZ)kh8m} >NK ko mz* H+}å!sނ03Dtmv[E^ _7A':R izh%]cҋ?PL*LS%i7>>ߚ̤@B# f tjzBQq^iۙc,S7+$ fꬅtxm:7vȹvjG7/DgR)ŲcUESBnfjCTKDlA o_ NSsP%}͆lHFeoZP&0̤`g&h&i Iȫ[$}x Po9gbÂˋ&YLiwg|v,^r}T:<YFʍȓ#Ԡl)?<[toAl+k!zh>'/ska K;ʒ5+86p.H%٭nN(?Ēey)'vnE=J5bJg[?ws%̝k"q$~l\HyR6ZKZE|kqt;n>ٗ%S1YB0ŤHp=bZbb6bSzwÕ5!N=wKˢ7_NTZV$4#:AƗRtd>պcbEv [yw@aBZխ["TI&(n)/Idl5v@yV"d Qd&_-U/ Yy615"}Ʊ0!ۉWCz;\'3)4o9 ~+ 7=hM_#ǵAEK~^$dN)~`MKa5ܐZVu-g 1NϺ<,}Ubi&xH++#s-0{M}憄$(uY Ծ2 >fQhi8ᵘg{Q>H|ƫQ^le}N5VV,~b˥}NJ *zӎƪBQM`(ָq$$\y\:>ӒnV~8%pzEDk =] W np' g@|V9* 8@`[HOL5wO*0 v>->|L%Bʹ~=1Ez/P%=`?.R[{F`ՕeTl@Ck~/vwO? l-}ͭ¸Qص[ *2} / cp?"+k1Die[C $"m !ck]CM+Y#2j=PH\L0ct067Oͥ,.g_" NTԾ y^ka )6dXwkGWHMgrɎ!OuYC%@FdT/).1g/4Q6$Y_k5TqZyd=Ȩ|\hpTЦs4'0i`}MY)xRW8}-"Z]nFb,;- Zf TyP7ES6+ȹ4CmZlU=+teߵffM%L naŅrV}wH cX;]6>$Ua]vC!TW IA݇2i#3Te8~\k?)߽Fލm{ي= ;1Q*1=}+pJw儰 J%is_,ċAQXq,,d]G [+X|t h´'CuyCog9':jʞ)Yd5k U[!.NU)3~Xp66k,Je =6~1Fty3O/#bXՀ𾿊?LD#<-f2 + 6a5>Q.Ȗ 7NғGՃɶ dxqz !1xg(kfNYgff)%ZopNzF/}NDzL^ ӻ8|7Yz`U!hY֢v+*P^/ fdMHU׷ZĴ])mF}HFOlk^r^6-@9H;[s `h ȋ}F!JtXݑ]5;A6$Kj9'sߴ0Y^1k|^>`7>e CH`nR8TI.t͖ I Ÿ41quq77FH8!%V,ՕUXdeTPUIn(Ym)ב̣<!-Geɵz3QSԓ62وQzz 1I`ImYPa"{^PKZm]eI'`h&D,w:H ^Pb޸rqNM,bt2[vPMՉЍ Ko;4rжOus|~T]3𱘮+͆Tv  +B34xsW7PYϡ[DD؈1Y89ܭ*u +ۣZf-ݢK\#uUv!'lfPy%y[9 fXVC{Rzm$E$s'kW5Vg[T!RIZFlpv}~@HXBx4`) U`X BWBwğn~y&WX:^YTرw@2sJAK%N*-np[aMaP`&jC?Rl!4FIgpScm'A^F-ޜN]lH G,g2i&9\V*s*`ɵ|G{Qw. XDX>fxxs?׶0CrŢeX^D(!>*6#5+BWD.԰fc/>`c*/'[GkeMV':Ibsd O \O:_W*:wkɅ@V\O𳍱7\U9V =% JPt撑C?gO?91AC0lq~T67S0UМMU*`;[c?Wۼ3lU:O@ 7Ҳ/7A}=9Ǎhd啲 /MjWU 2A/͍LJ1|/Q5Iň" D<JZkc>"ߛ~ldrރT`o{~.@g.4!|葷nh[%7A/O"oS('=8b/E*+<bӞ>(Gr8f5A EN< 7"B")JӮþw/k)b̊y0ޤFK.ʻ^jv1))BmtpeE+אV|TpY ^νME6J]r\3q;C!qPz h) m[cL<`:p@ng)^&fCjԦV,VWL(Y 7 CwO );첏0tOQһJ1c-'׺sP7 ,dq0/_JwM5rMb8,}o )t c{O*E92O{j?{ѝb\{ ʲz"$r7Ä^NA=bOrЃԶ\s0E\>^!yHE1?U#`?U|&&@LLhT c s YWE9L!OqXpcj5D'GتV^ ]o?BQκéB[OwJ\+bwRp5:Cy8ZE(?.HE["'&*bDՒ0] [E;H&;W˼ ⇓,,TV&!|H8WZw\xF7s.$8{>uj5I W8fD Ǟu`oH/G5 x>nK}nd {^uB3XY뽅H E<3 y\=oŅGN`@ O-I'g~VY sEUlpd҇ޱ \wytIP֩4kPHi[-f͕7]5µ>!G|`*a^LL"dlðl|zQpte!8[x褎ߑb̫)2=^2{d<)Ft ng-=07 A/%'?tϯ?\[:1*E̗|5GSLOD /JJේ):xTE;$oC(jyp8`T$ &`U;n3?xɟAvq}zsoR #7ڜPǬG͢X~AJ`Zɯ(؉]X&k`T^kRN{Az!;ܴNkFuq܆aF b8,-fzR O4 B3{jz[Z~2J:h{Ru(a_iL#21MakFXAϊ ϡrs$'}q! pw >5HkT c%l·u LDYL I2'duXṪSiMsbÏ0#ʦ*zXR:MI@23͓ Ăɫ?ekC< endstream endobj 514 0 obj << /Type /FontDescriptor /FontName /PSQKAV+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/a/bracketleft/bracketright/circumflex/colon/e/eight/equal/five/g/i/l/m/macron/n/nine/o/one/p/parenleft/parenright/plus/three/two/x/zero) /FontFile 513 0 R >> endobj 515 0 obj << /Length1 1435 /Length2 6449 /Length3 0 /Length 7420 /Filter /FlateDecode >> stream xڍtTk/Hw#)=t7"= 1tKwK#% !tHKHw%ߨ=;kݻf<ٿYxdmV`E8 i> ರCP^ B 1yiTݡ ("*y@lU8 "wv#`Ddk B؃7Z=5WvI{Yӓ w{ `7\& 0^\=Ex\$XanHw r14 /py vY[ÝA0o` Z/7e  BNPU+W#+lNN` W~W5ս~9B`6Jqw3A\*Y !0;0 /*]`/k{_adpg-?uyWwV[6k l mλB&H~̐ܲàn.V=yx@~Q~(( _Y$|$W ci‘!)05oEQtBk- K;} 8r`mg\56w֪ @A~D" l AX׀A!06 kxCN#ri![FͿTYm~M E) |1{f0G ]pW_!/sF.l߰  CxJM#d o0 l;7u md|;~EQ|L6m#º[߯XM):~7I͸({Glݺ;5仸?".$V) ٪Qû)35 .b)ʝbDcsyMMcPMߏ|k"9X/ALmLEvJ:4dY߲WˮCӔëN@ϦsVQqvj*>4r&dRdLܣe/VnZɐ;-h-Ex]FVG*W=wj`3Of?p3dRl*B%qćؽS3i ]Y-6bi9QjZkQ4.==}ưwC>d\ *vu47.u'+2E h5K(=hݘ *!0;L_@su19=r#{P9_;P0ݲzPߴ'[V:݅=$>W,/HB~Z|V!m q*֒ME4KrhTuņKbsZF+~DLTe43!~b;,T3A]2c'0V  )f~[*t&H7D#} 0DUYia4RhR6 %p7QԕF*<{tw;IʆIVԸVFfH<ʥ;Gt-Ny9Zٲmq" AqWCӎ]5z !=Ł$-"A6TtDsR4AB'@hkg4/a,6uLZ:@tCw󳨇A^(;]NM񭧖0u¢! M#/%[O?c}1N_s{\Lp9ܖԴ[ȡ͇Zer~W.MP6Hd­,9bsJ+p2˼Tg"{ʜ)ZfJ4 ̏|;ۘ@;1?bb-H[v,0`|LQ6;Wv5<-hItg9R$0kB*@I!O m`ᙝ^e-ZBd[1BεjЧhk#E~<, _'N0"vjG/Ereꌟ)lE_ L4 \v(bs[c8T#>- ^K-&j"}YHmTr1ށrhcy*̴& ϸãI_|y,55{|bbEKR( STïpJB9Z "b飏w &̺sSl,jsjX|D{᫬ػ6:Gmjw [26S`Òpti~\{O{1/=ds5&®.GNr3Vݤvy]g8݆Z_!#[)_ʉT=v:gx0][c OB!mAO—e&`_/q;t R;&MOjg<ұeM&JrL:c?%TnY[soU)啄$=<es9 9dRlP?2o}'fHݍ5OpŜzᕜD]%Y-F yL{JqAZY7#H/6 +Y\` mpv4b^_ƹuP^`u^b״nLQpeĄ ;H2]\7 Uh~Ja[9Y Ԗgi߃8Q}8+<J1ga`2g/u֑N8.(؊NcU-`>d(%' ^w3`Wt0OC#~jTؠ_ Lj'w=Y83Byg DŲ:N QTc:m|d8P^v KhNc2ܠ VntWwI1 ^Sryɦ{%G$6PD2:#RLO/i9.t3?X  >UegL]![CF+0[%HlA!Zq4 %eE$oxKoe z+*ELj;^wYތ#dnv^gnY>[o${t +vYHx4Xtҩ޺B^ɛ2QpiVI؛8iA"ng3%K<[< ˝i҅LO&g&j5*,rYt'FblJ]mאR;9}myh@PNᡂ-0@)CRaL"T +_SrY4i8fm}& ! jTaL^M h˜!#+uKN 7J&:~踺;c;O^)Q!}9yf/J28I[g4Bby%9ݎ$\^L(mr%ME]\ PA״+b+4m% ۟]z_Ĭ  lblWr*vWzcLӾ|lfe'yl=X-K[v|[Uuxliu>A-}!H g NnB&lp & N& G[-H)Yi-+)ä>d#JJ^};|jߗT+1$9>#{8;|V|Ě H_Tղfc<ƗqY'Hxe ~Xz׈{9"<'kCL"SsuuY;*Rs}-3SD2&safbZ#dčW2&n3(BG2|oGaTMi6}|uq~blraDި%C>:';pҚ?FmCmk=d\t:Sn lY47 qp:K9"HD b:Y8~%Sb_2rnٟT&qkrbFUJrk԰l+x}{u 8'X䫨G 6H{;#hK0SŇmiqLZ<m$ܧܵE`R~͏< '@3mKI`%ɹ c՟"_TTc|ydߜV4<fq*g.?5$?6"zOiܿ-f1eؗ${F,-]ީnL'^/{&LPZpb5^dpA b/*HWr_ƾ9=tʿ@k\F Jp8N~gje0`n5?Yn-?z㗨M=p>vN]]d]GIӑa884}{yϓ; j-hedfUV5"gG#( /L(]Z ,gA[rZXuäsf.1u)+41'>X{'dn4bT:)dqËYQe>aE0!Ei2jݑ~a~'wtQBL/T)p>uzMWh=PcRmOBi׻(qӏøưNYZ{Wggw\]6_'>! tNu&rD/ D(jr6cCM,D7`M!>tdyhz+h'YZbTz^[SAbr=X;lE 9|*1>fd7 &vMҳ|&]R=WP .v Dy+pIˌ&a26xEL'.n դ9cTBpNB/k1u?u'*2YGOJDfI$CF=s,_qivH?ʡvwau]+kFP"\.5J_o ؋^{μ/,άzOt+pgς,UG;2YaS#vk5yM۰|@ ͬ")uBbo&)2ӫ6 {ǖŪ`tU0ɱ(dT>zL\vMۤ|-ٔ-.c$4DxqQw+sDD!ꧭLGC`@,V6x" it6_{xDc].?u`:cFN]Y?7Su\#!O*ԗU^2E>Xd4 L ¸/8J%hum`x .;A=DWq+z 9@Wiajr]͌rW ->Չi@Nm.n4,]Pyg@(P+@>GfnQVՕ!//>57@IruJhc^%<`|7=}}|jH P|mfAnhL1Oa͈HpqOY;djxD`9YFPцcD77L,^·$Nowu{e}7&q:`8պ> endobj 517 0 obj << /Length1 1420 /Length2 6290 /Length3 0 /Length 7265 /Filter /FlateDecode >> stream xڍTT۲^D@:B=^.%@P &ҔDҤIPD.Q{޹Z3{fb7.Z HJ緂PJ~(2+7^ 673Fh?X U)@IH_"@  ph%"  FOtD4H;0!~K; G7 (!"G TD!07EC=@ XyÂOT ?;w@=Hl4 cl@W 3^O`k$ D/C_ nx߉C rGPAA0_J d GQOo=Tw[}x' t5ke(Ƽ( S@PįV$?2<ėyBA`(DC#;% nP/xg<8@~^9偀mz" 7Ťb2 $% /" + ߾pO@O[Wu`W,[7@2 woMݿ|t~~Y/__<^h^g\0(~4^~DX. 0ܽHnk`p"AAS4zMAC#u_%)# PJ|;@8?Po$//@R,  DoF= ~PO(/Owēߺ'' @)#ܕ|ڎ5BFU&l !?ɲ b4iVu8y&;[O#~dXRξcz3V񬏃]J}=,0&ڗÀ$-Om8WkuLZ܈/u+f!Eq chp&. 2D(#wR*%NðO$:YXX8pt93U of1-\WDsh7$`枆O%ـ8A7\љ ,HGy^\ǀ5d7vq:ʅ0C, o Ғ xanډ8]+T\cJJk"^uN;=;vfݞ'erD{G 롨oC +}"#go3 ih|da\R4i6.n fa#K7j^8,Óq5q}v2#"V+j\{xL(6d%󍭋WAg9^}+a$ܢ ϱb /БЌ$c/8<>s ̘KTx^L=늋kyi]; 1KnIvC}*V-"g$Lʯ#U`ʼn`jsy?g8{e>*{ ?]OJK2Z!W)f:6@zTg j;eM7N9֙2ukT'ŪٰSa\4,^ tϕm]^$ E4םcIhMzۥvj!p}{h[#xyM$(euc'[n L5ayEkmb~wi!ѫhZ=-i f0Gj߳|jUBI*Y ֐ß#r$-(>kGt<Ʃ VLFKaufJgҩx?|eH袪 .eaqp(WRu[85:MZFRI43{9v©W|Ew/]6 7SW98!TNF&uHIX2/|]Ƶ`E`sb!ާs }ys #঎8.nN!HjpEh~5=!36?{ԋ1v2YPm^PJ#{z2q諽ɍ{6HvwRddUi+O"Kݡ.%7.]1џi1.^^7Q{\ i 2PNvb()+XXq]ȷ9&gEPWTIƩGR)Nj?jRk!ªz M{]nr:$sO_?e )1N;-Cz.PY6G.BS!Z;2vk+JL6;nUJ#p9^LS-BQSG7WxRL6"ZK^ZI#8i~m,̷;4G٫i5AD&R(a>=-E&D:ǭwjl4pbJ/Ty{̽aMȣUDbƾ"IKnn}hPZ*IWCPbQrFN;O.T[ǢjgwfdY𻪔4<5To)\rMF\Ÿ ~ѹr4o 4Hþ2%ӞBm B+}ofմǣNQu0]h154DU&t-Y&4?ax dm\6s9EI+IiJQhn˯˴70D7LZ&ج/=i ֗%NjndUD 䝏lLxb3JE _yx(_Hu=cIz(۶ÚInzRcZB -@TI/k櫸 _,D<6:ECK?T4l;?=ZP՜ǦLj%B9MJ͉-Yp!RHݝ@`w~+(k֖{MǑ˂9NiJRhl-z(*wq(m';GltD0mwy-fKS@n V9ѣTA"lK`F3m0O\8L7eje)̾{.[7T *qšiZ9oіR֚A)@YChs?i~Ic]:mtl``^av2umxܳg>V#t m;dVl0 U6{FYe cWbtV/%T痡w#VU5E@I7RSHdܴm_Ҷl Ur(Zֿ]z^=*vqv>#5ߌhoڤ{F.c \BE_6ut>}"q/|G&9!̹ro۵9t{}N(]S5˜"Ύwz$u L jH~>kڿua~yn9NKڍ}f:i L!}ܥ$P2HAu'u j J-{ue+^ןM1Uȑ`6=-[>S]e*YzC% $RECCxpzBba'dsں#@8a]h&/黩j@ZU:p<k(U8cc'WR#_uM=ֹj6y5q3GG%i\Z<&:MSw%;-lL{ T¦lK@zRG~?z+mG*2.@ӞqwܩvbE#g旎NRhR5mh!9M}q9|8glR9mб6aϛ{"siu-eF3[|"Uy Mm)pSgT;ɫ}ʯmkd_h835ߺ\)8ZKwIf~qc#ay6 $LZC )Z% $yhKW.TYĿ&Gv!<> /SCF]kp> 雼~;OcNTGLN%ؖl>x4{C-k\aGn"\m¥Zã͕!F]"XKy^Gy- Ӝhx`\gt[!^Kc]Ƥadg~Cݙ̤/_(,㓉EҨ+$b XF.9AQr|ˇhxɕ/KNlz^.^ cq]+*9hbz\Iw (ј:GaF9(,E͒p  }ʠKlZh_Kh-}DK\}!x}puar`HQ~g5!:w7_C%RrduHn(2Z?(4R[^UqK(ӹȄһuE+VYם^ҩ-/da"14/-+L:xѹz ?tJ <{V X-duFӢv/k*T KV>dWo.FK~/Yv endstream endobj 518 0 obj << /Type /FontDescriptor /FontName /RAYGFR+CMR9 /Flags 4 /FontBBox [-39 -250 1036 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 74 /XHeight 431 /CharSet (/equal/one/parenleft/parenright) /FontFile 517 0 R >> endobj 519 0 obj << /Length1 1494 /Length2 6778 /Length3 0 /Length 7790 /Filter /FlateDecode >> stream xڍxT6Dz H{ޒ ҫAzGzޤ+H _xZ߷Vg=癝0ȁve (h@ /(bE ,7w(. 7-)"QD- Eā@(7&PZuϢpq:8"Q`qD\ nP-etvGvIG$Uˋŝ "w' U2@4^|#/e\<`;@M E s8~^+B}p=(k"[8@zBav(mrz[TsA]Pد~ApqSA@s\g8  *g>) c$@(&,,<@A|60q6Q5"\2 P{@y@>?? !v(Q05nPo9%?~_O(pϿ[̧k)?10/ 3-OGJuNGXr! (rS(;#e췝/cu|0P@@ SC]-V5-j(E?> +C!`](j~ "ܡn_6ԐQ;JM s_%85lB[77[|TQ+!?j*bH Uc@-#7J5P #( pwH+*2Pj/?yUk 0WaWurt^<8kщQBHօ~*3OmF3t#8&-zsWUhJ'<z `äHF&q=99[p>OE7;fb@ c:2N.{)#:rԂ$_͗5 &/{jo#yq\C,:g&p}`S]li;ުM/NFTćŠa B )m5;[Ͽ_J< vm>vQD^@F̶.&Y*EeHUv)D`΋hߌX*7g~C]|CKe?C=߱|N1D 'ZYD+iiX҉@rj>? [OcJ%Ym ?XS73aRYjb;0(}) *\YJW{!B'j>hqF1U[W}p"y- ӨgTjՏ{_Io%zƾdyȲ?@r5z^r 3LhXzCqxuP}"ѐٞw,א@"5^j4wfieSliClO}b\=EG|YYk!\.g28;{؎ڕFECR6y XmXיt)#!f8`HWOc|ܝ6hܴ7aҼ"C&N~jhD .[ѕ@Ϥ9AF&GR-}W0Oj]~M"d!hQ^IdhGX#aPd Q0/?ENY*:?*ڐOݛzp)]MguzfF RyJ ]#m =.B*'gwYD"xO0͗q.L,Z :B[XcN-IEai [-maa|Vٌol 0֫֩ $vӮ= NHW =+YxY Lӗ|8<~QӃò\gCoAُs~!hǎ,*>ֵB&B{l˳-we 0OLG᤟:Q}֥8 Vzwz.܄/;{%w{<Ĝ |H㩚T}\%h6)N4S'aUr|UdXB!wDžFuw?z1pqVտCLVn%> r.v=5hx5BM"KqѳIFULjvgy_qq-L};sɭbolxdpd87tl繓SH"ḃzJ,rP7ڏL_*/J4vnX]?d_Xd!b]uN"f?n+yNibQ>ÛT&PWKZ |TpkUHvĒBgO&#<&9ױ\;u[ms_bTʪ`"!t)|W~0U<0O8{м;o0:Pе9{zd^TuVԶ.$~B0}B>\7RPb_ҍyJC,7 _ n7EK:f7 }XyR:0Btt=]c0Ja5 i{@fv)0C,vmrNY©P۩7/j90Ec=3Lf]8Mrʴk swE/˩$0gP!||ׁq*%m)jĩh€Ç8\N~+r}Or!NZP2$v[@nguO5 M?3^BÂC 0F~seXӇB<:8ЗB~薄}zY|f奔j[4)-DtŚ}=`>TһdWZeʲn: n X(g-݁lqUMz{8~dVd' .z?`ed: ν`>f6%19e;ɻ sY+kDǧe7%'߷ 1~X5盐qؾQ٨3}B:8b_JS8\傸{*HCDr$6e,' ̧\FG76 ,LG箷`28lͻG"e7҃Z nQ~g0>|"TN$RP ֚XHXasݭJ'&OF^~ԄY8u_kݝ3y|N/܊J͓>z|$lG}}3.xo7mXjKnTP]}vRԽ^{Fj]8|;^8oEeeZdY\2>6a|2";"ziXAu;g$lI\mBTܽⲮޒc vc(+Vg95Hj+fO?MӗM!q88Y seVCIl Y4{׬-kE Ӵud?*RADA͒O}\%>2Zwcu.b+Qi<^Δ&(dH?4V/YR< Ҿ Gﲃ=3efZ}=<\#x؈B{:V#LPh, "KSJ)DELiH̽ufvvf|_Kuo-^Kҡ8]t 0)z(\Л^7Lyҭ<-e};'G'{E#ޏWBr''t*26Iո ' Ct)Rn.O\#ot0m}!f ˲_I)cC.}ͻ~Gjٱڱ9rzAG~K̯(h?,eA$D{sX8Tf}.ΓP\vspW&%#U.7,]99.pnsdrϱ})nՎFdГvRam[PY̽P/ʽ}J7g_t:4&""*;gL!"2J <(.[QWT'1fSHfrxc͋uSUz;!V!}+l"neUNie\Oq}3(tWY:B#q.. T4uj7bXE)Rٹ#9{n?y&@qrEY醶}C]Dy ^^yc\UArSoi$(H=$dblH`?H]jB&!hXNuyadU,5ms{&YuL[RG6s3NarNέ|5Pv}nq~?|_3c?@7U$ƸPpx|6 A{>Ϯѓ OdzC;x;8\5fÀ4L#R_?z#-*Ǽu>< B o7pUTUi0rɮ/yk taDh9!2#տ.'iEѼ=‚Z-5v'jdid!a{:IQ.D/OwSOe"%~»e y_MHZ"IVs<"$^"yQ^NyN L5A:8[w2_لQ)j, 538naZƔ؝ܹܱWi' 9}5>ȅErWQg>[E^p[#[ĢYҴ1gAg9eL99嬶-XL>=@2u\\"ߟQ<~а9fc>F)e"BHęr6!K jw{ajV"c63{h.ܫӎ<0'ﱵ]Hm~` fZ 귞V0j FO2YmOsxr+Wdpe-8)oe߆l59ӯuLMZ!]Fϫ nw5z?4 ϒZ3|.Wn]f%|"=,aE<@r!h8äaDVs%QyXS23TՉ\zd:6y@ңKi ei_b5gt?_g+b9AϪ;C:93= }o~.}{xn3<njZqذ%Ja<9ڒT#igw)J O$}Da 'زxX+][{h}2/SgBiwt/խYEG`Z&$ip }!. {MJd+7Kuflxm_3?E齢=?3; \ih}q=iHV6kZhSĄ\o^R)roBfHu5}Ip c._jA|IXgUEڅ\0/?EU}6/(pݔl]xYj+{ƳBE{2!&VR}R kG!VFi{Ä?\8{3<1ER2q7''?(rp -OXAm<4,Zj9dFٺ>]0a2nRi'Et*EbKa#7JƼ+p2 '_,8sZ JK{3\T8fT-6\.!"2-?5Ej&]IU7bJ^ $O^#+0s>qRPLx=bS"aM;O`tCb}ȚB r!I&ēbjv:h9{Ą) 2# lwRw=zcc&t٤S};s=:?Pؑ/{r55)`"=.5Jpj/X]з4ݘ<᫳?$CXvQ5mM/<~$YT-Xy] m/o?LAp\<-Ŗ{|~>}9feBrNka,<)X"d d6VZYt yT͠7Ʀh}FMjB/ǻWpq,7]DsF.#,1_dґ; _abŦCh4vL0LBŊjtJ> endobj 521 0 obj << /Length1 1418 /Length2 6268 /Length3 0 /Length 7240 /Filter /FlateDecode >> stream xڍvTS-AzW*]z 1JIW"E" J)"{7{#c=Wk59XX~FEA`9  bnn$ p!0X$%T1(Aqx?=4 JɉJˁ@10X_hP ꎄ@@m4 p]0H;{~`@QYYi@eg zP=# 4FÐ?R)p.r"" 3) =8{#_ B:&H x C77k]?κ( wѿ!Q0BN]'NX4>E:A~WQ6B m ]pXE_i𧬎(>5$ȟ:(H&n."(BK C`Y)) Y ًJom;qA@!",a~>@TGp;$ x?| ' O/8P50Tm**hO8(,+) JK[?Zhj8ug-[%0ECo E.莛o3oa:#:I @]D#ݜ۪ⅠÓYXT#wC?/9!Q4قˆyۄ`h/IJ I ?oQ LPh>8P3,G@bñ78#Qn? a0xA DSh|І eoI|mJ쌔L׽1r^z?`Uȸ/AO̠8MޣV;M8nH:5jz b06岥&첕30=H9a%;W\5U Dt0wtK뛙Li/* efOf]%QW}9g>kYA2/?x{; irT[` цlX̆*_ 7%@To^^\ΜC3NJݪd<[JœErŽ2X=+H)+hcnY LsyX?B'RK*HyYzSE*:^AAT0 u}<WMlԶٰ6D&Y8aK"Oߚst $ؙVRXu4#O]&5o'$߃356Syg2MlQfBtflpȖ}b^|}y<|ёsdwA s$F}p=YT#X$q‰WVh޸گv\U߃5M{@GN)`Q Q%81T>f2\^!U{lvpLVZM9t˲aU;TXāAZh')=$>@'c鋾9%ҫ=P/8ðJ 4)xz”aJ1 Y7XDRc9h %)%(\~%6t;yW?d{Kr^{7!(d%]$d]7xsD`X`$j9wױI.Bdϓ~p"W.lY]ܯh &`Ĕ%m2lNYt޲4ҫ>]( N^ә{0~QWBI(7\9 l (eJ[˺&v*({\r /bRswUE HC;u8M(b}FEQ#j߼% b.Og,Ͷ+u#Ocn]rX}k}# m# uԍȇ>?F|J ?Rt^tMr5o>J1vnR?ASr^L`>˫ֳsÎsEPy Z̷_^ym5**vryXI`9P^xI/m?6֙y@ Z\[ O5b+/|u͏|yHnXKIkRgW&O#[i&{˲=N"t,` c9^K|Vh7-ue)p1i "Om ;jI4$n0Mk޼OV obݨg^8bV{k4%l7Uy-ȣQ ʬ\W%qԥm5J0ukZ6o{u>#¢$4=TL:ND g7 k: }WGb4m#V4EssߨK%kAk󲰗ermngK-okpNs014>hJ>ڪ fI|Ϸ@(npG)5zۅALY ﴇFHsZLV.]0gюG^e)m#]|S lp2K\P*I$dؐp ٽ^V!hכ*zkW+B`I^̴ iP&|7c)=c[],G0-@c]2 KC7V~X DODV3|hI!r/ ؓsv].033"3 2Ҷ%07TZ'1No{ D]fD;3"CJux/{JL/<;od%,/Iʡ>XRdP~ /u=F >iY;KڰҾOHB.WBN&7guFq_o Z<hj-A"Zt0wAD2Xf3|nY@/_>t"$\~JU屔ze2iC歘C;77UuxPOaE fgJtќ:o\2V,r V_ȋI-iD{S|㼛~#^Ns蘗 1Zsӷ у|mk %6v^ILB.'%k_ H'}v`^jrm z5HyC=Ȅ,8 xbyoC5!`'DUӥXUhRqC#Gv;_" T j\PV_ +lфC# M## 7)lsL/~N)QMROj$*dX}/#֞PhT CÎb :1SllQӞ=T4~qu"@5,oF ˒1vWoQBme(벥>rNKRPf9SJ6RʽhS;<>"R^Sȳ7Q駚G{@,PTX oe^m: UL˛8$3Z^TmxM`tf>8Hu>xru,Uh>Wu~;[Q`r0E8YW|l,a ڐ.MWiѹ6ED228ZWCGeRVLI0>M#'R内],NGr0Tz mXjfW̅U'Ϧd'sJ놢M9`IJ1I?W>+otX+K.,UN^HX>4+,am{ÔU2IN>ɯ h5ޙ!D<{J]BmgQT4Cu3F S)kK\dq!gQ\G+<8 hr] "5)t4;1q2pWVF]n񣨼WJ0ڽ{bFR!Xc899qtپ5\6ĴOnZ0]r,:",efJĻ$ƈAUݳ`Ր9jw[Āζg#˔e؏p Vn}3=!4J*_& q1kٛ3SV:McKߍeDڝRHucejN;rL^ŞCq[T;*zpx)o٪EXw0AmfwEsB[HR|f%c<,MYrv[d Q?oU9', *fV@3; ܒ+Fr iz\dpOu8HݾsmGaĘ o' ~:ڈQiDM^R{ִ(5kb{EzGEUipfJ@3&w?FHrr=TAň),xyJõ?=7͘UMY@JM7jTxpc ;9ӗ'p%^ta!=ۍzk}ip4tO_tqo)l`$EIuf+ ll8q +'[,y2 F߈]i2h31 L]08A(zCح hfPvPU"V{N:)Ǧn&s+ qQ49v鶋Woh陋P\^T{C._F~@$F;$ImtF$;A˔{J"(p3 uj)4A({T>s!2Ta2QF5^(o90Į?{P2N]u+/yQX-PP "*YWVڸzc[V#cޔ$'w8Kq-*?Ƌl{bCC }ccIm1hZYse[1En=qCi} qݘr˶U-#ºp⒉6W_u EH=:uHuuyv ݷ wum.U%9kf\*ߗUJ0Ny:1U2tfr4#O3l62-$'&B[{2*EZz|pgL* } pS9]U(,b P[YZT5]%O#+H|ɖZᦱ&זʑPv~H"٠y,Gy ;5iWB,9>կ[Nč &df s껬O(2-O\Ϳ.CG\v|K<Z(jrS;k5^9fs?S& 崖Gl cyCaG9r9+7=޼пxRyA?DDw(qIxf~i sGꛜ:uMwhq[p2Oߞ#պn#Ϧ-5- ]lI+'mS4FLPpqW<6\ Ş_r=Q ).3>Qqg@IRY2G;fwanjTNn5l ~6xBtzgDSdZҭx3LA:lS8ԛ^=ZAVA)q)]+&h8x_7]AT@=AS<%{r_a6-)o.>ig{Unk:=}9lbR~TBSo;ǾLE.xjSFU k,*dn`N~D9Q9_b“<x'n6U躔X"6:z1 g-YU!A!+gq1mCGv&M_%Y5AyGG7ۈ\bME"i2L;1]n&\6N(<\Cu+KNB@fծgI/3Ҷ^E`',p> ih6$_2.(ˊ/ DSUmFR7E+g"e3",!T w>gWJm)l .x/NR&&[gRPhK] 縶4gc|`p9 5Ħؚ)[yVy+-u7S'c2Cĸ.]mI{Ir=Dl%Td{LlsX'g"( 9zMhA}Tiew? ,xf\z8ۨUVk`[uc)F%'Y%I9p :i5Aor+>,o$c31Vd>}TzC'6 {'{>U~^bτG$S<&3. ֐!x|͂%Ŕ_X’AM1pj endstream endobj 522 0 obj << /Type /FontDescriptor /FontName /XCSGQA+CMSY8 /Flags 4 /FontBBox [-30 -955 1185 779] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet (/arrowright/asteriskmath/minus) /FontFile 521 0 R >> endobj 523 0 obj << /Length1 1371 /Length2 5902 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xڍuTݶ4 Ҥ {Gҥ$@ $! "H^{Ҥt" zc97{#c$ߞk{/<FP=L  dF@HTq_c `("b``S<] %d%e@ $/" #T{@]A xTQho _@^PXZZw:PCH.s#F(G ^9'-#$)v 0 |@O8 xa<`Pுz`W؟<@c'8nry10 @!0$ᎄ0@@#M>CC=U @Ph0t:0 #`{=s0P]w<,G㰂X8׈BO.ru!qXBnD]8P_C@B&H;LS/9p@q8s¼ NB{a¿`hwX ø}w+0 0G8xg| h kO5^^PR7RиgTTP^@_iPXXL()) g0oj"P@?_{_sYKW- [AKݐ;;;p_^8tQx jcZ]QMoe#^b ?8A 8M~Y G PXw > _ o{ AALD\`^N"@_a!0J "Q8| ??VPtB q`-Z3 &> k7T+x , \k uҹ1b`O1\:ɏA/7ςe.^P=c$S (,-o%}:]\οhŮ< 8Ypʙs> +ea$Ms׿1l,62J%\ܸG"P-LAtdop{̆*nfQghQɤ5{eobI~wv~.u1z\cOː!mSx,`tiiLV-3/#uе!^-]v&߄>+fn<}gG$0Et&*CO4X/ѷ-f5ж>LJ783S/LPdsڝfseLb^e/N庞F4{V+hymwM]ͅ~fUsԗ1 .~[O,?o1Ӹ#vɟ^/RQiJl\Oh /_d~FctCߗGȎryz1;S@odcp𓮱J,5T(-SA]x?d5y/פjo\hJh]'}w۵AI :0k Tn;SbK#W:m ncr436O0i$rؔFx I|(kPԢV.W*l4((/AN rjZ1IVL `δӘLGc(ddii5 Jq'_D޺?'E'i.6F2e$hwF1NҖ^\JWc/]{`xfkLLł)*(I#؎Q?]H2`܁8ÖW~师4-8ǥn06Y10ک4:5lrpVr{g7p蚗> ic+#Cۡ\$yĨ9,*)OSN_ESz ,GJ<#H݇HN6uQWuO^[`;vu0VK!𓝯/ F]4Zu4 )۰XKB} ":3-n&a Ų,˜"<α>&>IO1'θbӅi bZ>ʖT`* @ m9@Jɝ^=I{¬&oM[Uۯ0%>n\'U@٦Xc^p[\~@E-yzƴxFx>-eH]YxT:aX0=\5~$`lb\tѓ@+AYO)x[\7Y2sy21nb٘Ԉj> _%Jz#ҐP|yڍ?q'h3kg@fǜ 3~+Z^U$|u# ioG$wGpm_*( bd9db2Yb~?O0m68b}˒\r\ZYࢍQK9"ACc\.Cp@lkm ӨXZ)ը$XwtnDQuѬ=An avQPyOr+ r0@q\X(8=oL}uՑt]V&!i95pq\$Yt`58SpX_[lbn+n6i)-fORiĨP&tpjp*x˭Qڿ}qîWg!o)3Qvz"D= ]}x^>!Ezyy,%E]袐]!|FD4KHV; %(u*!j+Ӿ3nŪ\YPN]h39Yh c.*.k10=%hO!MPSbεC(>G ӂ48k'H[˓:\-p^\*)(5{eU\rQ w蘭4E $a~Vd~]HXY5OtOC-õ@yiy8, 2*2. :/~lKW1rl^ F,KMkɍ Dlf#OKec9]b DiN.3 }*)S%V'0C#; nQ]|;.pܗF"o ;QA*$wĕ.)?ÜSLgntDI I<>ynJ6wLjr2 lC59& ?XpQj3m+ qhߠkY>GŵWpӛ;yG>&oהX^ކZ. (8x)Gosb.~ys ϨFqtȋ[BUQ:B7ZL1BVr\#-z"iO*kK2 8uЗ,o_\Y";|X}d{ī"qY]%b'2p09r)Łq-maF}܀BJa9@'5LS+0ζjV눟%t"c' M?m\PDFe%x)ͅU{jd̀$ U+zachQ:/{nԁe$(1:I kQ%j@(R0E^)ļ^c;VRz}quDׂ$?rPiĪ) <҈yu1 M4P<1tib2͟!}9&$Mp?UQz*989n 20ӭ:Gت'<&۔=^K 9b!ҁOӘiLBkW%m1|凡:gR&2 o/t{!n[5{5c5 p23)nԷk(,!Eujb:'3/nSd:Zo4璽Q.ZMHC4rdjQkߴzW37`|<"yӖA_q֦ /Ѹ|˗bkwx㮰6fISGsIu6/nQY'^[JwʷyM( endstream endobj 524 0 obj << /Type /FontDescriptor /FontName /FSFYYG+CMSY9 /Flags 4 /FontBBox [-29 -958 1146 777] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 43 /XHeight 431 /CharSet (/minus) /FontFile 523 0 R >> endobj 23 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KGQQSD+CMEX10 /FontDescriptor 504 0 R /FirstChar 18 /LastChar 27 /Widths 148 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KGYKXJ+CMMI10 /FontDescriptor 506 0 R /FirstChar 17 /LastChar 122 /Widths 261 0 R >> endobj 27 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KFKJAD+CMMI6 /FontDescriptor 508 0 R /FirstChar 106 /LastChar 106 /Widths 144 0 R >> endobj 25 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SFAAHH+CMMI8 /FontDescriptor 510 0 R /FirstChar 24 /LastChar 117 /Widths 146 0 R >> endobj 28 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MROPXZ+CMMI9 /FontDescriptor 512 0 R /FirstChar 33 /LastChar 66 /Widths 143 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PSQKAV+CMR10 /FontDescriptor 514 0 R /FirstChar 22 /LastChar 120 /Widths 270 0 R >> endobj 22 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LMOZLG+CMR8 /FontDescriptor 516 0 R /FirstChar 40 /LastChar 50 /Widths 149 0 R >> endobj 29 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RAYGFR+CMR9 /FontDescriptor 518 0 R /FirstChar 40 /LastChar 61 /Widths 142 0 R >> endobj 24 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OPUNLB+CMSY10 /FontDescriptor 520 0 R /FirstChar 0 /LastChar 103 /Widths 147 0 R >> endobj 26 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XCSGQA+CMSY8 /FontDescriptor 522 0 R /FirstChar 0 /LastChar 33 /Widths 145 0 R >> endobj 30 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FSFYYG+CMSY9 /FontDescriptor 524 0 R /FirstChar 0 /LastChar 0 /Widths 141 0 R >> endobj 18 0 obj << /Type /Pages /Count 6 /Parent 525 0 R /Kids [3 0 R 20 0 R 38 0 R 47 0 R 50 0 R 60 0 R] >> endobj 65 0 obj << /Type /Pages /Count 6 /Parent 525 0 R /Kids [63 0 R 72 0 R 81 0 R 91 0 R 101 0 R 109 0 R] >> endobj 525 0 obj << /Type /Pages /Count 12 /Kids [18 0 R 65 0 R] >> endobj 526 0 obj << /Type /Catalog /Pages 525 0 R >> endobj 527 0 obj << /Producer (MiKTeX pdfTeX-1.40.20) /Creator (TeX) /CreationDate (D:20220412230531+10'00') /ModDate (D:20220412230531+10'00') /Trapped /False /PTEX.Fullbanner (This is MiKTeX-pdfTeX 2.9.7029 (1.40.20)) >> endobj xref 0 528 0000000000 65535 f 0000004852 00000 n 0000002360 00000 n 0000002248 00000 n 0000000015 00000 n 0000497470 00000 n 0000490942 00000 n 0000485736 00000 n 0000481011 00000 n 0000459610 00000 n 0000456052 00000 n 0000443219 00000 n 0000596279 00000 n 0000427078 00000 n 0000595710 00000 n 0000423213 00000 n 0000405531 00000 n 0000402903 00000 n 0000597122 00000 n 0000084106 00000 n 0000004737 00000 n 0000002568 00000 n 0000596421 00000 n 0000595568 00000 n 0000596701 00000 n 0000595996 00000 n 0000596843 00000 n 0000595853 00000 n 0000596138 00000 n 0000596561 00000 n 0000596983 00000 n 0000081039 00000 n 0000081182 00000 n 0000081280 00000 n 0000081315 00000 n 0000081409 00000 n 0000085379 00000 n 0000090889 00000 n 0000085264 00000 n 0000084381 00000 n 0000087822 00000 n 0000087965 00000 n 0000088063 00000 n 0000088098 00000 n 0000088192 00000 n 0000095096 00000 n 0000093920 00000 n 0000093805 00000 n 0000091033 00000 n 0000101073 00000 n 0000094981 00000 n 0000094085 00000 n 0000098006 00000 n 0000098149 00000 n 0000098247 00000 n 0000098282 00000 n 0000098376 00000 n 0000107067 00000 n 0000192334 00000 n 0000104845 00000 n 0000104730 00000 n 0000101193 00000 n 0000190552 00000 n 0000106952 00000 n 0000105058 00000 n 0000597231 00000 n 0000187485 00000 n 0000187628 00000 n 0000187726 00000 n 0000187761 00000 n 0000187855 00000 n 0000276555 00000 n 0000192219 00000 n 0000190756 00000 n 0000273488 00000 n 0000273631 00000 n 0000273729 00000 n 0000273764 00000 n 0000273858 00000 n 0000278773 00000 n 0000359802 00000 n 0000278658 00000 n 0000276747 00000 n 0000390658 00000 n 0000356735 00000 n 0000356878 00000 n 0000356976 00000 n 0000357011 00000 n 0000357105 00000 n 0000362337 00000 n 0000374416 00000 n 0000362222 00000 n 0000359970 00000 n 0000371246 00000 n 0000371389 00000 n 0000371487 00000 n 0000371590 00000 n 0000371625 00000 n 0000371719 00000 n 0000375596 00000 n 0000381281 00000 n 0000375478 00000 n 0000374620 00000 n 0000378207 00000 n 0000378351 00000 n 0000378451 00000 n 0000378488 00000 n 0000378583 00000 n 0000382468 00000 n 0000382350 00000 n 0000381414 00000 n 0000382573 00000 n 0000382751 00000 n 0000382957 00000 n 0000383269 00000 n 0000383615 00000 n 0000383957 00000 n 0000384240 00000 n 0000384603 00000 n 0000384955 00000 n 0000385259 00000 n 0000385559 00000 n 0000385831 00000 n 0000386167 00000 n 0000386442 00000 n 0000386745 00000 n 0000387057 00000 n 0000387337 00000 n 0000387671 00000 n 0000387925 00000 n 0000388278 00000 n 0000388587 00000 n 0000388869 00000 n 0000389200 00000 n 0000389470 00000 n 0000389747 00000 n 0000390013 00000 n 0000390319 00000 n 0000390904 00000 n 0000391179 00000 n 0000391522 00000 n 0000391912 00000 n 0000391937 00000 n 0000392088 00000 n 0000392315 00000 n 0000392340 00000 n 0000392568 00000 n 0000393151 00000 n 0000393751 00000 n 0000393826 00000 n 0000393911 00000 n 0000394120 00000 n 0000394291 00000 n 0000394530 00000 n 0000394771 00000 n 0000395026 00000 n 0000395262 00000 n 0000395585 00000 n 0000395768 00000 n 0000395994 00000 n 0000396254 00000 n 0000396564 00000 n 0000396833 00000 n 0000397100 00000 n 0000397355 00000 n 0000397623 00000 n 0000397884 00000 n 0000398108 00000 n 0000398424 00000 n 0000398657 00000 n 0000398854 00000 n 0000399125 00000 n 0000399309 00000 n 0000399561 00000 n 0000399784 00000 n 0000400043 00000 n 0000400313 00000 n 0000400585 00000 n 0000400798 00000 n 0000401066 00000 n 0000401289 00000 n 0000401514 00000 n 0000401773 00000 n 0000402067 00000 n 0000402346 00000 n 0000402640 00000 n 0000403152 00000 n 0000403498 00000 n 0000403834 00000 n 0000404346 00000 n 0000404541 00000 n 0000404793 00000 n 0000405044 00000 n 0000405284 00000 n 0000405778 00000 n 0000405828 00000 n 0000405905 00000 n 0000405993 00000 n 0000406285 00000 n 0000406573 00000 n 0000406837 00000 n 0000407092 00000 n 0000407344 00000 n 0000407596 00000 n 0000407823 00000 n 0000408060 00000 n 0000408284 00000 n 0000408464 00000 n 0000408721 00000 n 0000408929 00000 n 0000409177 00000 n 0000409387 00000 n 0000409571 00000 n 0000409795 00000 n 0000410173 00000 n 0000410447 00000 n 0000410747 00000 n 0000411022 00000 n 0000411303 00000 n 0000411552 00000 n 0000411867 00000 n 0000412210 00000 n 0000412474 00000 n 0000412777 00000 n 0000413077 00000 n 0000413393 00000 n 0000413684 00000 n 0000413997 00000 n 0000414299 00000 n 0000414570 00000 n 0000414937 00000 n 0000415225 00000 n 0000415474 00000 n 0000415765 00000 n 0000416067 00000 n 0000416307 00000 n 0000416565 00000 n 0000416836 00000 n 0000417134 00000 n 0000417462 00000 n 0000417784 00000 n 0000418049 00000 n 0000418352 00000 n 0000418620 00000 n 0000418888 00000 n 0000419161 00000 n 0000419446 00000 n 0000419733 00000 n 0000420046 00000 n 0000420367 00000 n 0000420627 00000 n 0000420952 00000 n 0000421284 00000 n 0000421590 00000 n 0000421896 00000 n 0000422233 00000 n 0000422517 00000 n 0000422871 00000 n 0000423459 00000 n 0000423899 00000 n 0000424348 00000 n 0000425186 00000 n 0000425789 00000 n 0000425986 00000 n 0000426272 00000 n 0000426554 00000 n 0000426804 00000 n 0000427325 00000 n 0000427375 00000 n 0000427452 00000 n 0000427540 00000 n 0000428093 00000 n 0000428371 00000 n 0000428648 00000 n 0000428923 00000 n 0000429114 00000 n 0000429307 00000 n 0000429530 00000 n 0000429707 00000 n 0000429892 00000 n 0000430084 00000 n 0000430267 00000 n 0000430466 00000 n 0000430737 00000 n 0000431048 00000 n 0000431326 00000 n 0000431556 00000 n 0000431742 00000 n 0000432024 00000 n 0000432289 00000 n 0000432552 00000 n 0000432851 00000 n 0000433182 00000 n 0000433390 00000 n 0000433645 00000 n 0000433946 00000 n 0000434233 00000 n 0000434519 00000 n 0000434820 00000 n 0000435117 00000 n 0000435362 00000 n 0000435718 00000 n 0000435964 00000 n 0000436182 00000 n 0000436480 00000 n 0000436684 00000 n 0000436926 00000 n 0000437166 00000 n 0000437445 00000 n 0000437747 00000 n 0000438057 00000 n 0000438310 00000 n 0000438609 00000 n 0000438850 00000 n 0000439090 00000 n 0000439345 00000 n 0000439621 00000 n 0000439908 00000 n 0000440226 00000 n 0000440525 00000 n 0000440749 00000 n 0000441062 00000 n 0000441382 00000 n 0000441659 00000 n 0000441957 00000 n 0000442296 00000 n 0000442564 00000 n 0000442877 00000 n 0000443464 00000 n 0000443888 00000 n 0000444392 00000 n 0000445177 00000 n 0000445585 00000 n 0000445933 00000 n 0000446352 00000 n 0000446661 00000 n 0000446847 00000 n 0000447239 00000 n 0000447645 00000 n 0000447935 00000 n 0000448192 00000 n 0000448543 00000 n 0000448881 00000 n 0000449205 00000 n 0000449539 00000 n 0000449864 00000 n 0000450269 00000 n 0000450537 00000 n 0000450756 00000 n 0000450944 00000 n 0000451257 00000 n 0000451522 00000 n 0000451834 00000 n 0000452170 00000 n 0000452420 00000 n 0000452760 00000 n 0000453027 00000 n 0000453295 00000 n 0000453628 00000 n 0000454018 00000 n 0000454369 00000 n 0000454760 00000 n 0000454978 00000 n 0000455360 00000 n 0000455746 00000 n 0000456302 00000 n 0000456605 00000 n 0000456962 00000 n 0000457445 00000 n 0000457737 00000 n 0000458026 00000 n 0000458325 00000 n 0000458653 00000 n 0000458991 00000 n 0000459319 00000 n 0000459853 00000 n 0000460038 00000 n 0000460185 00000 n 0000460302 00000 n 0000460623 00000 n 0000460944 00000 n 0000461266 00000 n 0000461545 00000 n 0000461825 00000 n 0000462038 00000 n 0000462214 00000 n 0000462397 00000 n 0000462572 00000 n 0000462744 00000 n 0000463195 00000 n 0000463453 00000 n 0000463715 00000 n 0000464004 00000 n 0000464333 00000 n 0000464624 00000 n 0000464974 00000 n 0000465266 00000 n 0000465540 00000 n 0000465786 00000 n 0000466135 00000 n 0000466346 00000 n 0000466533 00000 n 0000466784 00000 n 0000467131 00000 n 0000467356 00000 n 0000467689 00000 n 0000468020 00000 n 0000468362 00000 n 0000468618 00000 n 0000469029 00000 n 0000469376 00000 n 0000469615 00000 n 0000469903 00000 n 0000470246 00000 n 0000470648 00000 n 0000470980 00000 n 0000471274 00000 n 0000471565 00000 n 0000471839 00000 n 0000472130 00000 n 0000472415 00000 n 0000472639 00000 n 0000472981 00000 n 0000473227 00000 n 0000473432 00000 n 0000473663 00000 n 0000473957 00000 n 0000474147 00000 n 0000474414 00000 n 0000474649 00000 n 0000474918 00000 n 0000475207 00000 n 0000475511 00000 n 0000475737 00000 n 0000476021 00000 n 0000476253 00000 n 0000476494 00000 n 0000476768 00000 n 0000477097 00000 n 0000477402 00000 n 0000477722 00000 n 0000478002 00000 n 0000478274 00000 n 0000478481 00000 n 0000478804 00000 n 0000479131 00000 n 0000479397 00000 n 0000479707 00000 n 0000480037 00000 n 0000480320 00000 n 0000480678 00000 n 0000481256 00000 n 0000481976 00000 n 0000482523 00000 n 0000483521 00000 n 0000484007 00000 n 0000484396 00000 n 0000484735 00000 n 0000485000 00000 n 0000485280 00000 n 0000485986 00000 n 0000486101 00000 n 0000486263 00000 n 0000486368 00000 n 0000486585 00000 n 0000486923 00000 n 0000487293 00000 n 0000487577 00000 n 0000487868 00000 n 0000488116 00000 n 0000488322 00000 n 0000488513 00000 n 0000488753 00000 n 0000489043 00000 n 0000489342 00000 n 0000489567 00000 n 0000489861 00000 n 0000490102 00000 n 0000490390 00000 n 0000490602 00000 n 0000491190 00000 n 0000491424 00000 n 0000491695 00000 n 0000491949 00000 n 0000492273 00000 n 0000492670 00000 n 0000493125 00000 n 0000493493 00000 n 0000493836 00000 n 0000494184 00000 n 0000494447 00000 n 0000494670 00000 n 0000494874 00000 n 0000495207 00000 n 0000495537 00000 n 0000495803 00000 n 0000496165 00000 n 0000496437 00000 n 0000496721 00000 n 0000497070 00000 n 0000497719 00000 n 0000497909 00000 n 0000498198 00000 n 0000498454 00000 n 0000506106 00000 n 0000506380 00000 n 0000519332 00000 n 0000519642 00000 n 0000526720 00000 n 0000526940 00000 n 0000535269 00000 n 0000535505 00000 n 0000543067 00000 n 0000543296 00000 n 0000556806 00000 n 0000557159 00000 n 0000564699 00000 n 0000564949 00000 n 0000572334 00000 n 0000572581 00000 n 0000580491 00000 n 0000580771 00000 n 0000588131 00000 n 0000588380 00000 n 0000595343 00000 n 0000597343 00000 n 0000597411 00000 n 0000597464 00000 n trailer << /Size 528 /Root 526 0 R /Info 527 0 R /ID [<0A7232FA4D0C15A0419C90E48794C25A> <0A7232FA4D0C15A0419C90E48794C25A>] >> startxref 597687 %%EOF evd/inst/doc/guide22.txt0000644000176000001440000030006112637167310014612 0ustar ripleyusers\documentclass[11pt,a4paper]{article} \usepackage{t1enc} \usepackage[latin1]{inputenc} \usepackage[english]{babel} \usepackage{amsmath,amssymb} \usepackage{graphics} \usepackage[round]{natbib} \bibliographystyle{jrss} \pagestyle{plain} \setlength{\parindent}{0in} \setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} \setlength{\oddsidemargin}{0in} \setlength{\evensidemargin}{0in} \setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.3in} \setlength{\textheight}{9.8in} \renewcommand{\thefootnote}{\fnsymbol{footnote}} \begin{document} \sloppy \begin{center} \LARGE A User's Guide to the evd Package (Version 2.2) \\ \Large \vspace{0.2cm} Alec Stephenson \\ \normalsize Copyright \copyright 2006 \\ \vspace{0.2cm} Department of Statistics and Applied Probability,\\ National University of Singapore, \\ Singapore 117546. \\ \vspace{0.2cm} E-mail: alec\_stephenson@hotmail.com \\ 25th March 2006 \end{center} %\nocite{frantiag84} %\nocite{gumbgold64} %\nocite{gumbmust67} %\nocite{jenk55} %\nocite{joe97} %\nocite{kotzbala00} %\nocite{mont70} %\nocite{montotte78} %\nocite{smit86} %\nocite{sney77} %\nocite{step:sim} %\nocite{tawn93} \section{Introduction} \setcounter{footnote}{0} \subsection{What is the evd package?} \label{intro} The evd (extreme value distributions) package is an add-on package for the R \citep{R} statistical computing system. The package contains the following (user-level) functions. It also contains the demo \verb+soe9+, giving examples from Chapter Nine of \citet{beirgoeg04}. Univariate Distributions. Density, distribution, simulation and quantile (inverse distribution) functions for univariate parametric distributions.\\ \verb+ dgev dgpd dgumbel drweibull dfrechet dextreme dorder+\\ \verb+ pgev pgpd pgumbel prweibull pfrechet pextreme porder+\\ \verb+ rgev rgpd rgumbel rrweibull rfrechet rextreme rorder+\\ \verb+ qgev qgpd qgumbel qrweibull qfrechet qextreme+ Multivariate Distributions. Density, distribution, simulation and dependence functions for multivariate parametric extreme value models.\\ \verb+ dbvevd dmvevd pbvevd pmvevd rbvevd rmvevd abvevd amvevd+ Non-parametric Estimation. Calculate and plot non-parametric estimates of dependence functions and quantile curves.\\ \verb+ abvnonpar amvnonpar qcbvnonpar+ Stochastic Processes. Generate stochastic processes associated with extreme value theory, identify extreme clusters and estimate the extremal index.\\ \verb+ evmc marma mar mma clusters exi+ Fitting Models. Obtain maximum likelihood estimates and standard errors for univariate and bivariate models used in extreme value theory.\\ \verb+ fbvevd fgev fpot forder fextreme+ Pre-model Diagnostics. Threshold identification and dependence summaries.\\ \verb+ mrlplot tcplot chiplot+ Model Diagnostics. Model diagnostics for fitted models; diagnostic plots and analysis of deviance.\\ \verb+ plot.uvevd plot.bvevd anova.evd+ Profile likelihoods. Obtain profile traces, plot profile log-likelihoods and obtain profile confidence intervals from fitted models.\\ \verb+ profile.evd plot.profile.evd profile2d.evd plot.profile2d.evd+ The following datasets are also included in the package.\\ \verb+ failure fox lisbon ocmulgee oldage oxford lossalae+\\ \verb+ portpirie sask sealevel uccle venice sealevel2+ \subsection{Obtaining the package/guide} The evd package can be downloaded from CRAN (The Comprehensive R Archive Network) at \verb+http://cran.r-project.org/+. This guide (in pdf) will be in the directory \verb+evd/doc/+ underneath wherever the package is installed. \subsection{Contents} This guide contains examples\footnote{All of the examples presented in this guide are called with \texttt{options(digits = 4)}, and with the option \texttt{show.signif.stars} set to \texttt{FALSE}.} on the use of the evd package. The examples do not include any theoretical justification. See \citet{cole01} for an introduction to the statistics of extreme values, and \citet{beirgoeg04} for a more detailed treatment. Section \ref{uni} covers the standard (non-fitting) functions for univariate distributions. Sections \ref{biv} and \ref{mult} do the same for bivariate and multivariate extreme value models. Dependence functions of extreme value distributions are discussed in Section \ref{depfun}. Stochastic processes are discussed in Section \ref{stochproc}. Maximum likelihood fitting of univariate models, peaks over threshold models and bivariate extreme value models is discussed in Sections \ref{unifit}, \ref{potfit} and \ref{bivfit} respectively. Three practical examples using the data sets \verb+oxford+, \verb+rain+ and \verb+sealevel+ are given in Sections \ref{egoxford}, \ref{egrain} and \ref{egsealevel} respectively. This guide should not be viewed as an alternative to the documentation files included within the package. These remain the definitive source of information. A reference manual containing all the documentation files can be downloaded from CRAN. \subsection{Citing the package} Volume 2/2 of R-News (the newsletter of the R-project) contains an article that describes an earlier version of the evd package. To cite the package in publications please cite the R-News article. The article and the corresponding citation can be downloaded from \verb+http://www.cran.r-project.org/doc/Rnews/+. \subsection{Caveat} I have checked these functions as best I can but, as ever, they may contain bugs. If you find a bug or suspected bug in the code or the documentation please report it to me at \verb+alec_stephenson@hotmail.com+. Please include an appropriate subject line. \subsection{Legalese} This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details. A copy of the GNU General Public License can be obtained from \verb+http://www.gnu.org/copyleft/gpl.html+. You can also obtain it by writing to the Free Software Foundation, Inc., 59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA. \section{Univariate Distributions} \setcounter{footnote}{0} \label{uni} The Gumbel, Fr\'{e}chet and (reversed) Weibull distribution functions are respectively given by \begin{align} &G(z) = \exp\left\{-\exp\left[-\left(\frac{z-a}{b}\right)\right]\right\}, \quad -\infty < z < \infty \label{gumbel} \\ &G(z) = \begin{cases} 0, & z \leq a, \\ \exp\left\{-\left(\frac{z-a}{b}\right)^{-\alpha}\right\}, & z > a, \end{cases} \label{frechet} \\ &G(z) = \begin{cases} \exp\left\{-\left[-\left(\frac{z-a}{b}\right)\right]^{\alpha}\right\}, & z < a, \\ 1, & z \geq a, \end{cases} \label{weibull} \end{align} where $a$ is a location parameter, $b > 0$ is a scale parameter and $\alpha > 0$ is a shape parameter. The distribution \eqref{weibull} is often referred to as the Weibull distribution. To avoid confusion I will call this the reversed Weibull, since it is related by a change of sign to the three parameter Weibull distribution used in survival analysis. The Generalised Extreme Value (GEV) distribution function is given by \begin{equation} G(z) = \exp \left\{ - \left[ 1+ \xi \left( z-\mu \right) /\sigma \right]_{+}^{-1/\xi} \right\}, \label{gev} \end{equation} where ($\mu,\sigma,\xi$) are the location, scale and shape parameters respectively, $\sigma > 0$ and $h_{+}=\max(h,0)$. When $\xi>0$ the GEV distribution has a finite lower end point, given by $\mu - \sigma/\xi$. When $\xi<0$ the GEV distribution has a finite upper end point, also given by $\mu - \sigma/\xi$. The parametric form of the GEV encompasses that of the Gumbel, Fr\`{e}chet and reversed Weibull distributions. The Gumbel distribution is obtained in the limit as $\xi\rightarrow0$. The Fr\'{e}chet and Weibull distributions are obtained when $\xi>0$ and $\xi<0$ respectively. To recover the parameterisation of the Fr\'{e}chet distribution \eqref{frechet} set $\xi=1/\alpha>0$, $\sigma=b/\alpha>0$ and $\mu=a+b$. To recover the parameterisation of the reversed Weibull distribution \eqref{weibull} set $\xi=-1/\alpha<0$, $\sigma=b/\alpha>0$ and $\mu=a-b$. The generalised Pareto distribution (GPD) function is given by \begin{equation*} G(z) = 1 - \left[1 + \xi \left( z-\mu \right) /\sigma \right]_{+}^{-1/\xi}, \end{equation*} for $z > \mu$, where ($\mu,\sigma,\xi$) are the location, scale and shape parameters respectively, $\sigma > 0$ and $h_{+}=\max(h,0)$. The GPD has a finite lower end point, given by $\mu$. When $\xi<0$ the GPD also has a finite upper end point, given by $\mu - \sigma/\xi$. A shifted exponential distribution is obtained in the limit as $\xi\rightarrow0$. It is standard practice within R to concatenate the letters r, p, q and d with an abbreviated distribution name to yield the names of the corresponding simulation, distribution, quantile (inverse distribution) and density functions respectively. The evd package follows this convention. Each of the five distributions defined above has an associated set of functions, as given in Section \ref{intro}. Some examples are given below. They should be familiar to those who have had previous experience with R. \begin{verbatim} > rgev(6, loc = c(20,1), scale = .5, shape = 1) [1] 23.7290 1.2492 19.6680 0.8662 19.7939 2.6512 > rgpd(3, loc = 2) [1] 2.483681 3.666805 2.837809 > qrweibull(seq(0.1, 0.4, 0.1), 2, 0.5, 1, lower.tail = FALSE) > qrweibull(seq(0.9, 0.6, -0.1), loc = 2, scale = 0.5, shape = 1) # Both give [1] 1.947 1.888 1.822 1.745 > pfrechet(2:6, 2, 0.5, 1) [1] 0.0000 0.6065 0.7788 0.8465 0.8825 > pfrechet(2:6, 2, 0.5, 1, low = FALSE) [1] 1.0000 0.3935 0.2212 0.1535 0.1175 > drweibull(-1:3, 2, 0.5, log = TRUE) [1] -5.307 -3.307 -1.307 -Inf -Inf > dgumbel(-1:3, 0, 1) [1] 0.17937 0.36788 0.25465 0.11820 0.04737 \end{verbatim} Let $F$ be an arbitrary distribution function, and let $X_1,\dots,X_m$ be a random sample from $F$. Define $U_m=\max\{X_1,\dots,X_m\}$ and $L_m=\min\{X_1,\dots,X_m\}$. The distributions of $U_m$ and $L_m$ are given by \begin{align} &\Pr(U_m \leq x) = [F(x)]^m \label{maxdens} \\ &\Pr(L_m \leq x) = 1 - [1 - F(x)]^m. \label{mindens} \end{align} Simulation, distribution, quantile and density functions for the distribution of $U_m$, given an integer $m$ and an arbitrary distribution function $F$, are provided by \verb+rextreme+, \verb+pextreme+, \verb+qextreme+ and \verb+dextreme+ respectively. The integer $m$ should be given to the argument \verb+mlen+. The distribution $F$ is most easily specified by passing an abbreviated distribution name to the argument \verb+distn+. If \verb+largest+ is \verb+FALSE+ the distribution of $L_m$ is used. Some examples are given below. \begin{verbatim} > rextreme(1, distn = "norm", sd = 2, mlen = 20, largest = FALSE) > min(rnorm(20, mean = 0, sd = 2)) # Both simulate from the same distribution [1] -2.612 > rextreme(4, distn = "exp", rate = 1, mlen = 5) > rextreme(4, distn = "exp", mlen = 5) # Both simulate from the same distribution [1] 2.2001 0.8584 4.5595 3.9397 > pextreme(c(.4, .5), distn = "norm", mean = 0.5, sd = c(1, 2), mlen = 4) [1] 0.04484 0.06250 > dextreme(c(1, 4), distn = "gamma", shape = 1, scale = 0.3, mlen = 100) [1] 0.3261328 0.0005398 \end{verbatim} Let $X_{(1)} \geq X_{(2)} \geq \dots \geq X_{(m)}$ be the order statistics of the random sample $X_1,\dots,X_m$. The distribution of the $j$th largest order statistic, for $j = 1,\dots,m$, is \begin{equation} \Pr(X_{(j)} \leq x) = \sum_{k=0}^{j-1} \binom{m}{k} [F(x)]^{m-k} [1 - F(x)]^k. \label{orderdens} \end{equation} The distribution of the $j$th smallest order statistic is obtained by setting $j = m + 1 - j$. Simulation, distribution and density functions for the distribution of $X_{(j)}$, for given integers $m$ and $j \in \{1,\dots,m\}$, and for an arbitrary distribution function $F$, are provided by \verb+rorder+, \verb+porder+ and \verb+dorder+ respectively. The integer $m$ should again be given to the argument \verb+mlen+. If \verb+largest+ is \verb+FALSE+ the distribution of the \verb+j+th smallest order statistic $X_{(m+j-1)}$ is used. Some examples are given below. \begin{verbatim} > rorder(1, distn = "norm", mlen = 20, j = 2) [1] 2.284 > porder(c(1, 2), distn = "gamma", shape = c(.5, .7), mlen = 10, j = 2) [1] 0.5177 0.8259 > dorder(c(1, 2), distn = "gamma", shape = c(.5, .7), mlen = 10, j = 2) [1] 0.7473 0.3081 \end{verbatim} \section{Bivariate Extreme Value Distributions} \setcounter{footnote}{0} \label{biv} The evd package contains functions associated with nine parametric bivariate extreme value distributions. The univariate marginal distributions in each case are GEV, with marginal parameters ($\mu_1,\sigma_1,\xi_1$) and ($\mu_2,\sigma_2,\xi_2$). There are three symmetric models, with distribution functions \begin{align} &G(z_1,z_2) = \exp\left\{- (y_1^{1/\alpha}+y_2^{1/\alpha})^\alpha \right\}, \quad 0<\alpha\leq1, \label{log} \\ &G(z_1,z_2) = \exp\left\{ - y_1 - y_2 + (y_1^{-r}+y_2^{-r})^{-1/r} \right\}, \quad r>0, \label{neglog} \\ &G(z_1,z_2) = \exp\left( - y_1\Phi\{\lambda^{-1}+{\textstyle\frac{1}{2}}\lambda[\log(y_1/y_2)]\} - y_2\Phi\{\lambda^{-1}+{\textstyle\frac{1}{2}}\lambda[\log(y_2/y_1)]\}\right), \quad \lambda>0, \notag \end{align} known as the logistic \citep{gumb60b}, negative logistic \citep{gala75} and H\"{u}sler-Reiss \citep{huslreis89} models respectively, where \begin{equation} y_j = y_j(z_j) = \{1+\xi_j(z_j-\mu_j)/\sigma_j\}_{+}^{-1/\xi_j} \label{mtrans} \end{equation} for $j=1,2$. Independence\footnote{ Independence occurs when $G(z_1,z_2) = \exp\{-(y_1+y_2)\}$.} is obtained when $\alpha=1$, $r\downarrow0$ or $\lambda\downarrow0$. Complete dependence\footnote{ Complete dependence occurs when $G(z_1,z_2) = \exp\{-\max(y_1,y_2)\}$.} is obtained when $\alpha\downarrow0$, $r\rightarrow\infty$ or $\lambda\rightarrow\infty$. The distributions functions \eqref{log} and \eqref{neglog} have asymmetric extensions, given by \begin{align} &G(z_1,z_2) = \exp\left\{ - (1-\theta_1)y_1 - (1-\theta_2)y_2 - [(\theta_1y_1)^{1/\alpha}+(\theta_2y_2)^{1/\alpha}]^\alpha\right\}, \quad 0<\alpha\leq1, \notag \\ &G(z_1,z_2) = \exp\left\{ - y_1 - y_2 + [(\theta_1y_1)^{-r}+(\theta_2y_2)^{-r}]^{-1/r}\right\}, \quad r>0, \notag \end{align} known as the asymmetric logistic \citep{tawn88} and asymmetric negative logistic \citep{joe90} models respectively, where the asymmetry parameters $0\leq\theta_1,\theta_2\leq1$. For the asymmetric logistic model independence is obtained when either $\alpha = 1$, $\theta_1 = 0$ or $\theta_2 = 0$. Different limits occur when $\theta_1$ and $\theta_2$ are fixed and $\alpha\downarrow0$. For the asymmetric negative logistic model independence is obtained when either $r\downarrow0$, $\theta_1\downarrow0$ or $\theta_2\downarrow0$. Different limits occur when $\theta_1$ and $\theta_2$ are fixed and $r\rightarrow\infty$. The remaining four bivariate models are defined in Appendix A. Density, distribution and simulation functions for each of the nine models are provided by \verb+dbvevd+, \verb+pbvevd+ and \verb+rbvevd+ respectively. The argument \verb+model+ denotes the specified model, which must be either \verb+"log"+ (the default), \verb+"alog"+, \verb+"hr"+, \verb+"neglog"+, \verb+"aneglog"+, \verb+"bilog"+, \verb+"negbilog"+, \verb+"ct"+ or \verb+"amix"+ (or any unique partial match). The first argument in \verb+pbvevd+ and \verb+dbvevd+ should be a vector of length two or a matrix with two columns, so that each row specifies a value for $(z_1,z_2)$. The parameters of the specified model can be passed using one or more of the arguments \verb+dep+, \verb+asy+, \verb+alpha+ and \verb+beta+. The marginal parameters ($\mu_1,\sigma_1,\xi_1$) and ($\mu_2,\sigma_2,\xi_2$) can be passed using the arguments \verb+mar1+ and \verb+mar2+ respectively. Gumbel marginal distributions are used by default. The arguments \verb+mar1+ and \verb+mar2+ can also be matrices with three columns, in which case each column represents a vector of values to be passed to the corresponding marginal parameter. Some examples are given below. \begin{verbatim} > rbvevd(3, dep = .8, asy = c(.4, 1), model = "alog") [,1] [,2] [1,] 0.07876 -0.7971 [2,] 0.01091 -0.8113 [3,] -0.10491 -0.8831 > rbvevd(3, alpha = .5, beta = 1.2, model = "negb", mar1 = rep(1, 3)) [,1] [,2] [1,] 0.7417 1.085 [2,] 0.8391 1.825 [3,] 2.0142 2.280 > pbvevd(c(1, 1.2), dep = .4, asy = c(.4, .6), model = "an", mar1 = rep(1, 3)) [1] 0.173 > tmp.quant <- matrix(c(1,1.2,1,2), ncol = 2, byrow = TRUE) > tmp.mar <- matrix(c(1,1,1,1.2,1.2,1.2), ncol = 3, byrow = TRUE) > pbvevd(tmp.quant, dep = .4, asy = c(.4, .6), model = "an", mar1 = tmp.mar) [1] 0.173 0.175 > dbvevd(c(1, 1.2), alpha = .2, beta = .6, model = "ct", mar1 = rep(1, 3)) [1] 0.1213 > dbvevd(tmp.quant, alpha = 0.2, beta = 0.6, model = "ct", mar1 = tmp.mar) [1] 0.1213 0.0586 \end{verbatim} %The logistic and asymmetric logistic models respectively are simulated using bivariate versions of Algorithms 1.1 and 1.2 in \citet{step02a}. %All other models are simulated using a root finding algorithm to generate random vectors from the conditional distribution function. %The simulation of the the bilogistic or negative bilogistic model is relatively slow (about 2.8 seconds per 1000 random vectors on a 450MHz PIII, 512Mb RAM) because each evaluation of either distribution function requires a root finding algorithm to evaluate $\gamma$. \section{Multivariate Extreme Value Distributions} \setcounter{footnote}{0} \label{mult} Let $z=(z_1,\dots,z_d)$. The $d$-dimensional logistic model \citep{gumb60b} has distribution function \begin{equation*} G(z) = \exp\left\{-\left(\sum\nolimits_{j=1}^d y_j^{1/\alpha}\right)^\alpha\right\} \end{equation*} where $\alpha\in(0,1]$ and $(y_1,\dots,y_d)$ is defined by the transformations \eqref{mtrans}. This distribution can be extended to an asymmetric form. Let $B$ be the set of all non-empty subsets of $\{1,\dots,d\}$, let $B_1=\{b \in B:|b|=1\}$, where $|b|$ denotes the number of elements in the set $b$, and let $B_{(i)}=\{b \in B:i \in b\}$. The multivariate asymmetric logistic model \citep{tawn90} is given by \begin{equation*} G(z)=\exp\left\{-\sum\nolimits_{b \in B} \left[\sum\nolimits_{i \in b}(\theta_{i,b}y_i)^{1/\alpha_b}\right]^{\alpha_b}\right\} \end{equation*} where the dependence parameters $\alpha_b\in(0,1]$ for all $b\in B \setminus B_1$, and the asymmetry parameters $\theta_{i,b}\in[0,1]$ for all $b\in B$ and $i\in b$. The constraints $\sum_{b \in B_{(i)}}\theta_{i,b}=1$ for $i=1,\dots,d$ ensure that the marginal distributions are GEV. There exists further constraints which arise from the possible redundancy of asymmetry parameters in the expansion of the distributional form. Specifically, if $\alpha_b=1$ for some $b\in B \setminus B_1$ then $\theta_{i,b}=0$ for all $i \in b$. Let $b_{-i_0}=\{i \in b:i \neq i_0\}$. If, for some $b \in B \setminus B_1$, $\theta_{i,b}=0$ for all $i \in b_{-i_0}$, then $\theta_{i_0,b}=0$. %The model contains $2^d-d-1$ dependence parameters and $d2^{d-1}$ asymmetry parameters (excluding the constraints). %The logistic model \eqref{multlog} can be obtained by setting $\theta_{i,12 \dots d}=1$ for all $i = 1,\dots,d$ (which implies that $\theta_{i,b}=0$ whenever $|b| rmvevd(3, dep = .6, model = "log", d = 5) [,1] [,2] [,3] [,4] [,5] [1,] 0.1335 0.2878 1.07886 1.55515 1.310 [2,] 1.7100 0.9453 1.02070 -0.02553 1.527 [3,] -0.3376 -0.5814 0.07426 0.10906 2.827 > tmp.mar <- matrix(c(1,1,1,1,1,1.5,1,1,2), ncol = 3, byrow = TRUE) > rmvevd(3, dep = .6, d = 5, mar = tmp.mar) [,1] [,2] [,3] [,4] [,5] [1,] 2.803 4.6415 1.8531 3.5569 8.854 [2,] 0.751 0.9704 2.3328 2.6537 1.233 [3,] 4.641 1.4321 0.5825 0.6041 2.021 > tmp.quant <- matrix(rep(c(1,1.5,2), 5), ncol = 5) > pmvevd(tmp.quant, dep = .6, d = 5, mar = tmp.mar) [1] 0.07233 0.16387 0.21949 > dmvevd(tmp.quant, dep = .6, d = 5, mar = tmp.mar, log = TRUE) [1] -3.564 -6.610 -9.460 \end{verbatim} For the asymmetric logistic model \verb+dep+ should be a vector of length $2^{\verb+d+}-\verb+d+-1$ containing the dependence parameters. For example, when $\verb+d+ = 4$ \begin{equation*} \verb+dep+ = \texttt{c}(\alpha_{12},\alpha_{13},\alpha_{14},\alpha_{23},\alpha_{24},\alpha_{34},\alpha_{123},\alpha_{124},\alpha_{134},\alpha_{234},\alpha_{1234}). \end{equation*} The asymmetry parameters should be passed to \verb+asy+ in a list with $2^{\verb+d+}-1$ elements, where each element is a vector (including vectors of length one) corresponding to a set $b \in B$, containing $\{\theta_{i,b}:i \in b\}$. For example, when $\verb+d+ = 4$ \begin{align*} \texttt{asy} = \texttt{list}&(\theta_{1,1}, \theta_{2,2}, \theta_{3,3}, \theta_{4,4}, \texttt{c}(\theta_{1,12},\theta_{2,12}), \texttt{c}(\theta_{1,13},\theta_{3,13}), \texttt{c}(\theta_{1,14},\theta_{4,14}), \texttt{c}(\theta_{2,23},\theta_{3,23}), \\ &\texttt{c}(\theta_{2,24},\theta_{4,24}), \texttt{c}(\theta_{3,34},\theta_{4,34}), \texttt{c}(\theta_{1,123},\theta_{2,123},\theta_{3,123}), \texttt{c}(\theta_{1,124},\theta_{2,124},\theta_{4,124}), \\ &\texttt{c}(\theta_{1,134},\theta_{3,134},\theta_{4,134}), \texttt{c}(\theta_{2,234},\theta_{3,234},\theta_{4,234}), \texttt{c}(\theta_{1,1234},\theta_{2,1234},\theta_{3,1234},\theta_{4,1234})). \end{align*} All the constraints, including $\sum_{b \in B_{(i)}}\theta_{i,b}=1$ for $i=1,\dots,d$, must be satisfied or an error will occur. Some examples are given below. The dependence parameters used in the following trivariate asymmetric logistic model are $(\alpha_{12},\alpha_{13},\alpha_{23},\alpha_{123})=(.6,.5,.8,.3)$. The asymmetry parameters are $\theta_{1,1}=.4$, $\theta_{2,2}=0$, $\theta_{3,3}=.6$, $(\theta_{1,12},\theta_{2,12})=(.3,.2)$, $(\theta_{1,13},\theta_{3,13})=(.1,.1)$, $(\theta_{2,23},\theta_{3,23})=(.4,.1)$ and finally $(\theta_{1,123},\theta_{2,123},\theta_{3,123})=(.2,.4,.2)$. \begin{verbatim} > asy <- list(.4, 0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) > rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) [,1] [,2] [,3] [1,] 0.52375 -0.8844 1.4898 [2,] 1.16174 -0.4368 -0.7404 [3,] -0.03737 1.5139 -0.5996 > dmvevd(c(2, 2, 2), dep = c(.6,.5,.8,.3), asy = asy, model = "a", d = 3) [1] 0.006636 > tmp.quant <- matrix(rep(c(1,1.5,2), 3), ncol = 3) > pmvevd(tmp.quant, dep = c(.6,.5,.8,.3), asy = asy, model = "a", d = 3) [1] 0.4131 0.5849 0.7223 \end{verbatim} The dependence parameters used in the following four dimensional asymmetric logistic model are $\alpha_b = 1$ for $|b| = 2$\footnote{ The values taken by $\alpha_b$ when $|b| = 2$ are irrelevant here because $\theta_{i,b}=0$ for all $i \in b$ when $|b|=2$.} and $(\alpha_{123},\alpha_{124},\alpha_{134},\alpha_{234},\alpha_{1234})=(.7,.3,.8,.7,.5)$. The asymmetry parameters are $\theta_{i,b}=0$ for all $i \in b$ when $|b|\leq2$, $(\theta_{1,123},\theta_{2,123},\theta_{3,123})=(.2,.1,.2)$, $(\theta_{1,124},\theta_{2,124},\theta_{4,124})=(.1,.1,.2)$, $(\theta_{1,134},\theta_{3,134},\theta_{4,134})=(.3,.4,.1)$, $(\theta_{2,234},\theta_{3,234},\theta_{4,234})=(.2,.2,.2)$ and finally $(\theta_{1,1234},\theta_{2,1234},\theta_{3,1234},\theta_{4,1234})=(.4,.6,.2,.5)$. \begin{verbatim} > asy <- list(0, 0, 0, 0, c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(0,0), c(.2,.1,.2), c(.1,.1,.2), c(.3,.4,.1), c(.2,.2,.2), c(.4,.6,.2,.5)) > rmvevd(3, dep = c(rep(1,6),.7,.3,.8,.7,.5), asy = asy, model = "alog", d = 4) [,1] [,2] [,3] [,4] [1,] -0.5930 -0.1916 1.0211 0.6113 [2,] 4.3522 -1.0050 2.3618 -0.1875 [3,] 0.5805 0.4443 -0.5958 0.9717 \end{verbatim} %I will end this section with some examples that may be helpful in deciphering errors. %\begin{verbatim} %> asy <- list(.4, 0, .5, c(.3,.2), c(.1,.15), c(.4,.075), c(.2,.4,.25)) %> rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) %Error in mvalog.check(asy, dep, d = d) : % `asy' does not satisfy the appropriate constraints % %# 0.5 + 0.15 + 0.075 + 0.25 does not equal one; the sum constraint on the third %margin is not satisfied. % %> asy <- list(.4, 0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) %> rmvevd(3, dep = c(.6,1,.8,.3), asy = asy, model = "alog", d = 3) %Error in mvalog.check(asy, dep, d = d) : % `asy' does not satisfy the appropriate constraints % %# A dependence parameter is equal to one but the corresponding asymmetry %parameters are not zero (the first `further constraint'). %# One possible alternative which preserves dep (and still satisfies the sum %constraints) is % %> asy <- list(.4, 0, .6, c(.3,.2), c(0,0), c(.4,.1), c(.3,.4,.3)) %> rmvevd(3, dep = c(.6,1,.8,.3), asy = asy, model = "alog", d = 3) % [,1] [,2] [,3] %[1,] 4.627 2.9125 0.9414 %[2,] 1.200 0.1556 0.2048 %[3,] -1.159 -0.8749 -1.0340 % %> asy <- list(.5, 0, .6, c(.3,.2), c(0,.1), c(.4,.1), c(.2,.4,.2)) %> rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog", d = 3) %Error in mvalog.check(asy, dep, d = d) : % `asy' does not satisfy the appropriate constraints % %# The fifth element in asy contains exactly one non-zero asymmetry parameter %(the second `further constraint'). % %> asy <- list(.4, 0, .6, c(.3,.2), c(.1,.1), c(.4,.1), c(.2,.4,.2)) %> rmvevd(3, dep = c(.6,.5,.8,.3), asy = asy, model = "alog") %Error in mvalog.check(asy, dep, d = d) : % `asy' should be a list of length 3 % %# the dimension has been mis-specified (the default dimension is 2). %\end{verbatim} \section{Dependence Functions} \setcounter{footnote}{0} \label{depfun} Let $z=(z_1,\dots,z_d)$ and $\omega=(\omega_1,\dots,\omega_d)$. Any $d$-dimensional extreme value distribution function can be represented in the form \begin{equation*} G(z) = \exp\left\{ - \left\{\sum\nolimits_{j=1}^d y_j \right\} A\left(\frac{y_1}{\sum\nolimits_{j=1}^d y_j}, \dots, \frac{y_d}{\sum\nolimits_{j=1}^d y_j} \right)\right\}, \end{equation*} where $(y_1,\dots,y_d)$ is defined by the transformations \eqref{mtrans}. It follows that $A(\omega)=-\log\{G(y_1^{-1}(\omega_1),\dots,y_d^{-1}(\omega_d))\}$, defined on the simplex $S_d =\{\omega \in \mathbb{R}^d_+: \sum_{j=1}^d \omega_j = 1\}$. $A(\cdot)$ is known as the dependence function. The dependence function characterises the dependence structure of $G$. It can be shown that $A(\omega)=1$ when $\omega$ is one of the $d$ vertices of $S_d$ (i.e.\ when one component of $\omega$ is equal to one, and all remaining components are equal to zero), and that $A$ is a convex function with $\max(\omega_1,\dots,\omega_d) \leq A(\omega) \leq 1$ for all $\omega \in S_d$. The lower and upper bounds are obtained at complete dependence and mutual independence respectively. In particular, $A(1/d,\dots,1/d)$ is equal to $1/d$ at complete dependence, and $1$ at mutual independence. The dependence function of a \emph{bivariate} extreme value distribution is a special case (because the sets $S_2$ and [0,1] are equivalent), and is typically defined as follows. Any bivariate extreme value distribution function can be represented in the form \begin{equation} G(z_1,z_2) = \exp\left\{ - (y_1 + y_2)A\left(\frac{y_1}{y_1+y_2}\right)\right\}, \label{bvdepfn} \end{equation} so that $A(\omega)=-\log\{G(y_1^{-1}(\omega),y_2^{-1}(1-\omega))\}$, defined on $0\leq\omega\leq1$.\footnote{Some authors \citep[e.g.][]{pick81} use $A(\omega)=-\log\{G(y_1^{-1}(1-\omega),y_2^{-1}(\omega))\}$.} It follows that $A(0)=A(1)=1$, and that $A(\cdot)$ is a convex function with $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $0\leq\omega\leq1$. At independence $A(1/2) = 1$. At complete dependence $A(1/2) = 0.5$. Dependence functions for parametric bivariate and trivariate extreme value models can be calculated and plotted, at given parameter values, using the functions \verb+abvevd+ and \verb+amvevd+. Non-parametric estimators of dependence functions can also be calculated and plotted, using the functions \verb+abvnonpar+ and \verb+amvnonpar+. Some examples are given below. The last lines of code produce Figure \ref{depfns}. %Non-parametric estimators of dependence functions of bivariate extreme value models are constructed as follows. %Suppose $(z_{i1},z_{i2})$ for $i=1,\dots,n$ are $n$ bivariate observations that are passed to \verb+abvnonpar+ using the argument \verb+data+. %The marginal parameters are estimated (under the assumption of independence) and the data is transformed using %\begin{align} %y_{i1} &= \{1+\hat{\xi}_1(z_{i1}-\hat{\mu}_1)/\hat{\sigma}_1\}_{+}^{-1/\hat{\xi}_1} \notag \\ %y_{i2} &= \{1+\hat{\xi}_2(z_{i2}-\hat{\mu}_2)/\hat{\sigma}_2\}_{+}^{-1/\hat{\xi}_2} %\label{transtoexp} %\end{align} %for $i=1,\dots,n$, where $(\hat{\mu}_1,\hat{\sigma}_1,\hat{\xi}_1)$ and $(\hat{\mu}_2,\hat{\sigma}_2,\hat{\xi}_2)$ are the maximum likelihood estimates for the location, scale and shape parameters on the first and second margins. %If non-stationary fitting is implemented using the \verb+nsloc1+ or \verb+nsloc2+ arguments (see Sections \ref{unifit} and \ref{bivfit}) the marginal location parameters may depend on $i$. %The estimator is specified using the argument \verb+method+. A number of different estimators are implemented. A short simulation study given in Appendix A compares the properties of these estimators. The default estimator is the estimator of \citet{capefoug97}, which is defined (on $0 \leq \omega \leq 1$) by %which must be either \verb+"pickands"+, \verb+"deheuvels"+, \verb+"cfg"+ (the default), \verb+"tdo"+ or \verb+"hall"+ (or any unique partial match). %These estimators are respectively defined (on $0 \leq \omega \leq 1$) as follows. %\begin{equation*} %\exp\left\{ \{1-p(\omega)\} \int_{0}^{\omega} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x - p(\omega) \int_{\omega}^{1} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x \right\} %\end{equation*} %\citet{pick81} %\begin{equation*} %A_p(\omega) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{\omega},\frac{y_{i2}}{1-\omega}\right)\right\}^{-1} %\end{equation*} %\citet{dehe91} %\begin{equation*} %A_d(\omega) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{\omega},\frac{y_{i2}}{1-\omega}\right) - \omega\sum_{i=1}^n y_{i1} - (1-\omega)\sum_{i=1}^n y_{i2} + n\right\}^{-1} %\end{equation*} %\citet{capefoug97} %\begin{equation*} %A_c(\omega) = \exp\left\{ \{1-p(\omega)\} \int_{0}^{\omega} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x - p(\omega) \int_{\omega}^{1} \frac{H_n(x) - x}{x(1-x)} \, \text{d}x \right\} %\end{equation*} %\citet{tiag97} %\begin{equation*} %A_t(\omega) = 1 - \frac{1}{1 + \log n} \sum_{i=1}^n \min\left(\frac{\omega}{1+ny_{i1}},\frac{1-\omega}{1+ny_{i2}}\right) %\end{equation*} %\citet{halltajv00} %\begin{equation*} %A_h(\omega) = n\left\{\sum_{i=1}^n \min\left(\frac{y_{i1}}{\bar{y}_1 \omega},\frac{y_{i2}}{\bar{y}_2 (1-\omega)}\right)\right\}^{-1} %\end{equation*} %where $H_n(x)$ is the empirical distribution function of $x_1,\dots,x_n$, with $x_i = y_{i1} / (y_{i1} + y_{i2})$ for $i=1,\dots,n$, and $p(\cdot)$ is any bounded function on $[0,1]$, which can be specified using the argument \verb+wf+. %By default $p(\cdot)$ is the identity function. %In the estimator of \citet{halltajv00}, $\bar{y}_1 = n^{-1}\sum_{i=1}^n y_{i1}$ and $\bar{y}_2 = n^{-1}\sum_{i=1}^n y_{i2}$. %Let $A_n(\cdot)$ be any estimator of $A(\cdot)$. %$A_n(\cdot)$ will not necessarily satisfy $\max(\omega,1-\omega) \leq A_n(\omega) \leq 1$ for all $0\leq\omega\leq1$. %An obvious modification is %\begin{equation*} %A_n^{'}(\omega) = \min(1, \max\{A_n(\omega), \omega, 1-\omega\}). %\end{equation*} %The function \verb+abvnonpar+ always implements this modification. %Another estimator $A_n^{''}(\omega)$ can be derived by taking the convex minorant of $A_n^{'}(\omega)$. %This can be achieved by setting the argument \verb+convex+ to \verb+TRUE+. %Some examples of the functions described in this section are given below. %The last eight lines of code produce Figure \ref{depfns}. \begin{verbatim} > bvlsm <- rmvevd(100, dep = 0.6, model = "log", d = 2) > tvlsm <- rmvevd(100, dep = 0.6, model = "log", d = 3) > abvevd(seq(0,1,0.25), dep = 0.3, asy = c(.7,.9), model = "alog") [1] 1.0000 0.8272 0.7013 0.7842 1.0000 > abvnonpar(seq(0,1,0.25), data = bvlsm) [1] 1.0000 0.8634 0.8158 0.8392 1.0000 > abvnonpar(data = bvlsm, plot = TRUE, blty = 1, lty = 2) > abvevd(dep = .3, asy = c(.5, .9), model = "al", add = TRUE) > abvevd(dep = 1.05, model = "hr", add = TRUE) > amvnonpar(data = tvlsm, plot = TRUE, lower = 0.6) \end{verbatim} \begin{figure} \hspace*{2.5cm} \scalebox{0.25}{\includegraphics{depfns5.ps}} \hspace{0cm} \scalebox{0.3}{\includegraphics[0,100][260,580]{depfns6.ps}} \vspace{-1cm} \caption{Left: Parametric (solid lines) and non-parametric (dashed line) dependence functions for bivariate distributions. The triangular border represents the constraint $\max(\omega,1-\omega) \leq A(\omega) \leq 1$ for all $\omega \in [0,1]$. Right: non-parametric dependence function for a trivariate distribution. Darker colours depict smaller values, and hence stronger dependence.} \label{depfns} \end{figure} \section{Stochastic Processes} \setcounter{footnote}{0} \label{stochproc} The evd package contains four functions that simulate from stochastic processes associated with extreme value theory. The functions \verb+marma+, \verb+mar+ and \verb+mma+ generate max autoregressive moving average processes, and the function \verb+evmc+ generates Markov chains with extreme value dependence structures. The function \verb+clusters+ identifies extreme clusters of a stochastic process, and \verb+exi+ estimates a quantity known as the Extremal Index. A max autoregressive moving average process $\{X_k\}$, denoted by MARMA($p$, $q$), satisfies \begin{equation*} X_k = \max\{\phi_1 X_{k-1}, \dots, \phi_p X_{k-p}, \epsilon_k, \theta_1 \epsilon_{k-1}, \dots, \theta_q \epsilon_{k-q}\} \end{equation*} where $(\phi_1, \dots, \phi_p)$ and $(\theta_1, \ldots, \theta_p)$ are vectors of non-negative parameters, and $\{\epsilon_k\}$ is a series of \emph{iid} random variables with a common distribution defined by the argument \verb+rand.gen+. The standard Fr\'{e}chet distribution is used by default. A max autoregressive process $\{X_k\}$, denoted by MAR($p$), is equivalent to a MARMA($p$, 0) process, so that \begin{equation*} X_k = \max\{\phi_1 X_{k-1}, \dots, \phi_p X_{k-p}, \epsilon_k\}. \end{equation*} A max moving average process $\{X_k\}$, denoted by MMA($q$), is equivalent to a MARMA(0, $q$) process, so that \begin{equation*} X_k = \max\{\epsilon_k, \theta_1 \epsilon_{k-1}, \dots, \theta_q \epsilon_{k-q}\}. \end{equation*} The functions \verb+mar+, \verb+mma+ and \verb+marma+ generate MAR($p$), MMA($q$) and MARMA($p$, $q$) processes respectively. Examples of calls to these functions are given below. The \verb+n.start+ argument denotes the burn-in period, which can be specified so that the output series is not unduly influenced by the $p$ starting values, which are all zero by default. \begin{verbatim} > marma(100, p = 1, q = 1, psi = 0.75, theta = 0.65) > mar(100, psi = 0.85, n.start = 20) > mma(100, q = 2, theta = c(0.75, 0.8)) \end{verbatim} The function \verb+evmc+ generates first order Markov chains. Informally, a first order Markov chain $X_1, \ldots, X_n$ is a stochastic process such that at any given time $t$ the probability distribution of $X_{t+1}$ is independent the past $X_1, \ldots, X_{t-1}$, given the current state $X_t$. The \verb+evmc+ function generates a first order Markov chain such that each pair of consecutive values has the dependence structure of a parametric bivariate extreme value model. The main arguments of \verb+evmc+ are the same as those of \verb+rbvevd+. The function \verb+evmc+ also has the argument \verb+margin+, which denotes the marginal distribution of each value. This must be either \verb+"uniform"+ (the default), \verb+"rweibull"+, \verb+"frechet"+ or \verb+"gumbel"+ (or any unique partial match), for the uniform, standard reversed Weibull, standard Gumbel and standard Fr\'{e}chet distributions respectively. Examples of calls to \verb+evmc+ are given below. \begin{verbatim} > evmc(100, alpha = 0.1, beta = 0.1, model = "bilog") > evmc(100, dep = 10, model = "hr", margins = "gum") \end{verbatim} The function \verb+clusters+ identifies extreme clusters within (stationary) stochastic processes. A simple way of determining clusters is to specify a threshold $u$ and define consecutive exceedances of $u$ to belong to the same cluster. It is more common though to consider a cluster to be active until $r$ consecutive values fall below (or are equal to) $u$, for some given clustering interval length $r$. %If $r > 1$ the clusters may contain any arbitrarily low value. %To avoid this problem a lower threshold $u_l < u$ can be specified so that a cluster is terminated whenever any values fall below (or are equal to) $u_l$. The following code uses \verb+clusters+ to generate the plots depicted in Figure \ref{clust}. These plots identify clusters graphically. If the argument \verb+plot+ is \verb+FALSE+ (the default), then \verb+clusters+ returns a list of extreme clusters. \begin{verbatim} > set.seed(150) > x <- evmc(50, dep = 0.55, model ="log") > clusters(x, 0.8, plot = TRUE) > clusters(x, 0.8, 4, plot = TRUE) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{clust1.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{clust3.ps}} \end{center} \vspace{0cm} \caption{The identification of extreme clusters in a stochastic process. The clustering interval lengths are $r = 1$ (left) and $r=4$ (right). The threshold in each case is $u = 0.8$.} \label{clust} \end{figure} The function \verb+exi+ returns estimates of the Extremal Index of a (stationary) stochastic process. The Extremal Index is defined in Chapter 3 of \citet{leadling83}. A more informal treatment is given in Chapter 5 of \citet{cole01}. The extremal index can be estimated using the inverse of the average size of extreme clusters, where the cluster size is defined as the number of exceedances that it contains. \section{Fitting Univariate Distributions} \setcounter{footnote}{0} \label{unifit} This section presents functions that produce maximum likelihood estimates for some of the distributions introduced in Section \ref{uni}. Peaks over threshold models are discussed in Section \ref{potfit}. Maximum likelihood estimates for bivariate extreme value distributions are discussed in Section \ref{bivfit}. For illustrative purposes Sections \ref{unifit}, \ref{potfit} and \ref{bivfit} use only simulated data. Three practical examples using the data sets \verb+oxford+, \verb+rain+ and \verb+sealevel+ are given in Sections \ref{egoxford}, \ref{egrain} and \ref{egsealevel} respectively. The function \verb+fgev+ produces maximum likelihood estimates for the GEV distribution \eqref{gev}. The first argument should be a numeric vector containing data to be fitted. Missing values are allowed. If the argument \verb+start+ is given it should be a named list containing starting values, the names of which should be the parameters over which the likelihood is to be maximised. If \verb+start+ is omitted the routine attempts to find good starting values for the optimisation using moment estimators. If any of the parameters are to be set to fixed values, they can be given as separate arguments. For example, the Gumbel distribution \eqref{gumbel} can be fitted using \verb+shape = 0+. Arguments of the optimisation function \verb+optim+ can also be specified. This includes the optimisation method, which can be passed using the argument \verb+method+. Two examples of the \verb+fgev+ function are given below. \begin{verbatim} > data1 <- rgev(1000, loc = 0.13, scale = 1.1, shape = 0.2) > m1 <- fgev(data1) > m1 Call: fgev(x = data1) Deviance: 3650 Estimates loc scale shape 0.127 1.125 0.224 Standard Errors loc scale shape 0.0400 0.0321 0.0248 Optimization Information Convergence: successful Function Evaluations: 51 Gradient Evaluations: 12 > m2 <- fgev(data1, loc = 0, scale = 1) > fitted(m2) shape 0.236 \end{verbatim} In the first example the likelihood is maximised over (\verb+loc+, \verb+scale+, \verb+shape+). In the second example the likelihood is maximised over \verb+shape+, with the location and scale parameters fixed at zero and one respectively. The maximum likelihood estimators do not necessarily have the usual asymptotic properties, since the end points of the GEV distribution depend on the model parameters. \citet{smit85} shows that the usual asymptotic properties hold when $\xi > -0.5$. When $-1 < \xi \leq -0.5$ the maximum likelihood estimators do not have the standard asymptotic properties, but generally exist. When $\xi \leq -1$ maximum likelihood estimators do not often exist. This occurs because of the large mass near the upper end point. The likelihood increases without bound as the upper end point is estimated to be closer and closer to the largest observed value. In terms of the reversed Weibull shape parameter $\alpha$, the usual asymptotic properties hold when $\alpha>2$, the asymptotic properties are not standard for $1<\alpha\leq2$, and maximum likelihood estimators do not often exist for $\alpha<1$. When the usual asymptotic properties hold (as here) the standard errors of the maximum likelihood estimates, approximated using the inverse of the observed information matrix, can be extracted from the fitted object using \begin{verbatim} > std.errors(m1) loc scale shape 0.03999 0.03214 0.02479 \end{verbatim} %When the usual asymptotic properties do not hold the \verb+std.errors+ component will still be based on the inverse of the observed information matrix, but these values must be \emph{interpreted with caution} \citep{smit85}. Likelihood ratio tests can be performed using the function \verb+anova+. We can compare the two models \verb+m1+ and \verb+m2+ to test the null hypothesis that the location parameter is zero and the scale parameter is one. \begin{verbatim} > anova(m1, m2) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 3 3650 m2 1 3669 2 18.8 8.2e-05 \end{verbatim} The deviance difference, \verb+deviance(m2)+ minus \verb+deviance(m1)+, is about $18.8$, which yields a p-value of $8.2 \times 10^{-5}$ when compared with a chi-squared distribution on two degrees of freedom. Diagnostic plots and profile traces for fitted models can be constructed using the functions \verb+plot+, \verb+profile+ and \verb+profile2d+ (see Section \ref{egoxford}). By default the maximum likelihood estimates are calculated under the assumption that the data to be fitted are the observed values of independent random variables $Z_1,\dots,Z_n$, where $Z_i \sim \text{GEV}(\mu,\sigma,\xi)$ for each $i=1,\dots,n$. The \verb+nsloc+ argument allows non-stationary models of the form $Z_i \sim \text{GEV}(\mu_i,\sigma,\xi)$, where \begin{equation*} \mu_i = \beta_0 + \beta_1x_{i1} + \dots + \beta_kx_{ik}. \end{equation*} The parameters $(\beta_0,\dots,\beta_k)$ are to be estimated. In matrix notation $\boldsymbol{\mu} = \boldsymbol{\beta_0} + X \boldsymbol{\beta} $, where $ \boldsymbol{\mu}= (\mu_1,\dots,\mu_n)^T$, $\boldsymbol{\beta_0} = (\beta_0,\dots,\beta_0)^T$, $\boldsymbol{\beta} = (\beta_1,\dots,\beta_k)^T$ and $X$ is the $n \times k$ covariate matrix (excluding the intercept) with $ij$th element $x_{ij}$. The \verb+nsloc+ argument must be a data frame containing the matrix $X$, or a numeric vector which is converted into a single column data frame with column name ``trend''. The column names of the data frame are used to derive names for the estimated parameters. This allows any of the $k+3$ parameters $(\beta_0,\dots,\beta_k,\sigma,\xi)$ to be set to fixed values within the optimisation. The covariates must be (at least approximately) \emph{centred and scaled}, not only for numerical reasons, but also because the starting value (if \verb+start+ is not given) for each corresponding coefficient is taken to be zero. When a linear trend is present in the data, the location parameter is often modelled as \begin{equation*} \mu_i = \beta_0 + \beta_1t_i, \end{equation*} where $t_i$ is some centred and scaled version of the time of the $i$th observation. More complex changes in $\mu$ may also be appropriate. For example, a change-point model \begin{equation*} \mu_i = \beta_0 + \beta_1x_i \qquad \text{where} \qquad x_i = \begin{cases} 0 & i \leq i_0 \\ 1 & i > i_0 \end{cases}, \end{equation*} or a quadratic trend \begin{equation*} \mu_i = \beta_0 + \beta_1t_i + \beta_2t_i^2. \end{equation*} See Sections \ref{egoxford} and \ref{egsealevel} for examples of non-stationary modelling. The function \verb+fgev+ also has an argument called \verb+prob+. If $\verb+prob+ = p$ is passed a value in the interval [0,1], \verb+fgev+ again produces maximum likelihood estimates for the GEV distribution, but the model is re-parameterised from $(\mu,\sigma,\xi)$ to $(z_p,\sigma,\xi)$, where $z_p$ is the quantile corresponding to the upper tail probability $p$. This argument can be used to calculate and plot profile log-likelihoods of extreme quantiles (see Section \ref{egoxford}). If \verb+prob+ is zero/one, then $z_p$ is defined as the upper/lower end point $\mu - \sigma/\xi$, and $\xi$ is restricted to the negative/positive axis. Under non-stationarity the model is re-parameterised from $(\beta_0,\beta_1,\dots,\beta_k,\sigma,\xi)$ to $(z_p,\beta_1,\dots,\beta_k,\sigma,\xi)$, so that $z_p$ is the quantile corresponding to the upper tail probability $p$ for the distribution obtained when all covariates are zero. The \verb+fextreme+ function produces maximum likelihood estimates for the distributions \eqref{maxdens} and \eqref{mindens} given an integer $m$ and an arbitrary distribution function $F$. The first argument should be a numeric vector containing the data to be fitted, which should represent maxima (if the argument \verb+largest+ is \verb+TRUE+, the default) or minima (if \verb+largest+ is \verb+FALSE+). The argument \verb+start+ (which cannot be missing) should be a named list containing starting values, the names of which should be the parameters over which the likelihood is to be maximised. If any of the parameters are to be set to fixed values, they can be given as separate arguments. Arguments of the optimisation function \verb+optim+ can also be specified. The example given below produces maximum likelihood estimates for the distribution \eqref{maxdens}, where $m = 365$ and $F$ is the normal distribution. \begin{verbatim} > d2 <- rextreme(100, distn = "norm", mean = 0.56, mlen = 365) # Simulate yearly maxima using normal distribution > sv <- list(mean = 0, sd = 1) > nm <- fextreme(d2, start = sv, distn = "norm", mlen = 365) > fitted(nm) mean sd 0.685 0.959 \end{verbatim} The \verb+forder+ function yields maximum likelihood estimates for the distribution \eqref{orderdens} given integers $m$ and $j \in \{1,\dots,m\}$, and an arbitrary distribution function $F$. An example is given below, where $m = 365$, $j = 2$ and $F$ is the normal distribution. \begin{verbatim} > d3 <- rorder(100, distn = "norm", mean = 0.56, mlen = 365, j = 2) > sv <- list(mean = 0, sd = 1) > nm2 <- forder(d3, sv, distn = "norm", mlen = 365, j = 2) > fitted(nm2) mean sd 0.483 1.042 \end{verbatim} \section{Fitting Peaks Over Threshold Models} \setcounter{footnote}{0} \label{potfit} Suppose $X_1,\dots,X_n$ is a sequence of independent and identically distributed random variables, with $M_n = \{X_1,\dots,X_n\}$. Suppose that $n$ is large, so that (assuming certain regularity conditions) the distribution of $M_n$ is approximately GEV\@. Then for large enough $u$, the exceedances of the threshold $u$ are approximately distributed as generalised Pareto, with location parameter $u$. The function \verb+fpot+ fits this distribution to the exceedances, and hence produces maximum likelihood estimates for the shape and scale parameters. The value of the threshold $u$ must be specified by the user. It is typically chosen to be as small as possible, subject to the limit model providing a reasonable approximation. The functions \verb+mrlplot+ and \verb+tcplot+\footnote{Both of these functions are heavily based on code by Stuart Coles.} produce diagnostic plots that facilitate the specification of $u$. The function \verb+mrlplot+ produces the empirical mean residual life plot, which is a plot of the empirical mean of the excesses of $u$ (i.e.\ the exceedances of $u$ minus $u$), plotted against $u$. If the exceedances of a threshold $u_0$ are generalised Pareto, the empirical mean residual life plot should be approximately linear for all $u > u_0$. The function \verb+tcplot+ calculates maximum likelihood estimates for the shape and modified scale parameters using a number of different thresholds, and plots these estimates against $u$. If the exceedances of a threshold $u_0$ are generalised Pareto, the shape and modified scale parameters should be approximately constant with respect to all thresholds $u > u_0$. Threshold identification plots produced from the example given below are depicted in Figure \ref{threshid}. In this case, the threshold $u = 1$ was chosen. \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{threshid1.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{threshid2.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{threshid3.ps}} \end{center} \caption{The identification of a threshold for the (generalised Pareto) peaks over threshold model. From left to right; the empirical mean residual life plot, modified scale parameter estimates and shape parameter estimates.} \label{threshid} \end{figure} The following code generates $n = 500$ independent standard normal random variables and fits the (generalised Pareto) peaks over threshold model to the exceedances of the threshold $u = 1$. The function \verb+fpot+ performs the fit. Many of the arguments of \verb+fpot+ are similar to those of \verb+fgev+. In particular, either of the \verb+scale+ or \verb+shape+ parameters can be set to fixed values by giving those parameters as arguments. For example, an exponential distribution for the excesses (or equivalently, a shifted exponential distribution for the exceedances) can be fitted using \verb+shape = 0+. \begin{verbatim} > tmp <- rnorm(500) > mrlplot(tmp, tlim = c(-1,1.5)) > tcplot(tmp, tlim = c(-1,1.5)) > pot1 <- fpot(tmp, 1) > pot1 Call: fpot(x = tmp, threshold = 1) Deviance: 40.5 Threshold: 1 Number Above: 76 Proportion Above: 0.152 Estimates scale shape 0.593 -0.211 \end{verbatim} The fitted model \verb+pot1+ gives the estimates for the scale and shape parameters of the generalised Pareto distribution fitted to the exceedances. Also given is the proportion of values above the threshold, or equivalently, the maximum likelihood estimate for the probability of an exceedance. Diagnostic plots and profile traces for fitted models can be constructed using the functions \verb+plot+ and \verb+profile+ (see Section \ref{egrain}). The peaks over thresholds model is typically extended to stationary series via declustering, which corresponds to a filtering of dependent observations to obtain a set of threshold exceedances which are approximately independent. An empirical rule is used to identify clusters of exceedances, and the generalised Pareto model is then fitted to the cluster maxima, assuming those maxima to be independent. The empirical rule, as given in Section \ref{stochproc}, is defined by the function \verb+clusters+. A model of this form can be implemented by setting the logical argument \verb+cmax+ to \verb+TRUE+. The clusters are identified using the threshold of the peaks over threshold model. An illustration of this technique is given below. The argument \verb+r+ is the clustering interval length. \begin{verbatim} > tmp2 <- evmc(500, dep = 0.8, margins = "gum") > pot2 <- fpot(tmp2, 1.5, cmax = TRUE, r = 3) > pot2 Call: fpot(x = tmp, threshold = 1, cmax = TRUE, r = 3) Deviance: 101.1 Threshold: 1.5 Number Above: 92 Proportion Above: 0.184 Clustering Interval: 3 Number of Clusters: 41 Extremal Index: 0.446 Estimates scale shape 1.657 -0.272 \end{verbatim} The Extremal Index is a quantity briefly discussed in Section \ref{stochproc}. The estimate of the Extremal Index is simply the number of clusters divided by the number of exceedances. The function \verb+fpot+ also has an argument called \verb+mper+. If $\verb+mper+ = m$ is passed a positive value, \verb+fpot+ again produces maximum likelihood estimates for the generalised Pareto model, but the model is re-parameterised from $(\sigma,\xi)$ to $(z_m,\xi)$, where $z_m$ is the $m$-period return level, defined as follows. Let $G$ be the fitted generalised Pareto distribution function, with location parameter equal to the specified threshold $u$, so that $1 - G(z)$ is the fitted probability of an exceedance over $z > u$ given an exceedance over $u$. The fitted probability of an exceedance over $z > u$ is therefore $p(1 - G(z))$, where $p$ is the estimated probability of exceeding $u$, which is given by the empirical proportion of exceedances. The $m$-period return level $z_m$ satisfies $p(1 - G(z_m)) = 1/(mN\hat{\theta})$, where $N$ is the number of observations per period, and $\hat{\theta}$ is the estimate of the extremal index if cluster maxima are fitted, with $\hat{\theta} = 1$ otherwise. The value $N$ can be specified using the argument \verb+npp+. For example, if observations are recorded weekly and $\verb+npp+ = 52$, then $z_m$ is the $m$-year return level. If \verb+mper+ is \verb+Inf+, then $z_m$ is defined as the upper end point $u - \sigma/\xi$, and $\xi$ is then restricted to be negative. The argument \verb+mper+ can be used to calculate and plot profile log-likelihoods of return levels (see Section \ref{egrain}). %The peaks over threshold model permits an alternative characterization in terms of point processes. %Suppose again that $X_1,\dots,X_n$ is a sequence of independent and identically distributed random variables, with $M_n = \{X_1,\dots,X_n\}$, and that $n$ is large, so that (assuming certain regularity conditions) the distribution of $M_n$ is approximately \text{GEV}($\mu,\sigma,\xi$), with (possibly infinite) end points\footnote{If $\xi > 0$, $z_- = \mu - \sigma/\xi$ and $z_+ = \infty$. If $\xi < 0$, $z_- = -\infty$ and $z_+ = \mu - \sigma/\xi$. If $\xi = 0$, the expressions given are all defined by continuity, with $z_- = -\infty$ and $z_+ = \infty$.} $z_-$ and $z_+$. Then for large enough $u > z_-$, the sequence $\{X_1,\dots,X_n\}$ viewed on the interval $(u,z_+)$ can be approximated by a non-homogeneous Poisson process \citep{cole01}. %The approximation leads to a likelihood for ($\mu,\sigma,\xi$), and hence maximum likelihood estimates can be obtained. %The likelihood can be easily adjusted so that the maxima of a given (large) number $N \leq n$ of random variables is approximately distributed as \text{GEV}($\mu,\sigma,\xi$), so that e.g.\ if observations are recorded weekly and $N = 52$, then ($\mu,\sigma,\xi$) corresponds to the distribution of annual maxima. %The point process characterization can be fitted using the \verb+fpot+ function with \verb+model = "pp"+. %The value $N$ can by specified using the argument \verb+npp+. %If \verb+npp+ is unspecified the default value $N = n$ is used. %The following code uses the point process characterization to fit a peaks over threshold model to the simulated data \verb+tmp+. %The models \verb+pot3+ and \verb+pot4+ are equivalent; the estimates in \verb+pot3+ correspond to the GEV distribution for the maxima of the data set, whereas those in \verb+pot4+ correspond to the GEV distribution for annual maxima, assuming the observations are recorded daily. %\begin{verbatim} %> pot3 <- fpot(tmp, 1, model = "pp", npp = 500) %> pot4 <- fpot(tmp, 1, model = "pp", npp = 365.25) %> fitted(pot3) % loc scale shape % 2.6839 0.2380 -0.2108 %> fitted(pot4) % loc scale shape % 2.6065 0.2542 -0.2108 % %> fitted(pot1) % scale shape % 0.593 -0.211 %\end{verbatim} %Also given above is the parameter estimates for the model \verb+pot1+, fitted using the generalised Pareto characterization. Let $(\tilde{\sigma}, \tilde{\xi})$ denote the scale and shape parameters of the \text{GPD}. The relationship between the two characterizations is then given by $\tilde{\xi} = \xi$ and $\tilde{\sigma} = \sigma + \xi(u - \mu)$, where $u$ is the threshold. %This relationship can be seen in the above estimates. %Under the generalized Pareto characterization, the parameter $\tilde{\sigma} - \tilde{\xi} u$ is referred to as the modified scale parameter, as plotted in the centre panel of Figure \ref{threshid}. Unlike $\tilde{\sigma} = \tilde{\sigma}(u)$, the modified scale parameter does not depend on the threshold $u$. \section{Fitting Bivariate Extreme Value Distributions} \setcounter{footnote}{0} \label{bivfit} The function \verb+fbvevd+ produces maximum likelihood estimates for nine bivariate extreme value models. The first argument should be a numeric matrix (or a data frame) with two columns containing the data to be fitted. Missing values are allowed. If the argument \verb+start+ is given it should be a named list containing starting values, the names of which should be the parameters over which the likelihood is to be maximised. If \verb+start+ is omitted the routine attempts to find good starting values for the optimisation using maximum likelihood estimators under the assumption of independence. If any of the parameters are to be set to fixed values, they can be given as separate arguments. Common marginal parameters can be fitted using the arguments \verb+cshape+, \verb+cscale+ and \verb+cloc+, and the dependence function can be constrained to symmetry using the argument \verb+sym+ (see the \verb+fbvevd+ help file for details). The \verb+nsloc1+ and \verb+nsloc2+ arguments allow non-stationary modelling of the location parameters on the first and second margins respectively. They should be used in the same manner as the \verb+nsloc+ argument of \verb+fgev+. Examples of bivariate models with non-stationary margins are given in Section \ref{egsealevel}. %For numerical reasons the parameters of each model are subject to the artificial constraints depicted in Table \ref{contab}. The scale parameters on each GEV margin are artificially constrained to be greater than or equal to $0.01$. These constraints only apply to the functions discussed in this section. %\begin{table} %\begin{center} %\begin{tabular}{l|c} %Bivariate Model & Constraints \\ \hline %Logistic & $0.1\leq\alpha\leq1$ \\ %Asymmetric Logistic & $0.1\leq\alpha\leq1$, $0.001\leq\theta_1,\theta_2\leq1$ \\ %H\"{u}sler-Reiss & $0.2\leq\lambda\leq10$ \\ %Negative Logistic & $0.05\leq r \leq5$ \\ %Asymmetric Negative Logistic & $\quad0.05\leq r \leq5$, $0.001\leq\theta_1,\theta_2\leq1\quad$ \\ %Bilogistic & $0.1\leq\alpha,\beta\leq0.999$ \\ %Negative Bilogistic & $0.1\leq\alpha,\beta\leq20$ \\ %Coles-Tawn & $0.001\leq\alpha,\beta\leq30$ \\ \hline %\end{tabular} %\caption{For numerical reasons the parameters of each model are subject to the artificial constraints depicted here.} %\label{contab} %\end{center} %\end{table} The first example given below produces maximum likelihood estimates for the (symmetric) logistic model. The second example constrains the model at independence (where $\texttt{dep} = 1$). The estimates produced in the second example are the same as those that would be produced if \verb+fgev+ was separately applied to each margin. \begin{verbatim} > bvdata <- rbvevd(100, dep = 0.6, mar1 = c(1.2,1.4,0), mar2 = c(1,1.6,0.1)) > m1 <- fbvevd(bvdata, model = "log") > m1 Call: fbvevd(x = bvdata, model = "log") Deviance: 728.5 AIC: 742.5 Dependence: 0.3526 Estimates loc1 scale1 shape1 loc2 scale2 shape2 dep 1.2121 1.3831 -0.1813 0.8404 1.4005 0.0834 0.7202 Standard Errors loc1 scale1 shape1 loc2 scale2 shape2 dep 0.1540 0.1091 0.0673 0.1537 0.1144 0.0614 0.0624 Optimization Information Convergence: successful Function Evaluations: 47 Gradient Evaluations: 10 > m2 <- fbvevd(bvdata, model = "log", dep = 1) > fitted(m2) loc1 scale1 shape1 loc2 scale2 shape2 1.2231 1.3776 -0.1914 0.8367 1.4083 0.0868 > std.errors(m2) loc1 scale1 shape1 loc2 scale2 shape2 0.1543 0.1089 0.0725 0.1565 0.1163 0.0670 > c(logLik(m2), deviance(m2), AIC(m2)) [1] -376 752 764 \end{verbatim} The discussion in Section \ref{unifit} regarding the properties of maximum likelihood estimators for the GEV distribution also applies to all bivariate models. The usual asymptotic properties will not hold if either of the marginal shape parameters are less than $-0.5$. %When the usual asymptotic properties do not hold the \verb+std.errors+ component will still be based on the inverse of the observed information matrix, but these values must be \emph{interpreted with caution} \citep{smit85}. The value in the output labelled \verb+Dependence+ is the fitted estimate of $\chi = 2\{1-A(1/2)\} \in [0,1]$ \citep{coleheff99}, where $A(\cdot)$ denotes the dependence function \eqref{bvdepfn}. At independence $\chi = 0$, and at complete dependence $\chi = 1$. Diagnostic plots and profile traces for fitted models can be constructed using the functions \verb+plot+, \verb+profile+ and \verb+profile2d+ (see Section \ref{egsealevel}). The function \verb+anova+ performs likelihood ratio tests. The null hypothesis of the test performed below specifies that the margins are Gumbel distributions ($\texttt{shape1} = \texttt{shape2} = 0$). The deviance of the constrained model is compared with the deviance of the unconstrained model, and the p-value is calculated to be $0.78$. The hypothesis would not be rejected at any reasonable significance level. \begin{verbatim} > m3 <- fbvevd(bvdata, model = "log", shape1 = 0, shape2 = 0) > anova(m1, m3) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 7 708 m3 5 708 2 0.5 0.78 \end{verbatim} In the following example I attempt to fit the asymmetric logistic model to the simulated data set used above, which is known to be distributed as symmetric logistic. \begin{verbatim} > m4 <- fbvevd(bvdata, model = "alog") > fitted(m4) loc1 scale1 shape1 loc2 scale2 shape2 asy1 asy2 dep 1.2097 1.3928 -0.1853 0.8421 1.3831 0.0773 0.8331 0.9996 0.6925 \end{verbatim} A boundary of the parameter space has been reached; the maximum likelihood estimate for the second asymmetry parameter is one. This may cause difficulties for the optimiser. There are two solutions to this problem: the second asymmetry parameter can be fixed at one, or the \verb+L-BFGS-B+ method can be used. The \verb+L-BFGS-B+ method allows box-constraints using the arguments \verb+lower+ and \verb+upper+. The following snippet illustrates both approaches. \begin{verbatim} > mb <- fbvevd(bvdata, model = "alog", asy2 = 1) > round(fitted(mb), 3) loc1 scale1 shape1 loc2 scale2 shape2 asy1 dep 1.212 1.385 -0.176 0.834 1.396 0.086 0.867 0.693 > up <- c(rep(Inf, 6), 1, 1, 1) > mb <- fbvevd(bvdata, model = "alog", method = "L-BFGS-B", upper = up) > round(fitted(mb), 3) loc1 scale1 shape1 loc2 scale2 shape2 asy1 asy2 dep 1.212 1.385 -0.176 0.834 1.396 0.086 0.867 1.000 0.693 \end{verbatim} \section{Example: Oxford Temperature Data} \setcounter{footnote}{0} \label{egoxford} The numeric vector \verb+oxford+ contains annual maximum temperatures (in degrees Fahrenheit) at Oxford, England, from 1901 to 1980. It is included in the evd package, and can be made available using \verb+data(oxford)+. The data has previously been analysed by \citet{tabo83}. I begin by plotting the data. The assumptions of stationarity and independence seem sensible, given the plot (not shown) generated using the code below. \begin{verbatim} > data(oxford) ; ox <- oxford > plot(1901:1980, ox, xlab = "year", ylab = "temperature") \end{verbatim} The following code fits two models based on the GEV distribution. The first model assumes stationarity. The second model allows for a trend term in the location parameter (even though the plot appears to show that this is unnecessary). The \verb+nsloc+ argument is centred and scaled so that the intercept \verb+loc+ represents the location parameter in 1950 and the trend \verb+loctrend+ represents the increase in the location parameter (or decrease, if negative) over a period of 100 years. \begin{verbatim} > ox.fit <- fgev(ox) > tt <- (1901:1980 - 1950)/100 > ox.fit.trend <- fgev(ox, nsloc = tt) > fitted(ox.fit.trend) loc loctrend scale shape 83.6617 -1.8812 4.2233 -0.2841 > std.errors(ox.fit.trend) loc loctrend scale shape 0.5557 1.9675 0.3650 0.0707 \end{verbatim} % Moved for graphics placement. \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{graph3.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph4.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph5.ps}} \end{center} \caption{Diagnostic plots for the model \texttt{ox.fit}.} \label{oxdiag} \end{figure} The trend term not statistically significant (at any reasonable level). The stationary model \verb+ox.fit+ is retained for further analysis. \begin{verbatim} > ox.fit Call: fgev(x = oxford) Deviance: 457.8 Estimates loc scale shape 83.839 4.260 -0.287 Standard Errors loc scale shape 0.5231 0.3658 0.0683 \end{verbatim} The fitted shape is negative, so the fitted distribution is Weibull. It is often of interest to test the hypothesis that the shape is zero (the Gumbel distribution). The code \verb+confint(ox.fit)+ returns the 95\% Wald confidence intervals for the model parameters, roughly equal to the fitted estimates plus or minus twice their standard errors. The interval for the shape parameter is given by $(-0.42,-0.15)$. The corresponding Wald test for $\xi = 0$ would be rejected at significance level $0.05$ since the 95\% confidence interval does not contain zero. A likelihood ratio test for $\xi = 0$ is performed in the following snippet. The hypothesis is rejected at any significance level above $0.00053$. \begin{verbatim} > ox.fit.gum <- fgev(ox, shape = 0) > anova(ox.fit, ox.fit.gum) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) ox.fit 3 458 ox.fit.gum 2 470 1 12 0.00053 \end{verbatim} Diagnostic plots can be produced using \verb+plot(ox.fit)+. The plots produced compare parametric distributions, densities and quantiles to their empirical counterparts (see the \verb+plot.uvevd+ help file for details). Selected diagnostics are depicted in Figure \ref{oxdiag}. The small bars on the P-P, Q-Q and return level plots represent simulated (pointwise) 95\% confidence intervals. The model \verb+ox.prof+ is seen to be a good fit. The fitted density is close to the non-parametric estimator, and most points lie within the confidence intervals. Profile log-likelihoods of the parameters can be plotted using \begin{verbatim} > ox.prof <- profile(ox.fit) > plot(ox.prof) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{graph7.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph8.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph9.ps}} \end{center} \caption{Profile log-likelihoods for the model \texttt{ox.fit}.} \label{oxprof} \end{figure} The profile log-likelihoods for the scale and shape parameters are the first two plots of Figure \ref{oxprof}. A horizontal line is (optionally) drawn on each plot so that the intersection of the line with the profile log-likelihood yields a profile confidence interval, with (default) confidence coefficient 0.95. The end points of the intervals can be derived using \verb+confint(ox.prof)+. The profile confidence intervals for the location and shape parameters are approximately the same as the Wald confidence intervals, since the profile log-likelihoods are approximately symmetric. The profile log-likelihood for the scale parameter is asymmetric; both end points of the profile confidence interval $(3.64, 5.12)$ are larger than the corresponding end points of the Wald interval $(3.54, 4.98)$. The joint profile log-likelihood of the scale and shape parameters can be plotted using \begin{verbatim} > ox.prof2d <- profile2d(ox.fit, ox.prof, which = c("scale", "shape")) > plot(ox.prof2d) \end{verbatim} This produces the image plot in the right panel of Figure \ref{oxprof}. The colours of the image plot represent confidence sets with different confidence coefficients. By default, the lightest colour (ignoring the background colour) represents a confidence set with coefficient 0.995; the darkest colour represents a confidence set with coefficient 0.5. Let $G$ be the GEV distribution function, and let $G(z_p) = 1-p$, so that \begin{equation*} z_p = \begin{cases} \mu - \frac{\sigma}{\xi}[1 - \{-\log(1-p)\}^{-\xi}] & \xi \neq 0 \\ \mu - \sigma \log\{-\log(1-p)\} & \xi = 0, \end{cases} \end{equation*} is the quantile corresponding to the upper tail probability $p$. The profile log-likelihood for $z_{0.1}$ can be plotted using the following. The argument $\verb+prob+ = p$ re-parameterises the GEV distribution so that \verb+fgev+ produces maximum likelihood estimates for $(z_p,\sigma,\xi)$. \begin{verbatim} > ox.qfit <- fgev(ox, prob = 0.1) > ox.qprof <- profile(ox.qfit, which = "quantile") > plot(ox.qprof) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{graph10.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph11.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{graph12.ps}} \end{center} \caption{Profile log-likelihoods for $z_{0.1}$, $z_{0.01}$ and $z_{0.001}$.} \label{quantprof} \end{figure} Figure \ref{quantprof} shows profile log-likelihoods for $z_{0.1}$, $z_{0.01}$ and $z_{0.001}$. The extent of the asymmetry in the profile log-likelihood increases for decreasing (small) $p$. This is to be expected, since the data provide increasingly weaker information in the upper tail of the fitted distribution. If $\verb+prob+ = p$ is zero, then $z_p$ is the upper end point of the GEV distribution, given by $\mu-\sigma/\xi$ when $\xi < 0$. The profile log-likelihood for $z_0$ can be plotted using the following code. \begin{verbatim} > ox.qfit <- fgev(ox, prob = 0) > ox.qprof <- profile(ox.qfit, which = "quantile", conf = 0.99) > plot(ox.qprof) > confint(ox.qprof) lower upper quantile 95.78 113.0 \end{verbatim} The argument \verb+conf+ of the function \verb+profile+ controls the range of the profile trace. The profile trace is constructed so that profile confidence intervals with confidence coefficients \verb+conf+ or less can be derived from it. By default, $\verb+conf+ = 0.999$, though a smaller value is often appropriate when the profile log-likelihood exhibits strong asymmetry. The 95\% profile confidence interval for the upper end point $z_0$ is derived as (95.8,113.0). \section{Example: Rainfall Data} \setcounter{footnote}{0} \label{egrain} The numeric vector \verb+rain+ contains 17531 daily rainfall accumulations at a location in south-west England, recorded over the period 1914 to 1962. The data is not included in the evd package, but it is available in the ismev package, which can be downloaded from CRAN. As usual, the package can be loaded using \verb+library(ismev)+, and the data can be made available using \verb+data(rain)+. The plot of the data given in Figure 1.7 of \citet{cole01} shows that an assumption of stationarity is sensible. The example given here follows \citet{cole01}, pages 84--86. \begin{verbatim} > mrlplot(rain, tlim = c(0,85), nt = 100) > par(mfrow = c(2,1)) > tcplot(rain, tlim = c(0,50), nt = 20) > potgp <- fpot(rain, 30, npp = 365.25) > potgp2 <- fpot(rain, 30, npp = 365.25, cmax = TRUE, r = 7) > clusters(rain, 30, r = 7, cmax = TRUE) \end{verbatim} The first three lines of code produce the threshold diagnostic plots given in pages 80 and 85 of \citet{cole01}, who subsequently decides to work with the threshold $u = 30$. The model \verb+potgp+ reports that 152 observations lie above the threshold, giving an exceedance probability estimate of 0.00867. The estimates and standard errors of the parameters of \verb+potgp+ agree with those given page 85 of \citet{cole01}. In \verb+potgp2+ the peaks over threshold model is applied to cluster maxima, where clusters are defined using a clustering interval length of seven. As there is little sign of clustering in the data, this leads to relatively small changes in the parameter estimates, and relatively small increases in the standard errors. The final line of code calls the function \verb+clusters+ (see Section \ref{stochproc}) in order to produce the cluster maxima that were used for the fitting of model \verb+potgp2+. Diagnostic plots can be produced using \verb+plot(potgp)+. The plots compare parametric distributions, densities and quantiles to their empirical counterparts (see the \verb+plot.uvevd+ help file for details). Selected diagnostics are given in Figure \ref{potdiag}. The x-axis of the return level plot gives return periods in units of years, since we specified the number of observations per period as $\texttt{npp} = 365.25$. The small bars on the P-P, Q-Q and return level plots represent simulated (pointwise) 95\% confidence intervals. The model \verb+potgp+ is seen to be a good fit. The fitted density tail is close to the non-parametric estimator, and most points lie within the confidence intervals. \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{potdiag2.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{potdiag3.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{potdiag4.ps}} \end{center} \caption{Diagnostic plots for the peaks over threshold model for daily rain data.} \label{potdiag} \end{figure} Profile log-likelihoods of the shape parameter and the 100-year return level (not shown) can be plotted using the following code. The argument $\verb+mper+ = m$ re-parameterises the model so that \verb+fpot+ produces maximum likelihood estimates for $(z_m,\xi)$, where $z_m$ is the $m$ period return level, as defined in Section \ref{potfit}. Horizontal lines denoting 95\% profile confidence intervals are depicted on each plot. The end points of profile confidence intervals can be derived using \verb+confint(prgp3)+. \begin{verbatim} potgp3 <- fpot(rain, 30, npp = 365.25, mper = 100) prgp3 <- profile(potgp3) plot(prgp3) \end{verbatim} %\begin{figure} %\begin{center} %\scalebox{0.18}{\includegraphics{potprof1.ps}} %\vspace{-1.5cm} %\hspace{0cm} %\scalebox{0.18}{\includegraphics{potprof2.ps}} %\end{center} %\caption{Profile deviances for the shape parameter and 100-year return level in the peaks over threshold model for daily rain data.} %\label{potprof} %\end{figure} \section{Example: Sea Level Data} \setcounter{footnote}{0} \label{egsealevel} The \verb+sealevel+ data frame \citep{coletawn90} has two columns containing annual sea level maxima from 1912 to 1992 at Dover and Harwich, two sites on the coast of Britain. It contains 39 missing maxima in total; nine at Dover and thirty at Harwich. There are three years for which the annual maximum is not available at either site. I begin by plotting the data, using the code below. The plot of the Harwich maxima against the Dover maxima, given in the left panel of Figure \ref{seadata}, depicts a reasonable degree of dependence. The outlier corresponds to the 1953 flood resulting from a storm passing over the South-East coast of Britain on 1st February. The marginal plots (not shown) suggest that the Harwich and Dover maxima both increase with time. The last line of code\footnote{The function \texttt{chiplot} is heavily based on code by Jan Heffernan.} plots estimates of $\chi(u)$ and $\bar{\chi}(u)$ for $0 < u < 1$ \citep{coleheff99}, as depicted in Figure \ref{seadata}. For bivariate extreme value distributions, $\chi(u) = \chi$ is constant for all $0 < u < 1$, and $\lim_{u \rightarrow 1}\bar{\chi}(u) = 1$. The conditions do not seem unreasonable given the wide confidence intervals in each plot. \begin{verbatim} > data(sealevel) ; sl <- sealevel > plot(sl, xlab = "Dover Annual Maxima", ylab = "Harwich Annual Maxima") > plot(1912:1992, sl[,1], xlab = "Year", ylab = "Dover Annual Maxima") > plot(1912:1992, sl[,2], xlab = "Year", ylab = "Harwich Annual Maxima") > chiplot(sl) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{bvgraph1.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{chi.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{chibar.ps}} \end{center} \caption{From left to right; Harwich maxima vs Dover maxima, estimated values of $\chi(u)$ vs $u$, estimated values of $\bar{\chi}(u)$ vs $u$.} \label{seadata} \end{figure} The following three expressions fit (symmetric) logistic models. The first model incorporates linear trend terms on both marginal location parameters. The second model incorporates a linear trend on the Dover margin only. The third model assumes stationarity. The \verb+nsloc1+ and \verb+nsloc2+ arguments are centred and scaled so that the intercepts \verb+loc1+ and \verb+loc2+ represent the marginal location parameters in 1950 and the linear trend parameters \verb+loc1trend+ and \verb+loc2trend+ represent the increase in the marginal location parameters (or decrease, if negative) over a period of 100 years. \begin{verbatim} > tt <- (1912:1992 - 1950)/100 > m1 <- fbvevd(sl, model = "log", nsloc1 = tt, nsloc2 = tt) > m2 <- fbvevd(sl, model = "log", nsloc1 = tt) > m3 <- fbvevd(sl, model = "log") \end{verbatim} %I'll leave you to analyse the models in detail. %In particular, notice how the trend terms affect the parameter estimates. %Marginal Weibull distributions (negative shapes) are estimated when the trends are not included, but marginal Fr\'{e}chet distributions (positive shapes) are estimated upon their inclusion. The maximum likelihood estimates of the parameters can be compared with their standard errors to perform Wald tests. Wald confidence intervals can be derived using e.g.\ \verb+confint(m1)+. Likelihood ratio tests are performed in the following snippet. The p-values confirm the statistical significance of the linear trend terms. \begin{verbatim} > anova(m1, m2, m3) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 9 -36.5 m2 8 -29.2 1 7.26 0.007 m3 7 -9.7 1 19.56 9.7e-06 \end{verbatim} Quadratic trends for the location parameter on either or both margins can be incorporated using the following code. Further testing, using the models generated below, suggests that a quadratic trend may be implemented for the location parameter on the Harwich margin. Despite this, I retain the model \verb+m1+ for further analysis. \begin{verbatim} > tdframe <- data.frame(trend = tt, quad = tt^2) > m4 <- fbvevd(sl, model = "log", nsloc1 = tdframe, nsloc2 = tt) > m5 <- fbvevd(sl, model = "log", nsloc1 = tt, nsloc2 = tdframe) > m6 <- fbvevd(sl, model = "log", nsloc1 = tdframe, nsloc2 = tdframe) \end{verbatim} The code given below compares two logistic models that are nested within \verb+m1+. Model \verb+m7+ assumes independence. The maximum likelihood estimates are the same as those that would be produced if \verb+fgev+ was separately applied to each margin. The asymptotic distribution of the deviance difference between models \verb+m7+ and \verb+m1+ is non-regular because the dependence parameter in the restricted (independence) model is fixed at the edge of the parameter space. \cite{tawn88} discusses non-regular cases, including this case, for which the asymptotic distribution is one-half of a chi-squared random variable on one degree of freedom. In these cases the argument \verb+half+ should be set to \verb+TRUE+. The resulting p-value is less than $10^{-6}$, and clearly the independence model is rejected. Model \verb+m8+ assumes that both marginal shape parameters are zero (or equivalently, that both marginal distributions are Gumbel). A likelihood ratio test of this hypothesis provides a p-value of $0.72$. The hypothesis would not be rejected at any reasonable significance level. \begin{verbatim} > m7 <- fbvevd(sl, model = "log", nsloc1 = tt, nsloc2 = tt, dep = 1) > anova(m1, m7, half = TRUE) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 9 -36.5 m7 8 -22.9 1 27.2 1.9e-07 > m8 <- fbvevd(sl, "log", nsloc1 = tt, nsloc2 = tt, shape1 = 0, shape2 = 0) > anova(m1, m8) Analysis of Deviance Table M.Df Deviance Df Chisq Pr(>chisq) m1 9 -36.5 m8 7 -35.8 2 0.67 0.72 \end{verbatim} Diagnostic plots for the fitted (generalised extreme value) marginal distributions can be produced using \verb+plot+ with \verb+mar = 1+ or \verb+mar = 2+. The plots produced are of the same structure as those given in Section \ref{egoxford}. Diagnostic plots for the fitted dependence structure can be produced using \verb+plot+. There are six plots available (see the \verb+plot.bvevd+ help file for details). Two diagnostic plots are depicted within Figure \ref{seadiag}. \begin{verbatim} > plot(m1, mar = 1) > plot(m1, mar = 2) > plot(m1, which = 1:5) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.25}{\includegraphics{bvgraph7.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.25}{\includegraphics{bvqcurve.ps}} \hspace{0cm} \scalebox{0.25}{\includegraphics{bvgraph8.ps}} \end{center} \caption{From left to right; dependence function diagnostic plot, quantile curves diagnostic plot, profile log-likelihood of the dependence parameter.} \label{seadiag} \end{figure} The model \verb+m1+ fits the data reasonably well. There are some minor deviations within the conditional P-P plots (not shown), but they do not represent a serious departure of the empirical estimates from the fitted model. The profile log-likelihood of the dependence parameter \verb+dep+, as given in the right panel of Figure \ref{seadiag}, can be plotted using the following. The argument \verb+xmax+ denotes the upper bound of the parameter. \begin{verbatim} > m1.prof <- profile(m1, which = "dep", xmax = 1) > plot(m1.prof) > confint(m1.prof) lower upper dep 0.528 0.887 \end{verbatim} A horizontal line is (optionally) drawn so that the intersection of the line with the profile log-likelihood yields a profile confidence interval, with (default) confidence coefficient 0.95. The interval is derived as $(0.53,0.89)$. Further analysis with models other than the (symmetric) logistic yields the following conclusions. The two models in Section \ref{biv} that include three parameters with which to describe the dependence structure (the asymmetric logistic and asymmetric negative logistic) are inappropriate. In both cases, the maximum likelihood estimate for the parameter \verb+dep+ is at an artificial boundary, because the fitted model is close to a distribution (obtained in the limit) which contains a singular component. This is clearly illustrated in the density plots of the fitted models, which both depict a ridge of mass extending towards the 1953 outlier. The logistic and the bilogistic models have the lowest deviance of all one and two parameter models respectively. The dependence structure of the fitted bilogistic model is almost symmetric. At symmetry, the bilogistic model reduces to the logistic model, and so the latter would appear to be preferable. A likelihood ratio test between the two (nested) models gives a p-value of $0.93$. %Models that are not nested can be compared by adding penalty terms to the deviances. %The penalty terms take into account the number of parameters fitted. (If both models have the same number of parameters the deviances can be compared directly.) %Three commonly used penalty terms are $2p$ (Akaike's information criterion, or AIC), $p\log(n)$ (Schwarz's criterion, or SC) and $p\{1+\log(n)\}$ (Bayesian information criterion, or BIC), where $p$ is the number of parameters estimated and $n$ is the number of observations.\footnote{Since \texttt{fbvall} compares models for the dependence structure, $n$ is taken as the number of observations which are complete (i.e.\ not missing on either margin).} %Any bivariate extreme value distribution function can be expressed as \citep{haan84} %\begin{equation*} %G(z_1,z_2) = \exp\left\{ - \int_0^1\max\{y_1f_1(x),y_2f_2(x)\} \, \text{d}x \right\} %\end{equation*} %where $(y_1,y_2)$ are again defined by the transformations \eqref{mtrans}, and where $f_1$ and $f_2$ are density functions with support [0,1]. %In particular, if we take the beta densities $f_1(x)=(1-\alpha)x^{-\alpha}$ and $f_2(x)=(1-\beta)(1-x)^{-\beta}$ we obtain \section*{Appendix A: Additional Bivariate Parametric Models} It can be shown, using a representation of \citet{haan84}, that \begin{equation*} G(z_1,z_2) = \exp\left\{ - \int_0^1\max\{y_1(1-\alpha)x^{-\alpha},y_2(1-\beta)(1-x)^{-\beta}\} \, \text{d}x \right\}, \quad \alpha,\beta < 1. \end{equation*} is a bivariate extreme value distribution function. If we further constrain the parameters to be non-negative we obtain the bivariate bilogistic model proposed by \citet{smit90}, which can also be expressed as \begin{equation*} G(z_1,z_2) = \exp\left\{ - y_1\gamma^{1-\alpha} - y_2(1-\gamma)^{1-\beta} \right\}, \quad 0 < \alpha,\beta <1, \end{equation*} where $\gamma=\gamma(y_1,y_2;\alpha,\beta)$ solves $(1-\alpha)y_1(1-\gamma)^\beta=(1-\beta)y_2\gamma^\alpha$. The logistic model is obtained when $\alpha=\beta$. Independence is obtained as $\alpha = \beta \rightarrow1$, and when one of $\alpha,\beta$ is fixed and the other approaches one. Different limits occur when one of $\alpha,\beta$ is fixed and the other approaches zero. Alternatively, if we constrain both parameters to be non-positive and set $\alpha_0=-\alpha > 0$ and $\beta_0=-\beta > 0$ we obtain the negative bilogistic model \citep{coletawn94}, which has the representation \begin{equation*} G(z_1,z_2) = \exp\left\{-y_1-y_2+y_1\gamma^{1+\alpha_0}+y_2(1-\gamma)^{1+\beta_0} \right\}, \quad \alpha_0,\beta_0 > 0, \end{equation*} where $\gamma=\gamma(y_1,y_2;-\alpha_0,-\beta_0)$. The negative logistic model is obtained when $\alpha_0=\beta_0$ (with $r = 1/\alpha_0 = 1/\beta_0$). Independence is obtained as $\alpha_0 = \beta_0 \rightarrow\infty$, and when one of $\alpha_0,\beta_0$ is fixed and the other tends to $\infty$. Different limits occur when one of $\alpha_0,\beta_0$ is fixed and the other approaches zero. The distribution function of the Coles-Tawn model\footnote{\citet{coletawn91} call this the Dirichelet model.} \citep{coletawn91} is given by \begin{equation*} G(z_1,z_2) = \exp\left\{-y_1[1-\text{Be}(u;\alpha+1,\beta)] - y_2\,\text{Be}(u;\alpha,\beta+1) \right\}, \quad \alpha,\beta > 0, \end{equation*} where $u=\alpha y_2/(\alpha y_2+\beta y_1)$ and Be is the incomplete beta function, given by \begin{equation*} \text{Be}(u;\alpha,\beta) = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \int_0^u x^{\alpha-1}(1-x)^{\beta-1} \, \text{d}x. \end{equation*} Complete dependence is obtained in the limit as $\alpha = \beta \rightarrow\infty$. Independence is obtained as $\alpha = \beta \rightarrow0$ and when one of $\alpha,\beta$ is fixed and the other approaches zero. Different limits occur when one of $\alpha,\beta$ is fixed and the other tends to $\infty$. The asymmetric mixed model \citep{tawn88} is typically defined using the corresponding dependence function \eqref{bvdepfn}, which is modelled as a cubic polynomial. Specifically, for $0 \leq t \leq 1$ the dependence function of the asymmetric mixed model is \begin{equation*} A(t) = 1 - (\alpha + \beta)t + \alpha t^2 + \beta t^3, \end{equation*} where both $\alpha$ and $\alpha + 3\beta$ are non-negative, and where both $\alpha + \beta$ and $\alpha + 2\beta$ are less than or equal to one. These constraints imply that $\beta \in [-0.5,0.5]$ and $\alpha \in [0,1.5]$, though $\alpha$ can only be greater than one if $\beta$ is negative. The (symmetric) mixed model is obtained when $\beta = 0$. Complete dependence cannot be obtained. Independence is obtained when $\alpha = \beta = 0$. The asymmetric mixed model is often referred to in the literature because the dependence function has a simple form, and because the $\beta = 0$ case is historically important. However it cannot capture strong dependence, and hence it is of limited use as a statistical model. The extension to an $m$-degree polynomial can be made, but this is of no statistical interest because the additional parameters add little additional flexibility. \bibliography{bibliog} \end{document} \section*{Appendix A: Simulation Study} In this Appendix we use the tools in the package to perform a simulation study to examine the small sample properties of non-parametric estimators for the dependence function $A(\cdot)$ of the bivariate extreme value distribution. The estimators referred to in this Appendix are defined in the documentation file for the function \verb+abvnonpar+. Simulation studies of this form \citep[e.g.][]{halltajv00} typically use the known marginal parameters $(\mu_1,\sigma_1,\xi_1,\mu_2,\sigma_2,\xi_2)$ within the transformations \eqref{transtoexp}. In practice, these parameters need to be estimated. In this study we seek to replicate the behaviour of the estimators when applied to real data, and we have therefore estimated the marginal parameters by maximum likelihood. Figure \ref{simfig} depicts the behaviour of the estimators of \citet{capefoug97}, \citet{pick81} and \citet{tiag97}, which we subsequently denote by $A_c$, $A_p$ and $A_t$ respectively. The estimators of \citet{dehe91} and \citet{halltajv00} are not considered, as they produce plots that are indistinguishable from those of $A_p$. The first, second and third columns of the figure employ simulations from (symmetric) logistic distributions, with $\alpha$ equal to $0.5$, $0.75$ and $1$ respectively. Standard Gumbel marginal distributions were used in each case. The figure shows that the estimator $A_t$ is abysmal when estimating dependence functions with very strong ($\alpha = 0.5$) or very weak ($\alpha = 1$) levels of dependence. The estimators $A_c$ and $A_p$ give more consistent performances across different levels of dependence. The estimator $A_c$ appears to outperform $A_p$, as the estimates of the former appear to cluster more tightly around the true dependence function for each $\alpha = 0.5,0.75,1$. The plots can easily be generated, using e.g. \begin{verbatim} > dep <- 0.5 ; method <- "cfg" > abvevd(dep = dep, plot = TRUE, lty = 0) > set.seed(44) > for(i in 1:50) { sdt <- rbvevd(100, dep = dep) abvnonpar(data = sdt, add = TRUE, method = method, col = "grey") } > abvevd(dep = dep, add = TRUE, lwd = 3) \end{verbatim} \begin{figure} \begin{center} \scalebox{0.18}{\includegraphics{npsim11.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim12.ps}} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim13.ps}} \\ \scalebox{0.18}{\includegraphics{npsim21.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim22.ps}} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim23.ps}} \\ \scalebox{0.18}{\includegraphics{npsim31.ps}} \vspace{-1.5cm} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim32.ps}} \hspace{0cm} \scalebox{0.18}{\includegraphics{npsim33.ps}} \end{center} \caption{Simulated non-parametric dependence function estimates. The grey lines represent estimates derived using the estimators $A_c$ (top row), $A_p$ (middle row) and $A_t$ (bottom row). The thick black lines represent the true dependence functions, which are (symmetric) logistic models with dependence parameters $0.5$ (first column), $0.75$ (second column) and $1$ (third column).} \label{simfig} \end{figure} which generates the plot in the top left corner. Only the first line of code needs to be changed in order to produce the remaining plots. The second line of code establishes the plotting region. The simulation is performed in the \verb+for+ loop, and the last line adds the true dependence function to the plot. The \verb+set.seed+ function sets the seed of the random generator, which ensures that the simulated data sets used for each plot are comparable. Let $A_n(\cdot)$ be any estimator of $A(\cdot)$. Table \ref{simtab} gives median integrated absolute errors for various non-parametric dependence function estimators. The table was constructed as follows. For $\alpha = 0.5,0.75,1$ we simulated $1000$ datasets containing $n=25,100$ bivariate observations, using standard Gumbel margins. Then for each of the $1000$ datasets we estimated the integrated absolute error $\int_0^1|A_n(x) - A(x)| \, \text{d}x$. The table contains the median of the $1000$ values, for each value of $\alpha$ and $n$. We have extended the number of estimators to include the convex minorants of $A_c$ and $A_p$, which we denote by $A_c^*$ and $A_p^*$. The convex minorant of $A_t$ is identical to $A_t$, because $A_t$ is always convex. The table again shows the poor performance of $A_t$ when $\alpha = 0.5$, and particularly when $\alpha = 1$. $A_t$ is the best estimator when $\alpha = 0.75$, which is not surprising given that the estimator only yields adequate estimates at mid-range levels of dependence. The estimator $A_c$ outperforms $A_p$, confirming the impression given by Figure \ref{simfig}. Taking the convex minorant of $A_c$ or $A_p$ leads to an improvement for $\alpha = 0.5$ and $\alpha = 0.75$, but a considerable worsening for $\alpha = 1$. This worsening is expected, since taking the convex minorant always leads to estimates of stronger dependence. The values in the table can be generated using e.g. \begin{verbatim} > dep <- 0.5 ; n <- 25 ; method <- "cfg" ; cv <- FALSE > nn <- 100 ; x <- (1:nn)/(nn + 1) > a <- abvevd(x, dep = dep) > iae <- numeric(1000) > set.seed(44) > for(i in 1:1000) { sdt <- rbvevd(n, dep = dep) anp <- abvnonpar(x, data = sdt, method = method, convex = cv) iae[i] <- sum(abs(a - anp))/nn } > round(10^4 * median(iae)) \end{verbatim} % FOR ENTIRE TABLE %\begin{verbatim} %method <- rep(c("cfg","cfg","pick","pick","tdo"), 6) %cv <- rep(c(FALSE, TRUE, FALSE, TRUE, FALSE), 6) %dep <- rep(rep(c(0.5, 0.75, 1), each = 5), 2) %n <- rep(c(25, 100), each = 15) %sim.all <- numeric(30) % %for(j in 1:30) { % print(j) % nn <- 100 ; x <- (1:nn)/(nn+1) % a <- abvevd(x, dep = dep[j]) % iae <- numeric(1000) % set.seed(44) % for(i in 1:1000) { % sdt <- rbvevd(n[j], dep = dep[j]) % anp <- abvnonpar(x, data = sdt, method = method[j], convex = cv[j]) % iae[i] <- sum(abs(a - anp))/nn % } % sim.all[j] <- median(iae) %} %round(10^4 * matrix(sim.all, nrow = 5, ncol = 6)) %\end{verbatim} \begin{table} \begin{center} \begin{tabular}{|l|ccc|ccc|} \hline & \multicolumn{3}{c|}{$n=25$} & \multicolumn{3}{c|}{$n=100$} \\ & $\alpha = 0.5$ & $\alpha = 0.75$ & $\alpha = 1$ & $\alpha = 0.5$ & $\alpha = 0.75$ & $\alpha = 1$ \\ \hline $A_c$ & 210 & 415 & 110 & 104 & 198 & 62 \\ $A_c^*$ & 205 & 363 & 340 & 103 & 194 & 168 \\ $A_p$ & 243 & 469 & 211 & 134 & 242 & 113 \\ $A_p^*$ & 218 & 357 & 554 & 126 & 215 & 285 \\ $A_t$ & 393 & 189 & 983 & 334 & 155 & 830 \\ \hline \end{tabular} \caption{Median integrated absolute errors $\times$ $10^4$ for non-parametric estimates of the dependence function of the bivariate extreme value distribution, using datasets containing $n=25,100$ bivariate observations, simulated from the (symmetric) logistic model with dependence parameter $\alpha=0.5,0.75,1$. The estimators $A_c^*$ and $A_p^*$ are the convex minorants of $A_c$ and $A_p$ respectively.} \label{simtab} \end{center} \end{table} which generates the value in the top left corner. Only the first line of code needs to be changed in order to produce the remaining values. The integrated absolute error is estimated by evaluating the absolute difference between true dependence function and the non-parametric estimate at $\verb+nn+ = 100$ equally spaced points in the interval $[0,1]$. The function \verb+numeric+ merely initializes the object \verb+iae+ to be a vector of $1000$ zeros. evd/inst/doc/guide22.pdf0000644000176000001440000157645212637167310014570 0ustar ripleyusers%PDF-1.3 %쏢 6 0 obj <> stream x[{\UWlE_٪HKI_EPäe:(BLiIiHS*("/7(IT\iiĴ)\x=w}d& ||yw9,;^(el\wnN mN!OźsR(U3 [a<.n[sOF-+[W;_c'SSvɢe'gzo?3Eo}Ku5cKi鷟znntl:2835k W_}B.#/^6[Z 홵{.!##Ha{ϻ4>e4>BC?]Gήb[7qLJ>XY._l*YtoO1(4[Iװ, >@7@+oUt$Ȗ\v3wsg暡-pH;S|ast}炐?]eW 0V#Gl +iۺ<=w]ռ4m{#4G,Vv{f{g뺞|,E]6(/o w_مtV]"$u{Ic`uSA[Kk+QԄt-!~ r zDN9qnv3E{6V4tKKm톛nƁCQ¡ iNF>|Jg m>9|KMZz퟾3>{筋?7x[##ɸy_Yy_2{vW+}m׿W޳;w޷t)|ߣ(# B%w5 l{@Y;vvt}в#RTҾb 8,`w1# HImZ I'?0Q`H WTyʶ \m#dg_ q6ThÑSB7=;1cwLpl9w[!dia"faYI濶j(O?ܾà>]T>'#hF0* Q$@O{ 33ʾ2TU'$1s >8HCDM7!6qB{~rI9 :XHC/% ξRG (aVN_~4ѳTjYXEDErU8 WI؅zs-fEK̟1{IDy2Җ &LctiN C@DuD$/9_^ WWskn dQy7vLl0;Wq.7h- <ɑ^US\+~>eb,_x h8\\FW6\NDmh} C'_5ӝ=o֘lkU ?$t%Ƥۛ6s? "jn7) <go$Y0@23|o6D!v#2$᪃Z֕vʎ,͗0akƸQ ZFG P+1PKXd0, ݩBy.$F*zׯF ٠=\4М>^e/{w3 M47!jV >lyA|-EC3)>رO!HHrg?q'\>f&t5BԐezpb0.1N'Aa]34\S12 |^V5<>khY|ѽJsk&=Y;qunYOO̊?Wr `еN] G>7P$x# "-?ҿaP`w)q)Ymd`FzU),)l. E{CR.ҫʃT@GuL xЬK5Vx U\٪%АHvHm<& =ozcT :Tf\v';>SO* ~;甸 ]9 pP`QEYyuM U1G9撼D&.@ TwL ZXېA,qAUz`˘3GY?4T#hL-m s~d `svX)r!%$Dp53bP0 $ ]lkyv5xԆ`/C'WJru`^UjMdQKZAoMf,ǶԶ'tX5m/\YU7W_P|Bx{(`93sgY"f ᩓ9;GnP HcEq*H94kԹ /i}(Jz#v7@ bVzFbƢ3~Sc+=vZ< C+!#}e>ITFm4˭1fidr3%^Y%kjA^Igm ʨ9&枧}6Z-V4OU]cN&J+g'd@O4FO# mZk_bֱVp6CWO@Pζ$֫^"ned2pNl4v}>2DGD_)1=A+>Mj'=mi7:}=; nZaE\1 )_L'oɖe'A0T+, Bˡ-'Kq0DgilePdqۯuL;690HcPۛH2SQ3/VUլ!L#Th( Evu 6yU5aXW]E|ĝr"$ӥ١ФIf&J𾰼ӺgG^Ĕ'uI&p>$]xpz/Gv K,;4<^\FKf0Jr4H=B>LƚFg&9;ierM^i]>>3dDe 쵑qB,$9s u=4?rڎwh2d}xzy0m Fm;b$endstream endobj 7 0 obj 3952 endobj 255 0 obj <> endobj 256 0 obj <> endobj 258 0 obj <> stream x\{pTyORCMiP[wk-s t#jfB x8i$2L;p6!Sjk&kjf񌝒=<ޕ@Lcs{uQơ#&&2}&9\jБARI,n& (S:شJ7K61}:w{3NO}qz_=OŊSk|av~̺},?'㐓*$ 3Y.eUnL?An V~+ӫ8_v xGƿVvoa+P>-pzr9{/[xۭ')5 / z.]fP8}=S|n,NT-2:u#+ = :ϜeLEvB.Bjuoal,RE^Rrō[#^og|]9/2`I/wի:o-sc,tl($qM4;[r\OӲ]HZCXj$eu*<{n幁fnjF-r%sݣܦ\WdJFK{/)s n|˜HIzՒ.cx5`+$׭Tx @3R~PQ6V l-GF?낹I rѳmq詴܀y=FjچvEabuTzy4;|˸>_E|a:+~tH? {Nf;ȟS_\J9e+H0ƻy}䴜#8Hcg&x,ՅǪ:שHƔ4qް8h`wlSXPk~ʂ# T0Vn M-u%oԚKC˧Vjܖozu(E{\Z`c5p߶6J%)G\8HRq X*h=f(/~e*?xaT f02X3ܠS"O" }8HOg3۞ۑAÎCK¾9&"Vz5(` X %) 8zxOU3 5qcb&GJg<\om6ϱ5na.MXyr?oF$űosXd+os7\_V3u1>< NJ7PwS;bpT^B-A"nҢ,P%Z!H(9:KH91g2'RCM@YJNL,gVʨ㾊NcJ 9y5P#̗cib`?VmArS:^v@*S`y$V@cjwaj6nj'TVE&oXơ 82Y3@4,7/*Kv%p.`ĉQxi~F Vkˆ ?ӧi_Q?'+UCy aimU,]RoUoV|f)s s @JqrAq#l 9B/D= )|-MM8aT2 q +ӊo[!֞.G7 G*ߢ[[Ky˯zKK0biyU)vR @^n !ovHQ#qL q^o+2b{3> ?uIݸp+'n^ĢF\% Uqb: cHƧ_ףAƴ&+\/\549꟮m=4Os>&1tv9IPP@d[ %Z.2g0!=9[$A|i[%-,–eh$g9i!ʥIU\J8*yjΟn˔l 0r#Mkgp^H;( 8FqAHu dENmhs[3)JQ>$w#t׵Ǵ-_xAH\oocާr2ZRYCYK/ pyIICz\=Q5*nʁ,Cj:+R2E!)oY} /j/dA4 SDc5ʲ$'vҽ´>QAuWXYJz,E3T'9I@yh4:l:|bUǢ)vihBR:rSRw,Hk׵n[en8h3HTߋBɁA6¤*ȰLaqKOH'l:ɯzoJߔft&[m] _i Y}rhUoVlvP,~P$C9DE U:QP:E"=ĝ{[/ yme[pN} 9iHHX㿄 ru5~.)ZpFO&PX?ҐP\'!,Ƭdka m,Ϻ2sB,ʷHi㉪,`zPwŌr$־"EX.C} %MA bQC=V;mX29찁y۹WfK*„1\L- tQo]}t^U<Пjކv# (\8G6m~cN3]{^ k▍CdaK1#82ؽ,|;|\.m۵v{šv>mΡ#ѵ|U{zfPGxi4Tv𡇇PzC֒'۶,v}#tȁc;?m:c$ídۥl4ʿWendstream endobj 259 0 obj 5199 endobj 346 0 obj <> endobj 349 0 obj <> stream x\ypUaL)tCg.äa^rݯ8"XmHBxj1D$,Il!EDZ-J1 MB[H%B7t޽-o?O &=s~qkq3Ƥtq$LX"2=1KtSeuⒻ{ȲW/%/dp=.~OL_CMуR?+=Է5HV}ö-z)q!}>}vyXܸ U#aߟ{u ՏuBd8tэtKH9d J n/j'}XcGMx[Ӓ!O?n$WWK~ ַ6w5ϫG%|ܕԥjt]Jƌv*oOL}ꯥn$0E2cfP!|NNr*uӏ.H~OX3ud}e9)RiM}_>jC kCk1}Km~%OOSb)ì[*3&M..\m|o6PqycRu4.*~2*of6>+;{ okWǨLM=?8k }t~Jcb3lׄRoRTyGzfƅjRF.gDLʖ?=z2sM+ ۺĔCmKxdKWԃت޾]JTI`GUBu*Ϸvt-oY[r2 ݶ #w̐g[تoIDʠ\fnDꮒBvs6J!N* v1FKJy+[m `E՘rɈ{#Dg+N ,j- p os6z m"hD5h;A9gѦ̐Ð na6d{R T(CЗa )0/c) 䱌E,X(-04:v/$'BzLD6|F7 >A̩o|E匙Rl-cɀkYTEon4!Tۧ[*O6TdPn#ō5Xdah&%2CI=_]~5GHd UrjiFeJZ<3͵W $f+0,[" !%/'XHdž  "b0ZCQ'^"rSk6zJl~_Ml6+A*Ec]٭`=B_3\(F/bh:v$N9 TU.6+dR20e Zn\NU`:ua:NޔĒ3dzH!y83Vo&^ ˶$Ջ#4E͟k6ҧuPT!u%_ t.!Gջ; ,|&RKYp j;|fY@[,ϣFOcE֎5{(80Zvz/,\eJOT2G z?P8ěUgl:׋ÕXy]18rX82pD\En?jG]i.(>MLF$B)-WA'֝p+ '4 cIK2Ĺ- %z~{Kf!%ݺ G%_ bR>:!VzrY QprVrI MC3_U "yYCPԺ^[SOn-jZ̩&aߎ)rقI9 - fA[|.*d4 *\ް}0SSݔx|KPeF#x`Jv"*y#tT,?@BFu`@ # S@b}.H9!7@)[bjSdV1dȐ2f# RF)3*WK8^T9ȱK:P`λ)c*ACxn 5ut+C\Ŋ:|ߗ2a(Q%vE*VڎƤiLwk4N3"K7#{{ |P V˥y} s)Ŋ^nCؼ="|͕;%ןhmNccը !*c*V:rZ_&޸vo=bl*Bm_d{<6 ;IZ787`xMhbf mB6he9%ej%i>@"D!2%1%[$+ta 焁$H6H"9gC=]0C[oﻠsY dg3OzYWXmtsL3uVZ! xJ}̄U#v4a4]iq//ɓֹ @֥!ld* flS3+i̜XC=ueZ8(kA5¡dm8k.s?AԼ\+wsk^yA_yaPd c0h6s B wB:$.3T?G`~j +`TM犈z3U|MUpޜoogyaa]yt{T %g1a"SYSt%MbDgHf|ba5`p9\,u+5~Ȧd .xkFQw==v-Of {\D[ibEx+;̸a_ )ay,rN0oo|q0zc٨#\]-܅+t;D@u(!(?#BzPIV$NkbPm̆J/?O#;RW-X߂#Pi;Os%.f.ѓ~_ok_xEzB~@&DoݬƼvے*,ˍɈlM>q6U9'c,(o#GTN.5ƶ ,¦ i(V!Lkt̪ QFia̱#yqTiw5jpNOLf2#[i")[\f+*po6{Ʊ;f:=2^5%:! ud~-"QcvOj7]'0ڍ4Y!rXTl֔n<+@A,:?Vc!50kRs@<'STlRϫiݩi~5!;%L[v㚁kjn))h}JBO2E"ESs?* p &HS@z֥B݌a}x+jV,Sф\d&19*%c_%M7WnRhk\,}re8*Eam ;)\LAa_@-Lь `$_%X n-p`r2S7o"#+pnXl<ۡt/z |0 5+5*s1 N%gcFK My%6̔(_YWƲoAv7͑`*UHe;G 3[8\p)>#[MI1g]|C]U}Ɲo7+:1vrOQI4q>Ծ oπUO6y  l%QI) /^.x""Z!l>T.H/>3þv_? ߳/JN؞g3 _Q=E=`ECg8}ކfzNF,[<VfkI@MZZieP .i?==LQ(…}x3ǞnEPHJ3EdJ.R(:TKGwߊ.:~PX]{&Q:YvM?vsNh;}{+sU1D})Pz"695}g2frLp?ʕSSP.82ʹ15  p\Ϡi@{{KFEKKRSNvL##+jT#g@FUB8GUkਊ3$߰ϊh_;-xendstream endobj 350 0 obj 4674 endobj 443 0 obj <> endobj 446 0 obj <> stream x[}l]e^tPEkqsy%nDhݵ\Yn-  j #q45&F4)c-0>~[Ce_k3^Wחw⟮5k2v]'f"5 =u+Wv`gx]uJ/aWc8H{e]'؎GL.M?Nlz섾[C=nL4L?o#nM6̎1Sp̡Yt\xMf'WY,) z@MXO?4Bj980Z~q`X$v9=kB]KV9&@izNw9*Q`/7k€PA Ҙ/qbt|,G_OQf[`~.;Li8T}teDutLLO$wabo e섉d4S RBTuʫ2r_s[(\sr!4qQ SIx + ehTT_u,; b!i.2Z +ۍ ԥå?T&;h`6fF%:HU^BXJNUĪi`IMGTC9MSTŸW3&IJMRTz|49㍦SS Y:ilf6}}G݌Fkl>A!@̟vo+m,_NtrNnloWW,J;\.GOI&ub=`G7r,Q3I + $44Y0+ Xfd6u'/ Av",CF$lykk۠za( ^<%x"g`=V׳qNڴ-l#W)hb~ !Ov%٣G$f ^|Q7^ {.XlfC._(#%zQqdII~I?I AOׯ-J[;1m1A ˼%@19?뺞'_}qAGS74m]B Y#D۬X"Y`T$|®#^u%xzC4v[p`ƫ)'/Yv>C'ׯ%08RV"45^W~ ɰG4O5?;$l_T\+/'\ mЂM:.1HslһmSdK?@*7A|o5sEyOFm4Ĕ)M[m- s%c^-z(gƔ* vv=ڲ~a7Q VHsR4#Ez =Zt'S~Fu`Q*y)6phFU끫,Y Ҋ@&(DI .T;'C$CNJ E< H3Pk^h/Ɖ#gNDvڈPxl~D`Ďe]oMMx woDMmM|M8kj4$q,g9SCTH!l8'*뱤%RZ4s@.y@AnHzqJoxZ`4ABuݽ5c/@HYВxq(DRUII jC*Sn[&Ap` N 0L2CDυ2̃hf[vt|sEx7j` ]hs ;)/W_ o8(XvB} +FITv+Y{`)̘=VN 0I *PK c͉RGKSPL, Q`w2f&'[F򇙬Zۅ+&NH87*UcJ#j/&/f_S7CctM]ڻkwk5tZN '6 h8Zj8od&Ed1 ,˼|V&Ct,i8T| H|&FlT? V'\Ou0H6H#㖔9 nnl o^ p&QwP xKŠ|Sw ܆Dņ eB Wʗ%]`Ie=װXwxO\\\Pmp;7ͤȣ\̓G"qER07Uyx+_?SMr,"# qm; +ضHcY#G]Vo>],HXJUA=gܦ)spWsqe>;!>b9#bCOVش{fdSåͦnUnkR2- ?䔷ɴp5~<5~S uIIA68|䚼jҠOs,{08靣Rhhs1p;c C7"/Us~uE0s~k7Ҳf*Se`uE}\Nnd]zf#x#ӣ3v|7h845~<2x^2ɠi:?PTϑڙ GUC/R RWP, d^ $ʑlu~BW:C%bag4PRӬ|X52Pr\OR*bWɵҎEKv>J+ r 3-et-Ril3rEeBe'br,J"15Bvw];1>dJ+)-&N#Z0!r 6R_N)^L_i,Ħ˸gQ'.Ko1YD=s Az1v.[7;0OyuV< Gі,痡lcy(6Nw8ޱmpSvu='nUˎN j4 )Zh6)A ac ;t*rڡA\чԕI"YADz\ fpjE .W]_RbzNw@+ '&2~=`r a~nQwFZde%va 7QKj|Qڼ|}X6)'N16Cّ*yӜy\GØtxbY57"v)Wcjdun(@ӦLQ> endobj 485 0 obj <> stream x\{]yob$**AQtSt] s}}:xkX~]pb 4F4R< ܦ8)mJC@E6^hqIgskSs\:{P[qZ%1f~tʞ#1#'޵G^<.W_eݪ4$ɣv*0,jYǺS]}?ɉV;O>h(퟼ 8(~[7{8@p>uwpg?G9b,Ko^4Q HhKȿ~C$N/̜/ex̂=so(o=Y[Z ~"fk. X=+w`K`;a.uxAw- ;-"(ae`_[os=/zrwav}8ifq8!@*_ؠOq+52O p tm8MB/?ʟ41ޝV 8ʷ?3[ⴰ{{6jx`2Vip⫅qz^*qBGX#^_Lǚ"1f)_skWd|2bh_ʽݽ=p%՞mE:Z&ߏ ?iBkTrHS׿cph_'( C9 z6VzzǫU-3dƿ&q]7-V_pE5{^5_}=Wl;Co PKtP* k_!d@L&ZE%,!~n?y.o Rql e2FyH,a(k-B$"ɏcH^{A^8P. d#߷c|51lM`k[ #ZGY1(rZn =(%2PnNZ׽qzov֣z&E^DŠxhzET#%q6I`jɨ8J 904JY휫ʷQF6VN܎O|LKG~vb^GG4V -}m_a/-N7#*~Zc'hc >ZB)D4~' =)@%@.X"jrXew SR O`T,$R`cF0~'D)`e ͺV+ 09RJl=K^^tDɅکom\ٲxeWhY|s,.uRZVޔ+H; ~ÀN|24lHT-waߚ~ZڇiPUЭ\[͚nkв,͞S D⑋f$5-Y?NP;Ȓ _nH̽ 5S^ jPu'0QڄEa:jB  NV:xH!4u|A3-\"Rh< /)^cF hwBYQt) =Av^toiA=/Ωx}S46Y_>l'Ҵ_VXYl2y_qXn`s-lFb Z!|`*8EVj \=S!XQ"aK Ȥ\uI85fD3LB61xPZĢgxnLce|O,B%UlF&AvIB;-|QCiǴX%;(zV(7,\UvG5*|V΄\jqmP$#@Oா ,]Ib"{eF u'+Л58@RĊ'*SCSA%HC[:+vL]ڳ&Jg" [[, `;`Xt Xbw Y;=;pVp*@VN87ݱ(E8&L3{,˛?:ZP-/z^2.s:{) tZ^N -bNâqP;L#%I= fZb[/=u&*UkO_)"0T\1F 3?!(Ykl0uxO(HcUV U#eA;mI7O/ySX VD ޠ~1;;?qF1Y.ԧ4Ta6I5[a27u U)pV1ڼMևJsXFKl?t %OHPPq,gzх6]͖Ld_ fjr]*IӅfL 7;D/d>wRϟ=|^eR)RO,GF֚^ 3Y82 Sf)$9cJ!0(IR[: c{ ix0 Q&?ix>{2xϱfr_d  SGGE2ШVI;+s?vӪhÔ[Ս hpf>Q& 8S yVeuDc9->?C$sej)`͛nQs(HOTPc+E% Te25ڙ!)!D fPZ gMa{9QR8Rä4(sd2UZKQty͖,Р=˨WFͱV|+t79$~S'.,#y,QWiӸLIn(iBHeZG|tq |Iz;H"$Cglԓ:N⟿vHd֩,#EU>eSH,`d0&FPMdMmb KA6ϰUMT[Otl/1 %9F߾7s|P݈JecKlnD vSBn0Y$fqRS7 4X"А [ Gѧ՟ۺY븥+ZLBYij%lN>#rѺSCkOA7ιbن } ?+ ( \b֥KC*D}c CMGA2G6WUJm]6@&cP̡)qb@gR̝7Gomu V/%G1-y#u䙩2 zaͽY=PҋrlEE˦o_ftUܕHvҫd\uT,<%DYsT8םГ*rqbLCS9j-Ime4^gNm4Jm8{ai6GG4N2F(Gs xIѷ(D԰q ב!j˗&=gzxh!뒛;|ί[~ /owwnKj󙘹m=c$ElPDoE)ңʱ; 퐴ٛӌ:>y|KnR5ɣhGAgVճ648u]VK-c)׾'P3ǧSͼj 4, k0}˜{Ƅ4LAkXe }\ŠͩƣԋEɹR樱nS]r~̜8٤CqYvz *c^4T]!fjuHR!K0Њv:̩sSB|#73n-2YQHl2OF 'Z+cstȥA ڍwJ䃇+#j0qbEWKVe*f^#@`w{'bts7vnS!ǺhЈ`%IzFh4Va\r(g<^ PFb^ƫ쬂K4 ϨI %<ӮiHW.c?T&w> endobj 535 0 obj <> stream x\{U7X H*es e[Ͷn(nYBo KԪy@ EGU@RbRvAvkCM4w̽w ig<=~c?߁U_S *-7V f59GᜰP^\|8.H|Isq1\4UO,^:Z ]@, ;4$;;ZN T1[W>$ŷ"cYeFz@-2`[X2$jE1֧`+ulF#5K;İ0E[%j2׃[S^+ t%zU0"yK/wQ,>ڢ8Ra©i1 9lPPk.chR04Q9UrNI4b`>0A4Juk\4!tWE+Cm-Meۙ^{'Cu ~c9 ? =H %e!/ȵ ȳ!D︈UV, OLhS yāQ{CgW[5윔pARqgTHlSH(A!>7-wCNz_MuylaŭN\jgU 5(B6dZYt#ϯa4 tiԌqTEy(6yJ)9 m] ƙ`5~rYEvx3@R'<<[F+ XT_B(//lҞtql "-H˃:BBfԣ˶سxe2L)"|18rV&接%c)l `kj\Ղ-~e@_@Hp켌<8 qIID(IERhDbz,?0dpƚ zLF=[%yM+穮X(w짚-8ۈM54< z8#} u|\ר/&6BzZ.H#CGMꨛ/ pOUu"ΒZ?`Yy KsLQkpJ`@)FpC+9>yuؙݜE w"@Y6u{(0$ӎbێ|OSw\';)Acmd#d\Nhees=[yw׋,|Jsw۵ VV$U\[EwJ4>"E*v==_U˪Z! Q3fn 'AZ@p2^ !Oq~fnn!@B4W'?ЀYLmMm.E/PyETw rQyP=VЙjmOĸDaQHRNj8hh` &92DꟄ0aK314cFH1yO$~VLml~Q'պlrX$ٞ`OtGɍy_vR> B;1Bx9n~tC08WjVɺD((i g:4 ̹%'sZhP6'fNJg,AB Jeg@ d .[*)VRWsvw^F>a]KZ'aMwt!'io81[0 ֒s7GjKeK7$!9/bmY@ y9 <Ւ't BD*-Yd F7H{׳T\¨Vl .kE"uanw$MpXp*I |5]vjY ᕏC@puJ[9MwElMepνpςF$Y_tNQcj7eؠ2BN̜f4ٔ\c!ICwC#.4m$ZՑh:5h!s|2}̦yHS CzLPZ FN8pG:QN8B (DuM$O44G;q>[q8:(W6:tꏼ߹!҆vZoWI%RMT6% iSf2F*ʆiذ;`(8MMZTP7ޟRj2_&A$h *ٍ]7VVh>VLt'By&ޟmA캷@4Tj\>8&cbuYh~o} ! |k=ح'^n:aOVr'CC5JU| G۩Fb(J9=_U[몏 M j΋#+"M0 2ddʒ?Ec`J?j O!KgHD9^oS.,j^_endstream endobj 536 0 obj 4579 endobj 561 0 obj <> endobj 563 0 obj <> stream x\}]E^LJ$6d1 6KmHKͶneeq ݭ] H"J5QQJ-#R)iZmwY83gǻoHӴݹgΜs93Uh?ߡ---ED m)\ѴLW9--OU6Al+z*Oq'I7y:FTl_$?^@!b>"W n,͝0PfCѾ%OՙšgIN=_2:B=Ƨ`~#QJr=%A GI$U+{+=nÝ]FT<$'#^chJO~<]7͊6J4˧"Uz6uV2ywkAI:.fT0Ӷ(K3Ju _M?6)S9_/B4Ӻa#g!/n!z{l8 &wlXPVϡ5o^yUc`6Ftz %9ك!DYb+ qGϬw]GW' Fߒ.oM`Lyy]n~l{=nLRqkk!C:j-P#?#sCunLkk쇂>a/MԆvmW?g+򣯝/JX׳SIp*!<z)XbG=B'A6MD4㓵oMŁ-g GwW$f,쓻'@@FGԀ =b(fEҁAjB/el ixC`xHoxh+bBb%x\{~IU|ybDKOL|BYPE]D7  u^|9i!ZUC5sw\i8six%h˭ 412܄4 pҾ bW8;NvfA(T"x4lܩpY 6Ms+UY^^ah+;ʼom){GO0 \!+'R 9'Y7 jaSW`!]8ɫ cuЀ,(Eۓ_n>ӶrcqBa~-卅/~ (&|4bu|[Y/ί 0]km7P[looWV K$pTka^ 륌Vl52F,&)˫j cNs sA*$|`}kd1%G8SN/9nYbJ*U|ȝf!0's L*L19' Kh?ZLZOB>âs$m\@!k δϴVߪvAaV(HRǀR`j{ˁڐkYLan잰ֲ4-hߏZHa;.SL 6"6S_NXUޖx RFi:#>TdLZR!w0h ]GK퓀GaH8~㿷al~D>}`sa }ZѕpNcZނqSq0k'!JBc"1i*)vQǘ)V3uzT3y ʼn*Ri֞TTͰ^(BN]"`Te8m&[kāsq\:) e}`mfqiG'l;Hhf la Ƴu.__ 3M1TaG_Lpfoq{35~fw3q8zS6Z9يp Ӧ䲱8p.LإǿX*}~mI3~L{A;-w47ȏ||?3I K&Xr ~ KNmWaԵ=5aXT7oKтc``Y8e~*u @h0hat}pA6Y82'_ǫX3IJ1io>4dv`ɽ?g@C?zBTGYƾaҀ B|t_ 1!cFzhr!1u ,D1\5wH*)j/2q-:\ H kxjI-tKK l@E\i!LHA'+7vQ]rY@WȽ"nŧ;bERC<bhpi&Luq2쮲t`̵&VY/מ?X%Y@.&hy7v8]kH̼$XB&,\MI&`ET8#lD{cIS3Dynt+1GqI=ǯX¨o]/̑5 HPNʢL ʄbDY*}I@$"`k1\"H b3|a GG<7ƈܛqlPd6[C9< v<\&pR5UfX מπ׃zVj]B6 c+08)Hm'UZ2\(S䥩P<;*r\ʁNPDa8QK!G8ёP21^"+)Em cE:| _*0&&e_V@kUpI6wrd< UaҗvNa@,O$A(!>%#Q2aH&eLf4IaV4ud! 1>!;V塛oDh7=Qef*  :?83? ?KZe?K#Ax5a336ϲ gf?&ٝC[FE/c R~Aй l27R("Vߴ7R]EiM ;9Iݑz"*?)&NEHZ'.)Ci{tPȩf>A])(*@P |6eI6/1]^X9Y1%Z)c}ڼsSY]#9]v\;Gx]7-!4_7| Bűre*+El$LP">.bH?Ș:&Z]ĞU?#Űc{9 Ï]fv7^E0]%vh6xN ;JȨ.!S^uJ"~N@US1-e5b"A wj@İjpE,2Vb.1,%L(,v֟ei{}1.L7r7@ !L5sBp]VHhU|Jd4FķA2fufR KV[4$Ghc1}Aoe#Dhĝtbr# @&%\'X'i3|-4z^Y?FY_zHɝn OlH XY u$OΉs^dwNtBۗ1_ISba\)}Wud 'Gv^Y=0k(0Ojm܏FgMBS1G2韩}}q_r 8SKF+6k6/a9kd!>@g8\QռTm5rㄐ@y.ĸv 8NZg%U!2(,/31l_fRF.).xgW-bǩ[6~Zv^4~\V1~eƭj%uds VuM乍&]iGQY|Kj$ىRֹ$f^zEkB> yJqmږvA_endstream endobj 564 0 obj 4946 endobj 572 0 obj <> endobj 574 0 obj <> stream x\}pՙ8쎫3:Bo1)!B!$T($a-vvk%HѮ. ڲuu]TZÇ}0 <9y-4\T;\;Ck\KO킖 ԪykĹ0\ϦچeZ_6L+L{m"O ^rc'kL֟4:택ZO4O/-HLʣf;0:{#9|.љ߶g_z׶}'UۓM:./g~3{b@k _Ϛѯ Dt|gdБ){.`}r:PEGz!/}}}FK^0ƋSC` 3͵+0uJkMwسj@e3k9PAznM$b@p|cR8]Ԭza%Y&-1 Ȫ۹"bx~A{C@?7B3r0t6`Hz9LJȈꄜM>mfz]h'! Yd^ņ(zn[wrDdۨ!4|Eiwjv=L پ+a"֢8~bM1A  Є&ܺLm:10$|o1N7*pQW!I\.rOȏen<5zZ| +܋篞X3yKa]ٚ CMԮ~",)X?sa<揫Sor- f9o6|ekuWx0VsNEc5ʢ}8 ̔&?[06oOLh\}MrD6Z%ib}֡ڞ;_cQu-Wem;x+MʳHrF _]V }Cց]?]]g!ZW.mGđZ"rU,/V* z!n8O9"*m>$Qk!9"sL$ ܩfd<"@3B ?[D4hpN:p X3}BPSii5Fs#9_0e d7p1|4QTzSt98Ikc0,2G:5(qp:kN*I qW;{=&g>?R|SK=(ZSGmMp%qJ=I6b0!V3*T+nPA@;f>~(ۀb1#XquΞ V@AJ"?P/7Wj@ $S+AtF2֬E&L{4+DAOF4BݰN7>#ő13‰A"ɞ.\ma:0mXuRT"⎒4èH3%*=5 @D:UO\(o2xRdؕz#tSpKSNh kV8[9T ظx=Խ,0!4 9 %WUFMAQSWerbx *=u`,\vSGua#HQ9sjBnRMJ4~f!6mg4ʹEtQvx3nXs8e7deR0O*ZϻQfIxun_DsK_]6ϲ?6uxDމY%P(hEY"Rkg~Ȁ H(k5>S#s4)}k);&!?1•(, ؟nB{ĥ"rJ%/KT6ir/JjXҢ'GˬF)j?4lXWz]/Ӑr ԫ:}:ab)I2n ]NZS RLh:Ǜ(!lJSU{ƴT*Y5W(q\ч'fJʩ<:8ډ ?WN}YzGAH`]+l8z%H a|7szK#`@]k.gkR .]QD]vx5jΉ(YTQD$THRTPIU5(AP!ɜ<|Ά.ʤ(ʑH׿ڭ1!rZ=DLq=+v\ |[}/}{F?;"SF(,io’ '+f羹;w؂%xq0SU@oeφ&}7V?yH%tɠ,V&)py`yqvظnDf=[j ^-6.[VؤcX50<_Up:bL5Ż-!CV~D}IGWg`#Ħ. STV$zr Ɍ{^hREN}Ŭ^0$ҋ0lrLAԀ] %eU4ɐϳ]l#H|w)xԏ޹ {OV`HU{N=RA,(ao:iT q|Vs/Ա<92ƮVeK8z'Y;#a>+f{Hx.ɭ7FGA)4R%5R ^eYen7PV.:ur]xDnI:j$z®X;=Ͱ;CSq!Г.xwf4 cʙei53R),|#_Z@-P' 6CL:1!CTomv| fhi8EŵiYy 056͗ q6ϮGo*]3V4 '~!xIs5?KE$a('( DO+Qj#sԯRjV/\սJRo^cQVVքʎʡ J/H bZ~7㖰z89]3 0E*lYhVj/XSgn2(~FAǶ^A , r}{vaǏ  ϫs7*+#8.6ƅ_٪Ę|1U!}a 1dUrW1X&D%Vҥ(M̞ qbZ,2/@oɜ! h4PI@OARϯ/qcpyK=jm|\_ʼny5eS<oNGTDYηEWn"D4id{ߔ}xzEJ{ ߏ .\.Q${ڶVS0e mÃ=%@abá-"v=b1^͠u9 ō1]`ZqN'JR!`y|`* UEQٝlPi}zoY"*[ ;=a VcRē݆8raj!G pv6(tT?R!GE4 gv *,14P%w_XBt8;%|0eu ԜYI5TujV+{ O{fe#Md@iұoAY"_e%$f6B&VS*BȒXSxa.Xb2Q< Ҏr@Lu,C}tŻV+y"f[r]>PtlTaos„U<>8ń:RS%=U"hJ uX@gS!FQDe0+_{%(/+gχ3qUѢ^EX10?̮C՜%˜{{7GDTp7,v'A@}~9f@|+95oSH@`N:F9x-;LDdzC.sEHUzfX `Ϋ7ygΫBFs~q!B)VOJXm~bã8PCg͡ucI3~d_(U-H{>b vE6`{|ک ը1M~!@PҠ.scZV#4d~R~ͪ+F'; e"5z& /ꄯ- k5u>WUdžKas {cqˢ:⍠mN۸勠7jOLO# ZWvX{yiu7E1^Vi .-aA_\/ oAm[yEK`Yo ǀGo3 9|Kʐwӏo `o t9SIp$!uH&n|v@B(l4F@a껙qo/MЊб$jB5W[,jk67O:ww4"g~ ݾ?-[7uLbf€YEg~ pkcͰ]LFm/ EDi(YYXLendstream endobj 575 0 obj 5727 endobj 623 0 obj <> endobj 625 0 obj <> stream x|]wU)|YA%Ubϙ3s Q2UWK^zakB]E#$ԪԪQ,Ĩjj dH5Jq)ʼns>̝y)*wwf953v|;վ9lv7=l7/z/9m7]!7ߩnN9ߏ}wt4f7MlN-/y5޲mSjs"nͮ7U;~yDջfe}e囪_Ͻxmfwin?3*Oy-M]V9YN ۦr a_vBfۖ[n9SwK}4vnqwK9mwK7v:Tvvv-nnicѩ[P_5ܲv9]n8ܗnAMwwSىv:[Nv4VQnWwC[oʿ;9 {ˮ;m| iqj?m͓rK{:fSmwKzMૺޜ[ʽ~97ntFwK9׏-j[Nsꮈr9>=- `Y&]y6U9ó랅fDN-\z8vr=-{ -+q[twK#ݕ\W׮qK$ܝU-sy~p˩?p\=ϧr8)ߵr[W[jL/Ǵ.?ci_r5Wٗ t8ru`A5)G۟\M)׾l}>v?aﮑh!wE!W+ǴmfCю!Wrȕ`|sx~rul5r;NꔷĐ+!WHs9rhِ1fr\C{ِkUφ\[69du4rmƐk2rihdȕ3b89y}%\S}z:h7)w&ss̕30s]?Lܞg1Wj;-t˘ם׵tȕSks-@cʱ9kLfʕ4r]Mr5fC<1ki9ږ~Ǡkrеdt]w~\wt3:0fm̳6w, c٠; lu頛2 ɪtncMa Q0Gʠ 1gA7> 0#Ƞ2n<t *\v9ɬry2)7L`Ð/0\^̸Bp̀ˋ|qcckXb\I|c[l̷۸A2Mto;5-vqY-_Ʀ?N7dLېChVx^a.L7 }9Ϛn(Yl8X7uwS׉YSɍݫU;i˵|;]wVS58^/U+_-Wp~V{6\^{+u{mA1eW/2DRݟhe*G;—-;OUƓXK/ y Y5qY8_9?>RF0g1}&F0̥9SUM]Ad}@Hs =" =Az@z@z @Ka1 deDUU].]@vacUXeңңңZS?H/D@~Av1zAr' nOy4CHF>sz"tO ?@v`?#:1˘Ǻ޲XsVVs8,6zzt{Y ҳg%HJg$V) S(HODv):gh< -H7S =[AzlzvBO]nlيѳgk";[AzlيuDG%4|n? ~=H{ }dvB/n =Azd=F{yd=Fw݈ٱ$Av|Uݽp9pH_}^®D6S.Dv9% S"4?r][#k+][J$V)rJdH/Dr9h[XW2c"xAz-E Az%+dW2c"x ҋ/.^^ xAz/.^^ xGt.}N՗f ̅9ҫW?H~^ }mvvaB8H~^ՏѫW"AzՏѫW?H@~ՏѫW?HDׯu?O~}4va-/.lV~Ҵ-[H@El-"-{9{}~H |~H l~1x亗^:Gv ݅@T@tҍ. l.](n< x@`tҍ'o< x@`tҍ'm< x@`daZGm#8̶g^&=۝XA [H0na @ L6V~ ȷ0ma@%- [H0ma@t [H0ma@t Kd[H0ma@-lDOB/=CR$'[[4KJH?`'+t3i/ 0tKdH? a!H7@^>|gΈs$HD􅇭{&L 3 =${戺/=̶o}C~Pu [4HhnѠ&+4t -[t ߢAEctg|5HkUn ݢAE ]d2F*H7bnĉ,tދѽ${7bn ݈Ad#g5+9^:~PO`.l A Ԛ0Vh-[:Ht«3V;H#x"AtKٖ-[:H@tKٖ-[:HDtKٖ-q:ҫAtK8 ]$p`q{6o~A"slOd~:WHd~"ؾɾD'}?lOd>HD'}?lOddOd~"ؾ}D'Zx~"پDV?S+(GүIɱ`2H'H'H'haNN@>A@6A0:A@:A- v gO@>N@:N@6N0:N@:N@:N8-|j%ՈD2N.oz>[@:[@:[@:[@Z#889R~ItC5 bϨX#*N0:, Ҋ*FSNFSLat0aɓi tFђƆRIat$щ4HatqDQFatalbfOO#ߺ| ƧPBatFFN&n> c'V bt;s_/Zca0VcAIQgȆFhɨV@:@:@60:@:@:X\`dhlKd d 3-5kq q r r V mXt tlԁtaiq75#\GY_׌2KH~B+H+H+hxeWW@>^A6^1:^Ak +H++F+H+Hk"   3d^}ttt9t[xx $uDNsdZ0 h f``` |lct\a333d33338`````D6A:A61:A: i-{x{    V.Hn ``````-Om[9ͱ>AG>+ttt֏|V#d##~      |tlcttt'ґёґG>HG>HG>H6hgzo5>A:A:A:MSS$S,ґґґ?"g VmKY'9OLF#AMaXy Ɓ0a e ¬O, Fs@a,F3@F@AtFwxwj~x=YsF3Aa4 Aa44F+aӾ_yAc9 ƀx ! f0Z#3FaY@`ol˴~ OMyg"@"@#@ TlrͱBH IQY" <+,P4Q4R,S`4T4U4V\`dhlWY+ K x{jIdyyfDL{$EDa(WXI$yfDeҶ ҧCii-U {c(ffff@y@y0 LxgXa??"< < < << < <<4,`444$̃3H3H3H3H3H3H3H3H3O"< <H#H#h}bF,F,F,F,F@@0#+4b%҈҈ш҈҈#H#"F#H#H#V"X X XX XBsHsHsHsHsX a9,b@iKd9 9 9 d9 9 9 9,00000D@@0@yiiiiiiiiKd9 9,0000Z9 9 9 9,HfJ0000uX9 9,_/n{혞}Hh,MV臷@@@@@ ^ob;ʆ@@HHFHH] t t$ãHH^"z z zz z<444V{Z{O4,4@ S}=44HB F_i-|v>@Β"+4'ıj\]Ȗ_4X4[4[4[4[$[mجWyYhiLdd2e˳ }db4N$N^>=[&l l ll lȳ%H%h{='LL L L L kA 444zL i,$HbYpffbfbebdIɩrlj!8gVhpipipά ȃ3Ȃ3F3Hs" Π,@S4H_Yipd-ۧgggg@A3+48484848484848' ȃ3H3H3H3H3H3H_?-|Zqggggggg ΁S gXpipǠO9L5+48,8c48$8':mcz*ZyS~exH#8H#8H#8h}gFpFpF@A1AYii,#8H#8"8F#8H#8h}AA1Ay"8H#x }WG@rud,&ۑ#8H#x }`sEpFpFp\ ϲ< 44>ת$tuXvfG xPB}" ,'ZsDYiO$>DG$>D=WȧSXOd>zDIOc>DCBB}" $ԧPB=HC}"vYOd>DYDAYOd>DYOd>DRzϠܾ5ԏheYOd>DIOc/'ZszDKL1&\a>DYO6 ,ԃ4'PHB,˟'Ӿ{K_duiX.zg86 Vh=i=i=-  DZ@Z@Zy=Y=h=i=HdFHHA     WX=i=Y=h=i=d/'FpygzzzzzHA        կ {c7Idd/'ZXd ̟h6'Z@Z@Z@I4@ QXtFZCLPK9e1Y]سZ4@Z4@Z4@+hhhhѢҢȊHh}`   @^4@Z4@V40Z4@06WƎȊHȊFHF / - - }e - - - -hhҢҢҢҢҢҢҢ!@-[N`NNNNNN`NN @]::H`-sBHFH`d sBHFdiHtEL ZĈvxJ Vnl~lB H H h}1a@^L@VL0ZL@ZLY1i1/&bbbbȋ H Ȋ F h}1aDVL@ZL@VL0ZL@ZLy1i1i1i1/&bbbbȊ HI /& -& -& -& -& -& -& -& -& -&$bbbbbbbbbb! +bbҷ6@ ?QfϘMZ+,Ҳ@&Z@ZYYiY{E y4Ҳ4ovjGnM{miWB;H;H;Hho6cv0v0v@@0@YiiY{Tj/Wh   @;H;H;X"` ` `` `w0VhiiiKd ,w0v0v0v0v0v0v0v0v0v@IhiiiiYhii   dQ_Yv;yiiiY{TI0)j;H;H;ޣh-I@@@>Hפ zw0VHѡZ B ҷ6A"/% - m -Y&jn r v z ~ ц Ҋ ҎK&H[&jf뙠E4AZ5A5AV616AZ75A~MP"m  -VNVhii5A% Z_?Y gE?AAA"+////ѾҾ"H"H""F"H"Hb  틉///b//ҾҾҾҾҾҾҾҾ"Hb 틠}AAAAAy_L$}}}}}}d}}}}1EE4A"+////b//z  틉VEVh_i_i_닃^ 틠$$W I}}}qv]KupZ@Z@Z@+؁؁؁bbbbȊHHȊFHH] /v -v +v-v -v -v؁؁a؁bbbbbbbbbȊH] /v -v -v 8)H.DR0Z@Z@Z@Z@Z@V0Z@Z@ZyiYKcرBHHȊFH](vbbbbZiiIt6~u@ $BiI;K:>-Hc111: c c c ca%:::::::HFHHX"c c cc c%::HHHh}c1111ֱ@^IhiiiiYhii u u du,?ߘ+7&::::::!+aױ\au u u h.s@ QCaY߆b0څh Mh0^X 5( 0ځh c (0h0Z~X '60Z|0{h c'0y'60Zxh u'0Zvh UcM'x 5'0Zr¬8@+Nm8a~F``nFMm6a؄^jMm5aԄN34aф^h..)֙0fh ]&U dH9(&aƄJL0g$1`h %̺XKoK.gWȱ#KXB H H HI /( k(( (`ҲѺҾ’ H+ : FK H[K - - -. m. . . -/ m/ / Is<ǀȀɀ.H F H H H H * F; HK H[M 5 5#mƚ H H H H F h}p@Zq@q@Vr0[+$Ң3i1h(h86{Q@Q@Q@; +юҎ: H; H; : F; H; H;J ( ( (( ( (`ҎҎҎҎҎҎҎҎ: H;J ( ( ( ( (Q@Q@Q@QyGI$d$r7b@QXGiGiGiGiGYGHG9ЏҎҎQ e (N3F$]aDF+++Hˆ+HB" #F#]aD&zWtIW0 #0" +HˆwHWtIW]aDFt+Fˆ+$0" #0" #0" #0" #0A׻ˆ+$0" #0" #ZqIWtIWtD&jWtIWtIWt] 0" 3DF$]aD׻\ #0" #0" #f5`\ aDYWtIWq0 #Z1[b9Y   $ Dj+444ф҄>H>H>>F>H>H~ O M KM M M,4,c44҄҄҄҄҄҄҄҄>H~ O M M M AAAAyO$      d # r?"M<4,᧱҄҄Yqt=F>H~ O8; ﬐?"k`rbv)\>"g +444rVh.i.i.dBS HS HSK O- K-M- M-,44,`444ԂԒR HS R FS HSK O- M- M- M- M- I-7I0 0 0,€4Wp@Z@Z@Z@ZyjI*d h+8 M-2i>ʜh}`f f f 'xxxYae f oC},x\B@B@B0B@B@By i Y h i i Id))d)))$/}{$i$i$ ) M! M! M!,4RYBJS&n)E\XXXXXX_uYhU{{{ϵO+ttȆ?H?|]{iIGttttttt'ȇ?H?H?H?H?H?H?H?hӸ Mr,,Ma߇Y tёF'zatyAtYQF'yalF٨:3<06;o}IZ|atrwatlѩFvatdщF6u׃iFuatTIf thљF? =:aA:bA:cA:d٘Mdd=.H'.F.Fg.HSGp"k  |tttttttt'! )0HcNeee6h QO7+ttt֏WVxxxx d5WWWWWW6@>QA:QA6Q1:QAZcA:D CCCCCCCCC4!zyw'*H-H(H(H|^|?6Kd/ZhC|6Kd/46D6K$/D6Kd/46KdoD2K$/D6@:Kd/D6K$vs0ILd/D |2u,}d(''O3+t`t`t`%u6X +, ,,D6@:@:@60:@:@:Jd  d  + {O/N/N/N/N/D:@: dl̔}gc1Z,|,urr1at„F;P(at fT&,l %N 0:WX cS%0:SHO0:P< $N0:L06K( >uT Ce0^ C$ΐ0:B $Ώ02>z9-}h"[:+tO]:Hun쁼)l7v~6"Xo AكlvZFw@t |}"t$]`ttIQYaiqypffҗ@ @=H7{n f=m AlK]< Act.$6nn ۸1qt7H7nn ݸAq~d-Xtv 8 ZdOfn nA݂t -ȶ[n nv -ȶ[n nA-ȶ[n nA&-ȶ[n nv -HrWZɻ]xlKe -A[4>d3RY%HwK|ne"-A[tn%Hw@[tn%HwD[tne 2/K..&;\,н+n]at .nUat ` l e cVݯvv Yѽ*nU*nTal Tݥ&=*nQa[WVadCir-3y0нHw#nG ݏ@!]HDt'VHw#nGl?: dF'nPwjn_i_tَ˩J H7F'&O+tsK \@`ts6n. \@`ts%' O0t?~]Us/z{ڴm ] OdWx"K ^x\aWx"+<\i OdW OdWx"ƮDv'+Wx"ƮD2fn/ey ҋd9OzLpV ҋ7_ x1zMd/H/^^ x1z/^^%WWjtLeuKH/9H^e U~,K\"@zɁ䒻}k^ ݳK̳_7I HH?o0Z/^2 d@zɀ F^%*UH?><;~7&S4H7=ZOi =AzJSd4FOi҉) StNw7՚>гg%HJ yY ҳ2 ;+1zVLdg%Hʳ7: Z =@z2dsHϡ@~9;H6h)+ȃȃȃȃO3̎EI߻Ÿ cc O?hi*+XXX X{-ao!L<=9Ody";g'jO%9Hҫ }r@Kaw|Hv[n!xZQy;/tO^wr?S.ֻJ&-ۆn5kӂ~}\h13>-V8}?{[%{w٬C|CoWf˷{g5g~*Y _~7y~x}\ }d?>x_K[?JdSكo'Ys}F @byx7/Ճ˺_9վ#m=O7҃νt֟y˻7bySUcGwwPvS|lkw9|g_xٗ8F?8*LJc{sG;OXޟ8R.h7fwLn7!a:80 !v֒Dzrp89n{_a$ǧLv{/{%Sz?̧j|R+'wh^[G_ykly}+9;&cqxz]8_֙^j[M]Y{7{-Oݳpv;9-H⬛9wϠí4vq_ ,cxO܇N{{<D:{;YN.~gk:/J+#y1ĬÕ5>HNivmPnw:JUW~|xhp8y׎ǫ>v?{zL 6tTy<}"Xv On{q/v Dip쯬M O$s~W#L91>ƘsȖS̻_Jr{{ >&=K+j-Kw~;߮l(,G/<}):5ӶRNri*&/}ms{c;|O tD?s/~/k>5 l[Ӧu:>KY|qnk~_cwR9kxlީոg߂_\~uaQiw{}w۟ȇf<՞G>>E8\04vMz~eK.Μ|mJڟ|Mg_ճukR}^%/o6>|q*9j|t( 5w}xO~%f|03x<>1 )$ߙ}?؟ww2CulQ> 8pwɿ:#Gg0y>H rEP˺wvE|a>wv]\;]g{oNذk.blͳ%;fCs..6z&gϗ?7<LJ:KOQ~0lh|jQ?ʻ}å}k~#vi̧>Oe 5`w̓Uu4?>3DPCWz}_o?v?c}|3_}k?ʻvod/zm2yys|;>|h`|v|{KfZ}[ϜA/{W{}.d1o ]o7ɛ&7̞_u!KE =|{] 6{?'/>z /[k]oW[o}xuÿwO zos+{?gzrߋ׿U~x܈Z?Pq{e8'nRU++N֜,-m8`e>3 q&L>mۻ%sw>x2WO'y{L^yc}Gklgw;>/Iy?~ rC]{s{؟}pGn8k=s2I۳h8_ᙪ/Ԛ<!޴5phc|ٟ?]&Z=ioȞ6+Z1W 6J>U9|r>ɻõ#s!C||cOG);?O??gq-? <>Q tܺ^zP=sw˓WK&tIJ~+3867?F2j}#D[];2OFUb̜|޿|>Nt^nF=?L5y-gV9W5?v7li 'awwIO܅>Y7l#lȇjky m?O 㪜!Å6Nԯ}o.;{?hwh|stqݟ޳j|^^?_},/{aPl{]Wݝkb>m)||תJMmqݕ$vo[l#?nڏ7ðYSoyw'"Bendstream endobj 626 0 obj 24221 endobj 641 0 obj <> endobj 643 0 obj <> stream x\kl\uv"ـ մX[RX{}u Sy|65DYSH pFhæ !ObVF#8~RiQ V`&ݦyϜ;waؗ;w9g[?ۦۦsgjmww\mM](]Qߨ=$r?h~wOQO??w~9+e%9/dO|cypGW>#{;;BIaNq?o 6ᣌ(cc@q+T405GپpI~ГsٜR}9~όĠّZ2@Rn#clłЫZ^Z75̻\#0rs&#c|`YEʾF`EQBawz0ғOk?A8)`Iiv^[bşb9{L:1Z|'$᱿|0{{6R݀|[D;vr{8eUa{|g&sS(z_>8dơ\!i]\‰ .|-?&cQ&+(]GFCBb 8x:?c8|"NʐM2X䲈\ojB zm\ 9-@# MD Egv\ }""JKa,a& lgcsyc3 u } $넏I.0 Jh ,XQ8G|h CŸ(iRsؚ4wV*#fA46 92=zž_פş-9r @=z^8?vYNI}yAalF(s{%"sAMMcxb̀Gi/1ÝW$]BM5Woܬq_/ix5vq(:"yON4tU:oA)Pٛ :^Qi6$x23{qDpBuÏ 6S6ᔐˈ 2 d:C0^ƭ8֨R٨䵀O2Gb]T γ?h;Δ~a+\R85rL?vVDHÕX[pPqA7(pi(;v6$noiy0G 1l$Zr k6Rvڄy 05 -@6}tiI(j/|Ì.e^:ur# FAaOoqXG/vx1DF侉w}Yo[}')QE(>\Q`Q7Xs6˓W~_T-ّro-rQ#xdp2̿`ceohL }Y,#mF|aCO*Xm&Z]jEtȋC^*t;J_mpȳAE(X.dG/Mylę0o( oԋF< hi. K? `uhCf.ų549J;TXѳ ژEm'=5:d  p̜Ua5 iI;c;`n-*w&7BjoL.J0O8=ʛ"|}}4g*An龕{nsLk4W[yb+| )+wX/y`%tEs΅G ;mOPù3E SrLtq,'jp!@ϖ;_B͖7%`ɛ|`֫8n 95w3RH(NLYJуte1xK`;>߂Җᘇx{5AW`' ur1WfR Jpj1$\3:rN76aW2 +c kΊ⦓DA )*fg rBJ;.$*\?tCXSsqsO ]1 z`)ҥ&ߙoWLV؊ t:BFQfZE CyVNK{-G8Dv˞* T#]v3n> W"g -y٣|tf"'U]}QL9s%֢'~k3\2j>h?y(_}Z5~oKLۃϞ|Y Wh^S-?w-ԍpU>(r)|e9R, ]j1 $Qs pӪPC|eby&4;@܉ɛ)8ԸR=轲cyzyAf:W,ձ3惘^?2z=&¤;yaU_Gεɡx=Cd7"dཱྀf}C.zm'{F )ga'ub6? M#~Y9A~j~5?EOtPz~f7Bm|RP>>Ԫ,mEm1١ub0ohK{V\aW(;aC^n>6l3_^ׁZB\,}Zs*C+nŘGS+gɼ撢5ڦKڳgBLu _||$ u/QPi0Brhruե|*Ub),'k*vjmAut^7sg,g0+؏W1XFbZ4(| !*eudp:{HE B2:"nډ0ơm̋U"@!T{dH :T ة;y\"{u2]')Ԯ}*niiu_z '5kT*T$tߊ[:F1rIajwWSTu-+ӗکU<P>[>~:aM_#q5A貑Ԓd`*2ϲj`L|>9:d6rߍNIW6VA.GX>pU[] Jk+R-]H3@]s(.8g< <mRG},~5%M @#yaWG=FN5>Oϝ(>#3͏ِј©Ꞙ&kC:{ Rw 5(:`}A85gi7aWE.qQs۟m, ӉYL[D+HJA%_D멶,M&;ƭ~`'E2AC0P+Ftxc5G(1+bS !2Z'+x~QCY nrwJi<ầ}iŮ4Iߟu` 5WDui$v;I ؐw3XTyaԒSDhuU>htoϾXZ&EOVxO~` ":]vyAu_v J. cNLKF#FV*uCuSȶ!S"%)Ar؂JIMRJ_|g=׫=T/t/_Sm-v;`|˦E|̙=[nbd֜ V;${nƥ.k_>v3YvU<"^_~ʑ" [H\Xoj]w,25r1/]Bt5KƓO_.v/B\E "Φ/ 66iq[[ +)VGxb% ;*;񆏳Ok#S ƧzVE~ʩUrH~SÓswisuc)Y5?{iyÙ<ھbx4Ԓʅۊට(PAr륒HcO| #.DV|vyx8?hqTfd#/;qad 1KS fuj8ҿ{̏?+k̿tCy~ ݪ+ Mד^RїSL@clu ѰaEk. h͟%(nUF9,WUIFiV~B絣5;9t{qG!ݑy?pBh)ŕ8"Dksq΁94VHZc+kNv5Jr7K9?e~ȀB9ɿ/#=lA}غ» 7Q[:fЄX0ƫ͍B|]Rs( I[ }L/ȒC=EMŵ|G q 4ԁ]YM1. w+jS /endstream endobj 644 0 obj 5513 endobj 652 0 obj <> endobj 654 0 obj <> stream x}mfu42jPuQhj9뜳Ar[0=xPAL7xlqbJq%(H Fi  V6uT'Zb}{{VQk^{罞6ao\;ة{?~*ʼͺwT%nW^:mJ7S:~TجKg #š7u{s4/{:=Kh+4cڻSM]6+mrc-+ukX7pmɄ1z\M-0zFqeˬ)oJ/#NFC4>棺?`O0 3 ,&ИYC6AN6Q8y3+g1S , !kuxX`z7U|>f: |y?kB,@jL8b:6L%(JdREkw:C5VsI8]cE0ì'VVh+Lj9kaKkPut!K%`Sj@>_1Qְ3|_թMQ^ӺyO'Ϳ|DMJXeʛ5R"Pa͠Vܲȩ$1* YP}Pi3 Ƥ!4jH&!Qn[^!Ǯ2gp2KB &+a]>씅$`3aOrmPZ]g L%sE<%ٷ`Bs"{33FџpxL G/$'ybH Dy 8>wsօR[y]a%&+.i Zi*K%`piIY:LFZ8zwZDZ:l] .Zj tAVXVoAh8f!d#2(Mvp"tk M8e Zq`5(̱T>Έba̽*(#RaqOS )rJ)=%P(n/mf(s0-`}IHfV* QÔ*Ϡ\ʞΘ$<;n˽`MZoHW]S.vnBc@ By}bX8⿓'GY?ɩ IVIiHE!)5):Orke™  R(X[&+,[#]H:}!>+{MfIT@}?5)mYEƁp^ p" %F&IPs: FS8`Z4hX*Qܶ7`]&j1̛Z&(@V4b>!5AwXNJƀ!YDyq/58vs /)ƌ!A3DfvH$9\9 V̓0v_0$ՇzDjA9| 'AʀF ι3L@J=AH(Iɫ+MI^뵦g+.~nZfZPSyt9 H΂5,\j4jh*Qjl0sat't[3P]l.H/:S Ǽ^YHM1 s,*Cu& 5D-93T3_W2 r`? [!LlDg{e%64B2BZ>K`-ITS)ƀkJ1.f$4u;nt60$Շ'տ|TM*< _&ahXx&\TΛP$pR; mte #eY{L<jA iw`EG8ɴNy@Fr)4I8JrnluY((I}H*1 nYNz#nS~DF O(@*>6LFZuˬx{@n^@q"*UF4"xLE!-n0yaIPf Uh4)6ʝz}!>3cǙkoIT@S}?7 6B2TlZ:lJIwi2v'I,e*'^Vi(TBT 6s"'LTD\hLTɯ'IgAhj,ur>F $4nm[yBGk %f\ 'FJ$`tfrvrxQCPZ V{g ^[HʆH*.q)MFKE J/k+-M*}4قm=7(T 05W|(qp8k!+49I 2cohA Ԃ,JXlah--[m38l2UT wȚD 7T"c S]QC0 R-vp 4k#P%,+.p2mN ^[H€oE=:(Ħ.vn]ٿ4TtMC&rb4z-I%-(>(NVR!4jH&aqnTX`; c)V=^ѹNx6z~a.4;dA񂰳$ʋ᩺T&`v8-Z`ʭ}ni(GZ|ޯA@ %0T8] %$4y9.asR*XӨ!Aƨ|+e 2x} *xkL[&!؊ LHHʾCsJ2⭱iN$ʫwz;7ߔ(R*0Nl >LO^HRd 3`{m%:LI+霦Ij&cTNQ L,b$LWrIxN!㹪/$K&񙾋s|͛_ތWTϠ+*Ņ M^Wy .iB5$ (Ղom aRgŹ y)S{+JB'hYi1 rzCSIhbah-HcMPV; :Hzc| ;^[i2(KtDyq/58vsJBւoaq*^q @)K^TS$`>:FEq"5 a>^h*1 nBk\*TW؉dWF'I@,(>(PBY*`54 (Ղom& Y1.h2OIr⹧ I^:X:LIPh2D[ q?Ir9cLM`z}%>3J׊3yp I&~V ;>.8䨄7WPAx"ѷNQiQsU{Yf ,^ƨ.fnZπ6NahRD{*` 3$x'տ|TMi,0R8x+`)e#Y<-8UFj'OG'~Y/R S ·ШAh|+e=WpqU15RE7n$vGX$P (m|Cf!iԐ TSNL,t%?"H) ?1m`[q ?0q:?"hN sA4)ņ4N'5oI~DP=;9ۏ]nu؏T؏T؏TɜGuڏ+[_'p9G[?"ZdD@d̀ 瘟Yau~D F|@'2?!K-y7!/=f?2`S,8o\(dbPy-~J7bCF{>z!Of_ Ϳ|_W_G>toܧTdC }, |dߢP R- E7_d?a'u}{>{e%)h~je坫188@SNo  oz>8t} ܛ վA-Hr C@:~y@Uzro7 o.߂Px e '8 @}-qC›(Tb)²O}>'|ww}0 `qooo> A@M@C?LV>p`pF+87 7ط(TBT C;m7_`R$}p^}d}&@~.]գFFo짒:>jDSo4#jJ*C~*(P^?!ԡEׇX^=y~cܾiY+\W8y'wpa}«QB`f͇[*&oa݂ypp&<\=\B^{p`}'<~/p}sϟ-8s7!9tp} _v\贍<}c0Acg=\?aA "<\c޾~/OPKx~0aB(TolLF#{{@:~Ba'锳͈Lx|-pZ>/)/\?F+p}wp}{>8Nyvp}qߔ o\r +aup}U>8@F ]:~'8~/p柿[x&EK 'o ܛ>;ս~׎#\?!iI=\V\Z0[*7i~ǡZ=C~0ؾY`0~pJ[iY~0>-냕ׇ8P~Y`0~pJ[Xio 'zlpO=\:~Btx1noPZ~i \еKiY;:T,Zl- ?ۖql@p}-L\qloo> oQD*Bڂ'<9~0>9C7~!}hC -~Zo \!쵳7\D>_S}Ty ^{~0h׷TS:z 8ot,\Ek-~8"\:>ZfAJXbah-z1p`!ox|p\?OX;~0>`d![\Vo> oQDNBނ:{~cT\Hp} as 1d<\1oo 7 7}^}.\qmt\:~"Lo pi,n>l T`OpCh{{~ ,\qm,0Pu\?O7a4p} =\Lp}i-+kupMpf]ͻ|b$73^up}0:~^p}c0ܾ3+\)94T<\1n'3|{ _\0~g7vp}C`\?@Go!paY00Eas-~qlg#v\?r8 7 7׷(Lb]u cg<hfׇVx~c0hAqwBz~3\bppa}hC -~cog,:~*3wp}#{ a77 oQDBނg`=6<\:>'o Z Mf_-(@=h,`ҡz`}f,W~׃A{46>=X5>zك1|`}ju`}``}?;F@c0ھ~-pX4#X{ X|a`} RX?<В7Ķ8;7 ַ T ]pyQD!;m]K"b^4IdaKԢCrސ}=G@h՞T=^&%C9L^d:v LE͜8-$imE-ahPW?w{.pPw_~P `:5.u@R_~ Hs^jr7 "d߅g[/SGⴗNth` D@?r%$/a {[ΞKL-Cʱ(Jڱtyw4C?*?U""UM?w؏ ̷}UoU8?x_L[:O~[}'7tϿIV{-'{?S972H{Ϻ#/̕gox_?Q't;bb>t_Q~a eg`+NS5mn/.JWsAn,Dz;OFS&q2 ,?KDuΝ vd{7I_Z3އ.[jU6?:j2IU2X9X9Xv9K;_sB$$~g9[eC>IiN7!R\FI- g;(ؕs%_EiZ 1;[TZQg=OúlJ//V8 ˛YX9 !B٪)56M {}_=/{Nਢ k)~'tγ]lV|k^٭[S?<}[I祝/@,@'h)rxùVSjj{x^Ց͌7xnԖp$5Yֱ/r̕S}hB{rZg9k'vtoHjZu\uGrRr gA.a~W_ :㢡W^%~% }/⤦ y/|ސ5{oRjˌL?D)@Rh:o{۱UXG\3Dw.bj4N'ltl\vL,Xqtҕri!-gL +O~'ZQ;$[7~crQ07k S0&ɮU'a>v˰}VKm/GZz+SԆv:mjU P+|󖻯CbQp2cFhuG9. isv]v%!=3̐zNiyݝ9wXjȢnƖiwh-9.@ųgIxl1]s!kJ)⚏Z(mEZn;O 7uEOa~t:[_nR;$ͳ8Mܝ2tZNv_;{B8/;ukMFg6-"ҮOepMM O^ XK#~Dz&uݧ"kV y ;[~n=o@Ȑ.gCN=(㠻q)}7ORi{RٷbOoWZy]{1Nxŭ;&t®4'w¾+&q7ӏߢH唎iuqʝM}G%əvbt/rDwrJaX#@qv{agMY T+w3_n2xA+cuiu|؇>M-Vۇ57oӘ[]mM8'Q{E=tsDiex$yKϿ: ٿ+n_'{0 0Nv;#kx==5KO}/; Cᷢ72ݏ'?^wF>wKql[04;$"[/n#vnm>ḭ/]2n_:.d^,%> endobj 667 0 obj <> stream x\o]GuGP`A.?im6zɝ-ixZ{@Yll X.R-~">5!bT$Yf1JC\EB3sf̙w{ }w̙wΜIt3E;}p`v`o郵O7nL՚;#7',o.j̓アy-a`"jּc`ykr>|v cf~zNc7^"9=p3o:Xl,џx>T=:R<"o^#ܻ[t o\*Yx:Wet[`[ͱ] -x}hLk pУg79g=NeV;4SZUAb_8eS3~#;jǾ֧m#F=8M]#uTLฑCVNv3!8𥶇ѹx]4-ǁv %[~jbvcLB"6iu1JN͙#S53H; 6rm~#r%6za  -qKʀ g(0!KCi_;aE^;Fe|u~賚Ȟ?yX:njI9e`bTu\Oyɬq՜XXsN  (3tc`wbSKXȄV>)mB"X"H/ӆԷy|IoTh˱ISM{$<řq:i#溁bt%fNT j|-.KRIHko3&Y?ҘGj1񋬚{UZ ?Y-:4#{۳uXzXPZ+51ٮJ;v yHBqV݌I, C%M'>~V2'#ΌN6'@# P밗/g44;. ߀Ur3;JV)L2iu5&o3X $=+y' ljFXi~r_ b3tNzރS:]rY`<`u$P~*.nZ<܇NC (B刂pJо]DO[B݈P=C }i] ?J6ynzJ@M&i"Jq=}l%'zyN@hlRZZ +2"kqӝFmOg1MW۞?qB`fh5Mm!aWr#`/{\ġROb6 %^>SbNZt'm49k그dNX`_ߠ u7!iWQnrkqՑF8% GדmIXoCW]y':× 1]ͥ3toۀBO`WJx_T2Г0XeZ/+yyܷ4Vӱ{e1!*IAU5量е9:{v4|^9K$+)oǒvABF(*!qfDUҞ'M~Vۅjh43UxJ+z<47S9t xW{za\ktۨ*"v(Z2mXLSQoS:^\Ɋ).bKϝL| $33z]]F3ֆ %΃g]-'=S2 ac ^[wNJg=,)VO; HѬ.U]*K<\3zf~aE0Tɠ[~{n2e6N'~w@:OfeYlW43U3g/l&KΝO7viӦTeXWs_m:s4)&0ñx˨>ܴdtߗ&Bn^;r=*£By.l ȯ.E{x3Ǟ ›tuyXfA'/B|j_Gpk_x ǹa C'w<3$4}yO_Q՛֟nGZ~Ib\]Z1B9q?yxze3 \xMxWLjJdnrjZ}K>+È[!]=qǟ Fl}SNj[bR#$NBQ4iAuik[):U.g_7]NԵMs(ʓRGu9G4~pU^IJ'lLH4ľ#8<\m 躥ïipΞbl~@s$=;:Qȭ*=7)D=NTܦy^<39"u:dhδj J!]zz}X,6Vw_k`PxWIJ>\'1>:.[L29bȳ {s\פDmLώQyK᳛Lo*AZl|U4&Yw3LCus( OcȯdQ>yؼqԁ?6&01$辏`{ponMH;t>9M{;Jdx;ЌGk{DjvMQl )xMj%R{ƬS%g% Pi(R͞qFF#J),fZcC]F׌` V`=*/'i}9y @l^x~ f5?4 QW_H)f(,Eo-#>M(]K}{beqG~jL^sD:J'c OٹW(4g66xYPS̟$bcj/@c塅t{ !);׭ fs;iư #ߠC7kQm X(ǛGO]KUrw4!(ik=7Β e?[옫c>-kn `*6T"ERg^zJ$Zȸ]̺>\sXP*'M4/bhjGAlϞkk1uԸ83qt3Ռ_勸[-8 z9Ф/ǿiv (endstream endobj 668 0 obj 4744 endobj 679 0 obj <> endobj 681 0 obj <> stream x\l]}!UED+ 4k#߷j0d'*mc;yx#6-GJ&4 m!hKAPZu ֱs{st{^9< 54Z_7JTwL؟{GfYnY"z0~A~q4R$3MHL)˟}  KD!prrRBG`4@Dȋ |#q{RXIA?Dhmu¥_ۏXnFATݖBŅ \xJ|yJ_A˹߱-/c* |qHI~}N)ovN H/}`;ߏ-Pe>E?=PJ Y~Nv*fR>1P৥c`QzV ]T˝Hf5l}i=Yxٹ~%%_2e6,XɣEx0=`D*:o /澒̋qDQԯ];O8;\GtmV[7|dOM \R[TH7nyL6<1I \J$3 ]RZdsL%!Hij.A^DE$N'>"qVo.U{o dԧP۵bHhgԱ2 }X1ٽfpmCp% 5f Jj W"AlrXE5@ 5Zzpona .S܉L rע=ok|RA0]Yi=\[vpļЄ~ YR顜b^1aNx}C>uѦJ*^إ"ڈۧ7 s*1X3PZ<!JF1d*,&jw|[a``ۥYBje 8cw!W3=aj P%fn!FxB z3E|}+^%k~A.d?z&)lb}-b*"Vo(9%Y\\k 駦 ,d U)eL M@>*Ȳ}]- IIa07Y_ ޟA7t1-.I0B V)i4{$Cpʈ64P(/1ֿ8Ҕ[@2 z[قn' <~}d |-%ڏsB|ޘ903&iIni'~E7<02AP`OϲbK>$f˾c`Ӵ!'I~V=@Ÿ46:b[D.mQُ% 9//Oq"F&E Cl*2fQ.鑫JG=D`N\v(,ULg5yB1OIXfI*~1؀L^,uPW҂ mZ 'jV_h=Er@ :1 SPZTQXC|cO;}eJnwu ƼlgL\BvxMOs NLԯd񭃀xc3R.I7 #=I]§[G`WB*b&Ϯy.kȍ(Tf[aPj?Z"a}U.6i{Ara:뀊A7\z`:׎hIxmV^}i1etK7IjP!+_#©joT݅wz""Sۭ0#5sh >;h)U5"Q|WAK*wh4xQz3x~>TХ'sr\jAwpQZRqc֥Mvǐi@85Թ3zP<%ڑKO AHȔ8 pfڵ1*.Oϰ4 , Xe0]'K*3zPv^SeL-䉧>MN: /5{6yFYQ:!>d1z*tE)bE2-o!H&hTDyL082c\[b/vW"xgH͆5TX6M 8꠴򠕬97/a JBEb34pS3d j콢Z^2<4 ɡ?A>`jTy=uI4t8 Er $@H3px) ae 茝+Y<)gVlsLTHs*R]4+#g1+z6x'H\BnTvQZ8,v Cӎ@Zv/-8fjj ^6!]QA ʞy,^Q$"^_g-I;F-$X7<Ex7HPsTbF뿚;;|!"kWXOC-QAE"؊&txbsI t &!l |SYHMJ3,b.AvKD];j5$&2Ki1F~h=N)P__8E""/ARp)YzWZѣ鵵zINԮGnI[.&ݥK%Н_k9LsX #E":u<6MfIG[gk-"k'42LpW*5F72D'mFj/*ja"L[B[8H@vy'#pFEjĉrGNy*_ޓ3XG&NpH9tYmWe2HKHS1IqipU`Cc-*L&[4e'Gvp (%]>"@U.J>- vrWS=pϨ5iH*&o!gz}|ߠŢ+j.cQͣ,loVKOlbE'zpvd@/28J9|9Xh_}mmVb[x_ZGP, r}Fl1I: @kBDaႛ4eiE.G**\H09\E=nOl[e޶z0ư}jgX0W tu@e7MG5!}Jty#WF?Ü̙א@p"0B4|iDeu2f;sZ2N3+[^İ'N_/\[{͔-mģB٠ v#_ TWM $UQ2 Ij p[8# :n{F1JQ7^)]I%u'k;aTʊV "iEk"{h>Au1Yf2UXJg&OBvOi^y`1ptg˶Q)T3;o.i*vm T.JH8ԕ-r&*/d7ث7}6[8:Xc[5oWOg:tti˹ݗw_x A>kh6sMEt)Tdj+Hx|?vѶy*2tA%ARߢآٙomS%B.4 gT !$)X݋ ƆҕS,#L_}˜/:@د=}SQKG!ڸ60Lt?Ͽ{6ɡ,GOJ Z/5ŏ.)Vz GKؼuaEp>~P ?i TMֺ-PnӀQn5Nc2W'0zȰD $LrĴˇeZ[󷼳x̾w[h+̷2ueE4Yp~endstream endobj 682 0 obj 5721 endobj 693 0 obj <> endobj 695 0 obj <> stream x\olEzDi8H \(+Rq;p;7^QucNbK]ˇFi>.ʧ w#Jz(DRՖ;Aǎ+"/}g~wg~yf6?у--9~=,lȡ\"1nsq?m.h\Jnr>&8S d{swEE"P-Xwz=K>=z82ۓ ?P~?̓/+;F?a?dԧ>6Ȇ fBٮf==xGȉENw4\bypM]?*V !P nIՙbh+wGgn|FSs:tK*8-B\缿@'^ͧui7Fg֢#cf]8>U@:A*QIXDbpq:0Hr {W2`"1Fk!%DB|_?bS<:%H7"3]X5$JS`S \zb_O9$ADט!?ua5p*t fk@Oyd4&͏B6C$J[XCr!6'IydmJ&q3$Hu^SQ0-HYbenO_ӏa L8;,eRRʁͮ_$ůΥ5W!CB2cKSa}~k?5R`#!7w^g0L`# Wq&K!HW8WӐ LBD]=1(CO1 }Ck%y~K^BUI$goX|<&q yANa#M U_+|}uDXRD_6$HB5xQC[]fq6:c/{EF]EFi-҆X00Yah1{]l/676 k>g 64f#&J/:O/IwWǟR(+Yσ?1]%o}dOzy?]`V~Eivv%b=+/~Kmo i}Nf޻{+JPfvMoLVܶK#ď;t;?L%{+h= zb=ãO`v\wl3J`h8VQsiG~lk}UfA"rB,W`L"qY$Z?x٘fA`dːsn=~I|gi@9|l:pNHګ{D$eKDQzG@*&~>a*LƠPCQ=]S$5T [&tF!:C8d,v/쌽M%Kp PŖ'+=Q@jWe:]R)TG6 Rf`>sҖ)j ÀEF6}ʧJyro &{^bXf/"%#X6򢐶(yS@N ViEOq&X"wR1]t}s|L'liDL*vi?4suLuw;P-Xn7i&[!#كd~ eQ*usI9++fK֕xXiJ)XAaN ֞1AEpZ Sw̰b!YrK0ÑӶklWcLU' kV^gitlt.4/=xOu*l1!i2Z@%ZRpMyeq\r JkJvZ6̻>n-W)ʅ }E< /Ђ N?s9@k,H;zUJoy$d^jħ *hĶ+VkvLHx&V^ftik)1zS/(35 8}AqFM6!m}. MKiEæm-e:fÞ2#hI{C{D#ae)Tf  ٲrl'v 0cjD*>X1V-b~PX" pG;zb[itAoޗmyNRN/Ѡ'2+ ;IvЈTOsGFW ÑВrV)g r#𔾑y:Ƒz!ARggyw.̎(~.9XSp]NmR\4@ۡ[mSwKV+: xuF"+&,klL8rj{x\Dd3[kVu\v/"6De Wl~a傒@~;"EBP$jz&YA$GBREsLf˙hpںY<5̙is SїJU'hy`?Yu%ȩ$J<4:B:>NTz/ڟ9G^8ؐ|<$u;IZ%~(LxC21pHkJuyk:mk6wJ˩Xd)kqGETEWmB,˔^uAds==j9A'B^7rʛ\YCgU`1q={2ySb!WӮl2_v^ː^eR])؂7+jB{x0DnѹV4t%y'AjH#B64iTyn`ɒ,3a$*R$]'dY`90pI +hqN˦|2eUT!~󑬺[_V:mhhX[MšW #װTQ e&*zvBܕ jloy,5dk_uaIkF&w Q$DV"C?8%2~kv272wǹeЕ HAG&Rh䬌fPr0o8Oڢx#-ws;O:̼O9OFevjJuC' |+% }#W2x(:"׈QRVKA.r \.?(:ap)_e+pC+Z9PiU:.6NjY,a!xXN#7)Uk˧2>%>eΉYy5+c{R@.O줱,֢.]@#eW#ͣGɰ͍r%1Y hy|JD>ULq d[7b̕KM9|lu-^,$@'Ac9]vo:ئUaLP$`v@\̓z2yKL!f%i0i㥙|{ӚD9G.A U-Y\114Mz%[5եdfK@Nn~@7?F)!YwO(DU Ǟ9ky)QwfI=TA^FnQqVՓ"5 ;8v* :s;VBm%(SWO`yͫDqۚ[LjI1#{J۱Z y-P9y˛V _j&B6)3)\R.[("qbSg*|&ʇ){ ;tص;4Y_U^f*z_<,ԦDdbdQ8=t2VtűRQAGJ "(\$}?s{U2ޞ,e8Nnup9[=ALT:ah "Y(A҅!>-8xDmN+裫ժ&vBY1 LVBșpZJ6_Djn:-*11 J*Zi¾ݦ_8@#@|ä2:|KdfPOLo`i^6l(xV޻Eѭ:r5,u R5(CA&~J&a2kѵ\0QÚ0^5gݒ' wcUp 2Pw荽޵=R.M4 k#4~٥]g8]!o3X~^@OL$Fkȅ*:+*̛'Uu+.3T LNF8oV@UAUxk ܪKu&ڜPyF])Zgaӂ8xqiGnt ސoΚ}== ,\VԾ58e@+|X`I;onP1:WX'԰r1VM Ҭz6 Xlj,޴Yhݍ5>!Q&lnݵhJ[k$r\zl_Vxv_ea,+Jxuf4Y% /O}89ǵ/b¾ Y'8Hb^ cp4qĝ/3PhE^mSup㿚K|:.3{Bw%;M:R>/yh))-WGmI.Fi!P[:wlٗ?e9ԲH߲s{Gwnc)-/z9_]AA}|ȿqoh}Yc_GN;غII6 ?ٿ|n?~endstream endobj 696 0 obj 5298 endobj 703 0 obj <> endobj 705 0 obj <> stream x]U5TE D1 CgbdR d4әs:9BJ+C퍤DҖE(-C(mGLK`"H\ߵk=!1Zgln]yʣte]|jyjg.h(Kgy9[KRz[9'eAlD$f4lo*yEo$KZl@gJ:V.$216b%e-%GT:6zٙdc"uioԹ $[Xul6Yc|VI;OF:]gS=F&c!֦-WNIe+Zmlx^(ih)MJ& c ؐtmeX g&+@G,YY![H2tM]j·IE*" HłΤ.VmkXjX(:tY&$os顢V$k&&#ICP{PR2t}m 3lBMxdMɶ7,Vn `DMוt!ɰOkek嶲oEI%agjߒ&.k-`,6),~dE=m!T%\5VضRR!mIԊJ6Y짒M&>ؖy*dcc&:&œk t5PΦkl^4Jt?-Eg֎IKޙY<&3*夃HN@BZmJew"asL20}:*GLd,Si,?Jdl]b1&d'C!1A|YꇕU6,;;Ƅ,l,-PE&2u+o^t1dWKGvMc-2VBĒ1JH򔇎 HئfcJƩ~@[6.Y}HX,lIcV1~ s:.42K=[Q-~E7؊* $݊*lYc-ܪsTBEU4% x-Z x.GUf s ~A,$;d锦R:*:bIWn끥wĒ-K1e4VPXLG~X1dReq@yf+̏Xl+")<^EGeNjl6$L7Es **sup$sl+pat˔('4Ef>ֺ*YL: QPh.j[dZȔ׿~E8de I,\TYƮEf;Ԣ pOoaO88;1RݧJCv`j$[t]5]N\Jte+f6F  lDhaKY=k UzܢJf3 "XY&:W 6e>*+I;w!ѽXۄbȝh _N—=\ =UM:gg{O (*Ϊ!#787>uto,C{o{$]螬 a>{7GF=E{螙1o=_"GtO|%Gt,a{@^Sw%D`5ѽP{xyݫں7^q!=U@r&Ƚ2rx츟{e ރ MvV:;5`{8W3vOʉSrb y K'vr{=ٽNKSxD3{0RȽ6{}%6ɶ9vEr& CrJ`t+;T@r&ۘ^_)7 totor ro #h_wvoG3rS5ؽ|dlo{5%'#ݓ@=,$[+nPvrL'Ztt~A,н&ga,C=x 4twtmBH SOA&tOaLry)9{1dLXlx{p2e{pV#Cgpz:/KHvOiLzqLl 7Gvo 'тݓSgvgfzz9׳3h;5\ٽ61Ɯ݃qfz Gv4ٽ{m R^xӂk)>`5 k~gp梀^UlރoU.!Uw&\Ul6gwx0|L0|8 PRXdpn#ç@ 5JMђ|' _, Rq>BX>@>cb.W%vdqld#W)_ HC|5 p,b~0L|`ؐ1cH|=SR n{:Gzo8^A#SxB; x9^s4涔Z:5!<<{~,x9sJU?WxPx;2#W*N^ƅ=⋿{ל!G ,ʔWa2 +sxSü'Hx=0/{X?3x$*{(u8{XJF!*btsߠ9W6w ;w=,ὒ$wH^xd aX!E"TRx!R=/0obSGt-{Y>CP)r.[2T0t(91Bd$dtؽhtt+iu^c{x+uÖ>&vPÁdfpX(c$-g@Zp4{pnEro炝N!k"Y$uP4%{{7@Fގ97stk@#5/н45> н@_k~ot^%^.nup/`B{SHAB=`.4s{/d4 =PN5nqh-b|raDj/N89$dAC{"FA{9/hĠ=\< ێtLt c~)uKA{z%g$6 Cp&EEhJ ڃW>s$ CMWw C{2B{s_pg-a$wȋ=LǠ=m;g^|޲H0:%% b($oC_YcCW  LuB`pb,"{9 啬{[Uu^Ee{9NHaYGC{E`MGXȀ=+{C"m2`o'zg{CFu k=r"\t&`"=Vq{ىLTAFzP!5E`/a r|t%FJك$=4IE2{.A$a;c&f/Ց=Dп>!3B{>󆢎V6{"S%1T u{#J&3F1!{y=C~/'fb}կ(1do8@Pbd_U*` 5H9f9f9f_XYcp`eݚe* U4{Q\eMn*w\eM[8& /NYYcsfe]ZeʺIdVeVX~`WGvXwpdNY=?QeJ<J#Js&ȕKn+տ r +ȕT +?S&"?J\ tIa\I6=:8:>::Hh^I\Qj+ú")\I(f6ra;%\iX@)Hte:+mӏHFe64rExcF(TN3oˑ\Q$+#rre[ɕl+n+2Mm r0ȕ WZ\ ?R+G rH䊴Aɕ`RJU3ȕ2e!߆&['WFc\k U3g/2Y2H ɕ_N,+zzȕߝ\ 2=\Sb +2rEcȕ>+c68[e`E#+b+#V@U [ƙb+ßtle'-7/V? jCVp Bh;3 tsYi~ fX`@Zi9ޤ""3ib+ lY5|S+VEZR}% j.J' L 3[/V`749Vz[$q+}ss+}^ lD N~}+0POp9+0}%J \y\Qh"W1w+09qb Lz; WF5N(+a3r%^r\ٙ'WvJJׇ\+8}grRH \i~+-A/ȕOp9b. WjtHxɕ WjPNF7=<\XO*1P+Bfv%u ve%ؕ>Nٕ^*+}J%^FˀWzG`#J蝳4Nx+=ȰZJ2^q:2xqve,'NiM`J Еdd+PήtwܗJ Jv+L+](^+խTgo^ΟRX9k+f!R7>J%JW[c+S+:ZQ;V !Bj?AeJqթrljb+%-b+%qlfNl'fNlLՊ cV{9c fL tL p(KJ Oc+%pn'ErVW\qcWQ1+x@qbWpH$]+1=C1k: V0eWVI@@:镃+8Nxg~ @QW qTXW t@M&g+ ]MJYb+0/9RW@!z;Bp%6WT| bέbT 79+};I1le[P_ / ~=b+2a+ gr~VPFA+xVcV#JZAk!vV®X(r+ݏ@~[k-WzOW +=^u#Hq+Oe,JIsn&trc6ɭ  =zԍ[A2NvW!t9(b+(n*Y [7`U3 Tț۳De .| tlaSϱ8'P[ы[Q 84n@~ pl#\VbWpjB+K'K V:/[$b+%.)P;RCƯc+2",M+X$7I!Y4C*&AuT` (qle kc+s+#rn%~*#JqnNJn9ȼ`;#Ib+N!/d!c~GcWR*Eĉq+2+nɕ+p.o `Br%;`䊾{v WU\񖙓\AE\2Ip- (ޢaxyTbzBjÁ䡩۵vI'M3CSdLM풃֖N%kxMLJzūrD\tE:Geʏ:u|P(j vSQ>h*tskurRe I55*}; +_ez MwLs)ϝ^L#[jEql;gN^:;62Ew_@uj`9E9P3OꕹA7/xlFaGk #Q.Pw)\M)M z{uSV}MA"%[zhp*X!,q?1u30b_:@MH`V[Uׯ,e!0GT֖CοGYPvL[CY{AY ci:AeӮЗk6odƄ=x V*>ت| *j寓&)-R2Jנ} -s;G=}B +*U/|*sI{Zj_%RH|Kȵ146aCcPRS˜K^JOaܹ֭ԕ_JDa Sx쀥5te1\G=yXڕ(+D-ZX͊yMyNQ&i-lP:h:a1\R.sF /kx)=V7f|JW `ː #alTqg þE[ #6A>O Bx8jBiowirٌFd:o e(:2gaaBSka5VOfg]_%GjQEtC0|ftklmN!+UH6=uyX1zn{#V+)3?}Kȷ>46aCc+\zSHiˆ0^JKV|opQۙlB*x[IL.s <4%:<,^ Rz s=nM0#l!)Qj7BlEy_G̈ΐu%{R-}?^+[GDۺ x2hYmSꔾE?G}.U)7>U4K^rTȶ"L52%AA#P*Hiˆp /0jڑcI,yW6V[n@Qڜ- p NQ2M"<,,+x=g>GIQm-ni?JYXM§LSp Q|Oas[<f s=n0V]葠 ؼFޖ)2j[}&=kr[M!ͺȃYi-˼zjx]3?1mE0]z /!u Bs߽pPkfA0\43`،5͊o:O O oK#zXS "x{lIqOUESJZ%#S#Qpic|+ἵ %$%H7iQBǴ#l0I[CWl\-$HmtlvM=0O:0ۺUVМ/RYPbx1=y'> S|VHvokNuࠣ~><ŻuRc Sfg[SB/pqH 8ӷzPQ ]\GrX : !+rkuoƪX?Zоdot]Bjұk\o;y9>vmm ג|?s*K]@~;9=."\k~T3|~S-EQwVٹ^`RI>zS 8z@xQEewIWkOƖ\){, _ꉏP^xe.jrS˜B ,ۍ5/~U!?%/YX]WֶkO#[$Jj1 2Raub&4$4ܣmMk"BPrKYu\G+clAh{֮`؇2k%.B7gr/CK9//y s!,u@?cSdE?w/şKo2dC> ZY$uC#@v6Gp1#.jecpOY}{7/Gl0vVrIWkNeZ9pkmOÍ]R⺧P9y,+x=Z3Wbv;|JA ѕzkkl|ta恂d )1y0(,U گF ,ǟJncmُ/Oõa`)B)fs"uuMrH7[g\9g?dӯNҘ+{)d 'm+B$SW+CpGjUd_mG ~nOÖpj2aa`!\!JZX͚9b-B2 + #b0cOÖbdVROaY<,^ Rz s=Mldqw-v'#s,|y ={(!+{ޓ+O(şKo]axRSO."d{ZF䄏,#~tO߂gw/GoU5/n$|ǂaYGvҦ\.YS=e0bK\kG?fD9mmVv2i@(d|ɻد<}nxkK%,RXnvZ${X/~w ͐@Iݲ?ΈWF=(C0heӢDO,e3UU塀W|Dn Z_ylX)B](j6J4)Btk^ho=i3; O!&O3WbJb6Vs p#bHɁ|nEpD`a~2pI4g?]o5 %n7sn^"8~twxz%oU7 O>񄺏~Ғ}OrqKBhNn8rX=9zd}OӚT_` UяN d'w=hNδ,5{2>u'Gj$Hy9ų\Bz^R<oE GwT']S7{]5eo[>}U}SZQG_}ެQ)I-Ub{ E{^y/䭿-5}YgfwNkPSߪ ( hBo}ޡEKܛ8cAk]}4ϾL?z7T[oxhڗϛq2B|vlIF/l.S:=yzy;!yi' 9{ "_ vYIȘh۲^6/j65Z6Uku9Gtf}OrѪxH{ʼnwE\q4WoAתcQ2si>p &תi+x6~ 飿;/}OHώy8xW?̫5[?%[ſ {7^:S^?ߟd`[ڔwo.'^{ ^O?p,=?5tkڱw_/N=W?GxZ֊/53iS֧QOڽ7>MrX7gMqO}6%FiLED9f;Ve[q#6WԊo{q\\ȿ~ޫؚm{,Wwg:i2UOKM=O6Lvbrۻdzrf~/y9e"d7LR=ն8šֆrɉ]cߞ}Wyw|f9҇۲?/ ?:*I8{#_4n a滮vKK;tIu4P8q~wC}y O<7`"{>|CvtD^[ zl]_TbP+^nuOVο/'AoIx_V> ]jB{nB[/.\I(Nx|Iv:70kl^-۔>3!y'9DL?i/OȊs#o[vL;1xhmMrʽy&lw:] ‹ǭ8{Nd~MVowGlYN&vڗguhex辰C]>#_sF:J5x-3î|=OحV#Sߗ^xݓ\ wAGli6XO>㴮ܗ,>(.\-[E܈rs⫷zʾ”}n}'-b#5=d[rhM N5N d~ij;`iO?M׾nR5֤K>ӚsހWn|룏p(xr/n7ۊ-M ~U菨qC\4Ɓ1^v>|Ǵ]dRJ-\J_f{e/re>0ܱyY>CԆyug9NQ%m|Om7z==rRM]}_^ydݙN6=.eV|~_No-i;.߷T /ߣ!&𯎙m\rQ +yh]i;{_/$a=sp&G%Owُ-_dWOsLQ7~~׵W~/S"\/ï򨊗<J' 4vIg>/V^/{g^-{}쁙]HW,r f|J=rP)Kz .w$ ?e^ʔ.VS0<;fю1Jm;SMv)x?|кm9yI6mGSI}|}|dܥ3Gs.QG.T-_ÈGDGDtd!uʶթOpo01[;}7~~riQ\Fzm_yZU^nџH^L3}j'߯~p E_۾m_J“?}1endstream endobj 706 0 obj 17839 endobj 714 0 obj <> endobj 716 0 obj <> stream x\kUuNV -FEA>{UOlr;3̋>bOr$1uL]n#OcLQ"#"TΏF~Dk#"V^s 3R!}so}OpwrWLL?j]]#f4$D䶨}6ﺽO5Z=5cuǷǘ鉳_ߑDa[/&Aj![_c8^PQ mޔcǿvG"h^S40vg׽=gH|Ei?#!vm|V>jmچ+OP~X,_7ڀ=m:K`<>ڏ_lۣ !4[hZ $_Y{srhBsS%c!%:MU n~}4 kLx[,w#;ϭtW,-س~U ?G7ɧ(j|G _b|_i˖r4G7io;0>1~&{p{-/ȾXJ5ux\ L=W/1k>8L{hdX247gN#0CCQ-d>e¿3i1e+ 5O"GLvx|;>Ÿ;.oL~Gƪ5ݢ5"vUcSM95G6+ B-Zh!8RoMIhO Գo7`D̨yi KRXpScG侐$.FB5k3_J%7Ԫ~)$"o2i/ia!4Q{LI^j~çms\# ZrBa(G)usHJeq9Q\*QTS~>8}r1~fs&FF{yȭάhguV^+r,slcR=3 yt6<$' GJGfwLj5=@?V LaFɀS9J#dM-a߽oeKb+,A"йYB`e@FOh@{hZIȢsZPݳ/V#)89y^mG1bwjLN#_Xzc{6h*܉O>"XCScFM3 GV>}@YQB ZP+ͨ 힤ʹ#z !]0\YI [~1\/&Ċp0#?"$ϥe'ZxjA-QqTf b\\]>TKOİP9𣠃zΪ: v2Bŕ, q%Җ `ۿ[Og0sn )GVwHW<E|Av01vrOSİS2Mɡ,1Wѝ ۘ=#t!߮P b=ك E`\)bd{N.j疋p'Csubv ዗!pdy biʁ u;@fs&|ҧѥ6sRijA-=^eKt1g4gqfj AV0H؃+ݪ%,ŞT$ʕ*UqUP0`'jS)jbJ"apƙ ۚFq 7v 3Z f %qBm7&W9S9?5ipt2IS[Em# Y7q!'b< .oW MD`*Cok<uRXz)ӐN/װ([k◭%Y3̰:>_@["S_'PU?΍szɓh[|@ 1FXvT@X.=h?!# E~k5 ǟ Vä5>,1Xٛťt $Ai65\ىd=eFK A- *+ ;zDUۆ/*&l)IZ5#Ъ-bV3{Y#m=Fǽ5D@=5cu)c3܆7L"*@>!""6klZ2Y_!|i3I%Q3;cizNJã^:A6"zxKh<\Tb*nKM&dU -ηr%`AbሐTp9 prC3 [AdNIg T[}&*!Feb+(ϔ FË:\iدT#\4ccE1S-2ÝNȯӕ~H0k:9ɉQy’"n?s?CF׏:=*BZ78L]"-^>֟g|_ qDƆe@+O;sP7kSqՒ3!!sJu: NXب]F'D ״fX ׉i-;-W:Nӎz$#t/J }$Qx1Kn$UQ2N 3 (>< %ETJL[^]2!j.Ou ۴eV:,+! ;{EhXQ'U2TQ6ܵX:uQE &L -v*ԍ`EAsoNvA=$\ 1ݣwz@! ,2v! ZP@mɍűsEɭ\8Ͳ0(3?X6% 2ܾKlSa>S1JRlhd23r)IgұAV6_qj-M KԺp-^\7-exdMX [5^Z7wmFAS\Ф`5]8y0ޟ=hnk\9j}<#ݹ SD7Zk'E16xG&Je|θ9DS(^{,fi@oƊuPP0qz H㑫9(V*@I=%杒H='~(.Sߞ]śT?/wAmWn56,,Հ %৅e QRʴ?v#7d&8M;m )G E!A\~9W*@˖w:Pf^C" OV3 !U ^6Muko_m+aW&/z}:%D-!TԓԎeB\Ci$@Ӣ҃N+uOb !2B=)+k(8_ <9K~i591\ i:E.qzU3ʫķ]s۪0IYtʽ;yF0Q'TAC̪UX؜2dj IO ɫԚF/nyf}֗SR8 OynVi[/kG8= G8hscCsJ+;}U72kSofqlKIu7ReVLp/y #|b:R07r9"jҋ6DXox1uV J!꺕 K̖U' Kl63?Lt6BC8s(w'+_\i*1ȋ['1I d&Y") $U`rNQU@DUs}tU$}9"z2Z^ҵfO$^+S P RgWRnE8  @"ZF6+l,[zuŒZE\ =_ RH,ik=BZOmF̋:,Pn;epMo$x!~b0y '{:v bWۨnX LPޞ[TcTu "駋~ec~w(iCpiÉP~Ýmw"ݟD7%ڂFn{qԌ~oHϻ2ӎF\Ţn Qm]p~P6W?FT}[[xby_H@LI'vxWM4lCS|Y?,'endstream endobj 717 0 obj 5468 endobj 721 0 obj <> endobj 723 0 obj <> stream x[[l\jU)!֔" mZΙsOtkǗ8T)6nҬة HB%OC⦦)U#H H#xM myhQ>Ϟ>vO(ɞ3?|;v;c?>-6߱7cgf14G۽Lţٷn-i 03\grX2yL=~g03|اt_J ;^>9<KzQr]kTt<Ëtm#9b2@Xϒ׋1WjMSi//^tO, lTPy+{I{Rp+{;gΎ^9ה&^O Ph x( }IXseƈ A0jՖզ(RŖU6ܶ͵FUǗnuJ#ߴӆR5z"C9gG] <,T!w^_"{tuHU4X=_.,A`rB;p/2~݈L02_`9[ʋea溱F.dK\+I\K)h vEcyyjVe 19UPvl=qL>g#בNxz8e;<8L*i~8ˎ+UxRȉI]glax|!O)%LX7ߝxw$zw%x.iÀ>lX4k5#ٞ-9'-pQ 'WQh4K-7 rpEB?!+YeXY>ˎ?Z+h$Ss;C O.:i[uʩB )3Orime/!3);땔T IXI_HẈ«3Fy\]}(VXGߥxTڑ|QZ"؀(}BLZр>[;1 O.MR]\ SnZ)ܴƋžфMZa:pIO\TsR)4-XmYi4mզզp |%!7`w`ޫy_`b|} J䂺nV\0 һ) "Oz;_z@Vлf"Q(=W!O5dI!B<(/v`qHmG*^jh)C㪰 VA@l7"500U |@l]t'x>9^+ꤺ:B=,XR d|뉷͇R i,X㋑ wˏ({ {_#lO{X@5Q]_eb5lB(W*u15z^'̭!Ρ;xbÿ?:Qngzt4~Ol ) c=x_=c3#<*)~̏CGm88\^p6^?݌-UZKa?2+:4J3~?$eScY!~ (`AO]tPzQqHz8ja=aq2 ڷ&d., 'H4z ~@dޥb_mT~C ٤o8{[x1`'0RT3/:n/"H B6;Cl!j [F"@xR١k!0B $ kM;AsN‹ ">VO-֝qV^ǡ?̟UӖwO^V>}kr(a(% ٦Eka`=F1\f=DJc"@#K9oI]-!.($o&SC{'ii ?εa6Egk_ _I!fhxG;łO}# ˼ooLN:PdN[{mD0O<q. /|Yِ[.ɭD7|,4n'H.}P;/FW|(o.-ԎK3fRWGSBl9_YqgA۸0C;Ix[#xKIJ/Rb󕩁[5 R1p|5]i^;n~_] =u௚B @^JF1y endstream endobj 724 0 obj 3811 endobj 726 0 obj <> endobj 728 0 obj <> stream x[]l\.PBE)Zh]{}H1&ڍ8ŴT"Ч C!u%JH(q/HH`11A818jug݀ZF2{gf9sΙqns3' 54d\L]lތ)%iOg-~u, 3Y}Ʀy\|ÌxUpڤj^#+vS7֝/ ާ}h>X{&7e2D(e\7t3YȖdF;kO=tNHɬԗ`~T${qffy7`?ϚD=:B]p M6d ʸdMI&2XAHؗ?WoLCM/H(sg SS. _9oR5AMį]\F+Ň705{"쉃3AOE`|nkpSD;[ Zƌ?X1>:}[ʃLxXEn{H;<Ŋ2*>]ŽbB<slKZh`kt]?GY#IlnT(rJy&%qiZ dsgdp'YB) J]O_%bb!*I69?Skz鳬#0ٰ4ALfn |A>G%vo^ޅV><]"^{+) ^`\X֔96beDGEmhXT\D]#2TYq- %ynS,XmIʒ% Wnsg1 &KpCV|g.gۧL27e8 p1Ϟ}fT|:׫ɍ-4K;R&CbQy/ƒMiAQ'ë\xx>y9 Vz{(_ZMFĭKʕ`,eC6uBݧ:7=:=6%e~8@^I6Fax8Ubg2V9ysG&Xb\a pޱ95OtTtlU Lq9kY:PGΕSi&kxτ vE~$BM+`N3y e9K-AfsV49ML_rf;Š=318n~Q j_5xZ| PMy#ac6OB}4Su;΁ ."GIqFeyTFFѺ#7 =y.Hd-2+pܴ]5;jAAѨC u4w` #a"\KMJϵMd$0E(|WA慈uX4zXW$QGHNOLHYSEz_go*$bj>4"urɿO3\X1 %^7P4L;vi4 C5|,gib u iiY[)uhv D>>sAmtj6EFJ{Jȗ#diFԿR>aSMHT#3[>1 ۏ[)}eYh7'mPq.^"AQ_ٸH*s4y܆d0zɎnobc3C ;+X0(gqٻZvI7r4 G2՚Fu(6YkcJu w#7Ҿɟ1AM{r3!{cRJ?aN*|Df[bmvt6܂12D"9kOO#Oay.Rz0\)D^aPbP!%גHgڻ`]DsBܵ耜%#JGӘ_@MFBh# b7`\ CPj, [.49]#XM?ZakU6 D`KSaK']~Z<g!*Fu=MӣegwZAr;H<>e""RUq;*,BmNE99 jpfpIr:UC+1T.L߲"H'm(]"67B6ouUtQ@j%/y[E.d(. OqLs+'mM24^1d[ubmf9"â;Q]4rn>&fS {Z3魯Ӏ3]O\ܯgf~5K $*Ђy S;cp2x 9zvDDXpEqZ)~Y)22 ) vl W¼Bf9i5ߐ`}I &ze}5I.>c}p6%{<601O~a~h\{ޣ xݱO U݀sK~Zx_h+zj ح!SK;Qv≵t!ߍh7&͢yZG x SC*-lo160X,+sm[e OOSr3 Հ_ҕ/S^( e.&Wi]o^QNƞ$L.'3$}E*OrmihfxWԝy'h6 | ͜ͼ DfTH<]-6%˒]e飬㢄w]#[KJB3,9j!ۄy_- ,_ʶmC mupuXw|YEw v1!z l#t4J.cVuyP#<ݾtn`{;$.ֳj:uP;0XF4[ۅ;"ۯ* U;mJA!Bna򃵆XiJ][+wh{3qT]ZR#-tpa 628ѴFxoׯ{SZ \ʈCP>~MuBufzMKIii wC|}}S>G9,Ӥ` ѿEL~"K#|ڒXȵT#i2D ,t _~C(rdz EffjM;Rh}Lċ/Ȟa􀖓VG+c5AQ"a]Ɛ=+u.fJE%u/>zsL ,HWHb)N%4' W #vVu. 4gmɧ-A ҵ¸ڴ<@fr?>wB-ƃU~zD'LBPU͹~z!4\a w(++k3.QrCG8LőzX$#6tNo\jb$u~pOC$~3s@O}1/KD>$Z*rԈܴɦiY - (3 U7p~ˌ%w4x2{wm.3_#vr4lB\i-aMȨP&?%!n(HƖ-ޕ(A^d V mKcbakǩ=)sʃDnh:šc^%VB*~8\>..%Wag&\[O`vqc@k@#<5X"mtڳFMBF8Ud4A䳆><>d bI!Vq+BHĨ~k1WU%tV4*thM$F-epRQ6k1qdXӷ~$W)oDw NkW:rڛ_}1 =/&, e{Dsnno-RYfX ١9\: d"?XD Eg qT~^V bۦK2; ~{A1`ݑfV:Nr6N]qk?##%one P+;e[)T*4\h琼%M˄ڊ w?sӚU$a۰L+Tg%ـ$zݟ#_G8$wv|Q!0jf/0T_vizx>ОIj`i.2rU3[\AWmї"\rjb rPaDRrmn IZG)(PWk X^^}B8nl}|Xj`\ U oҀ" .GiǬ2b_fKendstream endobj 729 0 obj 4426 endobj 734 0 obj <> endobj 736 0 obj <> stream xݽ[vuV(ܰ@E_= a1Jx^X!2iiKFV@Q䢇 ѫ=@u4HR7\h&l8 8MZϳfR "{fgϞff_x/?_*sOţֻG0Q&&'OS w??3ޕ6q &Ey+'cmI&*@7/e ^NQ&h7D)/gs":~s _g{j˝k^֚ecuMCK)5_\mjmgsj_~v\lo_Jq?W{;گܝ!mW_٘]mSDXN1w߅>߭=~I{ku_1z73px_ZA}hœ6JL=xSO<{0Wǃ?X!a1/`Fyc* ;s)p6'A8 I!9# pwg]}-?l}}7%}X{{ {BosmhCt針8\W xO}g^}⣟yy ?\ݜǃgœWY?s?꣓4[ԹN+Wco|_>hde)c[cb1]Z")N˻UqF+|8D@VN8XfO`:T\%|gZ巑F;C}[-h.5JsS5=E$VLtII;HUb'!2gq"ʒ0MZЋ<"&&iVLJ'P"ok!^b"`A#Bl5:t*=JV]ݞœ+O3_ok'RHqv `Rx=DHjoͨOHʈk5_ e%Be:u //|ԉe+ `%;t -~#< Lo)kf14dbF8:A90gy LB |"!Wː!d1cRI#OQm!1(cB+ d8Io1 >.LuR]Aޫ$r:<"A}JjO힦5 Keu@D\Z1IL#nzt~KC|BY=KPՉZYXNcpϩ/v4u?HjG'VpAJ\ > FЕ P-5͑+zRÀB2$il#gD;"` GFR9C&͂_R.X9I:Yo><$Gh0JK N~1j\ӫ5.q5.q/8xi8W0.K?%*zKf^j8+*{Cf̦N`E`,NdR Élv(ZشÉlvx6Nᢺ'Y<ĉlXIR-*ߏ7lvxSÉlvJ)6;b~rv8ih18O,;f"v80ĉlhм%NdEW%ovhD.qD Vf%NdEUo,qEolV7[U3zS[ ̆)NmLq,9!Ⴐiܲ1U:;fωqtE;\",ivx?7fj f`mp #3l(>;Mp" .fw/8f$ NNY=,p"Kw/ﰽ{9Mdylwoͬo"+Q MdH o =:~lRxf\o"$D6[|NjfݷD6{̱lHd&C\lD6 |ԃ,lf9'-v[x |b-pCގi7[(gmvl6!oGi4 x;ZH)nm -n[)7m*odA9g9U= nXOugU@q~~䓿SEч㨹bʈwp=aEc/0RU5Lɼ(gܑT(? ##bN&sIQTʼ[)wIj8hNWBbZJTb*W0FQ:1;& 5Y:,(ibB &g"ͮ:!IOhDd<+%bcwd QD $4e09z:} ?d}Uj&K!/E9Ye34KR쿖 $ 6z1'NsJf4q(?JcQ$a ò$Uf1|pY\4҄QՐ 'T!CN3ϕ5tPȺrzD૮ꚥ.7WjM"(2 ,b)E ҟY2j*+.*BTe [_ISk :O ƫ Q%E5=EϘɩڝev 2P%)<ǕZM{9~}|~|;Eى}T0$șcKU{r#6\]8sC2k(3'D+2$6!<_yxFu( i'&Ƴs3^p 5Ҏ3╜/ڼu4g$c$=Oi9ЇcOWeD H^;*~R!vpdcLzOoy@ъ9ޗ 0D::{y#,;j$%.̪P?#A #C :OBTfvhH4CF:㠒en[ͤP"{yMZ5'@;ԾK~*?(QM 4d$>*pMjPHZ뵩U5I@ DTM9o$7é>Kǡh"sD4OS9ꀙHҘȐk4"TMb"ta%FEM`5!GH, GUEm Ě:7ҟ-t5rX+\$yYш9p"d"E$ETMq"&uDs"Q@| 8;'hGc^KB7)WfX;eԣ 9vT@֝l3GU痘Ip$t ݙ¤IT) rBAwJ^ڝE8:_ :NqQE4tq8&w/Aǡ|6LDD4$UD9> UUDM:U5yC3V eA$) {|DPO怔2L5{O ɉ.'GϦ H暀9Yn[A:SmGgdT|/*hu7*HR_q7HfY[G쇡d^]Z\:JwN0_&H@'0x@L}z71h!h)0T$2CB%4׆rT1A sq%5Ad#"Ix_`D2s&X6EFb`K"U @{CVn27>X;<ȵEx's1XU撬T]>i$#2GAJ,eF̭$5Fc1$i=HE!}a^ Sewn~M-Bb[EK ) wKv鄕dQ!${C.ZJHt*GtrdF4e~$he>NA|@5|9&)1r%,X%êˡVrHZ\u9EM QU"ZY#p zb&0vť;CYlPCY G!g`1$1G^|2P$JDoOң ɲVי- )T׵C A$ DPY;ZJoBVY82jȢl"\&YGJ#Ő8[(aam+6*F.X '-(~oWDIȩDӔ%{HhVѪa  (tL++r.7Z]$[itANW+N]xX$6802e3}Сӷz u9i%l' }g{FD)rc_q:W I$k]o!֡$rG]DN{]Dde;t,W3ֲؠ7<'#UGo BqxIݼˋN<[sK75UѬ$>GmGe..^?U_aUӦ"^$rZ`vع^R+ܱ8f(d k'L˯bjL9Sz0gv:c$~4LB i2/iD=;sAdP̓ c!=.Œks2~G)Bbǀ4Y6*ɴk=Fa|Ѳ#Gi?Ķ9Պser Kٔ a%qI5+8Y{(;h\E7&GC&IvvlLԀ: )pK_ t܇7tP92y#23kd@}Ǩ:Ӫ$LJ*9Tٗ|_sj@";l 9C$KZsQ<{HeƔD̮RcТ3s҉bnudOh>\Dr:Y&B$9JY9 $!VJ켔9A=c-9ϳ2ZkB2i@T봟%dV+lїSD#6ȖsBb)\NQa $+I4ը}j_ UJ}%Qk2ԭߡPɒSт6CF؜?Zg :y Pj3sbC[ͥZJ/tDIUMTm !Q4{]+饑TE6*cз7KF®LLc:Tŕ۪ےᣩp2bZ/94 ܈@㖰^ v{3^m UM"иb% V:YL-şQ 4ིN4ִ2eqʊH8h;fyͪ2e5(-׻G 9иGȝ&RZrV~-4GOƭ4*4nZ\Oh~n/i̸ef^=;:GB/\-fjhCD"WZM(['9Z., 9f1I 6h,.YdS<9)wؠq%#WfNf$wh\ɿ,/Y7߰M `f+h\и2ϱ4kƕyʠ[#kIvh$mN4L14L(u+W) +s}h\M b+h\ƕd|Rɇٔ#Bvи15BW%Vf-Ǖ(,,Rи=[$iJd{arfKZӦ@D2|tb+(cZs,;,h ]l_yvmizQUsQJ[DGFyuZ7 LJ]?Fin=-3!Wbptն ]wQ }(J^80IMW}5B%mYK]BX-8ʘ=*sC/̈=: :giHRڌa ŁeoaG]! ԼKo'2VzsBZjv?[;ؘ&s ^3Ujr-Ӻ[M+-z4$2#;u")H>uVbYU$bjV1Uj*2U-cMRTy[-(HVeҪ" \Wwj)J~9֪VX\;v{ݵ~{纲[E?f:6KkLGղ{B?YIk^ \ᷥj(qϥ[`i("Yf;n\8)%Ϲn\R+ x]0I+;S8YG,9;Wb%ykv\WoΔnշZw1_%P%#9pe">VASii"xqK(֯1cCFA+4|<ުqQmd| 9 R$i%`ԃU'YUkz9o7 K !e{f=hV=D4!k@Jf>yH?G:q@^,NQZVC-+MEJ%0JV\LWdSPy0U^SeLlC-+u/@#XQhz,Rt]+E%Z=)u}/`Yfy,عKf=_Ċ8#s@I\^LT:YVl`Yb+] H뺙HA12QQeiV;S(Ya{[UrVRYY"fSYT"Xʡ |9݆ϰp;߰a9+AmC2fؗddN=p-D}Mjr[ .ge)k ,g\4lW`~p'Wg+,ge^3(1n*F,g%wvۡq#6g>ܛD,g2c)VnK2#}{J,BtZ-r\]8[ܩK?g.f'd6HF1%gLK2י$بxxL ".0 B29;]ɯOFݗ8X8(x`$H,g5wQ]Il6WplweRՇ_O8.'Ӊ׈to1wG52#j2B X/ N A֞xgVv0P Y2gάD~6[QYNX%jI.`*^Yq@?~"^0РUϞ$`ȉ%: n@-"9YY' FdWEI^Jj%x1N :葯O6d$wWQ*߼8]ҥR)1(ִ,\^M^mJHphBB9`!4~0*#@Rc6LjXa#!V9.%53)Vn"b?$'">SMi+KQ:L^*v8A{aGd,~k #hGـ)+Q/!OwX!Y 9]5@e8 ;ܳ8^bboXwDC|VL$H7ȌRaV*ZEFhˌVZݢEh+߲]Jg=&0.S"B잓EhPH67c 2 O2#`ɌжFh[^ƊcE+lrZG$er:/1H R8 .!8o28^NDd_ַ]9TIFः,/9(xrsi9ђɩH(yQ4NqN95"'s ߳(bEZ O0ٱpUUpx9Hprzs!g359UGnYNT2)X,TxYse9YŷE9Ơv4F:9刳&^4MN$l}7Xhk%հE|;p)JWIA'gGHz9j3rN$c9Qd:},sMVH82>c[ٜ2O Y,NNȎ7n~#kx̱6YW#OU$7dxStI"DSt;M$ˉjY<@U[NVWyL|f=]lj7I䜂rZ7xIZb\ H{Y:ezƏlqkc}.k/)X^rw&X,cyYQ((M9 rTT=U=ejpPn?X2nE&aS8H5"eMְpybAD>UҕI"Zue,/'Ef9>vyruBɋHڥd Ge=0jwο+]_hRԃkLNBÂͽrOLMW8Y<#(̄ZFNb-Yuʂ=mS$im~ǒmqÆN'˾.fmLR1q.fӼ! wǂINU{PɒY1ˇo{J3'dkXB79 2]|N[V/z,T) dd0xVJ՚O;ٟUxE$-Pdp`,RZY%K3K7jضJ- Ұ:#I=KA>E|˒,H\EZxճhADw|L9˳&Wv\^A$čBW0KTsE 'ő-}!`UN#SHqH"E+K`^,H2+&,*ʽhG)&f.RYH6+{vB2*GU$MaajYfUl[e)KQɵص䬆U+gNyg8%74{&ZBd3i<*AC,vbr2=-YȷeF9MÀVHғWt,RP XZxPCHPf*pD=<-+zi(H ( B* $Dh[A``w9:gC, ;>rJ ezV }'ԫGg=)D*YRN9 rhE!y&B -#ZypO'k"rnMdJ^]|%HcQ@+OE/,߁!h#!w|H$2ˁ㗳VRDžx8d=c3dz߅Tx*E\'㏳ INhAii S|JNJxm<;D 4iI}B6C$lbpH( ]k ȧc![Q9Ze:M %5Sq*Nz/&&WT@8Ngkn[[H`W֐ EPIzpp~RO e'@!S} N=1耊eŹ3X rd#H!@| $ɮ\rw4b;Lu1qFmH,U]#FD1a $WV2'9 fiF7zsNؽydG,HPSϔz5-0 !"d'xu)`'ΎM"4@NMR&B* x?8%$o!ՔYH^BʬD}}0 [rTRv+*Y0d8̃礧A@RC^Y@(Hz7ڌ '@RV=L%aRX`0"U{ӇEq%Wܔy$Kt & MQ\G06K *k\Ңfo\ 8UNc٢!k+ EzmFzv@N(a|b5H2 (C%a}+S"Isi;U& m)+„UD KuD, O+ȯ} HSH66 `Nr&KOYfwS:6\~2{o~qtj1'/֘Өz,WCX?AY'|%rtNϲّ_vxQMJT3%y TDZ U+~c'bUպ`_1i1Mq)g)Nd3KJf'eMrf7ə1^pJƋq.5:sfK$xkf׋3 lƸIz[\oWlә╻o:SegL'28~oVZ4ĉl$lf+X`3w,ܥ-!o]QiW99ۛo"b V3fw[-ke=VRXw;kް3m [E[6Md3-o-(D6[,"0 lX}ۧ7&?8og*G9֣os{rبoomćg˝?\'{#hߒ .C;_-OOgO>\`E?w[xˇ~]?qg[BY㾁XqX?gLo>k׾;͆e>u'$]>|*C/S ՛c(B|K/v mq̏!~om\?'o.zNjC37iWLh_{S;1k}m6i>;ݏ_}w{?o1??Vm_2w?]&少1|Hw7Cᝋ߻HxT7'eߤ:Z^W|G^_+8_2q7{|7>[?n@9 O`ΚsdoG  x]y}GMqr?;y#;hRgG~CT+JCqLW86jlӨOc4Eo/m" /~N{}ɸi4eڞ?NrV4!i~泏^~'~iܶ˜;}}Ҷ slyxxO w<ڗ. ~G`{ޛ9{^/-{otͺs mCQ< /~WHHwHiZg׷zŶO83qrXA[?F3_/{|>B{~⯽&c =&~ 6h6߹bk覥V/}zx [x7Ӱ2).lTE a\t؏-6焐sCo c@;?gS*i~}3gaF?odxMi~4l^t '}ظjiTef~h73j~rӧhnwy˪1:MM‡zfg{;v*٧7ڦ()>iygYR-nN1=}_/=K fN. /+/q'~Z|)+~ǟ{C2clp}'܅}cO<_sҮ譫BV9F@/?O%q1~ϡEwUOtsq=)AI&NT*E-n{5ҳ^򒿡Vc;kӜuN92~rN_=>Is&yS=;{ouyY޾_}믿+sB^]yGlaOЙH{͉8W_<)~|?̮Oalk󻛼?0_Vᄉ'L]WeWub+},!a[?b-6{?iڬ{rj_ӑ={uh{F̉^g~?&~i}^fssJ=_*yO gЋf=x}d{3|~bC80$O'ߦ VO7}:5b?8RG uoEd-;ZӦ6uRPӼ+.z_^o>e͞\tNJ|y^cɏ)߿ތmI{__\Ag.}iݾGO(+|h3~ oT|jcjZaCy//m}ϱ{|gGbx{˟z>I86c ӴYp4? ς31 9[/cO Sendstream endobj 737 0 obj 17898 endobj 751 0 obj <> endobj 753 0 obj <> stream xt}cWR ef83~EVcnծVۆ(R%֮N#RR MnҺHz>hNʲ\;a}B ι>Ϝs3무rBH̜9:ﹾw̓?7ソv?8?v݃ns<>8 qC=lr>8AЕ;nrpz~arxù0|<=8u <;?؏?wNecc+[[bNvAWn96v mS}9=8O;we_ ~s//p8}tv\ ]otS^+onƝix8~-Wne{l>>u톽 ^n7_Wߖ=_~{8 }p(ƟOa]bmy}]6}~A7l/od5mѷ^ޤ]<̡wzS>ù*u>p_rW? ݱ.cy=ˋGixzK9t!ЗC92_åZac7RaԍCynN]yA5zv?~>Cx^nch_ޢrp{OSױIbSʛōw;L\x/>˅<_K2S EԟPN}?!qԌab↩945qĔap?\pgy!gmovx7|8],a?Owe?'/{uw-N;}Qw> #Og^.cxs,a2ܔK_'|O~>O}'_^yMΆK0>Oy"ˁQ_71_=foou2o|+e>r#CX=̃ ;滵;7\"6ipWFy w]pCVW+vP[xm%;So>Wa_<$\<\SSw%e q5<~aWk@CҦ˱p!}SXX%@zXwy?C }Nv>=.!c pan9uޔUr5)1s!1 rQߏsWkxʏr."v>^zJzzcrMrz -H!-]4a]D1ʵ}ͱf]vv8ʫ94-z[\<֐(CﶻhGu} C}^O}}1lW~*GB_y[>\k[ecj<>+9<>[o9FokSᰬ7\yvժu\^ƮEI]o<]Wny<"O}<]|ٺ۝j ;c c+@K֣bBjʡ~M|fQ}[B@Q˵H(xMql0.'h9?_A;[zƀ8_>m:.LJT?ENT2QcL-UqW2Q[&jqE!7B&K&Wnm*C9B奩7n&yp5^ȹB8tv!q îajӦajΧqb↉dMXWx.=(y))pyOzns~ݝ辌+Kcz.\X;W\-UB78xy2i!&oZ|ybغsϓ'?Ǧw7\}B;=AyD喉: -u*oų>5~>cq]x«2lxET2M1|ؗ0 :7?^F SS$^0qBSq*>R01,iH059\94?wƹa{7*cvqvB\*Xm2 ߞt34J֟oi~#A:ΑRݶ鈻oR)a.뛔dL^|ulcrpP/O<>:y忞[dGsT> @Wg + }*24|lS}o> s}ڗ㻹O T>+t}uOG>AܧC9t(]{݊}:WSO+tnS_>]{@69ZsC  ӏs tڵhd뎆jm +#Z{t*[{+{TY&\w4Lubܣf k6wT[{nr+xh0qټӹGͶGپGr5h[ 6nѰFb,ahb,`1֯W+c튱tXpXb,[1VV5+ƒcFc\Xb,V1֪KU*B5v*2cHXb,Q1V 0ڧS)Fbm4Xb$L!֥a,K!VR5)FbE XXb$F!֢IQ(FBb +# HB@1OgO'# BOMOg O'H i4AAڠ @^ Pv(HC% i4Fy4GAڣ R)HM (i,i4LAZ MS)Hu} @Yb4QA֨TU*F26;lVe+Fdኑru,FC6,FSd-јYb4gAֳ Zm5Yb4jAVZu-FdedmѸYb4omomjmhچѲ aF6fm0ai EF6l0Za4fhV)FK6l0abhĆц [l 0گa4_hx Fӵ/0a[Eׄ cD6keF5j Za,V,k h4 sLq^+5Ejm0APXѧa,Oh8 m4i JKX* cQDt׷W&* Y .iLA mS)Hy BiQA Tfj T*HK ViVA @ -V&+H ji[y\ڱ H=XXv,B%HS- h͂,g1ڳ Zm IG.^1Z Zt* έ +].Z hwxx1 k^Fo#lo0Za4xh [ FK0ڹa4sh F7n|9n[6m0ڶa4mhنѰ/oЮ YF6Fmm0|)m E( v1HgyA &Ax^ c1XwJk ^h01:S P4R,O)ff3f1Z [Mqw tY;ctX4<ݵF>1:O jX\ ybt"*:g4:! hJat5a4hEш F:t 0x>zF9s-0alF96sM0Za$CalЊ5"h*iah&WZSw{9r?9q :\q 0bqx0]Ʋ8WŝsЛ8%q-06DWNo4h YãmpK Zal8Hs DgE(W 8p ڿ -@ m`F0H+ iAA a0H{A "i&iA bbHcV&ϵ:ǥׅƬ~y Ui!돻i.YeV2H3dPY)c4A@ZecZMf53F9cgv3FdYxkg3_Ty?c4AVИ hr^6[XGc4AVM㱽8t5a4hEш F:t 0x>zF9s-0alF96sIyuEFS\W78#LcVyKU1-V9*L+9Frm0AX >cyD a,q ȋs@8Vq5At8/E^ ^a,z0w60#i id%B8Z<5*8Ep%ocK Za,hAZM ht"gNdH93'dNc͜v4_;v4AVi,ICN$2:HIn%R:t1^j:t"4+:uODiVEuj4ՉӬBihm[׉h^zq]uM0Za4hWѬUF:6u5ahPў9Fk:tmj,'ql{ E}\p 0/f1n~:рF9/d^Vt{h:WF9vs Za,h3yfHs0AX,Vcdm)WD;9er[ƌ[~a,2f}#roq 8qm0Al3}n"f"c Hۜri,i4AZ Mc1Hu <} @i!4A dV2H2yq*> Zh{F5m$j/0Qc[ީ>`i14A̓F3H n ri:1 g36kAc4AhU4F3dYᵤ1 ki4heM5A jʢ kj-nNiV1֠exZ1-1@ۨ0x[ѴeF:vu0Za4hSWIF:u0ahLYu gڐ7f a.u9&t5^a4wh=xFӹ/0aX6jcD9%s]QT{9r0AX*a_¼YX&J2Ck#Dfe a,hYaX2:.cYd}AوbVq bv1He 4i4AZ @ d2H HI%/2h5L3H'C#ǥ׵Ϡo>wK er f3H ji6y8A kg3 ~h@Z[pMh54F#dьYGc4-i4Z1 ZYpi4F+o$5ȚQ ZU`ju5FcOk5f}\5FzV^4y^4A k5Hy Ҽi^i^4A k,bVkϵ.ѓ!(hPcRzFiwK k5C/v;3 k5Hy Ҽi^i^4Ak5FdyѼ6 k5y h^Zpk5F2 k5he^Wk5F* k5hu^ kf k0i^i^4A k5Hy Ҽy Ҽi^4A׋-t*.:=·JԘ/T'Aky Ҽ4v k5Hy Ҽi^4Aׁ0 k5y Ƭk5f7L1 ko7LWk5f]^-1 k5hu^ kf ko͵׉,A׉,Y^'Ndy:u"D D׉$unaSىVujƾ[m";ʼƷ&KoىNmH"D׉VujD D׉,Y^'Ndy:5H:u"Di,I^N$yfe^-X^'NcyH:uubr[ NcyH:ʼN/y:uy^:u"4:uDi,k6мN$yfu^i45{H:5Hy Ҽi^4A ku k5h}^Ek*{k|c"/Nd'jLdw;D krlH"ku k5Hy Ҽi^4Aׁy= ku k5Hy Ҽi^4A @׋-t*.:=: jLdwD@k:|kHNy Ҽk5Hy Ҽy Ҽi^4A k5H:5Hy h^,1N2]'ѼyѼY^c4Aטyh^Ҽh^V5\dyѼk5F^V5XdyѼY^c5[X^E9Y^c49{ Ҽy Ҽi^4A k5Hy-5[1ڼ7&K٠D~yؠy׼i^D@ k5H:5Hy Ҽi^4A @ k5y Y^c4i^c4Ak6:5F:5FЮD0 k딮h^,Ѽs]U"k5Ft;Hc:5hu^5y=ku k5Hy Ҽi^4A [4[{uؓ D@kߘ/NdN}Hy Zhk5Hy Ҽy Ҽi^4A k5H:5Hy H^_;t"y h^Ҽh^,11h^,1ׁrl5FdyYxk5򺚵yh^,1נy 0׋tf [)ѼY^c49{ Ҽy Ҽi^4A k5H>cyּk|c"N6נyy Ҽk5Hy Ҽi^i^4A k5Hyy ҼkOd,1 ku k5v^_|"dyѼY^cѷu"y h^+)_'h^+*5FdyZ"Ry -,1 kp5gAׁ^ i^4y^4A k5 嘡@kr$l5Fdyik5Fd帼46y נy k5hu^5:5y h^jsyy Ҽi^4A-5Z6÷&KD@u"2l5hm^5Aׁ hh4hh4,1sEigF3Ȣ\Ӻ4FAfE3FdьhY4WӈfE3FdьhY4c4Aac aкFk4A ]Z 2^C!C! i4A ap a0HC! {{tj! ! i4Aw)bN4y'z-A6=Yc4A @ a0FCd!Yc4ic4A a0FCd!YWa0FCd!Yc4AaS|G;_[iz$; ?/oḹo SK|GwPOz_xKO7>3wj%!{>`?í9>by5/੯n˝oǛӻnwW+'e]>q_`1m|hwO}͟k/7~]]^In=+Ɵ~7ޱ>?=z[; ~߯=_qq2˻?8k?y^˯<+/sdR?({xt]w6N?poi~>.lom?'s_7*+O_=?gte n=r_|L߲`~=߹I'8ɷ|=a_{Ow+:g(w7KӝxQ}/g~eS& Iկm_e.~oW+V_qŇRǶ.ti>`{?OΛo`}ޖ-]ƚ{z}Y/ޕ~v维U37םFg4ݙ]O}nˉ-.Wٳx'󥇿ןp\'aA;ēneH́+A;yY} Yz'_}^ݲ_~%v]n$W>X٭{m\vkOD /^-GG^Ǯ\ï}+c9W?P,?#Ivo?'{y=>Z0K|.gr0kxQ_[ү%*2S{1Nqys7?]f瀼9Pw7ޔ'G'u+~d6Ƿr9` )r~6_dhYt'Ŭ'_Owc_;b/g˩k?pBnxyX)Ḱ!g2 1Su s uzLZ^~<г&p}q_fr+w?zWz/kZ=C3fg~z6 r)Jtuw>xuIuR&t[43匨/DǶ-t9_UO~3ՔqL|_)/ao<7mK,s5.sVZm'cF_ƴ{qvq91yBOLw(s^yE~6nxM1-*o W%@wp]c_,3Ox}9Í'؞"P.JT~vm7s^HzCNqp c\~I^{ů.pX{+Fos{n|s\[GalY^2<ݾY3o~|cwNo/͍_}7Kn%NpyEnLo0hvowk;rז2#: 0붫/S79\,}Yg9W[J>v76R6bv,W|r~tn2ruyg=d7YGC6\13?ͱ?v:6^>sCS<;5~'I薗.E$ݟbg/3\<8Z7~|iÍfd;Z4^>DK?og{!fq 4X^N)[8rVq}DGnO5FvarI~}q޸q7ǧ_o~}G6~f=}>,o}{/W_{qoL}GXɅaVgfoq/Ec^c P]`j؝ OV}X;TO1yV(|%cOlSux̊W~םU_<"]{w#p="9O[axۯ0)o ݽ}Gk+ڡuy^O[=zt|LޤÚ265)Mϸʫ=>KyzW+UOOx pZ\~NN)~C8+};x?weēKo9U[m}{/6+oxWͷ鏼9]}vb: '7|)\2z)h;0ՅL"Ի~v%׏|=Ǎ{m9柟SWg4'\|wOgưt|^Òzrn8aP`v4GV=|kb/sʱYi +or´|h^uH9;OW>rtg/zxn/~+lo/|dz~~H8F ODž Rwklu_=wuZ'rKex//?_7/&3[]gߕ}KIj3ߍ+' oo9[du9/98wF=g_ߝ`_s#?6RqHR2s|ky]k˫0{]_Na{8։јڎxg{?aendstream endobj 754 0 obj 25310 endobj 769 0 obj <> endobj 771 0 obj <> stream x\}YDTsSf\2wGNffgPt?3 ʖ4ԚX(_aL,uْZHѥhlH &X19=޹,s<=y1;98'40psJ87t ^F;鑎psrpoq`9ah,.m0b^cgzO`'glj"D?VQHP"Rr:醖VUxsfhءbBհ\JXG3tQti~(aa$haH(4~7HQM1ꡠUp/d`K 0r X-: R*CˀSx Z(9 Acx?$]HF^Kr bBx FK{ M@Xqy Ւ?GAaPgaIH`*)l$RtHQ 2-|QQ1L9<):K@ʠ:0D 7t!\ŁsD0eXIO hU "A ;ge )@01Iu@RTpI438ag x_ 3x4?* Qtv.OyvN@=!E(<욕6V7Q:*db d\ `̼,)ฉ,G@Llxapr<0U,AoVAAD/7@1 #SdpR XIy3; 6W~LŮHVi(KkHȄJb*ah =\q>[ur \6s{`m} `TYo|$[0M1.5Kqsmc 'Rk,WxOGy0'j(;Dy<y \;s4HdB͓TgfEV`G j :⏬EMCmP!( UvT]**]qOAv(XFk'XBD_9uuacv睷 \{x|G"\ V YR1Vu3Vyٹ(e؁D4u乥'&KʆV,mu+V"tRGʩxfxlP>'0< >b;Q)tD<"RcHL[KF̣Sad A;YQ$?#K4bdi>"2v2%:0 AKA Т1V:F=x1  e`c:%ѳ%S"#c̙$?+? fdd(Fƞ;hFrd,co9IkMg|Zp݅./b4.O"֠+Ρ#.i4uqF >gX쇂YlP/, Qbk:2,v"E CBVp16>F!a\lG6aWq -蕭`J%jlœOڻTLSb }96rʰ.D*T;vKɃʄW8y1CU2v3ͼYԂ]1o]3ػbYb%B'Ezd{i5x`YB6kdm2mpPHAx ԞPZrLJ&8IH!,&oJ0Kd)0S48 3 V4$o2314Qfv2(xIx(xIz)*!NIs 9^.yEF8O:1s OlH'NP%2102H18% L1 u*Ω':e8G:Rёp֬]'4V$M: u괖&N:#ys9/cN΄s^N8Ś18%18%ɱ@'[:A1 x-' Lj4Ch4C9qKY8/% 8Q3E牬ddpK@xgG\\B"E"N;M ; pK:^8PqK9;^0ce ؤPd}^92t>Ae2CTIn-yalfڼuyi?rh_8V!ϟ! WX~hKޖH\ GX^L'ۙ *62"aТb-lB}u%n\Pkؓl}4ՏKRc"} @X>?p/f_Kw6#.T%3dZa=GVE׸$|,qp=S*["ܮ ܵ+7&Rf=];pz]גtP,E~#GiGlA|C<9eA`JEì%칵~Hw:FKN$eRުTf;IߕGMl1OqԛYd6v/rݶQwckldkG[M!L}u|~[,>jst֧5HEZVW& p"ս{nXRh8|ç~-պ=kܦ{WָVCXQ#XWOq9JނڸBZIm]ݟ|WLsH~%I~Bf/B_:mNo}|pN]ϘTx0筱r*F1A|N.rI⇌r{q "_}u½o ٛ408/ FL?22D~'l?Gχ^*,炲7t6vzG~jN\C'x%ϵK_U- ݕ'7lumոB>p&6}OTwYN*z[mڵeMW}nb~ [?## )PO.Ps8GIxzB_7*[HeK3bs_ύ'_"62F=1ws;3xߩy@\¿[q5s>V_7Wtb,vL 0K3wQe+7?pGTβ5 ^'1Ve kD+AdtЈz'7԰UՕ*,UfQVE(*xVLS'Zڜސ35hV7'NG W{WWlWvŊ)i&u국sF癍]h=5дb PvVQ岪Ǚro*ҍܔiGnr6 Ym3>iC&e_*62H7+5dJMuRi@WHشxgjvq(çy(jis|;Y,Bݡ(oB Wpjt3W=`uO=M&#mOM67t{MLPkP/?B]p{!ofME)׭<=I'OUi`Oό*S3 ?i=_emQc_?zEӅIpOjf\I|u4d1X[p6g[FAjHվ8 )e4_C9XLU-:b 6R$NRb}nzwiN7x145L...տMZ)'uS޷_~q_|SX'eu槟}SKOi`275_yrMW=Z׫~(I}3m- ڨz}G5Pю"bSCc{TE 5d{-#ײv&t-kӯe;m]˞H_^c@bTew11Gm}ti}eC7_HB^v[X9]N=p<jGĞISL&^j{%=Qw3vϭtG.]A|M<ؤbkbN_.8._ZZ@S -g`O4= ,ҫ:EXu?/h@594|N]q9j7/mw%[&e̙k!ޱ ]B~Nյ^9+k")QYFHW ;^ߡ] ;D{ɾC.K\Z1WtGt/IcLߦhRg^k^TZ7N60}\Jm%Ar#cTf;qv$uKr@]_%}i7[R{}wvDU9yzw#_zT2R;ϯf=ˡGT%&<&9c2=@U,+WKHkalC؎"?ŻIo=ff Yݮ'n k7~zUs5~ҭ.;wxzse#Y1R;sN0U)f MIrc3F]XEk]8G/{f-,Ng 6zX\uꋫzĵ{+}8 n&ӍַIW7Gu#_]vQѓܵxzv%[-?_*BEכ^)'g z{!)T_3tUbeV*׎џ|,go^ ɿW~sa|;7.j3M屃@eO6F~M_cݴvkVA OGO޿ʿZJ&$!5?}h5WKdeW\wm^ʾ/LψEeѾIb*K\zooKP^PLh]<7̣ƻlk`JftQ]? D> endobj 789 0 obj <> stream xmouJF@EbcͿg't6oyu|2:q8f0ZŊk|@HdjBRG 񩔄D&c$Zϳ;w6UB9su/kޮ­M}>!|o՘Ul>Z Q Xd @ߏL]W-WCP$#O.(VծB<ʐtUNYUΊYOJ"jW9ST0 9"4-u5IWkv Yujr5ꅮz+_;1~Q;fK=gī$MqtAW 9JlEtv.<uХ= tUrtEH*[Q'] U;+zN 9hlEt__e2'Vr @U$Gd+ |ϩ[%jUrD U5k9Gɫ]F?,-D*[u4 bhaW]:”,K.AvA6&-D!)Ԏ&uMG=iMYϸP44.T ]{<~\*9ʫlAuTEpTTEI%GMu-.DrֵQW|M]U?U~rYW*iu5Y׸AW2}j*I[Eقb9֟QW\t uU87퉂Ӧ=lAF;R"[PG]CF5C/H&%(쳮$[3fQBԫtuRJYGck{*&}H(Ů2])$mU$e q*&m*B; QR(Nm[@Zu碫+uԅ%ޢJGMh\]IW~qC~DMU:WEʸ殒(UwQ"m]$e oѕTrUWق:WV+䨫u/tkt ]]EWUQXe ko{"j.k70awVs|@ D qqd":Ȼtc:Dž rDeEW9ʫlAua=h*hbz:;tVڑd"P#6%qTAXD fc0/zl01JJZ”LAGd0kEقb9SW/tԕVق:ʘg*ƀhP_YEقb90UZb6 |P41,D "/*[PG]]EUQS_Ds3.NEܣ4UV]2_P# vm8ڵa5"  " ߰(I Z"Z0=*D;ZʔLA#m H%P gqN̪gEI0{1M | 0C)J0-"gד\E`z ?ڬ#jcㄢlAQ\//:誫lAuuT QBD;SMhbQf "ư6wX}5e J\nW l&# rD+^"$QwGd+ jGEUsyRQE֩#B$m+~x x¨hh!bz ])Y ~tԠWyJĪrJ@EbV=\g=BnԶlf!׋$9  rDEAW\e++, }+nBTe {n-DG]׬V̢0SO_ c?ӹD\EbV=\EZ%>Ì#B% BKAE14Θ`(VeY!!'t¨hh!b̸ r{qb(VU?] VAӵ y iQ[ah!b*8aLQ_W̮{o Lp ~тA!`=f$;{@%e=:3*8ɎXKLjh1d=Rg|*/@;l< u҂X-"{A (# rDuEW䠫Ρt2Xj@%urƎJ}AU^`Y{:3*OPL,$.C-Z(MUmMe-UϾiAV4< يB9ߦAW^e+ꠋk󃮱VԪk6 9ϑ#FE+F 2rS2bY يB9*Nh3ۃVԪK΍ihX$}U ߢ]cUW7vԧwz<ePϴƳ}; [Q(Ծjо;uU.C$jG9ORD00uG{*l^'y([P,ԾԹzIB;=¢ŋA{,r@%Kl@sգ?hbXB*a*jZTuUAzc'd޶ud+ ګmU5^jZ+ä|lV߽p,5Uj%ke_y?pL'L~Pdۆ[G]տ}J^]^~_w5iJSy8c )UEvym*X'd+ /$n_QъBo^t}~ﯶRX)WzdaTel?ס\rw:6]3>A}?dO}("+d&!+D TyfbG5(& :_hvXt1}?,pzu`Q""j+.! tGZ\By. JcI]Bs:I|*&pL7G`24gN ^롸 cy%a ]ŷڠİ s)3`of.wO|W🀴FWi#ȼG7š T~}g`  k5j)5LBۨA]xs!.wǠv սJ\pV۝~Ylx{nCz1Csc1 ca0.i-Ա'2XܕͼsB=fLT-z, &2OuY; *S`Ïy 2jkxxODY"b$K"ż^FTTEp">]ЁK\iWAsA'$@B woHDt$HMqc̔³^?![D"JT>t6;qK}C^8cfĜ7cRol1ݏ,6ۇ}Yrǣg w;tҟ{yȓwh*v>&&tn   "-@>jaON/BFph ^r8<^۹c>ڼX7\ ]q1%DetfbFHq'G[c王RKg .tJjp9RDI\cW0O1]8YrJڗMhѝ !>*1s!|rAŪ`зx'v(>AQVJt2 Q读b $ 3.6NHanLU@B/, HVRUV a\7_s QI"5 ( m7X ;eG^C41wLөgČyrG#u:B[mw2F̪1ө%s0w@<D7oE6fOWY@DQlxIdM`Txf|/%@P  9b/%@?&  b_J"+7#|!P lF`QK@{K5E+``FR(3^M[*1~p-|t/ѽM"/I|+uJ[c%:?1*J[mk؝}(S~Jƚ?;-qױ Xm2%ؽ &c !Ac_yn=bwd 4QSF{dܛTGR3GU=aV}YxM[Gn D$F+ojM7"M]3ݟϓP9Q;mZ -S|BW- cO dRxgmVvF%L鈨`yTe'=T[Ļ@Dvڥ5~s A7Yq0'?Yʦ?b2PM-' Vi 0%m'UY$"IPL;SV˵ډiYh+jXKT`/4Woi\%ӥf;21 HsvY@Py2=M`Z A#ތ7r 3}B _HjzDt\rF'JSBbF@óٹJvb(K=`4sctY Fr${u ,Bdw)HX]dĈ+L0[YbAg1bTsl&7顄9'Beh:)w}:fp/0x}V%{,c[YC<w5սM"${CDTdveHi!Ra!3%Nu"H̿D杘\7CddDzq9_YAI#u4Qqf k2 WTzEӅ%)08$G͖P Ϩ)6{ Ʈi<(\ gn 0ihJVޝ8!Q>K,rpXtKhqF9Fɘ|iRIR`;>It${C=oS&}m=H4žke fr憇&dw$$F54204E#ze"m;k ;C L-<.Pv%'38;:$=o4h= t.~2b"y~6ؙ]>NF$  Ĝ3䬴K23K9H$1ijAO!x9H\'aҜ1Г1-JeAB*ubs*A Fca`. zŒ JIv!h.NLΐzD v m;;$'͍7?$A%& skF SAHdF5%.+Ir59tC!gNF"A-8&9UأE.U|%0 2w^F!CU%I|kl Ε6݌ v"e?Y-카FEBL0N̼%j1852I 0sH'r.ȹH$$E"b1:@޿1gVj~iќKa\Ǜc&ݺ*j>kϱ|r}EnmтƝVl:n94wE"AιH@ 1ɆA)̖yc`X2́ u41&{`ϯ%owUF[rWDMv[ ,?䒉y\_ F\PJ[A.YPr3\N߼dsl.Qc6 FI$_ʥNQ3YKј9MJGԻNo315XQՋ>S; CnI 1  BtjcnPK㊬3b:?+qiS'64vz3_p3p>f|9$P5g,SĞ7F K#Ng~P]%/VCj`Ϩ)iuF!vA014cSRDwJQN PX g ^A|Pe;$ "[P|P祱KV]K9Q~QPZ@0DT#U}X|k4@7FtTdvfFEu!*Dā"J#Zf]ϔ{f3ͅPN+ř|xXWwfpEU߼o@|&[("IfU;1Uz^U==R o(h#顈ߐFP$1CvIn3=b4q\ zdALS=Q͊ՃHcIC)`س*~`cՐHsJy 4&Hp"rt n?N%UaShؐش,I:   R ilwCȚZ0RgP֨1W@%fTxa[c\^0uiUyo@*s5E!tĐB4pjjp񯂬^D_CČi1lͦ5IC$i' ;5[FLE]ƮPK6b_hVLo 1 "c_UkefYq>vIɠΦjAxf8xi^u.z$;|eĮBK$qWq`ޒ^tJa9C髾K/qMe I2 $D FJz6I=Lq;# VvF!*%Ucŗ/I$P(6OHW QψCJP=6P9' c?4$(uK6`"Avd1pfd3I7$nĞ,SV# >Sž kɉ)Ќ9מmYU b(b Dq2'쒍ik<Д'Dž5$)V=!Z̢ly'D[)J [av *doX#"\` N-fƭU4)/9i>LoFA H#l*ȶnCʝA\KO1ә?#FWz S8b x o*b>z%DL21mCڠ1*dۢ'Ydo uKr(@O-L[ HKpM.辖bkbP>ڣ#+%kRCX5Kׂwgo% ES3/Œi'#Y~ꕱL따%K\o /K X0YPX&J2,$5@+v6ͿƓ7V$dOQqc)OEЫ^h&F9 x 6t ֱŦLc͢6ob4opʎNi^t.ӛ)ku4u(Fc,x=b+0 a3zՏ^ f]O,RINAMcL.ɺԘ$b*b@댬G[ JIEU2A"cJ1R{$4c1y"d[%nwf)IiC[$:3k#rA]Г",7:ԙxoJ%T =DRduTļ*)0R,E2{J"%ٓ^Òk(wJ-42<5В!Ii f*$H %%P 暤R)[I3IRB$kdA̠ia$y-Cs=ܗ!KkT)i4-\' ( \$W~G"JUk Fݟެ)$ѨW4kj.*Ͷ`FЈzF0MF+_c/Mk-agdx 1ÚXf(=Y3ޓDcL oQSE$Fӫ@RM̴3m,;#37|Pf h=h_;'Ɏ3X9( (%xfVd@W2z5[İK2O*gl]qf|ˣ g B{48^%y 7-0.q%fϭ=GI2bڌ.]B|Ju^Li/A>5o97F{vfChfKðOVS}+@a/PK\˜>wجZۇ߾up-`%*7D`iL̬ u㠤1a7:R^V5,KPla|kæYa-F=kX7$Z ^am`7 -5za`73Pz=,%SOLaXp,Ǫ40yg<+#}>];0{C=sjc ><\*332 s*'9uԻbA4}\1ĈI΍6xX=7xyqa%;-- ŃO?n0Yb8ٵj,l+,v 0MR39mR8 Gb b. guv{]R&_~yʝDh4Uevn~&OfRLB ;׭2 H֮Zf]Pb ӽE^>g4JZ s2ΨZTQ[te7sEW^!b׭1"\qwOҊwOLHi fiK!bzcw ӗBDLhS W.0SX /'lLU.00.z:gBԃtPө,Xե*$/aZ+,)zf3ъYsiv 1YM@UG:6r:񈧱X2T3.ƒ]}zvwzr¬z ݬt-pGJD1a5C Ϯb&lE{*sI/Q# _`Ee)D 1&8a8a,)zqzRfztL=})D k2[Q-(#S4*[P]a;U]U0nNUU_5Qy3jѕQ.JUWXla.ގqUVق:je jՕ/C,E<fhbXf[UO}zFZ` ƫ&^(K!b'N :5Q-(#*΃BQWv(~rDqAW]e ꨫtn~ZuQcR[1#uтA!`f'э0퀀d"Iy^߳jhX0=]`Փт9)~pBLdp,zRz~t>>}}x}qYԥ0Vܵ%lCİ1v<فv-߳g@R>`Rވd^>9o$\Y>ӽw y,?\} zeY~(~[j8rDeOLT~ga-GT%@dK+ Q-(#貦UW^eN]f(jUr@ɦ#k7=ւlAQhlg-B~,* Ԫ(刪y*JK!bxz4U^$;ӂIp48%0M ä"^zWق:2EHYt W':nWt Sy7ԫ~dz83fQBČzg == ==K=LzFzL=oFGncMd+j^6tzKԢ_el(_]m-GTt?Ck9_b꣮VAH.^rqUWي:hk>(VƉlEmQţ+nN⻢ĉlEQ*[Q]; ˨$o [Q[_PS=lExz(FAPDetUxrY]~nx@`BX0!rE\<F98P(^p_"1qPɂy"xo+)M WcU~rJr ' rDuJ+<c0SO_  ]Op]EbV=| #Ѓ6% bёS_gS}^FY`}/d;ڣ9(VUZ:k-U2n͚Y$6܉;s'*2%Ƽ*P(#VC:*lEtu޿=uFVԪF~eu.Q#hJ1xq;״_.N8؍lR: D5Ќ YJN Děp'3*Չ꼣z8U]m-GƁꝽqPe Ӷ&ۼE+= ɹ=@`PAG[1igQъvEjNo֛ԪEQъBpY #e*i~D~FQh' 49׾-<ʮR}Eb^9+ UD &ϸxDdAh "o w%紫øìzp5^A Nh ScRC1( '' SV̢'ߦш/z z )+[/aqu1M EQgAS[e ꠫H*Zm4Tu-߰rl6-lAPt֌@eӘS0ߵlEP@8tj2Ԫ+rȼٹ0$sMGtFm\S35Y"Mo_YGk J;ɣI~S Gx"kLLQQi ^sx$JX.^7&Q5Qi rqm] {U.C"\ĉBgyRV*sYx/5'V76I"g2*=KaPJubXr^\2/\=1,(:rJC)YP5rkל.X0X吹yJԩfֺzkK˵S{k9rev1nxYTH.,3uȎ {UA(pj)sh!xP|>+S7#+%J!Da1GNjGX nƠ $'*NY;ѫ7Pp_n݄nfc&nxqT֌ po=yϝ宩νHX?UN=jt~ҩolAV|fW}P6ԥ~Lg>8+!̏eAfz-HR(Tl<~0Up0u8xT. W@T"UD`6вY7AG:7 M{\)DS%詑q:7f~ DeR-fꊚT}&1 Sj bb"0}PrSjZ>e)sZoX71z,1"^U"<%}BJ1XIghH)TQB]ݍ3:X1 2l0(NY)Q 4$(eYN Ԕzz7P*rƢ5#TXK>im#3#uRМmr-t,1Zc⅄qn(HZ%{d|VDxYj(IF )n-d̂6H"RI>1HL%R4Sdl䏒 ˆހ)z9VDߐ)`#Q )۪<LCZW0x4mYNʤ"Rc67#"[fuG,$ϣ!?ñefc% 3XUͭ d^/*d6/Ӽd@w5ҫXi5"H"=4YXVOyS$Iվq,6hV{ y 'T H9+Y{5.AМ%E|yRc=1y٘g+N&-I|#nf*N&^="G[G6jUVOC2ڴH@LZ1gknI, ~ʤ\$wT-PRIKߵ*I@iɕZk ȋ =%.2iIFLDc#1_m1)ڡDGtLx)50ݔ7;X I!A ⵛ*aȧ;qt(EAn'1ڌa߆n( ("~hPyEX_^M+xx9 ·7َv|,OF'#*fs'y:F>RK ?En枿BL+DD5^Z_K^ňu^;bxWneߘgaC3"b#XB#g(S ( KL>@yy]Cw`J zz'RmTT=fsE3B,qcm9:.C&6 Obvh ͢=S>Ra7!u^󢅤y!\%zWV &m -$*YE6[/:'*m )aA)Nцna7zu1?CJh]@Pd@L6\Y'Pxk`{ 9 gk)$8Az&Ȝx]@El6(3C:9&rxb._DExZLQ4^Y)DῢP#Κ֑kW!R2B2YlFdž¤lcݼ'/ K,}A64B  A &? . yF٪D!JJEFL1ZcAVBT$˨&WdZ iDYSwwQnT2I Y= HNW*ICG$3 Ftߓ 5@ !(aCU`/IzD7A?H:??a*Rma>tsy,K8qZ'+o$Q%D5Fs2 o˴"1°=5:ĄFwFB*d<,(` 1͡K Jp>'y5?ZpG͜7!ԃ)x'| ԱYKaќ7#})-24"$)QTjc"[>$ň/1rЄ:FL7 IҪ{Y<s5%D!K泌t5 ]p$)K#LSlo!%?-p#!.+90' <Rt)2Neh[.c,(tVU6GQQs Q%$D#QJ;!.h$xē8s*W6yHU˜ߍ*<}0+vxe\EXUN}xPI4^s P7 %h; c3o%DSnCQ8LyzN'G17}Wuv--U /%r lr g)l1Vt 15EZ\ѣ:zBkJM<7h!*1 .\u**B98dוּR/rĻI)!cؽ'As&*Rt QU;ۯqUk*Qe,(cT- =HijU=s*jRXnN4}aH2#-..jHYȷHϫ9nL˜ 99D:l&jfr1b !%dyScdƼ+4,fTRƌ,}\=$87mg$nWttiGBE*QǺ_l. y3 *(D޺XśY297{9.ʥDQzpJW$T#Uz{6MJ%ghz`\s>/?;94FOE #\"r]R $C]P&Ju2$w sw!w+:'w4rwa/ {k$mF$:(^o_5I9 -$x-M3]cnHP HNݕ)3rwD'eIp\EEv<|]U ݑ&Sf.R+?ޕ! Q'O, f1s;&vWɨh@'!v8;fЀjU}I1.'wǰaDrw9x;a@N )u癬"I&Umcԭw+@FYąoB1KI|aܘK ALu$JkBDI^ǖn܇s4"B@Ĺ/elm%ԮRJ$mi UfdEe㢘m{ͣmJɒٖFbW)a&q= J6Һd)$iH]ah!HRBh@R]S!߄4VF a~&*_H[J:Z)݀ "z v>dtnCF ocsØ/GyF527,jdncr<1*W7 (^¦+Xi* J"7ںމ8NMAkWp>ORɍIQ1qܘ~dnQM27AM277-,)ٻ Q tSR Tf2z&HgB7KB75jI{ijfh9p>7fl 3MѹٙJsT3>7/OB,ΰ:'A\fe]|n>8msRF%Ni&b\erAN薙?LF:|Bt9[ c|nuWs%'+ dskC#sM%N98[BB $8!!Avctn'?F6F:-Iƌm6Q:Ln$?N趙 ]͝F査 MIC#s6Cݦ0'sœŨN#s{T}8σ='sUrϫFȹЩ}.t*.w*wdN dL$͛qFRBy3+#r)DgY% 1`ےƥҸBHf;y\JTS"K P r< "U> D"7'Fb 0 rs6Ȉ\J+wSiG!߀ƕXLR܌IR\ fAgԹj2"݅ȅ #rN.< ![6K b- @[+ f.d(e0-CZn6E[mGFߊ9[Jemam'\ad2Emz@@$72 Ѭ?n}KG(W$'ަq׻"<b_BS>Z u"%?k0ģ~ޮݤdERo=o~{}oz}Ǟ@I_K dSf}y_‘/װg>:7+/ٗGP7Ǟ|G}sTü󵏢29 ?οߌ@u̳ooai_[m@̯7<%C!xohho6ox+?T;͏~T {O|;=>Qi+ׇ{C}IV;e]{'j6u[:thO;,.'VTao$M~Pa}tT|Ci{S֣w͡_]WR3 kM^?o̳w?G7Lx;5m{~nGzFb%]ÿox9o-s4f^Ojii{oF]l]zfK|Ӏ~8}bGc^nQl1>ٿ_C񎳏h0vc}كO~AMS#O}"׎;O_v׳η4ߝ3O#jKvo7i_qp<hsx?ʷ[ O&Yw?_-WI #|PrMM5c@̄],4G|5O@w.K \5$6&zMoh"Ύ.f~&2:ocvC[ٮe1[XysF ~:OuO_Aog.d_nD/3ỹ &Z )}j5>Eߡxt}c=t[V.oԥVl=幘}{W|eg=yB泇nc4sl.[ATzKOOco5,hڻ HӐ |.,9 }^mwxO)qgO鯺 &.6uS|x_> ov@+O9 ءakJqLi.%~ס5N+4s#_8a<g1_x^<6kZt`~??|֯K_yK;~~kj QKi导[oK\; $5~0ZEN?g?=o_?k|]ݟ-K?.Dc3>k/3fo;N-fJCW!җksxK~JZMZ>˩X{a +دЂa%g*1rCZmfSmwcN{ۯqU{tWXH_30kw. ϶ڽۈWvOM̼>w>YJֿ̍\<ŰRKqD%l]Սo>kX0_xl>~3  hAIi~w?p]euůQ~x(@}-u>}$ ZE'tP}V+dm܋n]a|so#Wd_G-ͥܫ^,_ln4y;MO]ıR2|zA_}VD a1@/z1vr{m|0o>װ}zoُC9;4ҝ'ނpP 3?E6\f-Ͻ4S8~'?ڴvbqCz+^.gkng,c\UoZ'_"ٸOJ/w7h19 !{G7 w4Ga =GfB~ 4MׇMn} Ob-grŞx'#vn#j+W [w=7ƻ! b#!v+kw]}dymJglpSBK=CҕtSKQ֞\i}{~W‘lv2ʩ;k{ځi۱M瑛vDu@-\M N S2W5^t99Cߋ+ sע_s&_< k|Y濊\kmlG,?wm4>[}-QrߨgߙQuՍ}|kfU9'g}s3N^&1wXOGD3=X֪&w~>ř_{_n'~6MN,g-j 3|8C6fo8[LOB`y/mss70Gmmي?V|E]\l 8[,_t{vz4ғ*>xg}x(7:27|"Ioݾ_/]FOsޱ[O8Eay(rf] |}Ƿ.-}T>Cvdy ?I,ka_4ov+%[c>N:h|oG~x5rjH{6o5v\=5zNIBO|蹗'9v[.۽ «b4sQOxћi?MkWec}{6sn?`LOY 7[!AXn(}o:|%ԭ}i 9L9 }+t: ea7meQߌO|]sEʹdPE lt̷\7%卫W5:hGTOSSH$?GuѿG!`c\\^MQkSOsE8䕜X|z}GnKL@@Ì~>C~^ua Ka[O[Y3<ϐ}̧Ӥ|},Ny~Ż0}գ?:endstream endobj 790 0 obj 25586 endobj 804 0 obj <> endobj 806 0 obj <> stream x}mGu_T7MVnIZm׺g&@7ݽ k޵]ЅRm^T)$R%0 MV o5%cch iڪus.HIwg3g̜93ϳӆ[\s=ιQfÆki7qA;icJ!Cz{6JNkRt>͡yӼʚK!mxm79i _ L>ṕ#Zۈyq% sHG-us| З wɭ@B\H ڱl0o c4XFkC,0qH(Da\ykؘ5h"خP-'?u,Meŵ>8{˛ZHS"r+ .t8?㾵i"&7˙F}9YP#t ?+C0r"=y#IGPA@T7ڨۘ}`ʖCo(4W5mCP R9ǕA7ǕSǕag߶SG/Mߏkݟs?9F|\VB.- hF `m xڸ06VCȡi|遅;|0qng)BT:hmO|`aAb|`yɒ\,V=z8@QøV:B'YŽL oA"b&,BLH;w| g t`kg QCqa<93I22L8Oh=%d0cНxҹmaYFA<h=F{P!m!R4&p1žI-i桐& A-;i=^(>tBT:,Ah Z C4KF&bv~x1O^('GJAoPۨm+mQa4ms\-u Ogq*@1g`e SMG-@Bq?ҷHM^>?&&[kI ;g~@m{6BNqffLDR1M5 u4[;4/-h|2~ ?TdZz-ȡAe?!NYGph^M0~Oh*r1" 6 @,Pht@gԶ`B(XMsX81"9mRa\MKƦZDUe֎n(P8Vlڊ][VPV -8+q6JZH3#y̌rMqmm%c]rìMh"e0c \t(?bO 0s1!iy~gܶK)Zx:8A+ C/@>2١v 1 U%hQ~6wԍlS瞷Jō6^Ŀi(f&/n"g %/{*s(u#?JMvpq$(2rhm/GzpмanS)BT:ĕ[x|gfQպVƟ҈JR*qK3)=8ESD1FU4<h=l0qnÈ&R4:ȱ!#(:rFqc+hCk7tz EO:GW*EP):8kPR@kk=3HFE,\h396)^NCk4B{!LU hr3ueFOxjlpQM) s3a 6yaB)a\qRL^4=  A'd:}P={i)$:NA<I+4spGJR*qo D:AϳAcN8 Ŏf ҡAt(ȧGi]BL]9ys۸hB86a]>mBB (k[`vB?fKS-Wm0_+ooS"r3 { ]!8qt5QہW<MFކn?7j'GG\薻y@DOܶ>P))m.y7s8oR(JuBk!/E:`To/E2&7b Ik߷k'@ T`?;P`]hMPX`蜡]Cem*I{TNk9h 2hjsp "Ra\_W!kiۤ/h;uB~=+_9O}A>3F߄wcՉ`1yKz ANz Ba7Hz Uu:vtŝ{թ.9z vW+3{ Vu➽oTa߼\Ò}o^;PB9{9E |4s R4HgsqL0a&}(MdhJa+qf+fr݀ XAo'Cp߻~Gvw>x^\U7p.,g ڭ={w73JWXry7O?m oOe|ƾ{U^ ?w8-uc>ӥ3'v *L 64qhA:DKu/D<0?{ u|+PA ۈ^g ؑތLp/{\"S?R^zf%G=@:vp=gFt1SnjWHywPO!ůN1VbY*HN$Ucg)\@.Vp};؟&H*ݫҠ9u9>FČ86Gwh v2iǧSD~ۦ;zɹҭK'CS3?FDS(yTPN U1T +*eǺb aƯ|b@O}w%󒾲s3PU1q7E/5hwb:,͌ȐpRT0 oH\Ȳ5 ݡ-Ͷ}vZ1ՋN;= "i?օ&\Caѷp]VĤ&eqzpt\p40A`p0"Bc0=QBNKӫ#j`zSL/9ȉ+L/)JB0[`:z;Q[sT 0kBcI;dJ/ㅸ ޜ Q|_,JK{ Q2+Z)oP: 8h1:nY1m=wl-'Egzm5^HqEDAaA~}(X^רPQzuQzu#Tu ԫӔBz&Lz%ujHpH9 Hh^zu@ֈ8Q + YVHȡA yzA1@JXHʦ`2 !A+/}3 xʸ;) Jnc^!;-S}(8ύK6O 8)96_7BA_~hy hƴOsxǏ$-"u4IQEmlBn/}3{Gs8Z1Da5-y]g&lљ-"gW‹0Th ޚW1|=i_/gw=}Ѕ5K5SA~aЁpZ:\1'5tvFّ@qP[o<0ƺc ?՗<v[CFжaǶ<4 [ƺΟ 7.-pnǎ; lZLc_ <<ٟWu{O<-@յ!3{2OW}KM[y<79{-)q&N\x qHv Jup a[+Nwj3 )"xdJU==vԊ20rj|{8<Dу0ᗮf0nj$ل]ctˆzS賻-&Kvm(-F6 X<,5e 7||'^ G=@mGҙWAA#bOiF׭I#h?@&USj,./7=j#Tå+a7'aG8/_gGt~2Qb~;sf :IZ˟cUPpl: k3 @O~dp( KC!ңϲx]/0x~w7=gYD80&^4Mи:Lw^5c0M'Js۸/>*4 |iЧ//7}p>JPVGh0ziv3Wv+ڪժG9By]l6Tv0|߼xhgn '[?^?PxC?x`8E8aԡ{jG5C޳`eWx6+w=rsz *B=ګOo~WZӿumC GةXv6/pƐdߐھ&J#:Sc@Np|rȻO=.a/Qcsx,ώU2Э*d3uel CFq.TDyldw-yLr+Zo=zO=~f7UUR.XZ44Y}ӻrE}'4p؅=y˓ۼ8$#qgJ=pr}1'9%v̗uUnỺW} Ch+OT6U^^RP&qa+VyX剽 rVNaɾヲG}hWuyV'9zUIZfk5D?, B+H0RIM%5"~li^s,nrKۺo6Y2^H7+O~&J XGctw}LJw,%"ݭ򆹦˖ྰ4 >ϋ`77$vX|N[VW)6)VY7;+|{Pr:Mscɛ;+xc?熻?7aES_8&âfLq95pNALC/aZm&nO+Z ='N.ySOxZ6+Qª.=b lan d]hne|B[w3 #t#Xa=%iKĺKy|%Jl@g;ՋG|nF:({vR϶_  زu!uقU!6!vrEaytwˤ>yG Ţu/PdFO,l"oѝ>jP~/XUX[.q n"k~[!0nH+]ڥ +u*?7>Oyƒ f2テWI%t;!. ]E[ E|%s'feJ.fKg!GPI;sU|ȍU{op?:O52?+P ŧ0t X?Cԝc۽ݞ.T-(|stpy]Qd'Oos05E<)ٕj_^iIA(1v˛߲978}}wyMx~f?g_c80ڄdB_W`J+Ա]JU-%Ucp@ͪ5V@rN$lY˯:nEKKYX/YS¸SUY#ȇ`IJZ~ٶ|04p_P8]sw{?.B!_AY ky$f˨sC6=A<:/?//o}v_?y尯?՞];3 r>/:j(EgGxE>K17o?TɘɄlNFE ٌavidSe&%8J,5 -+'L5G4ޏ."gl")§t|<::w|#/eIfjyA)-^-gZnW]8)hR/]uKU`YR6|f J`)Y*[ZEyfܥ4'˴r^Z×lmW&Ɵ@Z=wtyjy6 )ח2@ķ'K|FM=>!)ysݾnn%Y疤f/ F.>~|I*=0(Cރx3sw|1z7uf-߀&y}zBƻukڸ˜車|5W\\/=ۮ=~Mm[;ײȋ "_3 #%?z.B%Uï[Iɝ8qT=0^7@(N؎v> endobj 833 0 obj <> stream x\}lUTSX‚!HZSFb3M]QɺnvY%ÕE$_J18%Ȩ:|*nc,1L |=V@et=<߿9Ϲm~cmMM%?FhZMrhOBn#$nKJۚZ{4)J4𝦖OgjGC=TzSb7nLd@Nہ: ')Q3L1>J_;wx^bEXZ Jm>p?Wc},5sI$miL F{j Cx2U%xPX}Z@w36RD(1dWw-H*M.ޙv{=^u'XGrm%?a\D0'R̙YMg1ũ=ID +@TTo+ʔ͜j;ҙp $ Z(z*n_ bt-~p$B`}G/D|y|D',~綢xf<ːG}wWd!eTi^(q-+a3-K+Y; =<4*MJ$:XfRS%}EUDvRiWJF*ŽHVW_r3]b֕{V*e$V-G/0.!xI28 sA,X;X>aVf1?ғvUN"XbxV3@.V -ٕgX 5Qs2zC-(M͉ L0b7g=$R9iu,Mfq@Q 4pNQ=2ڌN[pxN+(,(6T覹koP-[0cg5pevXDl_܎/@(wh0$_X-~GƠ1Ě:Kgew:B9Es#ђRu@,͔~a>~(Y%+zчK6U ޱ6Js3Ćיbcq\dvzI8}^] rȡ5?36@N\n$f@_<-5AB9Q) 0W~i^׾pe)I),IDߏ9*kj8VD5Yg4-~AK8G*,]I)igP{*ʎ &@ *wݳ"(gՄvA859Bur 6Ye!!Kt3:np-)!IE&i%Ft$2On>Acؐ]+IC]TX8 H\ܺ;2`e HbCeVɢ{- &~E-AkMT)yq9RXr-Nck$d 9RVċP8s -tp'o:_$;A8\D:i;\0]6A1zI%AHU佰M\|Xa!Y^Fne3;3c_uqocW'DЧ'ϖfq25#!`D<=_0sQd0\uf$*޸} \2^qYUP& 71ty[Ż3iK!vhz(9߉SRspq1Vul? B% Mt;pZ BI#TBE6}R҈O -\95Tq&o.<"r i]:ݜl[@>R_S_* endstream endobj 834 0 obj 4708 endobj 837 0 obj <> endobj 839 0 obj <> stream x}_̧uR/ D/ꃊq_?o*rR@q85I[Pp+EW; )MEd7 @ 4pQ$@<;oo RU933gfΜ33gtSg3=e]Jm];ch+_rr\Fygcgqow>x&/ƜcCK i\=s \ei+zf&'LE/;5XQE5'~?~ᣟ>c,&Hx=}t6|\עCƴ_ޏs)kj}~-mc8ZqLZX MW x/m*Vd۴'6 ;-|fg]]l(xA@qe:VRr\AM{C(Ḩ0"qnBJ15d++ JYHI lȠ[M(+d[J cn+'RJJ*Q $E5&JJHJfeNY# l|HAiY)+$k3DJ2`Qr̲6iu@I%ZZ.6ׄu^C弥`R9e`ʢ&QP{ !/`]&kee(4rYe=w.wL\qSNJ U4Bβ؟ Qǖe%HYe+EDy R&%[cle8 -odQRuQ:vda,6 NR"RV>$뫉U)2O%( HUw_oJRJ2kbo*&zYl,c5 +aXHe4Pb%J)]/ wVj^8ao/"hl&E)I/jh}0Zj]6+&,|x1}īH*:z7€GfZS–uNvc߰N=8D5uDbj@]\tboD/4dn:9Q:}utv;nYwV⭣]ch' w2MT;QaZw]x'6 2"N 9 awÝx'1nw< +m;vxeD%ǻ.kǻ.Qﺨ%Zw2nx7Zx7zx7$x7Fᝏtݘ :ލYx7f~XwcލUx74a;ז \ s;܁wC޹nCw6svݶY<olx& fc[w s4nwMp0IxVw;7ܹp7 v p`΄xSN=Ʀ}lJǦFBQMO G"K }2WbcWpH%dqG9(Q+mC۵E{ '/! (p",lZGT "˩QQ"G[`5\p(td hfiBRVht(*6{0,} ^kԲm]i'9_ռ6Qd#ln,Gb8v 2oAo-Hۻ>X2zQpdgBK .ָU 3, Ek"G6ս [}sZox^}'?$) bn%'$H)괵LkfEn3Lս֕8:7Ϣ. ..瀺z"Agw"Sũ aVWlpHU[%uV=},Cbka?G8Ȫze.x%I)eT2 R;8-F⌈-2jä-aHcrZ"RQTCt Q>ZD,9z&=kO"Eu% XD /x9V1B: m]hWh]Ȋ]Q;CuػzIvL;(kE4Ʀ>s ͑['v x]Ơ,{e0!aHm G+Sё J]T0)ML)i d;8bWu5b}X5 yHl#Zej`qL$݀jئaey8v-le6#z[R8Ki- ޼*k5]Us_vKЃ.ZT@6jnCQZW]- 12jRz qR !yQb wa}^@͋ RA`(ef P( NV/],*8YΠRyIb{<4GST;ruG a0n%O Ij'SVԕgҍ;.8 EVɂt: ˢv'.mխU~f|gҙѿzj"vn5J)!R,U^{$0: aT}ιGQO[ҙ`t^/=(kBEAjZV`eVOL$!at`ˮHk`ՑgQvL>H\0( RH[ Q]ha"Et +O 8=[W~vHVԾLgp^~[EhȐ24BYG-4y->kqz2W2W~',H}oC^_wR 'v&zHKa% Eձ):~Ͻjr^~(޽CAIhHhZA) +%X̴qkуA G!!eE-(}q WIz{ +[j͡Q\,?(Ae%2z Q=ĥt(*E4bqpf~G3mE zNqdj!՞%"%"q?haX/u"[,c-e L p)8tbkb;(U0Q"ִd$T\84QԘ#} V>(8"heׇQä.ʣ]5(py(;'nC)n~Jp -X}7 .\(˾Lq*s~ȦyY˝6fzC9*{m+7U)SZRkd]&W嶽@&p4JHkT`)&`)h ף{ʖcHm-Gŋc›R^*]yje(=n2G^ x]6qo-Բe0!aHm Ga$3ck% )/ т̰B (h}ݵ0C}JGk!>XVkR8Ki-Òv<(&J#|AP423Gy׀AArEGٺw`2z Q 3^(9Ӊ(W5Y%"M1 m4Ɓ(Sml\1Tk -.X42Z ]ڊƃ!)%ekP`h~,y=F%"۸eZI l<2Qonm" ąu'L\kX4q 5y<ǔJD 86?LFR<:%{$y@< Ɠ'tّ>N}9.5>jY2 'h (AhLd pJݗf6Kwւ<+`M%[`[RtMxa-ㆨK@nPbG;:lYV-r4 *>y`_A/ʾ~>]*4HJ)ǼS}6Pdau5EӔpA](֪%RIzN)L>0(zJB^JxvHB(6s3\I x!#(Şhĵv\ׯ0gEJǹS( c–k`-Ze[S ݪ|(l:)>i)ɞ~%k9ɑ?U d[%;>ΓId}$&JXL#n`@;j($9^V@-Ǖe\K@6`9u[)d!B+[x Wh ,F D+h<8 !ZvioBd@_34qY.j^Q^t\ oSvѮ\yOA3،5`.&/©Ȥn_U[ PiS&r )55 J-f0`볽׬ʳ"۠`'` :/DMxM>!0,fASV^ڕ8_ ; &"*crV~0@(q{8,"C(mfO+uR](?kEEUf$2#ah/avÐ MQZ');kgY9{xhS{Jlxkp#dZ5ցk9"v` #D=Jnѻ=>CV'6vOF1[Zb U̙34M g˨oaF c"=4ҠЂ48ՕiRPL }j jm\g&q0 %wD bZ VBZl^j9K"T7]ð%Xd-73AfR(1-;.kZVXoDz DؘL:~wh' %s@Qp "Eţ^ݿX.>"^#xUFD}[  Z{%V(s6"`lq~d-fj>AcP(S"ܻ +?`%8D5= a@DLy}1Rͻ \A|C![%0w#] eeol [Q`@u~e;(~fP~,hʺSZ=zQ EJ ʭ(I)KGXP66fEnlAɼCD$ ٺX+Y7d4kpMrvJ"G./6GSƵXDZ3pc sb|kCfqWvĢ %,0KeDx$&.PFB ʞPvjIҢQ9$G\xcuFB2;l񺳣Ae3c0Sz0HŀH2,ei|9;8EYlLKc*lb1$x @)yxdY7{iniwoiT\I h?Ƽf%`-UX`r/ݢQlFHV֩-Kg;4@fι(Z3S\S@&H_3pVRhRx"Y6aPlME1 ^0wx )M,4jʳ1 kWg ӆsSL=OMWk:( ʍP.v H99 AN(ѐ*xj' j9n,1Zqf$b!.mj+&E'eQ5^xyO{k9E"Pe{R1Bz0v9b HߚkzeT%0 YsD*8͌JJߐbSu52!/JՌl3:ł>kG .6hOg 3XFFdV+EuZxziqDxz3x"+uo%w{`j͒9> \,>iߢ[hRmIxt-d4#mD>b vħ!#\]PgLk/=xxˋ8dGq)| Kcya\V'H~PgʰxmL^lC͔R̾\Y_e <]wn[;}'ZŒjh Aa—wr-Ui%gQ̶c歖SK41nҴeb NyZ"BEH?Z6G-'lrBsϤ3 NoIG̓lģTEeŚ(z Puwck!Oq`lUeqZѻnKLZ%3dzv`z,F.X׾ɒ_͚F*Ae(}.#;_8g 9㯵x"2#Ĺ uzCs 1kc}]KJD,dWB[sg KzkiUh( 6mZvL7 .P̃"׎0P%r>lJQ?3*뎧y쫐urv]:.XGdJ"Z5#afg2:̯~8(M/dz^aG8:HfDIxڐ$ "R(dw ns 7< _iP9rM\2qkP&l gaּQ&.6䄉g?in3iԌ͈kdx+Y?g8gcv|m;S2K6dچۢɗ:'@N tZ9n|m|kB?amo|G$V6vC?IsO\<٫]yc>|ؾp =O<@+{Һ^gdN4;>M)}Yb[\_N+wqky%V (K,ʒ6RG#w=yǹykDTg{}\wPb*AcsGVp!J7!+imY*[Z[չ0g-^GP17Лf_<>CF.#M)޺j;\}s?4'[W:-Cgo@[ yy^.\弥Է~etVc/k}PG/ˏng%hYdOPѭ'*XMgiL w){=3ns1y^/Oyb}|[~(C;o-d/j1p-ȟ89Xb'#<2?t-U5_[f/>o{3НOzh[/{芵)o/b^Ǘ=Y!vVչ(wø G㺍i|/Ic~u6vfv%/sslN7TLqnGnm{A^ֿŽ>m;Cw޺c_c!\nꭻv]C3_yiW~/|8ꮝ>m}^w˯?7t toxͷ͸o=ݨgRzJ-YB''+ϟ3;c;Tq=Y+^s7XxeRc'85"?AOoo6DI7_b4NP=-][ #G,~KWx|Cbz=y'.}swK%}?=`iڣIT ,ڢ:J=1l\S9n᳆F8iԵ6bЏ܆4ˉ3Ӗ-_}ߕ{oiK#Q)7}'ޏ\~Rĕx+^ <8q/!df6TNTpϚ sS|{MnUiUJ,_}(m_/| nxnggo:$~(VE&-ѡd|=|;}b?OER;ۯlg=ۑɅu(eN)DeMF=śRo唞8w"έbtc[I&n&=&'Y2Ns)R?w8Wo\m;gZՊel*1 h?B kFmm72jLFmy=[kKxߤEnNuVJ{SRoޔ)c0mbO Mn dU槮(I~ej/u`};0 >Lrpt8x]ܐkl1JfSzsձbuVuK7X:}穸Ǥ@;7 ST+[?X3x{n;ŸnQ/~ܐ4:XI3"nƁcAΉʙ ?3\M%T<f*\6BK \nW.$Kk*W Q{|O:@&7؇'݉Xw"Οt'b7owFEԯR67RvP^paeRBvO@F!؞uخb{v/PSwvP}FFtswl-WTaz]Bj5[Q)9}lcCdmq̪.D=.ٚl={+w%>_4=>YwS#٧^wZzJwe<Ǘ/> endobj 855 0 obj <> stream x\[l]ՙBFA% @ѩcڷ)؎80$lӆR iq %S *ipZmhat:R_TT!̨/]9'qgFH8{}mT;гԳT!3PVZ!\ZHþ&q_\/T}~_ IVTM(.l2̲|n~zb0 ީ)Vs_F}xhY? ׋r{$ԣj󓣽gŨ8Q]zؖZ C消[('ػ1]?H=)OCӃ_:RآA5m?GS#E &6=;6Fijaŝ9'<ԇc\#ͱ7{Œl% CyV!1ys .I&/) A'2[ 28!NayX R Cbm8.-*rWl&׿УNG3RQC8ygݞpH4<[@r?6& b5m^ CG瘁Miһ3P&iq[*FbPטX5 W=R`K3H' X9:˳7{>NH')56}i\R T@D| Z0!>.%E<d+LLO-jDŽd36p! ybth Rzxa>%R"d_|vO*ym ֔dJwHZUxļ9&-Q5,S=f^ E6Qb."}dU3,HY!^N}Ъa ҈ { Ȇi,Ǡil7rxV'J.T2(](Z\2G&zdC#vkڜy 3"K341^Elp1[5v ~>VL)uek_˟ y g&wo%ؒFr571\w/]9<*Q?s. G\0LJd#F D1~[jⱅNzu)Kf"WhL ,B}(L0^Y`%,_ e8y\5y!TE-ɖ&Oݨ 8ء"BR#o̵<~|P:bPǘ&@rv?sʨؑ3n v_SFÜnfhڑ뤕P+,v^&6s8+FR:;<]W&,[J,@HX_[~F`d=HY]bfʥ8O^֐&Qfi(k |c(xɳYGl98II%8*{!bT9I(3T a~mZbϽ٩A%hi!"ʍW(+f4*;4 *;N縭{1mc2Rs|5XNr^CUpiy6d'“mGUrĔF%٤ûcfLO vm4r㾛 rbzAqc1w61¦|kroYv!G1 L9>TzďT̥ŏH%bYeaȅtrt%pB'oc3BF d32m̾ĆI>|,6eȝޟ.RE~QbYyfUI' K ,Xg%ʖ6(@ዾJqy$6&_)Kl9X^a5MbԱ+uqI/6-qE&l8S+Ѻ=JPc1YFΞ"8y{kչW=E?a{CR91W3yi>;+얧jOl~-hkS|}{k'#WVЯ<xEwnnE$ole[\,3|Q,*S'Fk|c,LBM8=01ƱV˗z[dF3,6W>AQ&2;8&g|& a;=ʝ(暌m / S$;rMaaͶЀ_9ϾTu'{ZX"U}3ǟDʼLΏS"$h[:Y[U*@&ȘƵ<ཱྀUN-Ow#dl/iL M;GdrD ;K`f'KeOW5ORg~;SWIwٯ]+NɘeQ7V!k $(ϟ58NU},l9,9cC( +8VYNm_6"*\EUT%(Af>pnQɑ@ߖJiSoX gOt4nut YOjmmpBH>$>Hҁ0!)A|_ǰՋ?f'Cٹy4b-tqDxTms$UKkD} !|IGv_"qRq@EBx B%c"֏C&ZE":)&zJ`q#bp:Cb]2G>N+٥{6ϡNjyi)Ύ`8qC$$taS-vhhKV-f,)V=<ҁ.RGR^otV3UNC0s6,V¼]*j/ !Sb@vKn#UV)oubMbz}r;en?͔":y+!>4DPG KA6Jsiu+6Abpohh[S5D/SDUiB pRPvʆiu;d545mTAgk}wDQLƼ_fHo5%[qτ86tBНx]ԮLѴ$#nsAj.Ɗ7'v)CkZ:U1 ̡aHE72 _XO;q[,,"|nK^$V.!AٻGLD289h^' {鲽!/ÏY\!.w>ރ?yA!KF- JEe1 8 &ג[)hXjC@nI =vX***,B&T]$Tj?Nw : -@B]dIR~yqa',V^hDAC\CaLQ hT,MhnPAnAAcB͞ O/J [q(y%J[m.YFVny~WݗXl[f+ez".+ĈPW"$$|=Ke%E%htwBZsuEE|]ufn:tWь.EbbfڀS$3,6?R=x;$%^b#=v/&oe bQ" FR`_O" PѦҹWc;JPg \dAZ|"d(B/w9%Yq&$C٩XHZ-hj%RAzF;5DИ癩 2_+NWL$.xz$.j]7 Jv .8CKt ,*nmzJgmV,RzY-BfʝtV2((Kft!f:aJEJIEatPJ;͉J-a |]mr 8 RoXH_k16\'f%|@6'p Щ& GsX٭Acݴ͆Fby-9(/='a(~{5M{~OiHlLNJ^ᠹ@XQmW($|*C_"e%}k2&Ժ43 Ɵ]vZ+z@6 FEJj-9Ou `R!+І@2t aLNvqZ~s1d 1܀WpssIv.Hqv# jnۯwdO 7)qCܮ7-g|Wբ h0/s+9ߧ# 5X_,1]ܩ^ӳTϸ>1%}L:r? =v]'鿣BzM0Eٵ=;wy ?v>+YԗOŢsQ:i֥sio,DH[6' ɴYԸ?Zq wPOi8D(buа=E[IsU[$8:>A+9O唸>KbRee aMI_"8LIо ߶[l!=:"Ǧ[k{&шg~}o~۵N'j&w[os$O+ؑ &a㶱=}(#Cw+iXP.aSiac@==Jendstream endobj 856 0 obj 5585 endobj 865 0 obj <> endobj 867 0 obj <> stream x\kUu+M\RiE[]ٕzt=*OIZ:|Q `ߙdfa'qIm&&n1`PWRJUTUiUU~׾g{9ko=x%#gssL>]TKzZa'!D$IJ}kSOuqR,j:LJq]BP`qc&wwQ$7R&оFu_TVgaeb aWWhcYLN^뫳[=B +Đ+|Ga#w?h>E"QğJ0y"OE_~Ԅl,dRoAV !H,!)))v,|5=":4?Cz^,]=*}GD,5J"DS~Sq JwhXRڛCiS>5$;x|l|1 2J1D灵 kHzLځ)ZS^6 /yr?҉ k<^㞩 X azJOt</вN-FjYIjѲXˢEѲJU#A$YP*A jwTHSK2\J, /I>e\Rl0V"fƧFF5o4Hл]K3Jb )SJ t+ vS0V pc3Y:"#| 픙9e=B0=(YT #P{-:wv62$U/J.y*=:eYD0ď9aVVbA>pz}%)jQbV%qwۀZЏg~sji$5|>&%\FNhEq((AԾ:O(S8=gV RSޖ"^A|xÍ嘇[RaWM%T^0} m_c3 /(aL]-8PnB49Xp9+,49]K }sNJ’ԠRX*%?t"YFb>Z +k Hc$JY )86>TXmnuHx#Ʃ͎.~1lFmkmV;JYV&%WŊq"d'BgMsmy"'R*|q$i<xB^Q%ܐdhMIG`B @{QNqGH3uh6=|}BJX7#g@:S>%I>$:%!߮zRܛo!MzpxǫyIY*uL%ĥb4Ż\X)Ex_Fj2!=H/20]i^J5HBJ2IZ<)H ؅Yk!^ j_j$ĞD{hnXyON \n I}T\,)%əbF9SƜG6S@i00f ܕX"8L8j<)!Jy,0Ö3X]-k-&><+ցt-3 At~=OYqbf{Om^f8_| c4݀ƣLv513&ySVr8"ΤqׁG,RAI"8XdR}_j2b[:%Evռ!B62fh& ց^u̦`ό[k>0XiT7SefYhSS軋bԴBNT7 {*M˾Xq&%R{PUp9R!Ν*=\ElgF0K l~Q|YKPNݔTA;ՙX5m AlFgC|DS;!R w8bF;U셥?Fxݝf}=Jxߗi1 3=I| '֝|9O]Phboq/=/c2L)>-̪Lw Մa;R 4 :FznA <ϛM<)o}pJ>8/ 6 JjۊļOY(IЏlN0 0h@.NnD5?CC8C]Z/h6k QI0 Z Q GW>YjQJH"'Fz鮇Y"2F2fD`M B,.̕Y]cɒ1gl"xm0D&\X^UL 6A&mv?nlChćQтgA刓HсȖMuB\z勉m__~ҹ~{5tn[| m؛W} "V:Ry [\ѽ( P 3yyHwpb6 07H<_BxZe= <$mgaݯen8!86Ibek͓;yH<p6oe-m~үpIZXCCܜ4ǎUW'N{7C$AD?Tmm3GΙrgFšllj`6:x#Դv{xW'2/&k +h旰`(: ƛ֪2unݏ׫m_S;tndC>}Wy|!|w|#3ܭ~ H?k0۲;t ^ ,ORs&)ӂƶ55hxE8?Hail2;KFG,'yV_Fi+:ȓfw}#tpƎHF^Irݞ.@VƋb 09sy3|=^z=loYa.1^ʿM2+T5E%H+ 2,Y m;/Jx ?֤ԂP-~XT ŦǪCp5DQq5A [y#׈4xljQ}[UOc,~f8mꑬ<9,ִ.tg_9B~S2 {?ہ uzuP^ 3(eM^r\C3^ sor^ St_Xn~Et0pz1JqVS81kuoa[>τ}BG\ל@霆[#{HGu*o:O1tp:>@28NRk/G'۰_rX|h$J̳=_Q2f,+8ƺq@;r^3%s3MJ*+bV>x8ctvrV :&wΑs> endobj 908 0 obj <> stream x[oTVR j)ՊbZ|g;}l86mack]% ^LN"%U[D'786ʟڦUTT)/;{w~;ss&Fм?su[(+ԉ)?lQOؖL뒏}qN%Kْ3"M{6GO5Zx_&Uwmx`ݒ}ҡ6ߺ?8r_#3l4wv|6Sާ٘ 5}yC?:!dO,Np}\-Ӟ,+2}^C7 l?W鈶!*xߖ+^ꉹ|%Nay?`2DʠrvϦL[tYȐzٞge}Q+r64Xlώ.]#\2tM  ydӥ!C׉NHCiLr-YmZ2yfBSWPl-%և|j|ׂm"5O^<4וπ\:hEP!C!P+W燂,[l1Pqg~b+ͤ O |LL6MN`ҢǾ쉁}*Q#Nmn(-‚ Z|vw;~C \1 Ԑl-?Nc|瑹K]E…hmS4kwSW4p;%~񜶔hk(l =< ':HY(s?l_&mB,g)ІCg1d"@4Zt~L lM5:,ƕ\n| EaA%~4y~7K^q}>8S/Hw%<; ta]lf،/7uo<6da($Nrbfd b/1g8G #à;yzR5:SX,Mwm`W븀~hKXNCס.l()e(KnA~4bgC#⧯#P:4C6ķQ 8T"Qd:(|xKn-[b/ӕ|XmFXUSX=翠Aa66./ARt9e#rmbA~A#0|{_GS(#jN4}"Xw(ۖwpDgq6U+;BpE_UY՞-eկH B*S]*Q*Hܠ"=șvAw-=\$LϏꙖC2|`:,meP%I sUO!fJ9ݓ wP|FZ_IB+ƫ,qm ך@$!FA_6 | &+Z VfClHCa\Q1cEYn.l"X3:V T-\% hO״qYAyFu547|<rp!^h(X KJ$9< Sσr!@3E87c} 5h{k~UO4Bح gӓq '3ļzCaQ^V RZ8蚏 HC7(Gظ2C\U! gVnLyf-<5qկo@h.أ-4*8ԙ!`c[ K=ߊS)"28!?"/xĖ-CtiȷT& 2a+IEU\c%)s 0U]k,vr3ߔ, 0 w% s4BD]C_;xDMqX1r `okJזuMI' 8G'EpL6ZE6_E 0˱B.Edyr2lX>rp/ĊB¢3 L]?W(%P> [ЁV-^xgk|+D 7S'!BÌ: `ORY+wO^3"!߆*2Qu7=5adEL dA7G?"WeʧcpV SLF Dh!@ 8ڳtPdiPH؀e M\ZQѡ7o=:s]50¶bOk1"@0o0#vI~Yq*'9 82tJjXa~" XIb2j#Z_ 8jfwBJM7MT0CSdv@eY=S"eTۙKtI!DH{A&ҝ(| Cdءx( :  **HtIѡ>Cˆ~6-?=3N6>JG3*&خ`N] C| 0JMi5|XLAh&ԑWWيOrKDV¬0glhFKW7`RJ`AH`C| c9w,!1(; HR U<ɮ{}"fT%]Wƒ^֊iuH7S&4X?^ ԄR_av ~HEUXvSd~= u8BPGҝ {o"k6 p5R;7P壙0ZB#ɢ}rvav#Z88R|n=uq-Iw]ab9|h+il}Qu*AY} e'Ұ@+%T,p&B c5 ' ziigўmkO偸t"5|I(NVfSuLUXE#0LT?ڋRSբ31qc/I "+):;p1(Š$L;kf%::w;yNendstream endobj 909 0 obj 3449 endobj 921 0 obj <> endobj 5 0 obj <> /Contents 6 0 R >> endobj 257 0 obj <> /Contents 258 0 R >> endobj 348 0 obj <> /Contents 349 0 R >> endobj 445 0 obj <> /Contents 446 0 R >> endobj 484 0 obj <> /Contents 485 0 R >> endobj 534 0 obj <> /Contents 535 0 R >> endobj 562 0 obj <> /Contents 563 0 R >> endobj 573 0 obj <> /Contents 574 0 R >> endobj 624 0 obj <> /Contents 625 0 R >> endobj 642 0 obj <> /Contents 643 0 R >> endobj 653 0 obj <> /Contents 654 0 R >> endobj 666 0 obj <> /Contents 667 0 R >> endobj 680 0 obj <> /Contents 681 0 R >> endobj 694 0 obj <> /Contents 695 0 R >> endobj 704 0 obj <> /Contents 705 0 R >> endobj 715 0 obj <> /Contents 716 0 R >> endobj 722 0 obj <> /Contents 723 0 R >> endobj 727 0 obj <> /Contents 728 0 R >> endobj 735 0 obj <> /Contents 736 0 R >> endobj 752 0 obj <> /Contents 753 0 R >> endobj 770 0 obj <> /Contents 771 0 R >> endobj 788 0 obj <> /Contents 789 0 R >> endobj 805 0 obj <> /Contents 806 0 R >> endobj 832 0 obj <> /Contents 833 0 R >> endobj 838 0 obj <> /Contents 839 0 R >> endobj 854 0 obj <> /Contents 855 0 R >> endobj 866 0 obj <> /Contents 867 0 R >> endobj 907 0 obj <> /Contents 908 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R 257 0 R 348 0 R 445 0 R 484 0 R 534 0 R 562 0 R 573 0 R 624 0 R 642 0 R 653 0 R 666 0 R 680 0 R 694 0 R 704 0 R 715 0 R 722 0 R 727 0 R 735 0 R 752 0 R 770 0 R 788 0 R 805 0 R 832 0 R 838 0 R 854 0 R 866 0 R 907 0 R ] /Count 28 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> stream 0 0 0 0 112 121 d1 112 0 0 121 0 0 cm BI /IM true /W 112 /H 121 /BPC 1 /F /CCF /DP <> ID &ː'/5 ,4_aV޽x~{k_k^__kk^z_^_]zazׅۯx / EI endstream endobj 11 0 obj <> stream 0 0 0 3 102 124 d1 102 0 0 121 0 3 cm BI /IM true /W 102 /H 121 /BPC 1 /F /CCF /DP <> ID &t <#PP[M7}7=_Ao_^?a 8 j#A EI endstream endobj 12 0 obj <> stream 0 0 0 44 54 123 d1 54 0 0 79 0 44 cm BI /IM true /W 54 /H 79 /BPC 1 /F /CCF /DP <> ID &0t AEA3 ?i7 0/upAd2uc p  Iz%5yy@u'!C@ EI endstream endobj 13 0 obj <> stream 116 0 0 0 0 0 d1 endstream endobj 14 0 obj <> stream 0 0 0 44 61 123 d1 61 0 0 79 0 44 cm BI /IM true /W 61 /H 79 /BPC 1 /F /CCF /DP <> ID &C DAC 7>oIA[}/ k_P w\:\5K 8!~@  EI endstream endobj 15 0 obj <> stream 64 0 0 0 0 0 d1 endstream endobj 16 0 obj <> stream 0 0 0 45 53 121 d1 53 0 0 76 0 45 cm BI /IM true /W 53 /H 76 /BPC 1 /F /CCF /DP <> ID &%[ a? o[ xw+%`c EI endstream endobj 17 0 obj <> stream 72 0 0 0 0 0 d1 endstream endobj 18 0 obj <> stream 0 0 0 1 18 49 d1 18 0 0 48 0 1 cm BI /IM true /W 18 /H 48 /BPC 1 /F /CCF /DP <> ID &߇~~y/T( EI endstream endobj 19 0 obj <> stream 34 0 0 0 0 0 d1 endstream endobj 20 0 obj <> stream 0 0 0 1 110 124 d1 110 0 0 123 0 1 cm BI /IM true /W 110 /H 123 /BPC 1 /F /CCF /DP <> ID &ji "`Y B"5#?A\ A cA}_^ /߂)&<v {^ap?m{]ypI O_ |0`x2' o*/d EI endstream endobj 21 0 obj <> stream 123 0 0 0 0 0 d1 endstream endobj 22 0 obj <> stream 0 0 0 45 80 123 d1 80 0 0 78 0 45 cm BI /IM true /W 80 /H 78 /BPC 1 /F /CCF /DP <> ID &C?0^AA> o<- n~WrP#m_  EI endstream endobj 23 0 obj <> stream 0 0 0 7 31 121 d1 31 0 0 114 0 7 cm BI /IM true /W 31 /H 114 /BPC 1 /F /CCF /DP <> ID &&Xk / ?l,P EI endstream endobj 24 0 obj <> stream 91 0 0 0 0 0 d1 endstream endobj 25 0 obj <> stream 0 0 0 1 79 123 d1 79 0 0 122 0 1 cm BI /IM true /W 79 /H 122 /BPC 1 /F /CCF /DP <> ID &H ?.2ADL #@AAAh Å߬xH0O/Kxav=5 0` Ax0 .AT3d@ EI endstream endobj 26 0 obj <> stream 45 0 0 0 0 0 d1 endstream endobj 27 0 obj <> stream 90 0 0 0 0 0 d1 endstream endobj 28 0 obj <> stream 0 0 0 15 51 123 d1 51 0 0 108 0 15 cm BI /IM true /W 51 /H 108 /BPC 1 /F /CCF /DP <> ID &N W >A>o?2H5?} EI endstream endobj 29 0 obj <> stream 0 0 0 44 69 123 d1 69 0 0 79 0 44 cm BI /IM true /W 69 /H 79 /BPC 1 /F /CCF /DP <> ID &C ς"Ę@H]}&[M&}&o o_p=va[i[ivm }2f EI endstream endobj 30 0 obj <> stream 65 0 0 0 0 0 d1 endstream endobj 31 0 obj <> stream 133 0 0 0 0 0 d1 endstream endobj 32 0 obj <> stream 0 0 0 1 80 121 d1 80 0 0 120 0 1 cm BI /IM true /W 80 /H 120 /BPC 1 /F /CCF /DP <> ID &ԃNMa~zۯ xb.P?1 EI endstream endobj 33 0 obj <> stream 126 0 0 0 0 0 d1 endstream endobj 34 0 obj <> stream 0 0 0 46 80 123 d1 80 0 0 77 0 46 cm BI /IM true /W 80 /H 77 /BPC 1 /F /CCF /DP <> ID &x5?|oJ?H7 վoX}x[|'[ׅP=q V EI endstream endobj 35 0 obj <> stream 69 0 0 0 0 0 d1 endstream endobj 36 0 obj <> stream 88 0 0 0 0 0 d1 endstream endobj 37 0 obj <> stream 0 0 0 3 92 121 d1 92 0 0 118 0 3 cm BI /IM true /W 92 /H 118 /BPC 1 /F /CCF /DP <> ID %oMB U/hi M|~ ~~_}z^x% 4 wc&@  EI endstream endobj 38 0 obj <> stream 148 0 0 0 0 0 d1 endstream endobj 39 0 obj <> stream 0 0 0 44 70 123 d1 70 0 0 79 0 44 cm BI /IM true /W 70 /H 79 /BPC 1 /F /CCF /DP <> ID & < h<&D =C'?L4-zQj7߰0upc AT U[iv al@b 7D@ EI endstream endobj 40 0 obj <> stream 105 0 0 0 0 0 d1 endstream endobj 41 0 obj <> stream 0 0 0 44 61 123 d1 61 0 0 79 0 44 cm BI /IM true /W 61 /H 79 /BPC 1 /F /CCF /DP <> ID &C K C @ &oW\++kAO?߿ v %0Da/! EI endstream endobj 42 0 obj <> stream 77 0 0 0 0 0 d1 endstream endobj 43 0 obj <> stream 0 0 0 1 78 121 d1 78 0 0 120 0 1 cm BI /IM true /W 78 /H 120 /BPC 1 /F /CCF /DP <> ID &Bj +L,5^p^ׇ_]'K?a{^k7?oo~߿5& \Րc EI endstream endobj 44 0 obj <> stream 66 0 0 0 0 0 d1 endstream endobj 45 0 obj <> stream 81 0 0 0 0 0 d1 endstream endobj 46 0 obj <> stream 0 0 0 44 73 157 d1 73 0 0 113 0 44 cm BI /IM true /W 73 /H 113 /BPC 1 /F /CCF /DP <> ID &k Y5'oXx$|~IoX}O5u 붂  X</.E+'z (=@7xX| M_]A林a`0b33 !k` EI endstream endobj 47 0 obj <> stream 0 0 0 -8 38 165 d1 38 0 0 173 0 -8 cm BI /IM true /W 38 /H 173 /BPC 1 /F /CCF /DP <> ID &ikKX_z_^_k~}a{{x}{{x} EI endstream endobj 48 0 obj <> stream 137 0 0 0 0 0 d1 endstream endobj 49 0 obj <> stream 0 0 0 3 116 124 d1 116 0 0 121 0 3 cm BI /IM true /W 116 /H 121 /BPC 1 /F /CCF /DP <> ID &Nx ?k߿ J?߾ao}zz ^?WX+߿^O>|/XxK@ɀ EI endstream endobj 50 0 obj <> stream 50 0 0 0 0 0 d1 endstream endobj 51 0 obj <> stream 111 0 0 0 0 0 d1 endstream endobj 52 0 obj <> stream 61 0 0 0 0 0 d1 endstream endobj 53 0 obj <> stream 44 0 0 0 0 0 d1 endstream endobj 54 0 obj <> stream 0 0 0 45 80 121 d1 80 0 0 76 0 45 cm BI /IM true /W 80 /H 76 /BPC 1 /F /CCF /DP <> ID &ԃNMap׶V(_m/ @:  EI endstream endobj 55 0 obj <> stream 79 0 0 0 0 0 d1 endstream endobj 56 0 obj <> stream 0 0 0 8 63 121 d1 63 0 0 113 0 8 cm BI /IM true /W 63 /H 113 /BPC 1 /F /CCF /DP <> ID ɪgkl?w?o߰o|6CLoooxo߇(' g Tp6޻Awl%vK-aᅐ.@ EI endstream endobj 57 0 obj <> stream 150 0 0 0 0 0 d1 endstream endobj 58 0 obj <> stream 0 0 0 106 15 121 d1 15 0 0 15 0 106 cm BI /IM true /W 15 /H 15 /BPC 1 /F /CCF /DP <> ID &pqɪXk @ EI endstream endobj 59 0 obj <> stream 86 0 0 0 0 0 d1 endstream endobj 60 0 obj <> stream 38 0 0 0 0 0 d1 endstream endobj 61 0 obj <> stream 0 0 0 -8 38 165 d1 38 0 0 173 0 -8 cm BI /IM true /W 38 /H 173 /BPC 1 /F /CCF /DP <> ID 6Xrjxoo}{xo}o{{___^X____* EI endstream endobj 62 0 obj <> stream 0 0 0 0 95 102 d1 95 0 0 102 0 0 cm BI /IM true /W 95 /H 102 /BPC 1 /F /CCF /DP <> ID )ԁ ,4Bïa/x~~k޿p޿޻  wh/{v ߽_> stream 0 0 0 2 29 102 d1 29 0 0 100 0 2 cm BI /IM true /W 29 /H 100 /BPC 1 /F /CCF /DP <> ID &.`'x EI endstream endobj 64 0 obj <> stream 103 0 0 0 0 0 d1 endstream endobj 65 0 obj <> stream 0 0 0 38 54 104 d1 54 0 0 66 0 38 cm BI /IM true /W 54 /H 66 /BPC 1 /F /CCF /DP <> ID &\|<! A&o |'Շ׭ P$Wk .]^zvX0[ %_$p EI endstream endobj 66 0 obj <> stream 37 0 0 0 0 0 d1 endstream endobj 67 0 obj <> stream 0 0 0 38 53 104 d1 53 0 0 66 0 38 cm BI /IM true /W 53 /H 66 /BPC 1 /F /CCF /DP <> ID &` 0F> stream 63 0 0 0 0 0 d1 endstream endobj 69 0 obj <> stream 0 0 0 1 61 105 d1 61 0 0 104 0 1 cm BI /IM true /W 61 /H 104 /BPC 1 /F /CCF /DP <> ID 0 `ݐ ń@ᣨWH MaO7|?PeA~_j4edu K -aDeWD4QYN, AuD"W__T__\0a{] ^'!@ EI endstream endobj 70 0 obj <> stream 108 0 0 0 0 0 d1 endstream endobj 71 0 obj <> stream 0 0 0 13 43 104 d1 43 0 0 91 0 13 cm BI /IM true /W 43 /H 91 /BPC 1 /F /CCF /DP <> ID &\'3 7oA Iɫdo EI endstream endobj 72 0 obj <> stream 71 0 0 0 0 0 d1 endstream endobj 73 0 obj <> stream 54 0 0 0 0 0 d1 endstream endobj 74 0 obj <> stream 0 0 0 39 66 130 d1 66 0 0 91 0 39 cm BI /IM true /W 66 /H 91 /BPC 1 /F /CCF /DP <> ID & _O:?(X~A~)}O?7/a/ VOA{ x<!dCD EI endstream endobj 75 0 obj <> stream 62 0 0 0 0 0 d1 endstream endobj 76 0 obj <> stream 0 0 0 2 66 102 d1 66 0 0 100 0 2 cm BI /IM true /W 66 /H 100 /BPC 1 /F /CCF /DP <> ID &.i0_ך'_kƽ1^AO EI endstream endobj 77 0 obj <> stream 75 0 0 0 0 0 d1 endstream endobj 78 0 obj <> stream 0 0 0 39 66 102 d1 66 0 0 63 0 39 cm BI /IM true /W 66 /H 63 /BPC 1 /F /CCF /DP <> ID &.i0_ך'_)<ix31x/ VD9G EI endstream endobj 79 0 obj <> stream 0 0 0 38 44 104 d1 44 0 0 66 0 38 cm BI /IM true /W 44 /H 66 /BPC 1 /F /CCF /DP <> ID &! 16@o}?O῾O3 Aap\h FхC*mᯮ0 !A`7 EI endstream endobj 80 0 obj <> stream 76 0 0 0 0 0 d1 endstream endobj 81 0 obj <> stream 0 0 0 38 61 104 d1 61 0 0 66 0 38 cm BI /IM true /W 61 /H 66 /BPC 1 /F /CCF /DP <> ID &\  PMo `}&zo&oo&&_/z -mva,2 EI endstream endobj 82 0 obj <> stream 53 0 0 0 0 0 d1 endstream endobj 83 0 obj <> stream 0 0 0 0 66 80 d1 66 0 0 80 0 0 cm BI /IM true /W 66 /H 80 /BPC 1 /F /CCF /DP <> ID &C eC H OzM&|'>z?K ֿ`k᭾` 0]b`@ EI endstream endobj 84 0 obj <> stream 0 0 0 28 47 79 d1 47 0 0 51 0 28 cm BI /IM true /W 47 /H 51 /BPC 1 /F /CCF /DP <> ID &A@@Fcz I޷_ .Am[ EI endstream endobj 85 0 obj <> stream 0 0 0 29 54 99 d1 54 0 0 70 0 29 cm BI /IM true /W 54 /H 70 /BPC 1 /F /CCF /DP <> ID *7j2Ԇ)5 |S}?A|+ ~ᯯu_ 0l\01  @ EI endstream endobj 86 0 obj <> stream 0 0 0 30 52 100 d1 52 0 0 70 0 30 cm BI /IM true /W 52 /H 70 /BPC 1 /F /CCF /DP <> ID &fЃxGn-(xh???$߾?-?>׭¼-@ EI endstream endobj 87 0 obj <> stream 57 0 0 0 0 0 d1 endstream endobj 88 0 obj <> stream 0 0 0 29 37 77 d1 37 0 0 48 0 29 cm BI /IM true /W 37 /H 48 /BPC 1 /F /CCF /DP <> ID $MFP?X W~X0p€ EI endstream endobj 89 0 obj <> stream 0 0 0 4 24 77 d1 24 0 0 73 0 4 cm BI /IM true /W 24 /H 73 /BPC 1 /F /CCF /DP <> ID j2'K  EI endstream endobj 90 0 obj <> stream 42 0 0 0 0 0 d1 endstream endobj 91 0 obj <> stream 0 0 0 28 50 101 d1 50 0 0 73 0 28 cm BI /IM true /W 50 /H 73 /BPC 1 /F /CCF /DP <> ID &' 7xX}> stream 30 0 0 0 0 0 d1 endstream endobj 93 0 obj <> stream 0 0 0 1 55 77 d1 55 0 0 76 0 1 cm BI /IM true /W 55 /H 76 /BPC 1 /F /CCF /DP <> ID *&( a?u|0 W]cQ0 EI endstream endobj 94 0 obj <> stream 0 0 0 10 33 79 d1 33 0 0 69 0 10 cm BI /IM true /W 33 /H 69 /BPC 1 /F /CCF /DP <> ID &Ax#6~OĄ^M_  EI endstream endobj 95 0 obj <> stream 0 0 0 24 42 75 d1 42 0 0 51 0 24 cm BI /IM true /W 42 /H 51 /BPC 1 /F /CCF /DP <> ID &A@' z+an]Al-a)    EI endstream endobj 96 0 obj <> stream 112 0 0 0 0 0 d1 endstream endobj 97 0 obj <> stream 0 0 0 0 97 102 d1 97 0 0 102 0 0 cm BI /IM true /W 97 /H 102 /BPC 1 /F /CCF /DP <> ID &SLP<|$p@AoIoI >o oOk޿v6iv ]Km- Ka   Π`/IlO EI endstream endobj 98 0 obj <> stream 0 0 0 5 44 78 d1 44 0 0 73 0 5 cm BI /IM true /W 44 /H 73 /BPC 1 /F /CCF /DP <> ID &/} e}aݷ >m>- ~w %visA8b  @ EI endstream endobj 99 0 obj <> stream 0 0 0 5 44 81 d1 44 0 0 76 0 5 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/xo`&o 0[޿Kzm/\<-a.ab k  EI endstream endobj 100 0 obj <> stream 0 0 0 5 44 81 d1 44 0 0 76 0 5 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/3zMA0z_K ׶`^=Cgm߷ Xa` EI endstream endobj 101 0 obj <> stream 0 0 0 0 73 75 d1 73 0 0 75 0 0 cm BI /IM true /W 73 /H 75 /BPC 1 /F /CCF /DP <> ID !AIC;P0 a~ ?o~a߇_^^__^^ץd3  EI endstream endobj 102 0 obj <> stream 0 0 0 26 42 77 d1 42 0 0 51 0 26 cm BI /IM true /W 42 /H 51 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8`@ EI endstream endobj 103 0 obj <> stream 82 0 0 0 0 0 d1 endstream endobj 104 0 obj <> stream 0 0 0 28 49 79 d1 49 0 0 51 0 28 cm BI /IM true /W 49 /H 51 /BPC 1 /F /CCF /DP <> ID &zz i7~@ x>AFzתKK] B  EI endstream endobj 105 0 obj <> stream 52 0 0 0 0 0 d1 endstream endobj 106 0 obj <> stream 0 0 0 29 85 77 d1 85 0 0 48 0 29 cm BI /IM true /W 85 /H 48 /BPC 1 /F /CCF /DP <> ID *̫?j2P /?…4Ng[I`郮Xapb0H0@@@ EI endstream endobj 107 0 obj <> stream 0 0 0 27 55 75 d1 55 0 0 48 0 27 cm BI /IM true /W 55 /H 48 /BPC 1 /F /CCF /DP <> ID *&( a?F\01XaI` EI endstream endobj 108 0 obj <> stream 47 0 0 0 0 0 d1 endstream endobj 109 0 obj <> stream 0 0 0 0 38 77 d1 38 0 0 77 0 0 cm BI /IM true /W 38 /H 77 /BPC 1 /F /CCF /DP <> ID & *0~MB d$;߿ adž ) EI endstream endobj 110 0 obj <> stream 0 0 0 0 48 80 d1 48 0 0 80 0 0 cm BI /IM true /W 48 /H 80 /BPC 1 /F /CCF /DP <> ID &0H la4M⾴elQ]' krK2 8\. ]u.] dJ{<@ EI endstream endobj 111 0 obj <> stream 74 0 0 0 0 0 d1 endstream endobj 112 0 obj <> stream 0 0 0 28 36 79 d1 36 0 0 51 0 28 cm BI /IM true /W 36 /H 51 /BPC 1 /F /CCF /DP <> ID 0?NGu:xKAr א, @@]_kfpx EI endstream endobj 113 0 obj <> stream 31 0 0 0 0 0 d1 endstream endobj 114 0 obj <> stream 0 0 0 -1 54 77 d1 54 0 0 78 0 -1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &A@973>AH<ZO~_av4mp_ x`!WC[ EI endstream endobj 115 0 obj <> stream 0 0 0 -3 74 75 d1 74 0 0 78 0 -3 cm BI /IM true /W 74 /H 78 /BPC 1 /F /CCF /DP <> ID !ML F[ a~޻_ikv^p=_׿x_kka@ EI endstream endobj 116 0 obj <> stream 98 0 0 0 0 0 d1 endstream endobj 117 0 obj <> stream 60 0 0 0 0 0 d1 endstream endobj 118 0 obj <> stream 0 0 0 1 25 77 d1 25 0 0 76 0 1 cm BI /IM true /W 25 /H 76 /BPC 1 /F /CCF /DP <> ID j2 j&  EI endstream endobj 119 0 obj <> stream 48 0 0 0 0 0 d1 endstream endobj 120 0 obj <> stream 0 0 0 0 63 75 d1 63 0 0 75 0 0 cm BI /IM true /W 63 /H 75 /BPC 1 /F /CCF /DP <> ID #`5C P_|4~@=}t4(RZ EI endstream endobj 121 0 obj <> stream 97 0 0 0 0 0 d1 endstream endobj 122 0 obj <> stream 43 0 0 0 0 0 d1 endstream endobj 123 0 obj <> stream 0 0 0 1 54 79 d1 54 0 0 78 0 1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &`4|@~}A|mi|.}0i|0 Bx` j&  EI endstream endobj 124 0 obj <> stream 0 0 0 66 13 99 d1 13 0 0 33 0 66 cm BI /IM true /W 13 /H 33 /BPC 1 /F /CCF /DP <> ID &w{|!]a EI endstream endobj 125 0 obj <> stream 55 0 0 0 0 0 d1 endstream endobj 126 0 obj <> stream 0 0 0 0 74 75 d1 74 0 0 75 0 0 cm BI /IM true /W 74 /H 75 /BPC 1 /F /CCF /DP <> ID *LZjD0_}萾/_K%~ / _%_ƟAC)GX_ EI endstream endobj 127 0 obj <> stream 0 0 0 2 74 80 d1 74 0 0 78 0 2 cm BI /IM true /W 74 /H 78 /BPC 1 /F /CCF /DP <> ID &P ?<@@ނ| zPOoWAă @ EI endstream endobj 128 0 obj <> stream 0 0 0 30 52 79 d1 52 0 0 49 0 30 cm BI /IM true /W 52 /H 49 /BPC 1 /F /CCF /DP <> ID &\\-?>O}?A_ 8@ EI endstream endobj 129 0 obj <> stream 39 0 0 0 0 0 d1 endstream endobj 130 0 obj <> stream 96 0 0 0 0 0 d1 endstream endobj 131 0 obj <> stream 73 0 0 0 0 0 d1 endstream endobj 132 0 obj <> stream 56 0 0 0 0 0 d1 endstream endobj 133 0 obj <> stream 0 0 0 2 36 75 d1 36 0 0 73 0 2 cm BI /IM true /W 36 /H 73 /BPC 1 /F /CCF /DP <> ID j /&R?@ EI endstream endobj 134 0 obj <> stream 92 0 0 0 0 0 d1 endstream endobj 135 0 obj <> stream 0 0 0 0 47 78 d1 47 0 0 78 0 0 cm BI /IM true /W 47 /H 78 /BPC 1 /F /CCF /DP <> ID &1O߼?{?{ >pmW@ EI endstream endobj 136 0 obj <> stream 0 0 0 2 44 78 d1 44 0 0 76 0 2 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &8k Xx@z zM~z4q_Y]u\4  _?`g EI endstream endobj 137 0 obj <> stream 0 0 0 0 49 75 d1 49 0 0 75 0 0 cm BI /IM true /W 49 /H 75 /BPC 1 /F /CCF /DP <> ID &G!``)5_ ?ao ?ao   EI endstream endobj 138 0 obj <> stream 0 0 0 67 12 78 d1 12 0 0 11 0 67 cm BI /IM true /W 12 /H 11 /BPC 1 /F /CCF /DP <> ID &ۄ/k0P EI endstream endobj 139 0 obj <> stream 59 0 0 0 0 0 d1 endstream endobj 140 0 obj <> stream 0 0 0 0 67 75 d1 67 0 0 75 0 0 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID &gMBaiG Ax/_d @ EI endstream endobj 141 0 obj <> stream 0 0 0 48 28 55 d1 28 0 0 7 0 48 cm BI /IM true /W 28 /H 7 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 142 0 obj <> stream 0 0 0 30 12 77 d1 12 0 0 47 0 30 cm BI /IM true /W 12 /H 47 /BPC 1 /F /CCF /DP <> ID &ۄ/k0X8ɮ@@ EI endstream endobj 143 0 obj <> stream 0 0 0 93 67 99 d1 67 0 0 6 0 93 cm BI /IM true /W 67 /H 6 /BPC 1 /F /CCF /DP <> ID &|^MR EI endstream endobj 144 0 obj <> stream 0 0 0 -2 72 77 d1 72 0 0 79 0 -2 cm BI /IM true /W 72 /H 79 /BPC 1 /F /CCF /DP <> ID &k!c d1S@|Ξk@H"気Z KR(AyABH `fo  0I1M?WA+/׿?ֻl$;j|6  ^{ !)v %[iv mlgX`ǐ/h  EI endstream endobj 145 0 obj <> stream 0 0 0 2 92 77 d1 92 0 0 75 0 2 cm BI /IM true /W 92 /H 75 /BPC 1 /F /CCF /DP <> ID *s`jD0 \[ a'FH0o & o[I'oaA8qL  EI endstream endobj 146 0 obj <> stream 101 0 0 0 0 0 d1 endstream endobj 147 0 obj <> stream 0 0 0 0 57 94 d1 57 0 0 94 0 0 cm BI /IM true /W 57 /H 94 /BPC 1 /F /CCF /DP <> ID &?(Ap؟ cL> EI endstream endobj 148 0 obj <> stream 0 0 0 -5 50 94 d1 50 0 0 99 0 -5 cm BI /IM true /W 50 /H 99 /BPC 1 /F /CCF /DP <> ID `cĉ EI endstream endobj 149 0 obj <> stream 0 0 0 29 80 94 d1 80 0 0 65 0 29 cm BI /IM true /W 80 /H 65 /BPC 1 /F /CCF /DP <> ID & JfT׿?)C |2Wb/0A EI endstream endobj 150 0 obj <> stream 0 0 0 3 50 96 d1 50 0 0 93 0 3 cm BI /IM true /W 50 /H 93 /BPC 1 /F /CCF /DP <> ID &Pzz5 0^ ċ5>  EI endstream endobj 151 0 obj <> stream 0 0 0 29 56 94 d1 56 0 0 65 0 29 cm BI /IM true /W 56 /H 65 /BPC 1 /F /CCF /DP <> ID "GMB?O~u_o66})5  EI endstream endobj 152 0 obj <> stream 0 0 0 28 70 96 d1 70 0 0 68 0 28 cm BI /IM true /W 70 /H 68 /BPC 1 /F /CCF /DP <> ID &j nOD N(| k7޷ސa}>>_=o a.m- a 1 `fi EI endstream endobj 153 0 obj <> stream 0 0 0 -6 79 96 d1 79 0 0 102 0 -6 cm BI /IM true /W 79 /H 102 /BPC 1 /F /CCF /DP <> ID &t:C`9&&  D`A\RI _H?O\6k0`Ȁ[bipazx*i EI endstream endobj 154 0 obj <> stream 84 0 0 0 0 0 d1 endstream endobj 155 0 obj <> stream 0 0 0 29 80 96 d1 80 0 0 67 0 29 cm BI /IM true /W 80 /H 67 /BPC 1 /F /CCF /DP <> ID &j!C`IV??H7)pWVC9? dt EI endstream endobj 156 0 obj <> stream 87 0 0 0 0 0 d1 endstream endobj 157 0 obj <> stream 0 0 0 28 60 96 d1 60 0 0 68 0 28 cm BI /IM true /W 60 /H 68 /BPC 1 /F /CCF /DP <> ID &t F<zF| AoXzO^O_l5ֿֿ~C(? ?߷톶Xaa_C. EI endstream endobj 158 0 obj <> stream 67 0 0 0 0 0 d1 endstream endobj 159 0 obj <> stream 0 0 0 -7 35 94 d1 35 0 0 101 0 -7 cm BI /IM true /W 35 /H 101 /BPC 1 /F /CCF /DP <> ID &BU+9O=?( EI endstream endobj 160 0 obj <> stream 0 0 0 0 47 78 d1 47 0 0 78 0 0 cm BI /IM true /W 47 /H 78 /BPC 1 /F /CCF /DP <> ID &A(? 1Cb? EI endstream endobj 161 0 obj <> stream 0 0 0 60 19 78 d1 19 0 0 18 0 60 cm BI /IM true /W 19 /H 18 /BPC 1 /F /CCF /DP <> ID &|ɮkaa EI endstream endobj 162 0 obj <> stream 0 0 0 -4 134 80 d1 134 0 0 84 0 -4 cm BI /IM true /W 134 /H 84 /BPC 1 /F /CCF /DP <> ID &pg4AAauS.mo<'}~>i յO >O o? [Hr`7@ EI endstream endobj 163 0 obj <> stream 0 0 0 -5 67 78 d1 67 0 0 83 0 -5 cm BI /IM true /W 67 /H 83 /BPC 1 /F /CCF /DP <> ID &"hAyh_ W`^?P?"  EI endstream endobj 164 0 obj <> stream 141 0 0 0 0 0 d1 endstream endobj 165 0 obj <> stream 0 0 0 23 61 80 d1 61 0 0 57 0 23 cm BI /IM true /W 61 /H 57 /BPC 1 /F /CCF /DP <> ID &@i|A 0E8p }?a ]AqLZ ? _],6.= @` EI endstream endobj 166 0 obj <> stream 0 0 0 2 43 80 d1 43 0 0 78 0 2 cm BI /IM true /W 43 /H 78 /BPC 1 /F /CCF /DP <> ID &ܠ' <.}&޾!ā5>3? EI endstream endobj 167 0 obj <> stream 0 0 0 -6 30 78 d1 30 0 0 84 0 -6 cm BI /IM true /W 30 /H 84 /BPC 1 /F /CCF /DP <> ID &D\_A?_[ ( EI endstream endobj 168 0 obj <> stream 0 0 0 23 43 80 d1 43 0 0 57 0 23 cm BI /IM true /W 43 /H 57 /BPC 1 /F /CCF /DP <> ID &R?K>/jAp/׮Ay $Z kPe8aAG_k.%  EI endstream endobj 169 0 obj <> stream 94 0 0 0 0 0 d1 endstream endobj 170 0 obj <> stream 0 0 0 23 54 80 d1 54 0 0 57 0 23 cm BI /IM true /W 54 /H 57 /BPC 1 /F /CCF /DP <> ID & 0z#| 7}&5M?IC:_k.a-a`0  EI endstream endobj 171 0 obj <> stream 107 0 0 0 0 0 d1 endstream endobj 172 0 obj <> stream 0 0 0 25 66 78 d1 66 0 0 53 0 25 cm BI /IM true /W 66 /H 53 /BPC 1 /F /CCF /DP <> ID &x)?Η[&} }azҸ EI endstream endobj 173 0 obj <> stream 0 0 0 -5 66 80 d1 66 0 0 85 0 -5 cm BI /IM true /W 66 /H 85 /BPC 1 /F /CCF /DP <> ID &9@_ xA@P T2 tA^ᆻaw 'k"7#ra? @@ EI endstream endobj 174 0 obj <> stream 0 0 0 24 66 101 d1 66 0 0 77 0 24 cm BI /IM true /W 66 /H 77 /BPC 1 /F /CCF /DP <> ID #AQDxA |C  >o ?_]iD%†B)5 !Q EI endstream endobj 175 0 obj <> stream 118 0 0 0 0 0 d1 endstream endobj 176 0 obj <> stream 0 0 0 23 52 80 d1 52 0 0 57 0 23 cm BI /IM true /W 52 /H 57 /BPC 1 /F /CCF /DP <> ID & 0<"0G&x[>CLQ~> aiq0Y 0gP EI endstream endobj 177 0 obj <> stream 0 0 0 -5 65 78 d1 65 0 0 83 0 -5 cm BI /IM true /W 65 /H 83 /BPC 1 /F /CCF /DP <> ID eMD$}~/ //KK]\/?a??aD.  EI endstream endobj 178 0 obj <> stream 0 0 0 24 61 104 d1 61 0 0 80 0 24 cm BI /IM true /W 61 /H 80 /BPC 1 /F /CCF /DP <> ID &!<E8a7z_]d .-E>N ȡq{:@azMڗߧvv G)`h  EI endstream endobj 179 0 obj <> stream 0 0 0 -6 49 78 d1 49 0 0 84 0 -6 cm BI /IM true /W 49 /H 84 /BPC 1 /F /CCF /DP <> ID &(X4w}}xoo}7&Bia`Xb`^Az EI endstream endobj 180 0 obj <> stream 0 0 0 0 71 75 d1 71 0 0 75 0 0 cm BI /IM true /W 71 /H 75 /BPC 1 /F /CCF /DP <> ID &(C3]<zz i\G EI endstream endobj 181 0 obj <> stream 0 0 0 -7 25 102 d1 25 0 0 109 0 -7 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &_KK KK]~zz/߇a@ EI endstream endobj 182 0 obj <> stream 35 0 0 0 0 0 d1 endstream endobj 183 0 obj <> stream 0 0 0 28 55 75 d1 55 0 0 47 0 28 cm BI /IM true /W 55 /H 47 /BPC 1 /F /CCF /DP <> ID "$ .aKnv_ Wo֖]>h^z ^7X<觿 EI endstream endobj 184 0 obj <> stream 46 0 0 0 0 0 d1 endstream endobj 185 0 obj <> stream 0 0 0 29 55 79 d1 55 0 0 50 0 29 cm BI /IM true /W 55 /H 50 /BPC 1 /F /CCF /DP <> ID &Cj }aoz!p_ I EI endstream endobj 186 0 obj <> stream 0 0 0 -5 25 104 d1 25 0 0 109 0 -5 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &lo??ֿ-zz%pKK KK EI endstream endobj 187 0 obj <> stream 78 0 0 0 0 0 d1 endstream endobj 188 0 obj <> stream 0 0 0 -3 52 73 d1 52 0 0 76 0 -3 cm BI /IM true /W 52 /H 76 /BPC 1 /F /CCF /DP <> ID *&(nP__z_ z^_^/}5+? ?DG EI endstream endobj 189 0 obj <> stream 58 0 0 0 0 0 d1 endstream endobj 190 0 obj <> stream 0 0 0 0 77 78 d1 77 0 0 78 0 0 cm BI /IM true /W 77 /H 78 /BPC 1 /F /CCF /DP <> ID &Xh,?nPނo[y5C ¯_z}z^ xA|.'@? z/Az^AcH@ EI endstream endobj 191 0 obj <> stream 125 0 0 0 0 0 d1 endstream endobj 192 0 obj <> stream 0 0 0 0 32 75 d1 32 0 0 75 0 0 cm BI /IM true /W 32 /H 75 /BPC 1 /F /CCF /DP <> ID j!X`H@@ EI endstream endobj 193 0 obj <> stream 0 0 0 -2 73 78 d1 73 0 0 80 0 -2 cm BI /IM true /W 73 /H 80 /BPC 1 /F /CCF /DP <> ID &C C5azc}|%? K hѯ 6xk^pAײ@) A@ EI endstream endobj 194 0 obj <> stream 102 0 0 0 0 0 d1 endstream endobj 195 0 obj <> stream 83 0 0 0 0 0 d1 endstream endobj 196 0 obj <> stream 0 0 0 2 44 78 d1 44 0 0 76 0 2 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &Df+z`߿m~{O\?|$ߧ&=uKK]av+ a`€ EI endstream endobj 197 0 obj <> stream 49 0 0 0 0 0 d1 endstream endobj 198 0 obj <> stream 93 0 0 0 0 0 d1 endstream endobj 199 0 obj <> stream 109 0 0 0 0 0 d1 endstream endobj 200 0 obj <> stream 36 0 0 0 0 0 d1 endstream endobj 201 0 obj <> stream 0 0 0 30 73 79 d1 73 0 0 49 0 30 cm BI /IM true /W 73 /H 49 /BPC 1 /F /CCF /DP <> ID &(0 4< -?O_>Vatw>Xx_U? D@ EI endstream endobj 202 0 obj <> stream 33 0 0 0 0 0 d1 endstream endobj 203 0 obj <> stream 0 0 0 28 43 79 d1 43 0 0 51 0 28 cm BI /IM true /W 43 /H 51 /BPC 1 /F /CCF /DP <> ID &R?2A5L0_!FA  @#:UAFu5Tt cᐋMP EI endstream endobj 204 0 obj <> stream 0 0 0 28 45 79 d1 45 0 0 51 0 28 cm BI /IM true /W 45 /H 51 /BPC 1 /F /CCF /DP <> ID &A81^<'$ =A7ah/ _] paw[_ ad<@ EI endstream endobj 205 0 obj <> stream 0 0 0 28 43 79 d1 43 0 0 51 0 28 cm BI /IM true /W 43 /H 51 /BPC 1 /F /CCF /DP <> ID &03=<=?_ 'Kk=~rT恕m^ p\2=7[_X`a@@ EI endstream endobj 206 0 obj <> stream 0 0 0 8 45 79 d1 45 0 0 71 0 8 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &ȣ4O8Atw~~i?>Caz>_ [4   EI endstream endobj 207 0 obj <> stream 129 0 0 0 0 0 d1 endstream endobj 208 0 obj <> stream 0 0 0 2 67 77 d1 67 0 0 75 0 2 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID *@A$rj a^/_3#~zxK0PR0 EI endstream endobj 209 0 obj <> stream 32 0 0 0 0 0 d1 endstream endobj 210 0 obj <> stream 0 0 0 29 37 79 d1 37 0 0 50 0 29 cm BI /IM true /W 37 /H 50 /BPC 1 /F /CCF /DP <> ID & G3'>վc$X>h(? 7oݷ~K ?bkf0 EI endstream endobj 211 0 obj <> stream 0 0 0 8 31 79 d1 31 0 0 71 0 8 cm BI /IM true /W 31 /H 71 /BPC 1 /F /CCF /DP <> ID &0a?$brk> stream 0 0 0 29 46 79 d1 46 0 0 50 0 29 cm BI /IM true /W 46 /H 50 /BPC 1 /F /CCF /DP <> ID & >G5 oo?w!;mv k&` EI endstream endobj 213 0 obj <> stream 0 0 0 1 25 79 d1 25 0 0 78 0 1 cm BI /IM true /W 25 /H 78 /BPC 1 /F /CCF /DP <> ID &x&G_~Az EI endstream endobj 214 0 obj <> stream 0 0 0 66 12 77 d1 12 0 0 11 0 66 cm BI /IM true /W 12 /H 11 /BPC 1 /F /CCF /DP <> ID &-=>  EI endstream endobj 215 0 obj <> stream 0 0 0 27 55 97 d1 55 0 0 70 0 27 cm BI /IM true /W 55 /H 70 /BPC 1 /F /CCF /DP <> ID &kk B?@AA $ǫK>MF׆ 0_+4<@ EI endstream endobj 216 0 obj <> stream 104 0 0 0 0 0 d1 endstream endobj 217 0 obj <> stream 0 0 0 0 50 69 d1 50 0 0 69 0 0 cm BI /IM true /W 50 /H 69 /BPC 1 /F /CCF /DP <> ID &8@i 8OcZ3'~M{_^]cax0^?2j  EI endstream endobj 218 0 obj <> stream 0 0 0 19 51 94 d1 51 0 0 75 0 19 cm BI /IM true /W 51 /H 75 /BPC 1 /F /CCF /DP <> ID &3aZ:6x ?Rk׵!O[_r ypk?5CaނO]kR;`xb/ta  EI endstream endobj 219 0 obj <> stream 0 0 0 30 51 77 d1 51 0 0 47 0 30 cm BI /IM true /W 51 /H 47 /BPC 1 /F /CCF /DP <> ID &6S'? IOA'[BO5I EI endstream endobj 220 0 obj <> stream 0 0 0 19 50 91 d1 50 0 0 72 0 19 cm BI /IM true /W 50 /H 72 /BPC 1 /F /CCF /DP <> ID & jD#?D o0M_k\Eu5%` ab( EI endstream endobj 221 0 obj <> stream 0 0 0 20 51 69 d1 51 0 0 49 0 20 cm BI /IM true /W 51 /H 49 /BPC 1 /F /CCF /DP <> ID &@(@ :Z2?H}c_T EI endstream endobj 222 0 obj <> stream 0 0 0 19 57 67 d1 57 0 0 48 0 19 cm BI /IM true /W 57 /H 48 /BPC 1 /F /CCF /DP <> ID &ΦBMRY. ߕZ b"@HI5I# 8 EI endstream endobj 223 0 obj <> stream 0 0 0 0 50 69 d1 50 0 0 69 0 0 cm BI /IM true /W 50 /H 69 /BPC 1 /F /CCF /DP <> ID & )D o0M_k^ ⿮}/0^ / k EI endstream endobj 224 0 obj <> stream 0 0 0 10 45 77 d1 45 0 0 67 0 10 cm BI /IM true /W 45 /H 67 /BPC 1 /F /CCF /DP <> ID &_! EI endstream endobj 225 0 obj <> stream 0 0 0 19 50 67 d1 50 0 0 48 0 19 cm BI /IM true /W 50 /H 48 /BPC 1 /F /CCF /DP <> ID &?U }}diӔ)BqU5<@ EI endstream endobj 226 0 obj <> stream 0 0 0 20 53 67 d1 53 0 0 47 0 20 cm BI /IM true /W 53 /H 47 /BPC 1 /F /CCF /DP <> ID &`)_> stream 0 0 0 8 40 77 d1 40 0 0 69 0 8 cm BI /IM true /W 40 /H 69 /BPC 1 /F /CCF /DP <> ID &GzU1? k  @ EI endstream endobj 228 0 obj <> stream 0 0 0 -2 44 67 d1 44 0 0 69 0 -2 cm BI /IM true /W 44 /H 69 /BPC 1 /F /CCF /DP <> ID &? X| EI endstream endobj 229 0 obj <> stream 0 0 0 28 42 79 d1 42 0 0 51 0 28 cm BI /IM true /W 42 /H 51 /BPC 1 /F /CCF /DP <> ID &@?5G ޿ :^\ _jCf>Bw<5XkΡ@ EI endstream endobj 230 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &%TȞC<>kZ&@@ EI endstream endobj 231 0 obj <> stream 0 0 0 17 45 79 d1 45 0 0 62 0 17 cm BI /IM true /W 45 /H 62 /BPC 1 /F /CCF /DP <> ID &?A? &5UɪY EI endstream endobj 232 0 obj <> stream 0 0 0 30 51 77 d1 51 0 0 47 0 30 cm BI /IM true /W 51 /H 47 /BPC 1 /F /CCF /DP <> ID &vkI^}_[kKa-د o>FJo zMzFPᦠ EI endstream endobj 233 0 obj <> stream 0 0 0 0 54 72 d1 54 0 0 72 0 0 cm BI /IM true /W 54 /H 72 /BPC 1 /F /CCF /DP <> ID &O_ԟA =/A>/5_xav<>*0^A EI endstream endobj 234 0 obj <> stream 99 0 0 0 0 0 d1 endstream endobj 235 0 obj <> stream 0 0 0 18 51 69 d1 51 0 0 51 0 18 cm BI /IM true /W 51 /H 51 /BPC 1 /F /CCF /DP <> ID &D`@.-~H-t kcA` 2 S/N ~[ ad8p EI endstream endobj 236 0 obj <> stream 51 0 0 0 0 0 d1 endstream endobj 237 0 obj <> stream 80 0 0 0 0 0 d1 endstream endobj 238 0 obj <> stream 0 0 0 29 51 77 d1 51 0 0 48 0 29 cm BI /IM true /W 51 /H 48 /BPC 1 /F /CCF /DP <> ID &%TȞC<RG 5&X  EI endstream endobj 239 0 obj <> stream 29 0 0 0 0 0 d1 endstream endobj 240 0 obj <> stream 85 0 0 0 0 0 d1 endstream endobj 241 0 obj <> stream 0 0 0 0 62 75 d1 62 0 0 75 0 0 cm BI /IM true /W 62 /H 75 /BPC 1 /F /CCF /DP <> ID "5t k4G "? EI endstream endobj 242 0 obj <> stream 100 0 0 0 0 0 d1 endstream endobj 243 0 obj <> stream 0 0 0 1 72 81 d1 72 0 0 80 0 1 cm BI /IM true /W 72 /H 80 /BPC 1 /F /CCF /DP <> ID &C n4aAA}$A[o 0[[__ m[ m`Xe !_ @ EI endstream endobj 244 0 obj <> stream 136 0 0 0 0 0 d1 endstream endobj 245 0 obj <> stream 0 0 0 0 56 77 d1 56 0 0 77 0 0 cm BI /IM true /W 56 /H 77 /BPC 1 /F /CCF /DP <> ID &?3 G> >?AFxOoÇ`(O EI endstream endobj 246 0 obj <> stream 68 0 0 0 0 0 d1 endstream endobj 247 0 obj <> stream 0 0 0 30 13 99 d1 13 0 0 69 0 30 cm BI /IM true /W 13 /H 69 /BPC 1 /F /CCF /DP <> ID &w{|!]a. @ EI endstream endobj 248 0 obj <> stream 70 0 0 0 0 0 d1 endstream endobj 249 0 obj <> stream 0 0 0 64 14 77 d1 14 0 0 13 0 64 cm BI /IM true /W 14 /H 13 /BPC 1 /F /CCF /DP <> ID &_[[P EI endstream endobj 250 0 obj <> stream 41 0 0 0 0 0 d1 endstream endobj 251 0 obj <> stream 40 0 0 0 0 0 d1 endstream endobj 252 0 obj <> stream 0 0 0 8 45 77 d1 45 0 0 69 0 8 cm BI /IM true /W 45 /H 69 /BPC 1 /F /CCF /DP <> ID &Zdoov>a{{<7  }?_ v_0K W-0`|@ EI endstream endobj 253 0 obj <> stream 89 0 0 0 0 0 d1 endstream endobj 254 0 obj <> stream 0 0 0 10 52 77 d1 52 0 0 67 0 10 cm BI /IM true /W 52 /H 67 /BPC 1 /F /CCF /DP <> ID &%5Ig .^u%ooȊ=cT EI endstream endobj 260 0 obj <> stream 0 0 0 0 55 78 d1 55 0 0 78 0 0 cm BI /IM true /W 55 /H 78 /BPC 1 /F /CCF /DP <> ID &of0a}o;߾k { aa.OwKU^X`ȀX`Y @@ EI endstream endobj 261 0 obj <> stream 0 0 0 -5 86 80 d1 86 0 0 85 0 -5 cm BI /IM true /W 86 /H 85 /BPC 1 /F /CCF /DP <> ID &j ?10+Ȁ" ް7MA[ }?O5x_Kzw zKzKa `,2 Xx,3Ld4 EI endstream endobj 262 0 obj <> stream 0 0 0 -5 66 80 d1 66 0 0 85 0 -5 cm BI /IM true /W 66 /H 85 /BPC 1 /F /CCF /DP <> ID &P DA'  7_~K0\y ?P EI endstream endobj 263 0 obj <> stream 0 0 0 24 67 78 d1 67 0 0 54 0 24 cm BI /IM true /W 67 /H 54 /BPC 1 /F /CCF /DP <> ID &"hA?(оd* EI endstream endobj 264 0 obj <> stream 106 0 0 0 0 0 d1 endstream endobj 265 0 obj <> stream 0 0 0 -12 52 108 d1 52 0 0 120 0 -12 cm BI /IM true /W 52 /H 120 /BPC 1 /F /CCF /DP <> ID &2 j{߇{x߿~aڀ EI endstream endobj 266 0 obj <> stream 0 0 0 24 67 80 d1 67 0 0 56 0 24 cm BI /IM true /W 67 /H 56 /BPC 1 /F /CCF /DP <> ID &/ a AD~?P=5rp.D@ EI endstream endobj 267 0 obj <> stream 128 0 0 0 0 0 d1 endstream endobj 268 0 obj <> stream 120 0 0 0 0 0 d1 endstream endobj 269 0 obj <> stream 0 0 0 20 14 67 d1 14 0 0 47 0 20 cm BI /IM true /W 14 /H 47 /BPC 1 /F /CCF /DP <> ID &_[[Xkڀ EI endstream endobj 270 0 obj <> stream 0 0 0 -9 45 77 d1 45 0 0 86 0 -9 cm BI /IM true /W 45 /H 86 /BPC 1 /F /CCF /DP <> ID &֯߿߿?~?߼?~~ ?a@@ EI endstream endobj 272 0 obj <> stream 0 0 0 39 37 47 d1 37 0 0 8 0 39 cm BI /IM true /W 37 /H 8 /BPC 1 /F /CCF /DP <> ID &5@ EI endstream endobj 273 0 obj <> stream 0 0 0 8 35 103 d1 35 0 0 95 0 8 cm BI /IM true /W 35 /H 95 /BPC 1 /F /CCF /DP <> ID &>Lfz??B+X  EI endstream endobj 274 0 obj <> stream 0 0 0 0 55 80 d1 55 0 0 80 0 0 cm BI /IM true /W 55 /H 80 /BPC 1 /F /CCF /DP <> ID &>Azz4 _a,.Ap. Ȁσ 'oȴNv @@~,05 EI endstream endobj 275 0 obj <> stream 0 0 0 -5 82 80 d1 82 0 0 85 0 -5 cm BI /IM true /W 82 /H 85 /BPC 1 /F /CCF /DP <> ID &k jI| )<- ޓ| IW¾s\(xd;k [k~07*~<x0O5y m\@ EI endstream endobj 276 0 obj <> stream 0 0 0 23 60 80 d1 60 0 0 57 0 23 cm BI /IM true /W 60 /H 57 /BPC 1 /F /CCF /DP <> ID & >@ x zxFC`=7 ɯx\5zz/kaK`ȺAF EI endstream endobj 277 0 obj <> stream 0 0 0 0 32 35 d1 32 0 0 35 0 0 cm BI /IM true /W 32 /H 35 /BPC 1 /F /CCF /DP <> ID &> stream 0 0 0 4 28 100 d1 28 0 0 96 0 4 cm BI /IM true /W 28 /H 96 /BPC 1 /F /CCF /DP <> ID &Fc|'l;TjzHf3=?P EI endstream endobj 279 0 obj <> stream 0 0 0 4 44 80 d1 44 0 0 76 0 4 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &  xFaH7@ӿ _K.,d{{v ?]޻Aa'+a``@@ EI endstream endobj 280 0 obj <> stream 0 0 0 4 44 80 d1 44 0 0 76 0 4 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/F xF >ޡ~}_ ^[l%`Zz -&~z&?_/vh-K ح EI endstream endobj 281 0 obj <> stream 0 0 0 0 60 78 d1 60 0 0 78 0 0 cm BI /IM true /W 60 /H 78 /BPC 1 /F /CCF /DP <> ID &CK_&fg@~?? ߰ { EI endstream endobj 282 0 obj <> stream 0 0 0 0 76 78 d1 76 0 0 78 0 0 cm BI /IM true /W 76 /H 78 /BPC 1 /F /CCF /DP <> ID &l5???'Too ߿ |-(o߯&?A Ip% EI endstream endobj 283 0 obj <> stream 0 0 0 -4 42 106 d1 42 0 0 110 0 -4 cm BI /IM true /W 42 /H 110 /BPC 1 /F /CCF /DP <> ID &k~~߇߿ EI endstream endobj 284 0 obj <> stream 0 0 0 0 54 69 d1 54 0 0 69 0 0 cm BI /IM true /W 54 /H 69 /BPC 1 /F /CCF /DP <> ID &|PZG5x__aoׯe AI  EI endstream endobj 285 0 obj <> stream 0 0 0 0 55 80 d1 55 0 0 80 0 0 cm BI /IM true /W 55 /H 80 /BPC 1 /F /CCF /DP <> ID & Cx |@& ?|?N ENkKpa. % 0^ /C c)f>f~l4 EI endstream endobj 286 0 obj <> stream 0 0 0 79 45 88 d1 45 0 0 9 0 79 cm BI /IM true /W 45 /H 9 /BPC 1 /F /CCF /DP <> ID &_@ EI endstream endobj 287 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &=+ zDŽxH?OTFoO_ -޻ݏwP0^d a` / EI endstream endobj 288 0 obj <> stream 0 0 0 0 55 80 d1 55 0 0 80 0 0 cm BI /IM true /W 55 /H 80 /BPC 1 /F /CCF /DP <> ID &܆> A >t 7>A7_îsRi|0_b`P?O6?om[_ ,`p EI endstream endobj 289 0 obj <> stream 0 0 0 -4 70 78 d1 70 0 0 82 0 -4 cm BI /IM true /W 70 /H 82 /BPC 1 /F /CCF /DP <> ID &w Q ?AQg@ EI endstream endobj 290 0 obj <> stream 0 0 0 -5 31 78 d1 31 0 0 83 0 -5 cm BI /IM true /W 31 /H 83 /BPC 1 /F /CCF /DP <> ID &D@@ EI endstream endobj 291 0 obj <> stream 0 0 0 -2 59 73 d1 59 0 0 75 0 -2 cm BI /IM true /W 59 /H 75 /BPC 1 /F /CCF /DP <> ID !@> stream 0 0 0 20 51 93 d1 51 0 0 73 0 20 cm BI /IM true /W 51 /H 73 /BPC 1 /F /CCF /DP <> ID &3 Ozz~}a>7~x_/|/o߯$__?/(A24Y5V EI endstream endobj 293 0 obj <> stream 0 0 0 3 79 78 d1 79 0 0 75 0 3 cm BI /IM true /W 79 /H 75 /BPC 1 /F /CCF /DP <> ID &\#k>H]C_o ?޾|/I~^ 7z޷GC\3Ip@ EI endstream endobj 294 0 obj <> stream 145 0 0 0 0 0 d1 endstream endobj 295 0 obj <> stream 0 0 0 45 53 48 d1 53 0 0 3 0 45 cm BI /IM true /W 53 /H 3 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 296 0 obj <> stream 0 0 0 0 25 26 d1 25 0 0 26 0 0 cm BI /IM true /W 25 /H 26 /BPC 1 /F /CCF /DP <> ID &<aFy`,=q EI endstream endobj 297 0 obj <> stream 0 0 0 1 62 66 d1 62 0 0 65 0 1 cm BI /IM true /W 62 /H 65 /BPC 1 /F /CCF /DP <> ID #?MY@fE涿_ ]0?l3 /K^_ ׏ / EI endstream endobj 298 0 obj <> stream 0 0 0 3 20 66 d1 20 0 0 63 0 3 cm BI /IM true /W 20 /H 63 /BPC 1 /F /CCF /DP <> ID jdkXR@ EI endstream endobj 299 0 obj <> stream 25 0 0 0 0 0 d1 endstream endobj 300 0 obj <> stream 0 0 0 25 40 68 d1 40 0 0 43 0 25 cm BI /IM true /W 40 /H 43 /BPC 1 /F /CCF /DP <> ID &c=XFfA ?>5Z__m-oXa[^ EI endstream endobj 301 0 obj <> stream 0 0 0 2 32 66 d1 32 0 0 64 0 2 cm BI /IM true /W 32 /H 64 /BPC 1 /F /CCF /DP <> ID &䏵f`ȗ~_@ EI endstream endobj 302 0 obj <> stream 0 0 0 11 29 68 d1 29 0 0 57 0 11 cm BI /IM true /W 29 /H 57 /BPC 1 /F /CCF /DP <> ID & xFmxA?O$jh} EI endstream endobj 303 0 obj <> stream 0 0 0 3 46 66 d1 46 0 0 63 0 3 cm BI /IM true /W 46 /H 63 /BPC 1 /F /CCF /DP <> ID 899Zk3O`/0XQ  EI endstream endobj 304 0 obj <> stream 0 0 0 25 36 68 d1 36 0 0 43 0 25 cm BI /IM true /W 36 /H 43 /BPC 1 /F /CCF /DP <> ID &_az}?O:A~"h mX6,) EI endstream endobj 305 0 obj <> stream 0 0 0 27 46 66 d1 46 0 0 39 0 27 cm BI /IM true /W 46 /H 39 /BPC 1 /F /CCF /DP <> ID 5SAAau-ް^ح]k 7=+7ނ,=ţZ EI endstream endobj 306 0 obj <> stream 0 0 0 25 42 68 d1 42 0 0 43 0 25 cm BI /IM true /W 42 /H 43 /BPC 1 /F /CCF /DP <> ID & U[g1LB{?~M~~`Ad!.<X2p  EI endstream endobj 307 0 obj <> stream 0 0 0 26 73 66 d1 73 0 0 40 0 26 cm BI /IM true /W 73 /H 40 /BPC 1 /F /CCF /DP <> ID &N( kk3NMI ` @@ EI endstream endobj 308 0 obj <> stream 0 0 0 26 45 84 d1 45 0 0 58 0 26 cm BI /IM true /W 45 /H 58 /BPC 1 /F /CCF /DP <> ID Gԉ6c}0AA_](U_&  EI endstream endobj 309 0 obj <> stream 0 0 0 25 31 68 d1 31 0 0 43 0 25 cm BI /IM true /W 31 /H 43 /BPC 1 /F /CCF /DP <> ID 0)8Oa7L:Ac_D".,#X |ɪmv/!  EI endstream endobj 310 0 obj <> stream 0 0 0 26 32 66 d1 32 0 0 40 0 26 cm BI /IM true /W 32 /H 40 /BPC 1 /F /CCF /DP <> ID !8/k?xmlB50 EI endstream endobj 311 0 obj <> stream 0 0 0 26 46 66 d1 46 0 0 40 0 26 cm BI /IM true /W 46 /H 40 /BPC 1 /F /CCF /DP <> ID 899ZkuD` MG ( EI endstream endobj 312 0 obj <> stream 0 0 0 3 47 68 d1 47 0 0 65 0 3 cm BI /IM true /W 47 /H 65 /BPC 1 /F /CCF /DP <> ID &AO97|a:AL-'_H?_/kkͮ^/OA  EI endstream endobj 313 0 obj <> stream 0 0 0 5 20 66 d1 20 0 0 61 0 5 cm BI /IM true /W 20 /H 61 /BPC 1 /F /CCF /DP <> ID jdkMKO EI endstream endobj 314 0 obj <> stream 0 0 0 25 42 87 d1 42 0 0 62 0 25 cm BI /IM true /W 42 /H 62 /BPC 1 /F /CCF /DP <> ID &@.0zށ}MS_ Xl.=t @z< ZrtЁM zih597  @ EI endstream endobj 315 0 obj <> stream 0 0 0 26 46 68 d1 46 0 0 42 0 26 cm BI /IM true /W 46 /H 42 /BPC 1 /F /CCF /DP <> ID &9 P:Ai/DMG  EI endstream endobj 316 0 obj <> stream 26 0 0 0 0 0 d1 endstream endobj 317 0 obj <> stream 0 0 0 25 36 68 d1 36 0 0 43 0 25 cm BI /IM true /W 36 /H 43 /BPC 1 /F /CCF /DP <> ID &_a<f}>:< &;{~k` , EI endstream endobj 318 0 obj <> stream 0 0 0 27 63 68 d1 63 0 0 41 0 27 cm BI /IM true /W 63 /H 41 /BPC 1 /F /CCF /DP <> ID &g003յk}> -Mx~TIoz t5  EI endstream endobj 319 0 obj <> stream 24 0 0 0 0 0 d1 endstream endobj 320 0 obj <> stream 0 0 0 27 37 66 d1 37 0 0 39 0 27 cm BI /IM true /W 37 /H 39 /BPC 1 /F /CCF /DP <> ID &A"z [ /_m-  EI endstream endobj 321 0 obj <> stream 0 0 0 27 44 87 d1 44 0 0 60 0 27 cm BI /IM true /W 44 /H 60 /BPC 1 /F /CCF /DP <> ID &,Aq7~?___ pS/ EI endstream endobj 322 0 obj <> stream 0 0 0 17 38 66 d1 38 0 0 49 0 17 cm BI /IM true /W 38 /H 49 /BPC 1 /F /CCF /DP <> ID &XA<'>axPCMP_ڀ EI endstream endobj 323 0 obj <> stream 0 0 0 9 36 66 d1 36 0 0 57 0 9 cm BI /IM true /W 36 /H 57 /BPC 1 /F /CCF /DP <> ID &׿~?~@ EI endstream endobj 324 0 obj <> stream 0 0 0 27 46 66 d1 46 0 0 39 0 27 cm BI /IM true /W 46 /H 39 /BPC 1 /F /CCF /DP <> ID &5G2 YB©Rj0 EI endstream endobj 325 0 obj <> stream 0 0 0 27 35 66 d1 35 0 0 39 0 27 cm BI /IM true /W 35 /H 39 /BPC 1 /F /CCF /DP <> ID &!P!tpO_%#!d@xKZ@N (c8H? θ_@ EI endstream endobj 326 0 obj <> stream 0 0 0 3 24 74 d1 24 0 0 71 0 3 cm BI /IM true /W 24 /H 71 /BPC 1 /F /CCF /DP <> ID &B8Zh-/z/x_ܚ}{p EI endstream endobj 327 0 obj <> stream 0 0 0 11 44 66 d1 44 0 0 55 0 11 cm BI /IM true /W 44 /H 55 /BPC 1 /F /CCF /DP <> ID &N|!Z't _jk]}f Mj  EI endstream endobj 328 0 obj <> stream 0 0 0 26 43 88 d1 43 0 0 62 0 26 cm BI /IM true /W 43 /H 62 /BPC 1 /F /CCF /DP <> ID &@/!!( @5L\.ap\ =z('O 'kc<3 EI endstream endobj 329 0 obj <> stream 0 0 0 27 39 50 d1 39 0 0 23 0 27 cm BI /IM true /W 39 /H 23 /BPC 1 /F /CCF /DP <> ID &_( |@ EI endstream endobj 330 0 obj <> stream 95 0 0 0 0 0 d1 endstream endobj 331 0 obj <> stream 0 0 0 9 42 66 d1 42 0 0 57 0 9 cm BI /IM true /W 42 /H 57 /BPC 1 /F /CCF /DP <> ID &@-?Ms ߷ǿ EI endstream endobj 332 0 obj <> stream 0 0 0 3 23 74 d1 23 0 0 71 0 3 cm BI /IM true /W 23 /H 71 /BPC 1 /F /CCF /DP <> ID &;5A{}.^^AauKKXU MP_ EI endstream endobj 333 0 obj <> stream 0 0 0 56 11 84 d1 11 0 0 28 0 56 cm BI /IM true /W 11 /H 28 /BPC 1 /F /CCF /DP <> ID &zTz/ڀ EI endstream endobj 334 0 obj <> stream 0 0 0 11 46 66 d1 46 0 0 55 0 11 cm BI /IM true /W 46 /H 55 /BPC 1 /F /CCF /DP <> ID &5G2 \ij@ EI endstream endobj 335 0 obj <> stream 0 0 0 27 44 66 d1 44 0 0 39 0 27 cm BI /IM true /W 44 /H 39 /BPC 1 /F /CCF /DP <> ID &O|-koM___Oɪ EI endstream endobj 336 0 obj <> stream 0 0 0 54 13 66 d1 13 0 0 12 0 54 cm BI /IM true /W 13 /H 12 /BPC 1 /F /CCF /DP <> ID & EI endstream endobj 337 0 obj <> stream 0 0 0 11 38 66 d1 38 0 0 55 0 11 cm BI /IM true /W 38 /H 55 /BPC 1 /F /CCF /DP <> ID &(OA'BQ5A~A'Ӈ}AB  EI endstream endobj 338 0 obj <> stream 0 0 0 27 43 66 d1 43 0 0 39 0 27 cm BI /IM true /W 43 /H 39 /BPC 1 /F /CCF /DP <> ID &I,0NuP)\ xA|u>\fC.G\?iK[  EI endstream endobj 339 0 obj <> stream 0 0 0 27 42 66 d1 42 0 0 39 0 27 cm BI /IM true /W 42 /H 39 /BPC 1 /F /CCF /DP <> ID &Cah<>QPaa5H_@ EI endstream endobj 340 0 obj <> stream 0 0 0 11 42 66 d1 42 0 0 55 0 11 cm BI /IM true /W 42 /H 55 /BPC 1 /F /CCF /DP <> ID & TS!{׏ T>MPP EI endstream endobj 341 0 obj <> stream 0 0 0 9 42 66 d1 42 0 0 57 0 9 cm BI /IM true /W 42 /H 57 /BPC 1 /F /CCF /DP <> ID &AG NMVN ?_ik =q~@ EI endstream endobj 342 0 obj <> stream 0 0 0 11 41 66 d1 41 0 0 55 0 11 cm BI /IM true /W 41 /H 55 /BPC 1 /F /CCF /DP <> ID &v95_# /|P EI endstream endobj 343 0 obj <> stream 0 0 0 9 37 68 d1 37 0 0 59 0 9 cm BI /IM true /W 37 /H 59 /BPC 1 /F /CCF /DP <> ID &Ia_?(}7Ok]kd4k̄Q py4Q@_ Gpxk^/W & EI endstream endobj 344 0 obj <> stream 0 0 0 11 43 66 d1 43 0 0 55 0 11 cm BI /IM true /W 43 /H 55 /BPC 1 /F /CCF /DP <> ID &(ɪL ޟ'l?)5J  EI endstream endobj 345 0 obj <> stream 0 0 0 56 10 66 d1 10 0 0 10 0 56 cm BI /IM true /W 10 /H 10 /BPC 1 /F /CCF /DP <> ID &Zq~MR EI endstream endobj 347 0 obj <> stream 0 0 0 0 64 94 d1 64 0 0 94 0 0 cm BI /IM true /W 64 /H 94 /BPC 1 /F /CCF /DP <> ID j}>}~o߿݃ f<7~a#(' |%Uh,0awKv kaa"@Q@ EI endstream endobj 351 0 obj <> stream 0 0 0 -5 112 96 d1 112 0 0 101 0 -5 cm BI /IM true /W 112 /H 101 /BPC 1 /F /CCF /DP <> ID &Fm5e@?"}ޯzOo~ yAD3 EI endstream endobj 352 0 obj <> stream 0 0 0 30 75 96 d1 75 0 0 66 0 30 cm BI /IM true /W 75 /H 66 /BPC 1 /F /CCF /DP <> ID &f O ??>j[I o[+ [_ }B%@g!@ EI endstream endobj 353 0 obj <> stream 0 0 0 28 73 96 d1 73 0 0 68 0 28 cm BI /IM true /W 73 /H 68 /BPC 1 /F /CCF /DP <> ID &Aː_\H qCO ymn!%  ,__ᤸA-*_ @@ EI endstream endobj 354 0 obj <> stream 0 0 0 28 62 96 d1 62 0 0 68 0 28 cm BI /IM true /W 62 /H 68 /BPC 1 /F /CCF /DP <> ID &u ^<xAo@7?Af__L`߿ׯ~ ,?m]% Y ` EI endstream endobj 355 0 obj <> stream 0 0 0 -5 108 94 d1 108 0 0 99 0 -5 cm BI /IM true /W 108 /H 99 /BPC 1 /F /CCF /DP <> ID &;igaFwXeaAq2y~ 7oo~~o~__z/}xKK2el 6x EI endstream endobj 356 0 obj <> stream 0 0 0 28 53 96 d1 53 0 0 68 0 28 cm BI /IM true /W 53 /H 68 /BPC 1 /F /CCF /DP <> ID &.t?%¾k |Cx,I%, --r . 94྿{] .|%3|@ EI endstream endobj 357 0 obj <> stream 0 0 0 -6 79 96 d1 79 0 0 102 0 -6 cm BI /IM true /W 79 /H 102 /BPC 1 /F /CCF /DP <> ID &t @} @FDA!7  \0Apa.j1 >?>  EI endstream endobj 358 0 obj <> stream 0 0 0 7 42 79 d1 42 0 0 72 0 7 cm BI /IM true /W 42 /H 72 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8b?>aᇾ|=>P EI endstream endobj 359 0 obj <> stream 0 0 0 2 106 80 d1 106 0 0 78 0 2 cm BI /IM true /W 106 /H 78 /BPC 1 /F /CCF /DP <> ID &`5Mo>O/ ׇտ_鰗~?0OA[[J·_ z_S߅O A$!0  EI endstream endobj 360 0 obj <> stream 0 0 0 0 77 80 d1 77 0 0 80 0 0 cm BI /IM true /W 77 /H 80 /BPC 1 /F /CCF /DP <> ID &\ 20aAIzW^|H }}o o]5O .D` EI endstream endobj 361 0 obj <> stream 0 0 0 -5 25 104 d1 25 0 0 109 0 -5 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &_KK K_Z_ֿ ~~ֿooo@ EI endstream endobj 362 0 obj <> stream 0 0 0 29 48 79 d1 48 0 0 50 0 29 cm BI /IM true /W 48 /H 50 /BPC 1 /F /CCF /DP <> ID 8=wM>oa~߆oa<7aova> bi> o 0n EI endstream endobj 363 0 obj <> stream 0 0 0 -5 25 104 d1 25 0 0 109 0 -5 cm BI /IM true /W 25 /H 109 /BPC 1 /F /CCF /DP <> ID &lo Z__K Zip EI endstream endobj 364 0 obj <> stream 0 0 0 36 73 63 d1 73 0 0 27 0 36 cm BI /IM true /W 73 /H 27 /BPC 1 /F /CCF /DP <> ID &?ڀ EI endstream endobj 365 0 obj <> stream 0 0 0 28 43 79 d1 43 0 0 51 0 28 cm BI /IM true /W 43 /H 51 /BPC 1 /F /CCF /DP <> ID & >o=/i5X_ɪXm.4,X2p EI endstream endobj 366 0 obj <> stream 0 0 0 30 55 77 d1 55 0 0 47 0 30 cm BI /IM true /W 55 /H 47 /BPC 1 /F /CCF /DP <> ID %CUpp ^kíb^z&oҽ[?MHA EI endstream endobj 367 0 obj <> stream 0 0 0 29 55 99 d1 55 0 0 70 0 29 cm BI /IM true /W 55 /H 70 /BPC 1 /F /CCF /DP <> ID $7j2@jC_F?G0}龿o_\&֘AD4YO &H EI endstream endobj 368 0 obj <> stream 0 0 0 -82 55 180 d1 55 0 0 262 0 -82 cm BI /IM true /W 55 /H 262 /BPC 1 /F /CCF /DP <> ID &˅@hXKK]ZX_zx_a.XK ZX,BÃ\< oo}~ooo@ EI endstream endobj 369 0 obj <> stream 0 0 0 47 66 52 d1 66 0 0 5 0 47 cm BI /IM true /W 66 /H 5 /BPC 1 /F /CCF /DP <> ID &ɮ EI endstream endobj 370 0 obj <> stream 0 0 0 -82 30 180 d1 30 0 0 262 0 -82 cm BI /IM true /W 30 /H 262 /BPC 1 /F /CCF /DP <> ID 3  EI endstream endobj 371 0 obj <> stream 0 0 0 -82 54 180 d1 54 0 0 262 0 -82 cm BI /IM true /W 54 /H 262 /BPC 1 /F /CCF /DP <> ID &˅.KK/p^^aK^zz_^__ /^o ?~~o~ ?o~߾o~oÀ EI endstream endobj 372 0 obj <> stream 0 0 0 29 50 79 d1 50 0 0 50 0 29 cm BI /IM true /W 50 /H 50 /BPC 1 /F /CCF /DP <> ID &M00aat;A=Mowwѵi|0 ! EI endstream endobj 373 0 obj <> stream 0 0 0 0 42 78 d1 42 0 0 78 0 0 cm BI /IM true /W 42 /H 78 /BPC 1 /F /CCF /DP <> ID & G:z8aoH=&Mz{xu q an/? EI endstream endobj 374 0 obj <> stream 0 0 0 -158 54 104 d1 54 0 0 262 0 -158 cm BI /IM true /W 54 /H 262 /BPC 1 /F /CCF /DP <> ID < {==7߼?~ox~ap/k~~Z___^ֽ~x_ֿh/ZZ u]h.Z]h-( EI endstream endobj 375 0 obj <> stream 0 0 0 -158 29 104 d1 29 0 0 262 0 -158 cm BI /IM true /W 29 /H 262 /BPC 1 /F /CCF /DP <> ID &@ EI endstream endobj 376 0 obj <> stream 0 0 0 -158 55 104 d1 55 0 0 262 0 -158 cm BI /IM true /W 55 /H 262 /BPC 1 /F /CCF /DP <> ID 8 @k >><7XX@Aakֺ]~xZ]ka, X Q  EI endstream endobj 377 0 obj <> stream 0 0 0 -11 14 23 d1 14 0 0 34 0 -11 cm BI /IM true /W 14 /H 34 /BPC 1 /F /CCF /DP <> ID &w1& EI endstream endobj 378 0 obj <> stream 0 0 0 29 97 79 d1 97 0 0 50 0 29 cm BI /IM true /W 97 /H 50 /BPC 1 /F /CCF /DP <> ID &@m< `= OGBh 鰂|- L: ^a7_i~_C&5o&]`m. kL[2,<@,0D EI endstream endobj 379 0 obj <> stream 0 0 0 17 66 82 d1 66 0 0 65 0 17 cm BI /IM true /W 66 /H 65 /BPC 1 /F /CCF /DP <> ID &X,X@Aap`a .,X\ X X@pPrk> <0x|x`x0a >@ EI endstream endobj 380 0 obj <> stream 143 0 0 0 0 0 d1 endstream endobj 381 0 obj <> stream 0 0 0 -114 56 213 d1 56 0 0 327 0 -114 cm BI /IM true /W 56 /H 327 /BPC 1 /F /CCF /DP <> ID &kAipX%Z %Z_^k/ׯ_ KK (‡ɮx`{|= {7o{ow@ EI endstream endobj 382 0 obj <> stream 0 0 0 -88 47 -12 d1 47 0 0 76 0 -88 cm BI /IM true /W 47 /H 76 /BPC 1 /F /CCF /DP <> ID &A@Fczޓz7a7O?kivx[il0k[ EI endstream endobj 383 0 obj <> stream 0 0 0 7 66 94 d1 66 0 0 87 0 7 cm BI /IM true /W 66 /H 87 /BPC 1 /F /CCF /DP <> ID &ɮ Y` X.X \, XA`A`pa p 95 > <0x|x`x0ap @@ EI endstream endobj 384 0 obj <> stream 0 0 0 -49 46 147 d1 46 0 0 196 0 -49 cm BI /IM true /W 46 /H 196 /BPC 1 /F /CCF /DP <> ID &ېդ, @Z]kkֿaxZ֖AaBrj0xo{} =Ãy EI endstream endobj 385 0 obj <> stream 0 0 0 -17 29 113 d1 29 0 0 130 0 -17 cm BI /IM true /W 29 /H 130 /BPC 1 /F /CCF /DP <> ID &c Z\--p]~p/__{{x}w EI endstream endobj 386 0 obj <> stream 110 0 0 0 0 0 d1 endstream endobj 387 0 obj <> stream 0 0 0 -2 35 36 d1 35 0 0 38 0 -2 cm BI /IM true /W 35 /H 38 /BPC 1 /F /CCF /DP <> ID 0x?rk}i{!`lm>y,aᰟa?'/M;O @ EI endstream endobj 388 0 obj <> stream 0 0 0 12 51 16 d1 51 0 0 4 0 12 cm BI /IM true /W 51 /H 4 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 389 0 obj <> stream 0 0 0 -2 38 36 d1 38 0 0 38 0 -2 cm BI /IM true /W 38 /H 38 /BPC 1 /F /CCF /DP <> ID &pOXk&6 /ÿ&}oav48a@@ EI endstream endobj 390 0 obj <> stream 0 0 0 0 31 57 d1 31 0 0 57 0 0 cm BI /IM true /W 31 /H 57 /BPC 1 /F /CCF /DP <> ID &zޓ~MﶾBixaxa'@ EI endstream endobj 391 0 obj <> stream 0 0 0 -76 29 54 d1 29 0 0 130 0 -76 cm BI /IM true /W 29 /H 130 /BPC 1 /F /CCF /DP <> ID &{{>~ ??Z ֿ_ֽkּ-/uւ׮ EI endstream endobj 392 0 obj <> stream 0 0 0 -2 47 36 d1 47 0 0 38 0 -2 cm BI /IM true /W 47 /H 38 /BPC 1 /F /CCF /DP <> ID & #P@G4{z:D?@OQ|;}d>uj<5جX0P EI endstream endobj 393 0 obj <> stream 0 0 0 -31 46 165 d1 46 0 0 196 0 -31 cm BI /IM true /W 46 /H 196 /BPC 1 /F /CCF /DP <> ID 8 >Mpo{x|7=> stream 0 0 0 17 66 82 d1 66 0 0 65 0 17 cm BI /IM true /W 66 /H 65 /BPC 1 /F /CCF /DP <> ID &,ɯ  < <0|<<0|0` >]a  X.X \, XA`A`pap@@ EI endstream endobj 395 0 obj <> stream 0 0 0 -16 40 114 d1 40 0 0 130 0 -16 cm BI /IM true /W 40 /H 130 /BPC 1 /F /CCF /DP <> ID &apX@K]z -.Ah,.}4P_ # =a{p EI endstream endobj 396 0 obj <> stream 0 0 0 -16 21 114 d1 21 0 0 130 0 -16 cm BI /IM true /W 21 /H 130 /BPC 1 /F /CCF /DP <> ID o EI endstream endobj 397 0 obj <> stream 115 0 0 0 0 0 d1 endstream endobj 398 0 obj <> stream 0 0 0 -76 21 54 d1 21 0 0 130 0 -76 cm BI /IM true /W 21 /H 130 /BPC 1 /F /CCF /DP <> ID 5 EI endstream endobj 399 0 obj <> stream 0 0 0 2 40 132 d1 40 0 0 130 0 2 cm BI /IM true /W 40 /H 130 /BPC 1 /F /CCF /DP <> ID &ifу|xo~o  %_ָ..A` EI endstream endobj 400 0 obj <> stream 0 0 0 0 36 73 d1 36 0 0 73 0 0 cm BI /IM true /W 36 /H 73 /BPC 1 /F /CCF /DP <> ID j /&R?@ EI endstream endobj 401 0 obj <> stream 0 0 0 7 66 94 d1 66 0 0 87 0 7 cm BI /IM true /W 66 /H 87 /BPC 1 /F /CCF /DP <> ID &ɮ=C&x`0a <> <0|<xanXK ,,., \ @X@pa  @Q \( EI endstream endobj 402 0 obj <> stream 0 0 0 27 62 77 d1 62 0 0 50 0 27 cm BI /IM true /W 62 /H 50 /BPC 1 /F /CCF /DP <> ID &Af0=`70I c{f}}j^u47Ol$CA\@ EI endstream endobj 403 0 obj <> stream 0 0 0 -5 18 105 d1 18 0 0 110 0 -5 cm BI /IM true /W 18 /H 110 /BPC 1 /F /CCF /DP <> ID &7  EI endstream endobj 404 0 obj <> stream 0 0 0 9 73 82 d1 73 0 0 73 0 9 cm BI /IM true /W 73 /H 73 /BPC 1 /F /CCF /DP <> ID &`4??d4 @@ EI endstream endobj 405 0 obj <> stream 0 0 0 -3 45 96 d1 45 0 0 99 0 -3 cm BI /IM true /W 45 /H 99 /BPC 1 /F /CCF /DP <> ID &1xG W( AAd(L D1X(:n !WU&ͦ<fa8!ZCk=>,! EI endstream endobj 406 0 obj <> stream 0 0 0 29 58 101 d1 58 0 0 72 0 29 cm BI /IM true /W 58 /H 72 /BPC 1 /F /CCF /DP <> ID & {cA80?`>w?~~wᅰ  EI endstream endobj 407 0 obj <> stream 0 0 0 -5 42 105 d1 42 0 0 110 0 -5 cm BI /IM true /W 42 /H 110 /BPC 1 /F /CCF /DP <> ID &է?~{?o~{?o~ EI endstream endobj 408 0 obj <> stream 0 0 0 30 59 79 d1 59 0 0 49 0 30 cm BI /IM true /W 59 /H 49 /BPC 1 /F /CCF /DP <> ID &S<0x,= >V0_ .ۭvClJ 8  EI endstream endobj 409 0 obj <> stream 0 0 0 -5 17 105 d1 17 0 0 110 0 -5 cm BI /IM true /W 17 /H 110 /BPC 1 /F /CCF /DP <> ID 5 EI endstream endobj 410 0 obj <> stream 0 0 0 -19 28 34 d1 28 0 0 53 0 -19 cm BI /IM true /W 28 /H 53 /BPC 1 /F /CCF /DP <> ID &5!{@ EI endstream endobj 411 0 obj <> stream 0 0 0 -26 32 55 d1 32 0 0 81 0 -26 cm BI /IM true /W 32 /H 81 /BPC 1 /F /CCF /DP <> ID &e~x~{~ EI endstream endobj 412 0 obj <> stream 0 0 0 -21 36 51 d1 36 0 0 72 0 -21 cm BI /IM true /W 36 /H 72 /BPC 1 /F /CCF /DP <> ID &X3 -*{oaFC. ~ =px{ EI endstream endobj 413 0 obj <> stream 0 0 0 0 56 57 d1 56 0 0 57 0 0 cm BI /IM true /W 56 /H 57 /BPC 1 /F /CCF /DP <> ID &l Xe@ EI endstream endobj 414 0 obj <> stream 132 0 0 0 0 0 d1 endstream endobj 415 0 obj <> stream 0 0 0 -1 54 77 d1 54 0 0 78 0 -1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &h<L>? wwr?߻fs1k ߿JH EI endstream endobj 416 0 obj <> stream 0 0 0 0 86 48 d1 86 0 0 48 0 0 cm BI /IM true /W 86 /H 48 /BPC 1 /F /CCF /DP <> ID $&ɨ3Mw4ACppaa. ` PbhQ!p @ EI endstream endobj 417 0 obj <> stream 0 0 0 -1 50 50 d1 50 0 0 51 0 -1 cm BI /IM true /W 50 /H 51 /BPC 1 /F /CCF /DP <> ID & `OAH6zxO Bo?o0~ x>AEYEp0AaXad0 EI endstream endobj 418 0 obj <> stream 0 0 0 7 42 79 d1 42 0 0 72 0 7 cm BI /IM true /W 42 /H 72 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8b?h-.Aa-t@@ EI endstream endobj 419 0 obj <> stream 0 0 0 16 97 75 d1 97 0 0 59 0 16 cm BI /IM true /W 97 /H 59 /BPC 1 /F /CCF /DP <> ID &yA{` Aad pkւz~/ EI endstream endobj 420 0 obj <> stream 119 0 0 0 0 0 d1 endstream endobj 421 0 obj <> stream 113 0 0 0 0 0 d1 endstream endobj 422 0 obj <> stream 0 0 0 0 45 57 d1 45 0 0 57 0 0 cm BI /IM true /W 45 /H 57 /BPC 1 /F /CCF /DP <> ID &zo =o` <>o =oa\,X],.X\ ,X],.[ EI endstream endobj 423 0 obj <> stream 0 0 0 1 29 87 d1 29 0 0 86 0 1 cm BI /IM true /W 29 /H 86 /BPC 1 /F /CCF /DP <> ID &iZhZXK____ڀ EI endstream endobj 424 0 obj <> stream 0 0 0 8 45 79 d1 45 0 0 71 0 8 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &A@/A >xIOzu__ ^ x`_00^A߿ 0 ~߰~ %5 \ EI endstream endobj 425 0 obj <> stream 0 0 0 64 19 93 d1 19 0 0 29 0 64 cm BI /IM true /W 19 /H 29 /BPC 1 /F /CCF /DP <> ID &Cɯ>~AְP EI endstream endobj 426 0 obj <> stream 0 0 0 31 49 57 d1 49 0 0 26 0 31 cm BI /IM true /W 49 /H 26 /BPC 1 /F /CCF /DP <> ID &Zq~Mu/]~@ EI endstream endobj 427 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID & =?@ނ ?xI7A?4x_]zxk  bk ma EI endstream endobj 428 0 obj <> stream 0 0 0 8 37 77 d1 37 0 0 69 0 8 cm BI /IM true /W 37 /H 69 /BPC 1 /F /CCF /DP <> ID & O<uk EI endstream endobj 429 0 obj <> stream 0 0 0 1 29 87 d1 29 0 0 86 0 1 cm BI /IM true /W 29 /H 86 /BPC 1 /F /CCF /DP <> ID &n.5{xaoo~;__,/ ׬%QUP\  EI endstream endobj 430 0 obj <> stream 0 0 0 10 45 79 d1 45 0 0 69 0 10 cm BI /IM true /W 45 /H 69 /BPC 1 /F /CCF /DP <> ID &@@@bp~V{]Y, ^ { p`\W y$x*{P EI endstream endobj 431 0 obj <> stream 0 0 0 0 30 86 d1 30 0 0 86 0 0 cm BI /IM true /W 30 /H 86 /BPC 1 /F /CCF /DP <> ID &|L- EI endstream endobj 432 0 obj <> stream 0 0 0 1 30 87 d1 30 0 0 86 0 1 cm BI /IM true /W 30 /H 86 /BPC 1 /F /CCF /DP <> ID &5 s5@ EI endstream endobj 433 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID & /=GQoH0o=~ id3` *fksN~[ g@c@ EI endstream endobj 434 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &x}<>|g@ EI endstream endobj 435 0 obj <> stream 0 0 0 8 49 77 d1 49 0 0 69 0 8 cm BI /IM true /W 49 /H 69 /BPC 1 /F /CCF /DP <> ID &-?GpX\6Mp?5 EI endstream endobj 436 0 obj <> stream 0 0 0 8 47 79 d1 47 0 0 71 0 8 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID & " < zAta? z.z0`,[X x#:8 M}>a0 / Xa` EI endstream endobj 437 0 obj <> stream 0 0 0 10 49 77 d1 49 0 0 67 0 10 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &ɮ/ wσ!ޟCk EI endstream endobj 438 0 obj <> stream 0 0 0 8 51 77 d1 51 0 0 69 0 8 cm BI /IM true /W 51 /H 69 /BPC 1 /F /CCF /DP <> ID & Oj_s!f놿_ EI endstream endobj 439 0 obj <> stream 0 0 0 10 49 77 d1 49 0 0 67 0 10 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &y5D^?wɯ  EI endstream endobj 440 0 obj <> stream 0 0 0 8 45 79 d1 45 0 0 71 0 8 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &xA|>> }%]td k3! KZ"ࢎVHVxOv ^}T\/ _@ EI endstream endobj 441 0 obj <> stream 0 0 0 10 50 77 d1 50 0 0 67 0 10 cm BI /IM true /W 50 /H 67 /BPC 1 /F /CCF /DP <> ID &k_!??zςk!ޟpXP EI endstream endobj 442 0 obj <> stream 114 0 0 0 0 0 d1 endstream endobj 444 0 obj <> stream 0 0 0 0 49 67 d1 49 0 0 67 0 0 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &8 A[q|!&B/]mdyw@ EI endstream endobj 448 0 obj <> stream 0 0 0 0 49 67 d1 49 0 0 67 0 0 cm BI /IM true /W 49 /H 67 /BPC 1 /F /CCF /DP <> ID &;MS@>?}ׄp0o/^_KBTFp EI endstream endobj 449 0 obj <> stream 117 0 0 0 0 0 d1 endstream endobj 450 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &X%?yvC&@@ EI endstream endobj 451 0 obj <> stream 0 0 0 0 53 69 d1 53 0 0 69 0 0 cm BI /IM true /W 53 /H 69 /BPC 1 /F /CCF /DP <> ID &ܜ6|x@oAA (A "-?&5 EI endstream endobj 452 0 obj <> stream 0 0 0 0 39 67 d1 39 0 0 67 0 0 cm BI /IM true /W 39 /H 67 /BPC 1 /F /CCF /DP <> ID &E5K  EI endstream endobj 453 0 obj <> stream 0 0 0 2 78 77 d1 78 0 0 75 0 2 cm BI /IM true /W 78 /H 75 /BPC 1 /F /CCF /DP <> ID "5 C]h=? >^@ƒ% EI endstream endobj 455 0 obj <> stream 0 0 0 2 90 77 d1 90 0 0 75 0 2 cm BI /IM true /W 90 /H 75 /BPC 1 /F /CCF /DP <> ID )9&d3*T_5ۅ][l%߶6mva߆=>B~aAվzM<+}7` 5qDo EI endstream endobj 456 0 obj <> stream 0 0 0 -11 13 1 d1 13 0 0 12 0 -11 cm BI /IM true /W 13 /H 12 /BPC 1 /F /CCF /DP <> ID &&~ @ EI endstream endobj 457 0 obj <> stream 0 0 0 58 69 96 d1 69 0 0 38 0 58 cm BI /IM true /W 69 /H 38 /BPC 1 /F /CCF /DP <> ID &l4M09Powo8wwMV/{:Pc> ` EI endstream endobj 458 0 obj <> stream 0 0 0 0 76 78 d1 76 0 0 78 0 0 cm BI /IM true /W 76 /H 78 /BPC 1 /F /CCF /DP <> ID &@2q@D1M @A7[ |?{j?w# \ EI endstream endobj 459 0 obj <> stream 0 0 0 -5 39 105 d1 39 0 0 110 0 -5 cm BI /IM true /W 39 /H 110 /BPC 1 /F /CCF /DP <> ID &Ӑ4(Aa//a.@TGL<7{<>xd04@ EI endstream endobj 460 0 obj <> stream 0 0 0 -5 39 105 d1 39 0 0 110 0 -5 cm BI /IM true /W 39 /H 110 /BPC 1 /F /CCF /DP <> ID 3e&} ~aC[4-u k.Q H EI endstream endobj 461 0 obj <> stream 0 0 0 0 67 75 d1 67 0 0 75 0 0 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID +A5 H r 4?߷7w?+ EI endstream endobj 462 0 obj <> stream 0 0 0 -27 25 48 d1 25 0 0 75 0 -27 cm BI /IM true /W 25 /H 75 /BPC 1 /F /CCF /DP <> ID j)AZL _ EI endstream endobj 463 0 obj <> stream 0 0 0 0 56 48 d1 56 0 0 48 0 0 cm BI /IM true /W 56 /H 48 /BPC 1 /F /CCF /DP <> ID $ME( _P(a. p`Ԛ  EI endstream endobj 464 0 obj <> stream 0 0 0 0 65 75 d1 65 0 0 75 0 0 cm BI /IM true /W 65 /H 75 /BPC 1 /F /CCF /DP <> ID #`5 , ~#~~?__}xK^2kP4` EI endstream endobj 465 0 obj <> stream 0 0 0 27 38 75 d1 38 0 0 48 0 27 cm BI /IM true /W 38 /H 48 /BPC 1 /F /CCF /DP <> ID &~MFH  ߭a|1XjMD  EI endstream endobj 466 0 obj <> stream 0 0 0 29 55 79 d1 55 0 0 50 0 29 cm BI /IM true /W 55 /H 50 /BPC 1 /F /CCF /DP <> ID &h3? z80>`Az 8MU7a[;^_d-aw{sl> a)A EI endstream endobj 467 0 obj <> stream 0 0 0 29 90 79 d1 90 0 0 50 0 29 cm BI /IM true /W 90 /H 50 /BPC 1 /F /CCF /DP <> ID & af a݄~= ~wA{~߻Çɪ߻~zzH 2] V   @ EI endstream endobj 468 0 obj <> stream 0 0 0 8 33 41 d1 33 0 0 33 0 8 cm BI /IM true /W 33 /H 33 /BPC 1 /F /CCF /DP <> ID &\h0  EI endstream endobj 469 0 obj <> stream 121 0 0 0 0 0 d1 endstream endobj 470 0 obj <> stream 0 0 0 40 20 121 d1 20 0 0 81 0 40 cm BI /IM true /W 20 /H 81 /BPC 1 /F /CCF /DP <> ID &ƾZi~]x_^_MW?=n EI endstream endobj 471 0 obj <> stream 0 0 0 -26 20 55 d1 20 0 0 81 0 -26 cm BI /IM true /W 20 /H 81 /BPC 1 /F /CCF /DP <> ID &/a߾__K~ZzAikP EI endstream endobj 472 0 obj <> stream 0 0 0 47 35 100 d1 35 0 0 53 0 47 cm BI /IM true /W 35 /H 53 /BPC 1 /F /CCF /DP <> ID kٰo߆}{xa{[^I[kmaN  EI endstream endobj 473 0 obj <> stream 28 0 0 0 0 0 d1 endstream endobj 474 0 obj <> stream 0 0 0 43 13 56 d1 13 0 0 13 0 43 cm BI /IM true /W 13 /H 13 /BPC 1 /F /CCF /DP <> ID &/( EI endstream endobj 475 0 obj <> stream 0 0 0 2 44 98 d1 44 0 0 96 0 2 cm BI /IM true /W 44 /H 96 /BPC 1 /F /CCF /DP <> ID &h = ~}aႿ~?A2c?ռ ( EI endstream endobj 476 0 obj <> stream 0 0 0 46 35 117 d1 35 0 0 71 0 46 cm BI /IM true /W 35 /H 71 /BPC 1 /F /CCF /DP <> ID &B:z|߰Mymۭ]ad6~?C2@ EI endstream endobj 477 0 obj <> stream 0 0 0 0 145 153 d1 145 0 0 153 0 0 cm BI /IM true /W 145 /H 153 /BPC 1 /F /CCF /DP <> ID &7{4lka<2ᦟl?~olpa?~{o~oolka߽oo >t׭ptׅ tX^ xj]zA-%, P.tZA~D јHRzD+> EI endstream endobj 478 0 obj <> stream 0 0 0 0 38 57 d1 38 0 0 57 0 0 cm BI /IM true /W 38 /H 57 /BPC 1 /F /CCF /DP <> ID & rz_>Kb g}B>o>x`׆w"~ EI endstream endobj 479 0 obj <> stream 0 0 0 24 56 47 d1 56 0 0 23 0 24 cm BI /IM true /W 56 /H 23 /BPC 1 /F /CCF /DP <> ID &(5K EI endstream endobj 480 0 obj <> stream 0 0 0 2 35 57 d1 35 0 0 55 0 2 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID & xXz7ނ O_ ޿޿K ,0 EI endstream endobj 481 0 obj <> stream 0 0 0 150 50 228 d1 50 0 0 78 0 150 cm BI /IM true /W 50 /H 78 /BPC 1 /F /CCF /DP <> ID &0x?~o}ڿ}u|/q3kݾd1~wa῰ x3  EI endstream endobj 482 0 obj <> stream 0 0 0 15 54 80 d1 54 0 0 65 0 15 cm BI /IM true /W 54 /H 65 /BPC 1 /F /CCF /DP <> ID & @]._h/ׯ=O&M7{{!D`Ȫe$ EI endstream endobj 487 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &\_!Cx"TNaoI߻ /K\%lhp 5oa oD"Oz׼/]r/:Xb$GeU EI endstream endobj 488 0 obj <> stream 0 0 0 -5 97 94 d1 97 0 0 99 0 -5 cm BI /IM true /W 97 /H 99 /BPC 1 /F /CCF /DP <> ID &+; 4gu|?a9CH߆~~ / f K?8foo~/_ |/Kf~.;<@ EI endstream endobj 489 0 obj <> stream 0 0 0 -5 94 94 d1 94 0 0 99 0 -5 cm BI /IM true /W 94 /H 99 /BPC 1 /F /CCF /DP <> ID &!!3I 1߇ F>!__~𾾾 2 EI endstream endobj 490 0 obj <> stream 0 0 0 30 78 94 d1 78 0 0 64 0 30 cm BI /IM true /W 78 /H 64 /BPC 1 /F /CCF /DP <> ID &jf zᆖ KoKۭbZ_\'o[A_o Oި8  EI endstream endobj 491 0 obj <> stream 0 0 0 29 123 94 d1 123 0 0 65 0 29 cm BI /IM true /W 123 /H 65 /BPC 1 /F /CCF /DP <> ID & E Y eAú kar X5L4=xbh5 A AC EI endstream endobj 492 0 obj <> stream 0 0 0 -5 111 96 d1 111 0 0 101 0 -5 cm BI /IM true /W 111 /H 101 /BPC 1 /F /CCF /DP <> ID &Hf O????ȅ׫}~/[ M+[V_^++JWO|/o׭|/"ĉY  EI endstream endobj 493 0 obj <> stream 124 0 0 0 0 0 d1 endstream endobj 494 0 obj <> stream 0 0 0 -6 36 94 d1 36 0 0 100 0 -6 cm BI /IM true /W 36 /H 100 /BPC 1 /F /CCF /DP <> ID &BUW@ EI endstream endobj 495 0 obj <> stream 0 0 0 29 51 100 d1 51 0 0 71 0 29 cm BI /IM true /W 51 /H 71 /BPC 1 /F /CCF /DP <> ID &  o|o E?C>>}5P?owx^ { k ! EI endstream endobj 496 0 obj <> stream 0 0 0 -2 33 36 d1 33 0 0 38 0 -2 cm BI /IM true /W 33 /H 38 /BPC 1 /F /CCF /DP <> ID &l >}"_5['lk l € EI endstream endobj 497 0 obj <> stream 0 0 0 -47 45 3 d1 45 0 0 50 0 -47 cm BI /IM true /W 45 /H 50 /BPC 1 /F /CCF /DP <> ID &8  5[3a `A @@ EI endstream endobj 498 0 obj <> stream 0 0 0 -58 67 17 d1 67 0 0 75 0 -58 cm BI /IM true /W 67 /H 75 /BPC 1 /F /CCF /DP <> ID &.z`eUOD|4\I,0^@oKo{ o^߯Xo o]--.C I @ EI endstream endobj 499 0 obj <> stream 0 0 0 1 54 79 d1 54 0 0 78 0 1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &l[io6n߶îoiw ~ok}/z/zׯ X%@ EI endstream endobj 500 0 obj <> stream 0 0 0 1 26 77 d1 26 0 0 76 0 1 cm BI /IM true /W 26 /H 76 /BPC 1 /F /CCF /DP <> ID j)@녏MD@ EI endstream endobj 501 0 obj <> stream 0 0 0 28 49 79 d1 49 0 0 51 0 28 cm BI /IM true /W 49 /H 51 /BPC 1 /F /CCF /DP <> ID &3`[0oI&,>&_ .[ip` %!``@@ EI endstream endobj 502 0 obj <> stream 0 0 0 28 50 101 d1 50 0 0 73 0 28 cm BI /IM true /W 50 /H 73 /BPC 1 /F /CCF /DP <> ID &' 7xX}11@ @@ EI endstream endobj 503 0 obj <> stream 0 0 0 0 74 75 d1 74 0 0 75 0 0 cm BI /IM true /W 74 /H 75 /BPC 1 /F /CCF /DP <> ID #a?j1,&AăF EI endstream endobj 504 0 obj <> stream 0 0 0 4 55 77 d1 55 0 0 73 0 4 cm BI /IM true /W 55 /H 73 /BPC 1 /F /CCF /DP <> ID &Cj }aoz!p_ I`OL@ EI endstream endobj 505 0 obj <> stream 0 0 0 5 28 60 d1 28 0 0 55 0 5 cm BI /IM true /W 28 /H 55 /BPC 1 /F /CCF /DP <> ID &1=;{"?[_?a@@ EI endstream endobj 506 0 obj <> stream 0 0 0 -72 44 1 d1 44 0 0 73 0 -72 cm BI /IM true /W 44 /H 73 /BPC 1 /F /CCF /DP <> ID &/ }aݷ2 w}}{8o]V͆W.ïa. b EI endstream endobj 507 0 obj <> stream 0 0 0 -75 51 23 d1 51 0 0 98 0 -75 cm BI /IM true /W 51 /H 98 /BPC 1 /F /CCF /DP <> ID &\<%Ko:b`u,  EI endstream endobj 508 0 obj <> stream 0 0 0 -22 29 52 d1 29 0 0 74 0 -22 cm BI /IM true /W 29 /H 74 /BPC 1 /F /CCF /DP <> ID &k_Ek  EI endstream endobj 509 0 obj <> stream 0 0 0 0 48 79 d1 48 0 0 79 0 0 cm BI /IM true /W 48 /H 79 /BPC 1 /F /CCF /DP <> ID &L7>zL>A7~}?ÿ]`{? 4`€ EI endstream endobj 510 0 obj <> stream 0 0 0 0 45 78 d1 45 0 0 78 0 0 cm BI /IM true /W 45 /H 78 /BPC 1 /F /CCF /DP <> ID & pPx zށ7?7MuxO!? EI endstream endobj 511 0 obj <> stream 0 0 0 0 68 77 d1 68 0 0 77 0 0 cm BI /IM true /W 68 /H 77 /BPC 1 /F /CCF /DP <> ID &2'"ta_H?& 2{zwnͦ0 8k@ EI endstream endobj 512 0 obj <> stream 0 0 0 5 28 66 d1 28 0 0 61 0 5 cm BI /IM true /W 28 /H 61 /BPC 1 /F /CCF /DP <> ID j!@F@ EI endstream endobj 513 0 obj <> stream 0 0 0 2 65 69 d1 65 0 0 67 0 2 cm BI /IM true /W 65 /H 67 /BPC 1 /F /CCF /DP <> ID &RA#Cw]>'a_tێookmpaDOnA8p EI endstream endobj 514 0 obj <> stream 0 0 0 -1 22 88 d1 22 0 0 89 0 -1 cm BI /IM true /W 22 /H 89 /BPC 1 /F /CCF /DP <> ID &Z uׅ.^ֿ ߿ @ EI endstream endobj 515 0 obj <> stream 0 0 0 26 39 68 d1 39 0 0 42 0 26 cm BI /IM true /W 39 /H 42 /BPC 1 /F /CCF /DP <> ID 0 ^i؟>mwl>{oc{> <7E~{ Ȅ7O8 EI endstream endobj 516 0 obj <> stream 0 0 0 35 22 75 d1 22 0 0 40 0 35 cm BI /IM true /W 22 /H 40 /BPC 1 /F /CCF /DP <> ID fc>j\? EI endstream endobj 517 0 obj <> stream 0 0 0 56 11 84 d1 11 0 0 28 0 56 cm BI /IM true /W 11 /H 28 /BPC 1 /F /CCF /DP <> ID &zTz/ڀ EI endstream endobj 518 0 obj <> stream 0 0 0 35 28 75 d1 28 0 0 40 0 35 cm BI /IM true /W 28 /H 40 /BPC 1 /F /CCF /DP <> ID &0 0;aaoÚ:}7 { o[ %f@ EI endstream endobj 519 0 obj <> stream 0 0 0 -1 23 88 d1 23 0 0 89 0 -1 cm BI /IM true /W 23 /H 89 /BPC 1 /F /CCF /DP <> ID &g{={}/_k~p]h-u]u EI endstream endobj 520 0 obj <> stream 0 0 0 31 62 56 d1 62 0 0 25 0 31 cm BI /IM true /W 62 /H 25 /BPC 1 /F /CCF /DP <> ID &?cJ@ EI endstream endobj 521 0 obj <> stream 0 0 0 25 36 68 d1 36 0 0 43 0 25 cm BI /IM true /W 36 /H 43 /BPC 1 /F /CCF /DP <> ID &_az}?O:A~"h mX6,) EI endstream endobj 522 0 obj <> stream 0 0 0 27 46 66 d1 46 0 0 39 0 27 cm BI /IM true /W 46 /H 39 /BPC 1 /F /CCF /DP <> ID 5SAAau-ް^ح]k 7=+7ނ,=ţZ EI endstream endobj 523 0 obj <> stream 0 0 0 26 45 84 d1 45 0 0 58 0 26 cm BI /IM true /W 45 /H 58 /BPC 1 /F /CCF /DP <> ID Gԉ6c}0AA_](U_&  EI endstream endobj 524 0 obj <> stream 0 0 0 -1 34 89 d1 34 0 0 90 0 -1 cm BI /IM true /W 34 /H 90 /BPC 1 /F /CCF /DP <> ID &nD," KK}tioo7ʘ EI endstream endobj 525 0 obj <> stream 0 0 0 41 57 46 d1 57 0 0 5 0 41 cm BI /IM true /W 57 /H 5 /BPC 1 /F /CCF /DP <> ID &E( EI endstream endobj 526 0 obj <> stream 0 0 0 26 43 86 d1 43 0 0 60 0 26 cm BI /IM true /W 43 /H 60 /BPC 1 /F /CCF /DP <> ID & :G&a~{Wy GE> stream 0 0 0 13 62 74 d1 62 0 0 61 0 13 cm BI /IM true /W 62 /H 61 /BPC 1 /F /CCF /DP <> ID &`3>Zf EI endstream endobj 528 0 obj <> stream 0 0 0 -1 34 89 d1 34 0 0 90 0 -1 cm BI /IM true /W 34 /H 90 /BPC 1 /F /CCF /DP <> ID & dكчo|7|衿#BX]-/_\ YZ\  EI endstream endobj 529 0 obj <> stream 0 0 0 0 25 57 d1 25 0 0 57 0 0 cm BI /IM true /W 25 /H 57 /BPC 1 /F /CCF /DP <> ID &LaKA€ EI endstream endobj 530 0 obj <> stream 0 0 0 17 56 84 d1 56 0 0 67 0 17 cm BI /IM true /W 56 /H 67 /BPC 1 /F /CCF /DP <> ID &PH7AoECA ~+_p]u0ml`}l"xzx1! EI endstream endobj 531 0 obj <> stream 0 0 0 26 73 66 d1 73 0 0 40 0 26 cm BI /IM true /W 73 /H 40 /BPC 1 /F /CCF /DP <> ID &N( kk3NMI ` @@ EI endstream endobj 532 0 obj <> stream 0 0 0 25 42 68 d1 42 0 0 43 0 25 cm BI /IM true /W 42 /H 43 /BPC 1 /F /CCF /DP <> ID & U[g1LB{?~M~~`Ad!.<X2p  EI endstream endobj 537 0 obj <> stream 0 0 0 16 45 73 d1 45 0 0 57 0 16 cm BI /IM true /W 45 /H 57 /BPC 1 /F /CCF /DP <> ID & p-Aa K-Ah/=0 <0=0ᅆ EI endstream endobj 538 0 obj <> stream 0 0 0 0 70 95 d1 70 0 0 95 0 0 cm BI /IM true /W 70 /H 95 /BPC 1 /F /CCF /DP <> ID &C^σQ?߰?oo~?x EI endstream endobj 539 0 obj <> stream 0 0 0 -4 140 95 d1 140 0 0 99 0 -4 cm BI /IM true /W 140 /H 99 /BPC 1 /F /CCF /DP <> ID &s_td5ᄟ? O 7M [ 7 O8OP EI endstream endobj 540 0 obj <> stream 0 0 0 40 39 97 d1 39 0 0 57 0 40 cm BI /IM true /W 39 /H 57 /BPC 1 /F /CCF /DP <> ID &pGG5}Oۿ] ~C,@ EI endstream endobj 541 0 obj <> stream 0 0 0 -1 54 77 d1 54 0 0 78 0 -1 cm BI /IM true /W 54 /H 78 /BPC 1 /F /CCF /DP <> ID &MAh}C?x۽}ɯnm]6 / ߿?!_~AV EI endstream endobj 542 0 obj <> stream 0 0 0 2 79 77 d1 79 0 0 75 0 2 cm BI /IM true /W 79 /H 75 /BPC 1 /F /CCF /DP <> ID *@I@prj ? ? uX] #?op{^|}2,uʘ\@ EI endstream endobj 543 0 obj <> stream 0 0 0 30 13 77 d1 13 0 0 47 0 30 cm BI /IM true /W 13 /H 47 /BPC 1 /F /CCF /DP <> ID &&~ ?^~5K  EI endstream endobj 544 0 obj <> stream 0 0 0 -5 6 105 d1 6 0 0 110 0 -5 cm BI /IM true /W 6 /H 110 /BPC 1 /F /CCF /DP <> ID &ڀ EI endstream endobj 545 0 obj <> stream 0 0 0 46 22 102 d1 22 0 0 56 0 46 cm BI /IM true /W 22 /H 56 /BPC 1 /F /CCF /DP <> ID &=75Aoح  ڀ EI endstream endobj 546 0 obj <> stream 27 0 0 0 0 0 d1 endstream endobj 547 0 obj <> stream 0 0 0 4 28 79 d1 28 0 0 75 0 4 cm BI /IM true /W 28 /H 75 /BPC 1 /F /CCF /DP <> ID &OAO~5C;߿ ] a6^? EI endstream endobj 548 0 obj <> stream 0 0 0 9 41 61 d1 41 0 0 52 0 9 cm BI /IM true /W 41 /H 52 /BPC 1 /F /CCF /DP <> ID &@hρxAh-t]kK__%A65^x}|=P/L EI endstream endobj 549 0 obj <> stream 0 0 0 1 59 55 d1 59 0 0 54 0 1 cm BI /IM true /W 59 /H 54 /BPC 1 /F /CCF /DP <> ID &|y#pa~o}\|-f~ 0Av*pP EI endstream endobj 550 0 obj <> stream 0 0 0 -136 27 60 d1 27 0 0 196 0 -136 cm BI /IM true /W 27 /H 196 /BPC 1 /F /CCF /DP <> ID &<?L7@ EI endstream endobj 551 0 obj <> stream 0 0 0 90 11 116 d1 11 0 0 26 0 90 cm BI /IM true /W 11 /H 26 /BPC 1 /F /CCF /DP <> ID & =*=rj@@ EI endstream endobj 552 0 obj <> stream 0 0 0 6 26 50 d1 26 0 0 44 0 6 cm BI /IM true /W 26 /H 44 /BPC 1 /F /CCF /DP <> ID &f7߾]km1^ o cy EI endstream endobj 553 0 obj <> stream 0 0 0 -48 26 148 d1 26 0 0 196 0 -48 cm BI /IM true /W 26 /H 196 /BPC 1 /F /CCF /DP <> ID ?@ EI endstream endobj 554 0 obj <> stream 0 0 0 -5 42 105 d1 42 0 0 110 0 -5 cm BI /IM true /W 42 /H 110 /BPC 1 /F /CCF /DP <> ID &kK/Zz_kK/Zz_k/Z/j  EI endstream endobj 555 0 obj <> stream 0 0 0 -5 103 105 d1 103 0 0 110 0 -5 cm BI /IM true /W 103 /H 110 /BPC 1 /F /CCF /DP <> ID &O3~9}~?`>mm!>{oK ]ik uZ K k]h/ <]}U pP]‚YD + EI endstream endobj 556 0 obj <> stream 0 0 0 27 17 87 d1 17 0 0 60 0 27 cm BI /IM true /W 17 /H 60 /BPC 1 /F /CCF /DP <> ID &]iiat]kK_ɪ7{  EI endstream endobj 557 0 obj <> stream 0 0 0 31 19 74 d1 19 0 0 43 0 31 cm BI /IM true /W 19 /H 43 /BPC 1 /F /CCF /DP <> ID &xAw;]Xk EI endstream endobj 558 0 obj <> stream 0 0 0 27 18 87 d1 18 0 0 60 0 27 cm BI /IM true /W 18 /H 60 /BPC 1 /F /CCF /DP <> ID &>{|=>{_Zָ]-֖ EI endstream endobj 559 0 obj <> stream 0 0 0 71 30 113 d1 30 0 0 42 0 71 cm BI /IM true /W 30 /H 42 /BPC 1 /F /CCF /DP <> ID & | xGzAOkA4 EI endstream endobj 560 0 obj <> stream 0 0 0 -1 54 100 d1 54 0 0 101 0 -1 cm BI /IM true /W 54 /H 101 /BPC 1 /F /CCF /DP <> ID &e&{~o߇{{~o߇xj  EI endstream endobj 565 0 obj <> stream 0 0 0 2 49 77 d1 49 0 0 75 0 2 cm BI /IM true /W 49 /H 75 /BPC 1 /F /CCF /DP <> ID &G!af7߿߷?߿߿߿߷?߿߿}}> EI endstream endobj 566 0 obj <> stream 0 0 0 -19 35 36 d1 35 0 0 55 0 -19 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID &Ix#‡ ނowMu K ooN< /_[il  EI endstream endobj 567 0 obj <> stream 0 0 0 -20 37 34 d1 37 0 0 54 0 -20 cm BI /IM true /W 37 /H 54 /BPC 1 /F /CCF /DP <> ID &6SaNl> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/3zMAC·/놿 &^ |{^EߐO m0 @ EI endstream endobj 569 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &8k XxF`IM~z? Gkv /oE? ?   EI endstream endobj 570 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &@/F xA[7-in[a.]5׃A-+L>_O_ߺXm a!``@@ EI endstream endobj 571 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &8S|<#A^a /k0\%ֺ Kzsa7K]p Kb  @ EI endstream endobj 576 0 obj <> stream 0 0 0 -74 47 4 d1 47 0 0 78 0 -74 cm BI /IM true /W 47 /H 78 /BPC 1 /F /CCF /DP <> ID &ʄ{x߾*}S  EI endstream endobj 577 0 obj <> stream 0 0 0 0 64 96 d1 64 0 0 96 0 0 cm BI /IM true /W 64 /H 96 /BPC 1 /F /CCF /DP <> ID & @La`<|@ $?wjpapX^/}x4|?^/^ G2 |>_3φ`6 EI endstream endobj 578 0 obj <> stream 0 0 0 29 79 122 d1 79 0 0 93 0 29 cm BI /IM true /W 79 /H 93 /BPC 1 /F /CCF /DP <> ID "! "DqA o uK50 a~RjA EI endstream endobj 579 0 obj <> stream 0 0 0 -5 89 94 d1 89 0 0 99 0 -5 cm BI /IM true /W 89 /H 99 /BPC 1 /F /CCF /DP <> ID &.3 >  ^?_/}}}|/ 3el_ EI endstream endobj 580 0 obj <> stream 0 0 0 27 64 77 d1 64 0 0 50 0 27 cm BI /IM true /W 64 /H 50 /BPC 1 /F /CCF /DP <> ID & a# xAAxN  Aq7N]8oopUaamnP EI endstream endobj 581 0 obj <> stream 0 0 0 -76 75 2 d1 75 0 0 78 0 -76 cm BI /IM true /W 75 /H 78 /BPC 1 /F /CCF /DP <> ID *BjG@j:!(߷ ͂߷l?77w?~}x EI endstream endobj 582 0 obj <> stream 0 0 0 -190 57 137 d1 57 0 0 327 0 -190 cm BI /IM true /W 57 /H 327 /BPC 1 /F /CCF /DP <> ID &u֖uu__A~_ֽ~_~K!ɪo??{a{ᇿ}{w EI endstream endobj 583 0 obj <> stream 0 0 0 -202 57 125 d1 57 0 0 327 0 -202 cm BI /IM true /W 57 /H 327 /BPC 1 /F /CCF /DP <> ID > N>oo|7߾~ ?~߿߇ox___^kkֿxZ_A~]~Zx]kZ_ZiZ : EI endstream endobj 584 0 obj <> stream 0 0 0 -202 56 125 d1 56 0 0 327 0 -202 cm BI /IM true /W 56 /H 327 /BPC 1 /F /CCF /DP <> ID > prk=>{| kZ]a--tXK~__/_Z]-.EAUpP EI endstream endobj 585 0 obj <> stream 0 0 0 -2 65 78 d1 65 0 0 80 0 -2 cm BI /IM true /W 65 /H 80 /BPC 1 /F /CCF /DP <> ID &0H? }@,>&`{M{~u,!# У! p& ( Ϣ0jap 7_~v?x`y@ EI endstream endobj 586 0 obj <> stream 130 0 0 0 0 0 d1 endstream endobj 587 0 obj <> stream 0 0 0 0 75 75 d1 75 0 0 75 0 0 cm BI /IM true /W 75 /H 75 /BPC 1 /F /CCF /DP <> ID &IOP %__/U*A/ү TA~/_%6 A~ ?/P<K)gɪ  EI endstream endobj 588 0 obj <> stream 0 0 0 30 40 77 d1 40 0 0 47 0 30 cm BI /IM true /W 40 /H 47 /BPC 1 /F /CCF /DP <> ID _'2jÃowwo}~a߿mp]@ EI endstream endobj 589 0 obj <> stream 0 0 0 1 37 79 d1 37 0 0 78 0 1 cm BI /IM true /W 37 /H 78 /BPC 1 /F /CCF /DP <> ID &0xXzMo_>a ?m [H EI endstream endobj 590 0 obj <> stream 0 0 0 5 27 79 d1 27 0 0 74 0 5 cm BI /IM true /W 27 /H 74 /BPC 1 /F /CCF /DP <> ID & z<޷??x_džA  EI endstream endobj 591 0 obj <> stream 0 0 0 29 44 79 d1 44 0 0 50 0 29 cm BI /IM true /W 44 /H 50 /BPC 1 /F /CCF /DP <> ID &g M~·o߿ɪp_p4a0P EI endstream endobj 592 0 obj <> stream 0 0 0 29 44 79 d1 44 0 0 50 0 29 cm BI /IM true /W 44 /H 50 /BPC 1 /F /CCF /DP <> ID &l4}MV p?ϫnǴ  a@@ EI endstream endobj 593 0 obj <> stream 0 0 0 -7 19 103 d1 19 0 0 110 0 -7 cm BI /IM true /W 19 /H 110 /BPC 1 /F /CCF /DP <> ID a#|@ EI endstream endobj 594 0 obj <> stream 0 0 0 -7 19 103 d1 19 0 0 110 0 -7 cm BI /IM true /W 19 /H 110 /BPC 1 /F /CCF /DP <> ID /@ EI endstream endobj 595 0 obj <> stream 0 0 0 5 59 66 d1 59 0 0 61 0 5 cm BI /IM true /W 59 /H 61 /BPC 1 /F /CCF /DP <> ID &H?#  x_&_޼C  EI endstream endobj 596 0 obj <> stream 0 0 0 27 44 68 d1 44 0 0 41 0 27 cm BI /IM true /W 44 /H 41 /BPC 1 /F /CCF /DP <> ID &hOO0?M_??ީCo EI endstream endobj 597 0 obj <> stream 0 0 0 3 44 66 d1 44 0 0 63 0 3 cm BI /IM true /W 44 /H 63 /BPC 1 /F /CCF /DP <> ID &NPB_.+^߰~߃~K&@ EI endstream endobj 598 0 obj <> stream 0 0 0 3 45 68 d1 45 0 0 65 0 3 cm BI /IM true /W 45 /H 65 /BPC 1 /F /CCF /DP <> ID &18ao >!7L>Kis5a1 5 EI endstream endobj 599 0 obj <> stream 0 0 0 27 45 86 d1 45 0 0 59 0 27 cm BI /IM true /W 45 /H 59 /BPC 1 /F /CCF /DP <> ID &f _Aa'~3]aooaoT  EI endstream endobj 600 0 obj <> stream 0 0 0 26 52 68 d1 52 0 0 42 0 26 cm BI /IM true /W 52 /H 42 /BPC 1 /F /CCF /DP <> ID &I9(<CGzDjߠ }ɪ}_~W:@K A~Ce  EI endstream endobj 601 0 obj <> stream 0 0 0 -1 6 89 d1 6 0 0 90 0 -1 cm BI /IM true /W 6 /H 90 /BPC 1 /F /CCF /DP <> ID &Mu EI endstream endobj 602 0 obj <> stream 0 0 0 3 36 68 d1 36 0 0 65 0 3 cm BI /IM true /W 36 /H 65 /BPC 1 /F /CCF /DP <> ID & G=`~A?ooMW?ÿ߶0τC EI endstream endobj 603 0 obj <> stream 0 0 0 6 36 66 d1 36 0 0 60 0 6 cm BI /IM true /W 36 /H 60 /BPC 1 /F /CCF /DP <> ID &/~lx?m߿݇`ooool>xU_ka- - ,0X0 EI endstream endobj 604 0 obj <> stream 0 0 0 2 38 68 d1 38 0 0 66 0 2 cm BI /IM true /W 38 /H 66 /BPC 1 /F /CCF /DP <> ID &VM7㽇&?][km1j  EI endstream endobj 605 0 obj <> stream 0 0 0 65 9 84 d1 9 0 0 19 0 65 cm BI /IM true /W 9 /H 19 /BPC 1 /F /CCF /DP <> ID &oʘɪP EI endstream endobj 606 0 obj <> stream 0 0 0 6 38 69 d1 38 0 0 63 0 6 cm BI /IM true /W 38 /H 63 /BPC 1 /F /CCF /DP <> ID &@y W0}oa /޿wvl%C EI endstream endobj 607 0 obj <> stream 0 0 0 6 25 68 d1 25 0 0 62 0 6 cm BI /IM true /W 25 /H 62 /BPC 1 /F /CCF /DP <> ID & z==o}[&?[~lWc/@^@ EI endstream endobj 608 0 obj <> stream 0 0 0 15 46 71 d1 46 0 0 56 0 15 cm BI /IM true /W 46 /H 56 /BPC 1 /F /CCF /DP <> ID &d1 ֊D X]]ip_֗Q)OSɪ}xdI[7  EI endstream endobj 609 0 obj <> stream 0 0 0 2 42 69 d1 42 0 0 67 0 2 cm BI /IM true /W 42 /H 67 /BPC 1 /F /CCF /DP <> ID &! `ɨ@.A~_Z.7O`&AXK\ Z C Z !/ 5.]|1 ` EI endstream endobj 610 0 obj <> stream 0 0 0 -1 22 88 d1 22 0 0 89 0 -1 cm BI /IM true /W 22 /H 89 /BPC 1 /F /CCF /DP <> ID &Z uׅ.^ֿ ߿ @ EI endstream endobj 611 0 obj <> stream 0 0 0 5 54 66 d1 54 0 0 61 0 5 cm BI /IM true /W 54 /H 61 /BPC 1 /F /CCF /DP <> ID $3j)@il|6~/KԃT)@ EI endstream endobj 612 0 obj <> stream 0 0 0 6 31 66 d1 31 0 0 60 0 6 cm BI /IM true /W 31 /H 60 /BPC 1 /F /CCF /DP <> ID &> stream 0 0 0 6 38 69 d1 38 0 0 63 0 6 cm BI /IM true /W 38 /H 63 /BPC 1 /F /CCF /DP <> ID & @?7~߇i>~c__z____{md1H EI endstream endobj 614 0 obj <> stream 0 0 0 6 38 69 d1 38 0 0 63 0 6 cm BI /IM true /W 38 /H 63 /BPC 1 /F /CCF /DP <> ID &@P!O%[ .\0\6X@<'ΏM& __ [  EI endstream endobj 615 0 obj <> stream 0 0 0 -1 23 88 d1 23 0 0 89 0 -1 cm BI /IM true /W 23 /H 89 /BPC 1 /F /CCF /DP <> ID &g{={}/_k~p]h-u]u EI endstream endobj 616 0 obj <> stream 0 0 0 1 63 66 d1 63 0 0 65 0 1 cm BI /IM true /W 63 /H 65 /BPC 1 /F /CCF /DP <> ID #=R4~{> stream 0 0 0 26 54 68 d1 54 0 0 42 0 26 cm BI /IM true /W 54 /H 42 /BPC 1 /F /CCF /DP <> ID &3ς xL4̳1>a7m݆?_~׭j  EI endstream endobj 618 0 obj <> stream 0 0 0 3 20 66 d1 20 0 0 63 0 3 cm BI /IM true /W 20 /H 63 /BPC 1 /F /CCF /DP <> ID jdkXR@ EI endstream endobj 619 0 obj <> stream 0 0 0 25 40 68 d1 40 0 0 43 0 25 cm BI /IM true /W 40 /H 43 /BPC 1 /F /CCF /DP <> ID &c=XFfA ?>5Z__m-oXa[^ EI endstream endobj 620 0 obj <> stream 0 0 0 25 42 87 d1 42 0 0 62 0 25 cm BI /IM true /W 42 /H 62 /BPC 1 /F /CCF /DP <> ID &@.0zށ}MS_ Xl.=t @z< ZrtЁM zih597  @ EI endstream endobj 621 0 obj <> stream 0 0 0 11 41 15 d1 41 0 0 4 0 11 cm BI /IM true /W 41 /H 4 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 622 0 obj <> stream 0 0 0 6 31 66 d1 31 0 0 60 0 6 cm BI /IM true /W 31 /H 60 /BPC 1 /F /CCF /DP <> ID &> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &uB XA< |'Aƺ^}oK  ___v\O~^K޼0+^/ ?l?~~~ w a Kbk 5 EI endstream endobj 632 0 obj <> stream 0 0 0 -6 70 96 d1 70 0 0 102 0 -6 cm BI /IM true /W 70 /H 102 /BPC 1 /F /CCF /DP <> ID 6F/!%`8>:w}=0 IZ\ m1@@^C`. a%\PD 32$PkUK&Umj` w\6 A0 a?<@ EI endstream endobj 633 0 obj <> stream 0 0 0 -6 80 94 d1 80 0 0 100 0 -6 cm BI /IM true /W 80 /H 100 /BPC 1 /F /CCF /DP <> ID & Jf/uKA}_ Uد / ~?W@ EI endstream endobj 634 0 obj <> stream 0 0 0 -5 95 94 d1 95 0 0 99 0 -5 cm BI /IM true /W 95 /H 99 /BPC 1 /F /CCF /DP <> ID &`g22h ~#,߃i7_𗯥|/X> stream 0 0 0 27 58 97 d1 58 0 0 70 0 27 cm BI /IM true /W 58 /H 70 /BPC 1 /F /CCF /DP <> ID !Oj3@>8A =o  mÇ_yz 4aa ` EI endstream endobj 636 0 obj <> stream 0 0 0 29 47 99 d1 47 0 0 70 0 29 cm BI /IM true /W 47 /H 70 /BPC 1 /F /CCF /DP <> ID &1?#~6T }?m;?5߿~~{~FIaa  EI endstream endobj 637 0 obj <> stream 0 0 0 1 57 100 d1 57 0 0 99 0 1 cm BI /IM true /W 57 /H 99 /BPC 1 /F /CCF /DP <> ID &g8k>, l[zvÿu} m׿[zX~;9B! w EI endstream endobj 638 0 obj <> stream 0 0 0 58 43 110 d1 43 0 0 52 0 58 cm BI /IM true /W 43 /H 52 /BPC 1 /F /CCF /DP <> ID )ǓS3i{v;|}mXy뵆kh0 EI endstream endobj 639 0 obj <> stream 0 0 0 -46 37 3 d1 37 0 0 49 0 -46 cm BI /IM true /W 37 /H 49 /BPC 1 /F /CCF /DP <> ID &p!Sz~/@p1{<`ȅ< EI endstream endobj 640 0 obj <> stream 0 0 0 58 35 110 d1 35 0 0 52 0 58 cm BI /IM true /W 35 /H 52 /BPC 1 /F /CCF /DP <> ID &^wz SɯoAs oA@ EI endstream endobj 645 0 obj <> stream 0 0 0 1 50 79 d1 50 0 0 78 0 1 cm BI /IM true /W 50 /H 78 /BPC 1 /F /CCF /DP <> ID & `aސ7{;wxa᰻<17k ~ W~A EI endstream endobj 646 0 obj <> stream 0 0 0 -2 56 75 d1 56 0 0 77 0 -2 cm BI /IM true /W 56 /H 77 /BPC 1 /F /CCF /DP <> ID &?3 #MB]o7AB  EI endstream endobj 647 0 obj <> stream 0 0 0 58 45 96 d1 45 0 0 38 0 58 cm BI /IM true /W 45 /H 38 /BPC 1 /F /CCF /DP <> ID &l|4r 7~& <{^`aa` EI endstream endobj 648 0 obj <> stream 0 0 0 6 34 77 d1 34 0 0 71 0 6 cm BI /IM true /W 34 /H 71 /BPC 1 /F /CCF /DP <> ID &φ><#7~ĈNMVC? / EI endstream endobj 650 0 obj <> stream 0 0 0 43 26 96 d1 26 0 0 53 0 43 cm BI /IM true /W 26 /H 53 /BPC 1 /F /CCF /DP <> ID & @p޷߿l? ?55f/@ EI endstream endobj 651 0 obj <> stream 0 0 0 27 56 77 d1 56 0 0 50 0 27 cm BI /IM true /W 56 /H 50 /BPC 1 /F /CCF /DP <> ID &A`0G筭 ߿S^~<=&w~~}|5@ EI endstream endobj 660 0 obj <> stream 0 0 0 0 68 99 d1 68 0 0 99 0 0 cm BI /IM true /W 68 /H 99 /BPC 1 /F /CCF /DP <> ID &5~o> stream 0 0 0 29 72 124 d1 72 0 0 95 0 29 cm BI /IM true /W 72 /H 95 /BPC 1 /F /CCF /DP <> ID &` Y p a}>}a0. {uTxArXa 5 QC|Co [’/K[څa<<1:!5C:k P` EI endstream endobj 662 0 obj <> stream 0 0 0 0 47 71 d1 47 0 0 71 0 0 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &+ ޷&A t_k o0pao0[ EI endstream endobj 663 0 obj <> stream 0 0 0 0 50 67 d1 50 0 0 67 0 0 cm BI /IM true /W 50 /H 67 /BPC 1 /F /CCF /DP <> ID &qwɪy)}>߿߿z~ׯ/(ꠤ EI endstream endobj 665 0 obj <> stream 0 0 0 0 45 71 d1 45 0 0 71 0 0 cm BI /IM true /W 45 /H 71 /BPC 1 /F /CCF /DP <> ID &@@t ៭?a{] XkkadG@ EI endstream endobj 669 0 obj <> stream 0 0 0 30 48 77 d1 48 0 0 47 0 30 cm BI /IM true /W 48 /H 47 /BPC 1 /F /CCF /DP <> ID &k2~|7 {y/  EI endstream endobj 670 0 obj <> stream 0 0 0 0 49 71 d1 49 0 0 71 0 0 cm BI /IM true /W 49 /H 71 /BPC 1 /F /CCF /DP <> ID &4|0z$|'3L_|!?mp_]D.h_@ EI endstream endobj 671 0 obj <> stream 0 0 0 0 53 67 d1 53 0 0 67 0 0 cm BI /IM true /W 53 /H 67 /BPC 1 /F /CCF /DP <> ID & ?ɪ ^C3\{O?[?U1(_rj@ EI endstream endobj 672 0 obj <> stream 0 0 0 -19 48 48 d1 48 0 0 67 0 -19 cm BI /IM true /W 48 /H 67 /BPC 1 /F /CCF /DP <> ID &bd_Xc߿_|9TWPP EI endstream endobj 673 0 obj <> stream 0 0 0 -53 54 0 d1 54 0 0 53 0 -53 cm BI /IM true /W 54 /H 53 /BPC 1 /F /CCF /DP <> ID &UQ &թ5 im im im_GޓzMIޓzMIޓzMI95 @@ EI endstream endobj 674 0 obj <> stream 0 0 0 -19 35 36 d1 35 0 0 55 0 -19 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID &I<C@zMWxp\q] O >}yр EI endstream endobj 675 0 obj <> stream 0 0 0 2 73 77 d1 73 0 0 75 0 2 cm BI /IM true /W 73 /H 75 /BPC 1 /F /CCF /DP <> ID &_3C ~~ý ߇{~>o|7|ov ~l<;}ol= 7  EI endstream endobj 676 0 obj <> stream 0 0 0 43 73 69 d1 73 0 0 26 0 43 cm BI /IM true /W 73 /H 26 /BPC 1 /F /CCF /DP <> ID &pV'?~  0{`ap. P EI endstream endobj 677 0 obj <> stream 0 0 0 -47 60 3 d1 60 0 0 50 0 -47 cm BI /IM true /W 60 /H 50 /BPC 1 /F /CCF /DP <> ID & 00# o{p9~|oxzH6ba`  EI endstream endobj 678 0 obj <> stream 0 0 0 0 61 99 d1 61 0 0 99 0 0 cm BI /IM true /W 61 /H 99 /BPC 1 /F /CCF /DP <> ID 6 j#ƒ` =7APݾÇ[+ w0{}6~8Xz ,0.<0X0 EI endstream endobj 683 0 obj <> stream 0 0 0 26 68 99 d1 68 0 0 73 0 26 cm BI /IM true /W 68 /H 73 /BPC 1 /F /CCF /DP <> ID &Y> >}F~4o?pw!ka @ EI endstream endobj 684 0 obj <> stream 0 0 0 0 68 99 d1 68 0 0 99 0 0 cm BI /IM true /W 68 /H 99 /BPC 1 /F /CCF /DP <> ID 8 |{g!4~{!}|+釿p]]~u1} [}0`] vt-+ ~  @ EI endstream endobj 685 0 obj <> stream 0 0 0 41 42 96 d1 42 0 0 55 0 41 cm BI /IM true /W 42 /H 55 /BPC 1 /F /CCF /DP <> ID &@c(  }>5m- % ` EI endstream endobj 686 0 obj <> stream 0 0 0 -16 58 38 d1 58 0 0 54 0 -16 cm BI /IM true /W 58 /H 54 /BPC 1 /F /CCF /DP <> ID &>~ɪo~߽}?<߀ EI endstream endobj 687 0 obj <> stream 0 0 0 -1 34 32 d1 34 0 0 33 0 -1 cm BI /IM true /W 34 /H 33 /BPC 1 /F /CCF /DP <> ID &l6LaL`~wm{ax EI endstream endobj 688 0 obj <> stream 0 0 0 -1 34 32 d1 34 0 0 33 0 -1 cm BI /IM true /W 34 /H 33 /BPC 1 /F /CCF /DP <> ID &g0.{mwa~wya k MRkA EI endstream endobj 689 0 obj <> stream 0 0 0 29 40 79 d1 40 0 0 50 0 29 cm BI /IM true /W 40 /H 50 /BPC 1 /F /CCF /DP <> ID &JaaoH~ޡoW?^<0o~xw `׆ V ,( EI endstream endobj 690 0 obj <> stream 0 0 0 29 54 79 d1 54 0 0 50 0 29 cm BI /IM true /W 54 /H 50 /BPC 1 /F /CCF /DP <> ID &l2τa88})~x߼?m`׵b @ EI endstream endobj 691 0 obj <> stream 0 0 0 29 38 79 d1 38 0 0 50 0 29 cm BI /IM true /W 38 /H 50 /BPC 1 /F /CCF /DP <> ID & 𷠁a>wvMS\2 /Z_`h5~{\P EI endstream endobj 692 0 obj <> stream 0 0 0 -2 86 75 d1 86 0 0 77 0 -2 cm BI /IM true /W 86 /H 77 /BPC 1 /F /CCF /DP <> ID &2PC:gFA_b#MBGPw߷o P`† %yD0 EI endstream endobj 697 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &`>CBLA~ o[0?^'^]a{iml[ %džk -p~>oMA|uo aavu - U  EI endstream endobj 698 0 obj <> stream 0 0 0 -6 77 94 d1 77 0 0 100 0 -6 cm BI /IM true /W 77 /H 100 /BPC 1 /F /CCF /DP <> ID "PPPD ^kK_5%/a7?ao~oc@ EI endstream endobj 699 0 obj <> stream 0 0 0 -6 102 96 d1 102 0 0 102 0 -6 cm BI /IM true /W 102 /H 102 /BPC 1 /F /CCF /DP <> ID &SiJ0D3 0D`e< A7|$ޓ[}|-0ISj\=턿޿ =v޷][ ޶ ApvAXb ![ !  EI endstream endobj 700 0 obj <> stream 0 0 0 -3 97 94 d1 97 0 0 97 0 -3 cm BI /IM true /W 97 /H 97 /BPC 1 /F /CCF /DP <> ID & 3+ ]_^xx]@1 # EI endstream endobj 701 0 obj <> stream 0 0 0 2 109 77 d1 109 0 0 75 0 2 cm BI /IM true /W 109 /H 75 /BPC 1 /F /CCF /DP <> ID &8F?[FAkam\<=D^ \=~{Wmw.onl~y ! EI endstream endobj 702 0 obj <> stream 0 0 0 5 56 66 d1 56 0 0 61 0 5 cm BI /IM true /W 56 /H 61 /BPC 1 /F /CCF /DP <> ID %`ME'܃t{~^^^^A8oCo/(RP  EI endstream endobj 713 0 obj <> stream 0 0 0 0 51 67 d1 51 0 0 67 0 0 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID & Ӌ5K#//_~?>jp EI endstream endobj 718 0 obj <> stream 0 0 0 2 93 77 d1 93 0 0 75 0 2 cm BI /IM true /W 93 /H 75 /BPC 1 /F /CCF /DP <> ID )4aj) 5kO^ _ C': ?i_ao_x_a+Ai_ B EI endstream endobj 719 0 obj <> stream 0 0 0 -27 30 -10 d1 30 0 0 17 0 -27 cm BI /IM true /W 30 /H 17 /BPC 1 /F /CCF /DP <> ID &ؿN\0im\0@ EI endstream endobj 720 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID & _ Dd|p A; o~x 4 wGQ| H/u'z ~%[[h.D VX0Xa~C+X EI endstream endobj 725 0 obj <> stream 0 0 0 29 63 100 d1 63 0 0 71 0 29 cm BI /IM true /W 63 /H 71 /BPC 1 /F /CCF /DP <> ID &f$!C 'l$p-C]aXop~z}F??o޿L<+|'ޭ&{O { j  EI endstream endobj 730 0 obj <> stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &t nO(|  <$޷7oa__vAa[X0X0_  EI endstream endobj 731 0 obj <> stream 0 0 0 30 21 94 d1 21 0 0 64 0 30 cm BI /IM true /W 21 /H 64 /BPC 1 /F /CCF /DP <> ID &3( am`#=? @ EI endstream endobj 732 0 obj <> stream 0 0 0 -7 55 94 d1 55 0 0 101 0 -7 cm BI /IM true /W 55 /H 101 /BPC 1 /F /CCF /DP <> ID &!**J1?o5+ᅐk  EI endstream endobj 733 0 obj <> stream 0 0 0 30 19 93 d1 19 0 0 63 0 30 cm BI /IM true /W 19 /H 63 /BPC 1 /F /CCF /DP <> ID &Cɯ>~AְX?kj  EI endstream endobj 750 0 obj <> stream 0 0 0 -7 78 81 d1 78 0 0 88 0 -7 cm BI /IM true /W 78 /H 88 /BPC 1 /F /CCF /DP <> ID &  }GI0H??^W aozz[ vkh/ zlVA'``6o I߻pwoA_|i>?0P EI endstream endobj 767 0 obj <> stream 0 0 0 0 72 99 d1 72 0 0 99 0 0 cm BI /IM true /W 72 /H 99 /BPC 1 /F /CCF /DP <> ID &Nf$z4/& ~ J7 8H:&D1oK0M^~?I?zz]\<-޻_a,<-m.aKa,2ǐ/h  EI endstream endobj 768 0 obj <> stream 0 0 0 -72 44 4 d1 44 0 0 76 0 -72 cm BI /IM true /W 44 /H 76 /BPC 1 /F /CCF /DP <> ID &Df+0~m{_>{AzxGW;B| ~Q_z]] a`€ EI endstream endobj 785 0 obj <> stream 0 0 0 45 10 55 d1 10 0 0 10 0 45 cm BI /IM true /W 10 /H 10 /BPC 1 /F /CCF /DP <> ID &Zq~MR EI endstream endobj 786 0 obj <> stream 0 0 0 -1 44 36 d1 44 0 0 37 0 -1 cm BI /IM true /W 44 /H 37 /BPC 1 /F /CCF /DP <> ID &_>` ? o& % w<@ EI endstream endobj 803 0 obj <> stream 0 0 0 -5 113 96 d1 113 0 0 101 0 -5 cm BI /IM true /W 113 /H 101 /BPC 1 /F /CCF /DP <> ID &x(5JDx'f [kK_K^%. 50  ~ _~}}/ׄP+u\.w0lrd ~  EI endstream endobj 820 0 obj <> stream 0 0 0 12 39 16 d1 39 0 0 4 0 12 cm BI /IM true /W 39 /H 4 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 821 0 obj <> stream 0 0 0 -5 84 94 d1 84 0 0 99 0 -5 cm BI /IM true /W 84 /H 99 /BPC 1 /F /CCF /DP <> ID &WA?f F EI endstream endobj 822 0 obj <> stream 0 0 0 29 43 67 d1 43 0 0 38 0 29 cm BI /IM true /W 43 /H 38 /BPC 1 /F /CCF /DP <> ID &ahLl?k{w&?|?}a5` EI endstream endobj 823 0 obj <> stream 0 0 0 24 76 67 d1 76 0 0 43 0 24 cm BI /IM true /W 76 /H 43 /BPC 1 /F /CCF /DP <> ID &np}pA|__@ EI endstream endobj 824 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &&Cd?a #&5@ EI endstream endobj 825 0 obj <> stream 0 0 0 10 51 77 d1 51 0 0 67 0 10 cm BI /IM true /W 51 /H 67 /BPC 1 /F /CCF /DP <> ID &_o?'oa'>O 'kC@@ EI endstream endobj 826 0 obj <> stream 0 0 0 27 36 66 d1 36 0 0 39 0 27 cm BI /IM true /W 36 /H 39 /BPC 1 /F /CCF /DP <> ID &@@@E z^]` @ EI endstream endobj 827 0 obj <> stream 0 0 0 11 37 66 d1 37 0 0 55 0 11 cm BI /IM true /W 37 /H 55 /BPC 1 /F /CCF /DP <> ID &bP EI endstream endobj 828 0 obj <> stream 0 0 0 5 39 69 d1 39 0 0 64 0 5 cm BI /IM true /W 39 /H 64 /BPC 1 /F /CCF /DP <> ID & < > stream 0 0 0 5 64 66 d1 64 0 0 61 0 5 cm BI /IM true /W 64 /H 61 /BPC 1 /F /CCF /DP <> ID &ɨ`[M4 iČ  EI endstream endobj 830 0 obj <> stream 0 0 0 2 57 66 d1 57 0 0 64 0 2 cm BI /IM true /W 57 /H 64 /BPC 1 /F /CCF /DP <> ID %̄ɩ {MH&3 Do;k L ( EI endstream endobj 835 0 obj <> stream 0 0 0 14 39 32 d1 39 0 0 18 0 14 cm BI /IM true /W 39 /H 18 /BPC 1 /F /CCF /DP <> ID &B!`† Rkaa,0 / EI endstream endobj 836 0 obj <> stream 0 0 0 -19 35 36 d1 35 0 0 55 0 -19 cm BI /IM true /W 35 /H 55 /BPC 1 /F /CCF /DP <> ID &<#XxI&}C|+Vҙl0Mx0 ga?7a ǃ @ EI endstream endobj 857 0 obj <> stream 0 0 0 0 109 101 d1 109 0 0 101 0 0 cm BI /IM true /W 109 /H 101 /BPC 1 /F /CCF /DP <> ID &g S {z_^?޽{؅kjtk%~_K׿vz\5޽{޻]z_k  EI endstream endobj 858 0 obj <> stream 0 0 0 -72 97 171 d1 97 0 0 243 0 -72 cm BI /IM true /W 97 /H 243 /BPC 1 /F /CCF /DP <> ID &x7?i߿߿߿ {~߻޻ X5f( EI endstream endobj 859 0 obj <> stream 0 0 0 -23 44 50 d1 44 0 0 73 0 -23 cm BI /IM true /W 44 /H 73 /BPC 1 /F /CCF /DP <> ID 0 5_-7?F{L?ov{x__^G_af>߾[ w1  EI endstream endobj 860 0 obj <> stream 0 0 0 -31 58 41 d1 58 0 0 72 0 -31 cm BI /IM true /W 58 /H 72 /BPC 1 /F /CCF /DP <> ID &` oMV_ooj`^ pA@ EI endstream endobj 861 0 obj <> stream 0 0 0 36 13 105 d1 13 0 0 69 0 36 cm BI /IM true /W 13 /H 69 /BPC 1 /F /CCF /DP <> ID &o~o?_&,&@@ EI endstream endobj 862 0 obj <> stream 134 0 0 0 0 0 d1 endstream endobj 863 0 obj <> stream 0 0 0 -72 60 3 d1 60 0 0 75 0 -72 cm BI /IM true /W 60 /H 75 /BPC 1 /F /CCF /DP <> ID "_j!5!!_\ @ EI endstream endobj 864 0 obj <> stream 0 0 0 5 63 66 d1 63 0 0 61 0 5 cm BI /IM true /W 63 /H 61 /BPC 1 /F /CCF /DP <> ID % ɨC܃so~߇ׅ_^-HD*JA@ EI endstream endobj 869 0 obj <> stream 0 0 0 0 61 80 d1 61 0 0 80 0 0 cm BI /IM true /W 61 /H 80 /BPC 1 /F /CCF /DP <> ID 0 S!} n'w& '~r #2A? k\FT _aAp!{~ ]aO 4 EI endstream endobj 870 0 obj <> stream 0 0 0 29 44 79 d1 44 0 0 50 0 29 cm BI /IM true /W 44 /H 50 /BPC 1 /F /CCF /DP <> ID &J >VOo{߆a, EI endstream endobj 871 0 obj <> stream 0 0 0 0 51 100 d1 51 0 0 100 0 0 cm BI /IM true /W 51 /H 100 /BPC 1 /F /CCF /DP <> ID &|5O0> stream 0 0 0 2 75 77 d1 75 0 0 75 0 2 cm BI /IM true /W 75 /H 75 /BPC 1 /F /CCF /DP <> ID &U!oo!߇p~|? x}vgY EI endstream endobj 873 0 obj <> stream 0 0 0 29 50 79 d1 50 0 0 50 0 29 cm BI /IM true /W 50 /H 50 /BPC 1 /F /CCF /DP <> ID &<f 0`hkm~A߿v¿}?a;Zt? mp1( EI endstream endobj 874 0 obj <> stream 0 0 0 29 81 79 d1 81 0 0 50 0 29 cm BI /IM true /W 81 /H 50 /BPC 1 /F /CCF /DP <> ID &l  >#>pwww>5xm; oj^X5☦+hAz@@ EI endstream endobj 875 0 obj <> stream 0 0 0 30 22 77 d1 22 0 0 47 0 30 cm BI /IM true /W 22 /H 47 /BPC 1 /F /CCF /DP <> ID &Jz} , x Xa@@ EI endstream endobj 876 0 obj <> stream 0 0 0 2 69 77 d1 69 0 0 75 0 2 cm BI /IM true /W 69 /H 75 /BPC 1 /F /CCF /DP <> ID & x5?VC 7õx.#@ EI endstream endobj 877 0 obj <> stream 0 0 0 1 49 79 d1 49 0 0 78 0 1 cm BI /IM true /W 49 /H 78 /BPC 1 /F /CCF /DP <> ID &0|'5]8wwBp?~n3@׈4xan/?J EI endstream endobj 878 0 obj <> stream 0 0 0 29 46 100 d1 46 0 0 71 0 29 cm BI /IM true /W 46 /H 71 /BPC 1 /F /CCF /DP <> ID &#eB ߰ ;Oy>W?ɪ=׆Xa @ EI endstream endobj 879 0 obj <> stream 0 0 0 0 69 78 d1 69 0 0 78 0 0 cm BI /IM true /W 69 /H 78 /BPC 1 /F /CCF /DP <> ID & HMnXkî~u{@ EI endstream endobj 880 0 obj <> stream 0 0 0 30 54 100 d1 54 0 0 70 0 30 cm BI /IM true /W 54 /H 70 /BPC 1 /F /CCF /DP <> ID !ɪt߿?~lL=~7}ozyio׊b ( EI endstream endobj 881 0 obj <> stream 0 0 0 -1 74 80 d1 74 0 0 81 0 -1 cm BI /IM true /W 74 /H 81 /BPC 1 /F /CCF /DP <> ID &p'!S0A' H ނ ?M^_1&$ozat{>P|7M~{ 쁀}?4_NAT߷~ ߽zdž` EI endstream endobj 882 0 obj <> stream 0 0 0 7 49 79 d1 49 0 0 72 0 7 cm BI /IM true /W 49 /H 72 /BPC 1 /F /CCF /DP <> ID &zz i7~@ x>AFzתKK] B ]p\%,%]p EI endstream endobj 883 0 obj <> stream 0 0 0 3 72 78 d1 72 0 0 75 0 3 cm BI /IM true /W 72 /H 75 /BPC 1 /F /CCF /DP <> ID &^BFa"l7}7_[a/\B{ ` ÷|g P EI endstream endobj 884 0 obj <> stream 0 0 0 1 46 79 d1 46 0 0 78 0 1 cm BI /IM true /W 46 /H 78 /BPC 1 /F /CCF /DP <> ID &x?rz߇U_~a}}-\[|{*}0awo][ W" EI endstream endobj 885 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &A`@l _o] ,0lج> pX%h*x[0A MW~_z}vKzh-\x0d4i EI endstream endobj 886 0 obj <> stream 0 0 0 5 55 77 d1 55 0 0 72 0 5 cm BI /IM true /W 55 /H 72 /BPC 1 /F /CCF /DP <> ID &G4V0H M? ߰? @ EI endstream endobj 887 0 obj <> stream 0 0 0 2 48 77 d1 48 0 0 75 0 2 cm BI /IM true /W 48 /H 75 /BPC 1 /F /CCF /DP <> ID &!]?{ EI endstream endobj 888 0 obj <> stream 0 0 0 29 50 79 d1 50 0 0 50 0 29 cm BI /IM true /W 50 /H 50 /BPC 1 /F /CCF /DP <> ID &sC ނ o>B߽<[MU߻8_ck ! EI endstream endobj 889 0 obj <> stream 0 0 0 2 99 77 d1 99 0 0 75 0 2 cm BI /IM true /W 99 /H 75 /BPC 1 /F /CCF /DP <> ID !͂@k|?MH Hh>[Xj?ߺ~~.{wop߿@ EI endstream endobj 890 0 obj <> stream 0 0 0 29 47 100 d1 47 0 0 71 0 29 cm BI /IM true /W 47 /H 71 /BPC 1 /F /CCF /DP <> ID &$d4? oaCћޯ Շwx߆h׆0_@ EI endstream endobj 891 0 obj <> stream 0 0 0 2 71 80 d1 71 0 0 78 0 2 cm BI /IM true /W 71 /H 78 /BPC 1 /F /CCF /DP <> ID &|?O ߿¿~}7~z߿P?߿߿߿տ7)Y EI endstream endobj 892 0 obj <> stream 0 0 0 5 51 77 d1 51 0 0 72 0 5 cm BI /IM true /W 51 /H 72 /BPC 1 /F /CCF /DP <> ID &}/߷?o~ {o`7o#O{Ip]Xz8+@ EI endstream endobj 893 0 obj <> stream 0 0 0 3 73 78 d1 73 0 0 75 0 3 cm BI /IM true /W 73 /H 75 /BPC 1 /F /CCF /DP <> ID &O!k~DG3? ~_o]K!/%@  EI endstream endobj 894 0 obj <> stream 0 0 0 2 72 80 d1 72 0 0 78 0 2 cm BI /IM true /W 72 /H 78 /BPC 1 /F /CCF /DP <> ID &Nh,`#6V>BÏ??kzAv؅p?!o >o޽/ z>  EI endstream endobj 895 0 obj <> stream 0 0 0 0 63 75 d1 63 0 0 75 0 0 cm BI /IM true /W 63 /H 75 /BPC 1 /F /CCF /DP <> ID &B a7#p}}~C8@ EI endstream endobj 896 0 obj <> stream 0 0 0 66 17 99 d1 17 0 0 33 0 66 cm BI /IM true /W 17 /H 33 /BPC 1 /F /CCF /DP <> ID 0MWa߽o€ EI endstream endobj 897 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &>Ad zxGA@ޭz0\\k^Z]k.|> stream 0 0 0 3 56 81 d1 56 0 0 78 0 3 cm BI /IM true /W 56 /H 78 /BPC 1 /F /CCF /DP <> ID &?80zMAx x> stream 0 0 0 5 51 79 d1 51 0 0 74 0 5 cm BI /IM true /W 51 /H 74 /BPC 1 /F /CCF /DP <> ID &6| xA+`< L=&6] r; yaq Ax`O_ɀc|5@ EI endstream endobj 900 0 obj <> stream 0 0 0 5 45 77 d1 45 0 0 72 0 5 cm BI /IM true /W 45 /H 72 /BPC 1 /F /CCF /DP <> ID &h EI endstream endobj 901 0 obj <> stream 0 0 0 2 53 79 d1 53 0 0 77 0 2 cm BI /IM true /W 53 /H 77 /BPC 1 /F /CCF /DP <> ID &h ~~o8w&߇}x6 EI endstream endobj 902 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &Ar@AoA|'a7o޿za{]x[` ,0Y @@ EI endstream endobj 903 0 obj <> stream 0 0 0 7 42 79 d1 42 0 0 72 0 7 cm BI /IM true /W 42 /H 72 /BPC 1 /F /CCF /DP <> ID &A@' z|'M07Kﮠ ?4M?vAoXl% vKb ,8b?G ] <6v[io[ ,6{][[[_ EI endstream endobj 904 0 obj <> stream 0 0 0 2 70 80 d1 70 0 0 78 0 2 cm BI /IM true /W 70 /H 78 /BPC 1 /F /CCF /DP <> ID &pU@F"M Oނo[?߷m=U?;;wÿOO EI endstream endobj 905 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID & _<"@<za~߿{^0  |'1=~p. o^~-m .<0d4i EI endstream endobj 910 0 obj <> stream 0 0 0 5 53 79 d1 53 0 0 74 0 5 cm BI /IM true /W 53 /H 74 /BPC 1 /F /CCF /DP <> ID &A@=F>o-}a_Ka/XgP_MOpakX`\x0e  EI endstream endobj 911 0 obj <> stream 0 0 0 0 71 80 d1 71 0 0 80 0 0 cm BI /IM true /W 71 /H 80 /BPC 1 /F /CCF /DP <> ID &$@D@.?7 }7}~ ?7}? > stream 0 0 0 0 72 80 d1 72 0 0 80 0 0 cm BI /IM true /W 72 /H 80 /BPC 1 /F /CCF /DP <> ID &$/A!E] } >'A?| ?}ai4m{_ VK|<0 EI endstream endobj 913 0 obj <> stream 127 0 0 0 0 0 d1 endstream endobj 914 0 obj <> stream 0 0 0 29 42 99 d1 42 0 0 70 0 29 cm BI /IM true /W 42 /H 70 /BPC 1 /F /CCF /DP <> ID &b?ȓ}_  ?w߇oxaw߶ nA@ EI endstream endobj 915 0 obj <> stream 0 0 0 4 48 99 d1 48 0 0 95 0 4 cm BI /IM true /W 48 /H 95 /BPC 1 /F /CCF /DP <> ID &\g?F!d I&]jo߆70{( EI endstream endobj 916 0 obj <> stream 0 0 0 4 51 80 d1 51 0 0 76 0 4 cm BI /IM true /W 51 /H 76 /BPC 1 /F /CCF /DP <> ID & 2 `M{ɯ|KZ d4W!FA}7c@w|'j={ Xa ,X0 EI endstream endobj 917 0 obj <> stream 0 0 0 0 85 75 d1 85 0 0 75 0 0 cm BI /IM true /W 85 /H 75 /BPC 1 /F /CCF /DP <> ID &LA aw߻@~C9 EI endstream endobj 918 0 obj <> stream 0 0 0 2 77 77 d1 77 0 0 75 0 2 cm BI /IM true /W 77 /H 75 /BPC 1 /F /CCF /DP <> ID &AA`3 7~m{߇~oa}xKg P1 EI endstream endobj 919 0 obj <> stream 0 0 0 2 75 77 d1 75 0 0 75 0 2 cm BI /IM true /W 75 /H 75 /BPC 1 /F /CCF /DP <> ID #`MB4V^ץ//~~%:i} {k?߷߷ ރ@A] EI endstream endobj 920 0 obj <> stream 0 0 0 29 45 79 d1 45 0 0 50 0 29 cm BI /IM true /W 45 /H 50 /BPC 1 /F /CCF /DP <> ID &.|a{iˆ >ol?~a{}ώy h>@ ቚiw8 EI endstream endobj 852 0 obj <> endobj 922 0 obj <> endobj 817 0 obj <> endobj 923 0 obj <> endobj 802 0 obj <> endobj 782 0 obj <> endobj 924 0 obj <> endobj 710 0 obj <> endobj 925 0 obj <> endobj 649 0 obj <>/FontBBox[0 -66 113 315]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 205/Widths[ 0 90 0 91 0 0 87 0 0 0 0 51 0 112 0 0 111 0 92 0 62 0 95 0 75 0 42 129 0 34 0 114 0 136 0 74 97 0 38 63 64 106 0 80 0 58 0 0 46 53 0 99 47 0 113 0 0 78 0 118 0 119 0 103 73 96 101 0 0 0 0 0 0 0 0 79 0 85 141 0 123 0 55 0 0 26 0 0 116 54 0 107 59 71 0 88 0 132 65 0 0 52 0 0 0 0 0 0 84 0 40 0 0 0 0 100 102 0 61 0 39 0 41 130 134 0 0 117 83 72 0 33 36 0 82 0 0 0 0 45 0 48 0 0 68 0 0 0 56 60 0 0 0 0 32 0 0 0 0 35 37 81 0 57 0 0 28 0 0 0 67 49 0 0 30 0 0 50 29 0 0 66 44 0 0 0 43 104 77 0 69 0 0 93 0 0 98 127 0 0 0 0 76 0 0 0] >> endobj 454 0 obj <>/FontBBox[0 -150 145 529]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 255/Widths[ 0 84 0 48 0 90 0 91 0 63 49 0 85 0 98 0 0 31 99 0 0 74 0 108 34 0 77 86 0 120 121 0 95 0 39 119 0 28 0 125 117 0 79 73 0 24 0 0 0 0 65 0 68 112 93 106 0 114 101 81 0 0 0 126 0 0 0 124 0 0 78 102 0 61 40 0 0 45 0 52 0 0 0 54 51 36 30 0 118 0 80 35 0 33 0 44 0 87 0 0 103 0 109 72 0 29 82 60 97 66 0 41 0 0 76 0 0 47 0 38 0 0 0 0 0 0 50 0 53 0 0 0 59 0 37 0 0 55 0 83 0 43 0 116 0 0 88 0 0 0 0 0 0 27 128 0 0 0 0 110 0 0 0 0 115 0 0 67 0 0 0 56 0 0 113 0 0 46 96 0 26 0 0 0 105 0 0 0 71 0 0 0 0 0 0 0 130 123 0 100 0 0 0 0 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 0 58 0 0 0 0 0 57 0 0 0 0 75 0 0 0 25 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 69 0 0 0] >> endobj 271 0 obj <>/FontBBox[0 -79 112 441]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 255/Widths[ 0 63 0 56 0 33 0 0 93 0 44 0 60 0 80 0 64 0 31 0 0 55 52 0 54 0 0 0 58 59 0 0 0 66 0 87 86 0 57 0 145 0 84 0 0 42 0 68 25 0 72 0 45 0 74 0 37 0 0 40 0 51 0 0 78 0 41 81 0 36 0 49 0 0 97 96 0 83 0 26 0 0 67 24 0 101 0 43 0 48 0 50 46 0 0 0 0 34 0 0 95 0 94 0 0 47 71 53 0 0 0 62 0 61 0 0 0 77 0 0 0 0 0 0 0 0 0 76 0 0 126 0 0 0 0 0 0 90 0 35 0 0 0 112 0 0 0 0 0 104 0 116 0 103 0 0 0 0 70 0 0 0 143 109 91 0 125 0 0 0 0 110 0 0 0 0 0 108 0 0 69 0 0 89 0 115 0 0 0 0 0 82 75 0 0 0 106 0 102 0 0 0 0 0 39 0 0 132 0 0 0 92 100 0 0 118 119 98 99 113 88 73 111 85 0 0 0 0 0 0 0 0 0 120 0 0 0 0 0 0 38 107 65 0 0 0 0 0 114 0 0 117 0 0 0 0] >> endobj 9 0 obj <>/FontBBox[0 -106 134 181]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 255/Widths[ 0 0 0 116 0 64 0 72 0 34 0 123 0 0 91 0 45 90 0 0 65 133 0 126 0 69 88 0 148 0 105 0 77 0 66 81 0 0 137 0 50 111 61 44 0 79 0 150 0 86 38 0 0 0 103 0 37 0 63 0 108 0 71 54 0 62 0 75 0 0 76 0 53 0 0 0 0 57 0 0 42 0 30 0 0 0 112 0 0 0 0 0 0 82 0 52 0 0 47 0 0 74 0 31 0 0 98 60 0 48 0 97 43 0 0 55 0 0 0 39 96 73 56 0 92 0 0 0 0 59 0 0 0 0 0 0 101 0 0 0 0 0 0 0 84 0 87 0 67 0 0 0 0 0 141 0 0 0 0 94 0 107 0 0 0 118 0 0 0 0 0 0 35 0 46 0 0 78 0 58 0 125 0 0 102 83 0 49 93 109 36 0 33 0 0 0 0 129 0 32 0 0 0 0 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 0 51 80 0 29 85 0 100 0 136 0 68 0 70 0 41 40 0 89 0 0 0 0 0 106 0 0 128 120 0 0] >> endobj 819 0 obj <> endobj 784 0 obj <> endobj 926 0 obj <> endobj 628 0 obj <> endobj 796 0 obj <> endobj 747 0 obj <> endobj 846 0 obj <> endobj 798 0 obj <> endobj 764 0 obj <> endobj 927 0 obj <> endobj 749 0 obj <> endobj 848 0 obj <> endobj 813 0 obj <> endobj 928 0 obj <> endobj 778 0 obj <> endobj 929 0 obj <> endobj 766 0 obj <> endobj 930 0 obj <> endobj 708 0 obj <> endobj 931 0 obj <> endobj 851 0 obj <> endobj 847 0 obj <> endobj 843 0 obj <> endobj 818 0 obj <> endobj 814 0 obj <> endobj 810 0 obj <> endobj 801 0 obj <> endobj 797 0 obj <> endobj 793 0 obj <> endobj 783 0 obj <> endobj 779 0 obj <> endobj 775 0 obj <> endobj 765 0 obj <> endobj 761 0 obj <> endobj 757 0 obj <> endobj 748 0 obj <> endobj 744 0 obj <> endobj 740 0 obj <> endobj 815 0 obj <> endobj 780 0 obj <> endobj 932 0 obj <> endobj 743 0 obj <> endobj 630 0 obj <> endobj 745 0 obj <> endobj 792 0 obj <> endobj 659 0 obj <> endobj 849 0 obj <> endobj 845 0 obj <> endobj 841 0 obj <> endobj 816 0 obj <> endobj 812 0 obj <> endobj 808 0 obj <> endobj 799 0 obj <> endobj 795 0 obj <> endobj 791 0 obj <> endobj 781 0 obj <> endobj 777 0 obj <> endobj 773 0 obj <> endobj 763 0 obj <> endobj 759 0 obj <> endobj 755 0 obj <> endobj 746 0 obj <> endobj 742 0 obj <> endobj 738 0 obj <> endobj 711 0 obj <> endobj 709 0 obj <> endobj 707 0 obj <> endobj 658 0 obj <> endobj 656 0 obj <> endobj 629 0 obj <> endobj 627 0 obj <> endobj 842 0 obj <> endobj 794 0 obj <> endobj 774 0 obj <> endobj 933 0 obj <> endobj 760 0 obj <> endobj 934 0 obj <> endobj 844 0 obj <> endobj 809 0 obj <> endobj 776 0 obj <> endobj 935 0 obj <> endobj 762 0 obj <> endobj 936 0 obj <> endobj 739 0 obj <> endobj 811 0 obj <> endobj 937 0 obj <> endobj 741 0 obj <> endobj 712 0 obj <> endobj 938 0 obj <> endobj 756 0 obj <> endobj 939 0 obj <> endobj 657 0 obj <> endobj 758 0 obj <> endobj 940 0 obj <> endobj 850 0 obj <> endobj 941 0 obj <> endobj 800 0 obj <> endobj 2 0 obj <>endobj xref 0 942 0000000000 65535 f 0000253227 00000 n 0000439052 00000 n 0000252951 00000 n 0000253275 00000 n 0000248604 00000 n 0000000015 00000 n 0000004037 00000 n 0000253344 00000 n 0000428267 00000 n 0000254581 00000 n 0000254902 00000 n 0000255220 00000 n 0000255527 00000 n 0000255592 00000 n 0000255880 00000 n 0000255944 00000 n 0000256196 00000 n 0000256260 00000 n 0000256474 00000 n 0000256538 00000 n 0000256910 00000 n 0000256975 00000 n 0000257255 00000 n 0000257502 00000 n 0000257566 00000 n 0000257894 00000 n 0000257958 00000 n 0000258022 00000 n 0000258291 00000 n 0000258585 00000 n 0000258649 00000 n 0000258714 00000 n 0000259006 00000 n 0000259071 00000 n 0000259338 00000 n 0000259402 00000 n 0000259466 00000 n 0000259761 00000 n 0000259826 00000 n 0000260143 00000 n 0000260208 00000 n 0000260496 00000 n 0000260560 00000 n 0000260869 00000 n 0000260933 00000 n 0000260997 00000 n 0000261362 00000 n 0000261658 00000 n 0000261723 00000 n 0000262047 00000 n 0000262111 00000 n 0000262176 00000 n 0000262240 00000 n 0000262304 00000 n 0000262573 00000 n 0000262637 00000 n 0000262949 00000 n 0000263014 00000 n 0000263209 00000 n 0000263273 00000 n 0000263337 00000 n 0000263636 00000 n 0000263928 00000 n 0000264164 00000 n 0000264229 00000 n 0000264499 00000 n 0000264563 00000 n 0000264834 00000 n 0000264898 00000 n 0000265230 00000 n 0000265295 00000 n 0000265549 00000 n 0000265613 00000 n 0000265677 00000 n 0000265967 00000 n 0000266031 00000 n 0000266304 00000 n 0000266368 00000 n 0000266622 00000 n 0000266908 00000 n 0000266972 00000 n 0000267245 00000 n 0000267309 00000 n 0000267594 00000 n 0000267842 00000 n 0000268108 00000 n 0000268371 00000 n 0000268435 00000 n 0000268660 00000 n 0000268880 00000 n 0000268944 00000 n 0000269240 00000 n 0000269304 00000 n 0000269552 00000 n 0000269787 00000 n 0000270032 00000 n 0000270097 00000 n 0000270436 00000 n 0000270697 00000 n 0000270957 00000 n 0000271233 00000 n 0000271497 00000 n 0000271745 00000 n 0000271810 00000 n 0000272078 00000 n 0000272143 00000 n 0000272409 00000 n 0000272646 00000 n 0000272711 00000 n 0000272950 00000 n 0000273249 00000 n 0000273314 00000 n 0000273565 00000 n 0000273630 00000 n 0000273905 00000 n 0000274174 00000 n 0000274239 00000 n 0000274304 00000 n 0000274523 00000 n 0000274588 00000 n 0000274839 00000 n 0000274904 00000 n 0000274969 00000 n 0000275237 00000 n 0000275442 00000 n 0000275507 00000 n 0000275789 00000 n 0000276056 00000 n 0000276294 00000 n 0000276359 00000 n 0000276424 00000 n 0000276489 00000 n 0000276554 00000 n 0000276779 00000 n 0000276844 00000 n 0000277086 00000 n 0000277360 00000 n 0000277610 00000 n 0000277799 00000 n 0000277864 00000 n 0000278124 00000 n 0000278301 00000 n 0000278506 00000 n 0000278689 00000 n 0000279053 00000 n 0000279360 00000 n 0000279426 00000 n 0000279667 00000 n 0000279898 00000 n 0000280155 00000 n 0000280409 00000 n 0000280647 00000 n 0000280923 00000 n 0000281226 00000 n 0000281291 00000 n 0000281556 00000 n 0000281621 00000 n 0000281891 00000 n 0000281956 00000 n 0000282197 00000 n 0000282425 00000 n 0000282619 00000 n 0000282949 00000 n 0000283204 00000 n 0000283270 00000 n 0000283544 00000 n 0000283786 00000 n 0000284018 00000 n 0000284287 00000 n 0000284352 00000 n 0000284610 00000 n 0000284676 00000 n 0000284916 00000 n 0000285198 00000 n 0000285465 00000 n 0000285531 00000 n 0000285788 00000 n 0000286048 00000 n 0000286354 00000 n 0000286616 00000 n 0000286857 00000 n 0000287116 00000 n 0000287181 00000 n 0000287430 00000 n 0000287495 00000 n 0000287739 00000 n 0000287997 00000 n 0000288062 00000 n 0000288323 00000 n 0000288388 00000 n 0000288672 00000 n 0000288738 00000 n 0000288958 00000 n 0000289259 00000 n 0000289325 00000 n 0000289390 00000 n 0000289665 00000 n 0000289730 00000 n 0000289795 00000 n 0000289861 00000 n 0000289926 00000 n 0000290196 00000 n 0000290261 00000 n 0000290520 00000 n 0000290768 00000 n 0000291015 00000 n 0000291289 00000 n 0000291355 00000 n 0000291626 00000 n 0000291691 00000 n 0000291943 00000 n 0000292183 00000 n 0000292442 00000 n 0000292683 00000 n 0000292871 00000 n 0000293136 00000 n 0000293202 00000 n 0000293459 00000 n 0000293754 00000 n 0000293988 00000 n 0000294249 00000 n 0000294484 00000 n 0000294737 00000 n 0000294993 00000 n 0000295213 00000 n 0000295440 00000 n 0000295688 00000 n 0000295911 00000 n 0000296145 00000 n 0000296388 00000 n 0000296632 00000 n 0000296864 00000 n 0000297110 00000 n 0000297368 00000 n 0000297433 00000 n 0000297689 00000 n 0000297754 00000 n 0000297819 00000 n 0000298052 00000 n 0000298117 00000 n 0000298182 00000 n 0000298428 00000 n 0000298494 00000 n 0000298788 00000 n 0000298854 00000 n 0000299114 00000 n 0000299179 00000 n 0000299400 00000 n 0000299465 00000 n 0000299654 00000 n 0000299719 00000 n 0000299784 00000 n 0000300039 00000 n 0000300104 00000 n 0000004057 00000 n 0000004088 00000 n 0000248774 00000 n 0000004118 00000 n 0000009391 00000 n 0000300358 00000 n 0000300630 00000 n 0000300932 00000 n 0000301206 00000 n 0000301447 00000 n 0000301513 00000 n 0000301787 00000 n 0000302037 00000 n 0000302103 00000 n 0000302169 00000 n 0000302374 00000 n 0000424285 00000 n 0000302620 00000 n 0000302802 00000 n 0000303042 00000 n 0000303331 00000 n 0000303632 00000 n 0000303891 00000 n 0000304125 00000 n 0000304368 00000 n 0000304646 00000 n 0000304939 00000 n 0000305190 00000 n 0000305460 00000 n 0000305720 00000 n 0000305980 00000 n 0000306265 00000 n 0000306449 00000 n 0000306742 00000 n 0000307030 00000 n 0000307274 00000 n 0000307500 00000 n 0000307735 00000 n 0000307995 00000 n 0000308259 00000 n 0000308325 00000 n 0000308502 00000 n 0000308720 00000 n 0000308971 00000 n 0000309182 00000 n 0000309247 00000 n 0000309486 00000 n 0000309715 00000 n 0000309942 00000 n 0000310176 00000 n 0000310413 00000 n 0000310646 00000 n 0000310898 00000 n 0000311147 00000 n 0000311394 00000 n 0000311633 00000 n 0000311848 00000 n 0000312072 00000 n 0000312329 00000 n 0000312540 00000 n 0000312817 00000 n 0000313049 00000 n 0000313114 00000 n 0000313350 00000 n 0000313603 00000 n 0000313668 00000 n 0000313899 00000 n 0000314146 00000 n 0000314370 00000 n 0000314584 00000 n 0000314809 00000 n 0000315051 00000 n 0000315281 00000 n 0000315524 00000 n 0000315796 00000 n 0000315990 00000 n 0000316055 00000 n 0000316289 00000 n 0000316522 00000 n 0000316723 00000 n 0000316956 00000 n 0000317191 00000 n 0000317380 00000 n 0000317606 00000 n 0000317844 00000 n 0000318064 00000 n 0000318291 00000 n 0000318527 00000 n 0000318745 00000 n 0000319005 00000 n 0000319235 00000 n 0000009413 00000 n 0000319422 00000 n 0000248929 00000 n 0000009453 00000 n 0000014201 00000 n 0000319716 00000 n 0000320017 00000 n 0000320271 00000 n 0000320572 00000 n 0000320846 00000 n 0000321154 00000 n 0000321441 00000 n 0000321739 00000 n 0000322006 00000 n 0000322328 00000 n 0000322630 00000 n 0000322888 00000 n 0000323151 00000 n 0000323408 00000 n 0000323601 00000 n 0000323852 00000 n 0000324099 00000 n 0000324361 00000 n 0000324729 00000 n 0000324911 00000 n 0000325163 00000 n 0000325529 00000 n 0000325791 00000 n 0000326060 00000 n 0000326423 00000 n 0000326706 00000 n 0000327076 00000 n 0000327283 00000 n 0000327598 00000 n 0000327877 00000 n 0000327943 00000 n 0000328345 00000 n 0000328608 00000 n 0000328896 00000 n 0000329224 00000 n 0000329497 00000 n 0000329563 00000 n 0000329805 00000 n 0000329982 00000 n 0000330223 00000 n 0000330462 00000 n 0000330733 00000 n 0000330983 00000 n 0000331309 00000 n 0000331592 00000 n 0000331878 00000 n 0000332097 00000 n 0000332163 00000 n 0000332395 00000 n 0000332679 00000 n 0000332903 00000 n 0000333190 00000 n 0000333468 00000 n 0000333708 00000 n 0000333932 00000 n 0000334224 00000 n 0000334496 00000 n 0000334756 00000 n 0000335003 00000 n 0000335225 00000 n 0000335441 00000 n 0000335680 00000 n 0000335943 00000 n 0000336156 00000 n 0000336222 00000 n 0000336501 00000 n 0000336764 00000 n 0000337031 00000 n 0000337298 00000 n 0000337538 00000 n 0000337604 00000 n 0000337670 00000 n 0000337917 00000 n 0000338161 00000 n 0000338433 00000 n 0000338640 00000 n 0000338835 00000 n 0000339098 00000 n 0000339321 00000 n 0000339565 00000 n 0000339820 00000 n 0000340044 00000 n 0000340259 00000 n 0000340533 00000 n 0000340768 00000 n 0000341011 00000 n 0000341299 00000 n 0000341531 00000 n 0000341780 00000 n 0000342003 00000 n 0000342284 00000 n 0000342520 00000 n 0000014223 00000 n 0000342586 00000 n 0000249084 00000 n 0000014263 00000 n 0000018508 00000 n 0000342834 00000 n 0000343089 00000 n 0000343155 00000 n 0000343381 00000 n 0000343630 00000 n 0000343846 00000 n 0000420304 00000 n 0000344104 00000 n 0000344395 00000 n 0000344586 00000 n 0000344856 00000 n 0000345132 00000 n 0000345403 00000 n 0000345671 00000 n 0000345918 00000 n 0000346144 00000 n 0000346378 00000 n 0000346631 00000 n 0000346856 00000 n 0000347128 00000 n 0000347429 00000 n 0000347638 00000 n 0000347704 00000 n 0000347940 00000 n 0000348178 00000 n 0000348421 00000 n 0000348486 00000 n 0000348677 00000 n 0000348942 00000 n 0000349190 00000 n 0000349583 00000 n 0000349841 00000 n 0000350032 00000 n 0000350268 00000 n 0000350560 00000 n 0000018530 00000 n 0000249239 00000 n 0000018580 00000 n 0000023991 00000 n 0000350812 00000 n 0000351126 00000 n 0000351436 00000 n 0000351728 00000 n 0000351996 00000 n 0000352293 00000 n 0000352596 00000 n 0000352662 00000 n 0000352899 00000 n 0000353186 00000 n 0000353412 00000 n 0000353654 00000 n 0000353955 00000 n 0000354215 00000 n 0000354434 00000 n 0000354686 00000 n 0000354985 00000 n 0000355232 00000 n 0000355496 00000 n 0000355725 00000 n 0000355993 00000 n 0000356262 00000 n 0000356494 00000 n 0000356767 00000 n 0000357008 00000 n 0000357285 00000 n 0000357496 00000 n 0000357777 00000 n 0000358017 00000 n 0000358269 00000 n 0000358474 00000 n 0000358675 00000 n 0000358906 00000 n 0000359148 00000 n 0000359340 00000 n 0000359577 00000 n 0000359810 00000 n 0000360057 00000 n 0000360309 00000 n 0000360491 00000 n 0000360762 00000 n 0000360982 00000 n 0000361234 00000 n 0000361454 00000 n 0000361723 00000 n 0000361972 00000 n 0000024013 00000 n 0000249394 00000 n 0000024063 00000 n 0000028716 00000 n 0000362224 00000 n 0000362475 00000 n 0000362740 00000 n 0000363089 00000 n 0000363346 00000 n 0000363630 00000 n 0000363915 00000 n 0000364122 00000 n 0000364344 00000 n 0000364580 00000 n 0000364645 00000 n 0000364895 00000 n 0000365127 00000 n 0000365382 00000 n 0000365669 00000 n 0000365870 00000 n 0000366098 00000 n 0000366355 00000 n 0000366614 00000 n 0000366943 00000 n 0000367165 00000 n 0000367386 00000 n 0000367610 00000 n 0000367835 00000 n 0000028738 00000 n 0000249549 00000 n 0000028788 00000 n 0000033808 00000 n 0000368097 00000 n 0000368347 00000 n 0000368601 00000 n 0000368837 00000 n 0000369116 00000 n 0000369394 00000 n 0000369689 00000 n 0000033830 00000 n 0000249704 00000 n 0000033880 00000 n 0000039681 00000 n 0000369970 00000 n 0000370216 00000 n 0000370525 00000 n 0000370814 00000 n 0000371085 00000 n 0000371350 00000 n 0000371618 00000 n 0000372010 00000 n 0000372406 00000 n 0000372805 00000 n 0000373114 00000 n 0000373180 00000 n 0000373511 00000 n 0000373746 00000 n 0000374008 00000 n 0000374254 00000 n 0000374505 00000 n 0000374745 00000 n 0000374957 00000 n 0000375181 00000 n 0000375410 00000 n 0000375639 00000 n 0000375880 00000 n 0000376130 00000 n 0000376380 00000 n 0000376640 00000 n 0000376830 00000 n 0000377082 00000 n 0000377329 00000 n 0000377580 00000 n 0000377771 00000 n 0000378016 00000 n 0000378257 00000 n 0000378496 00000 n 0000378776 00000 n 0000379016 00000 n 0000379255 00000 n 0000379472 00000 n 0000379728 00000 n 0000380000 00000 n 0000380242 00000 n 0000380492 00000 n 0000380741 00000 n 0000380952 00000 n 0000381191 00000 n 0000381468 00000 n 0000381645 00000 n 0000039703 00000 n 0000249859 00000 n 0000039753 00000 n 0000064048 00000 n 0000436997 00000 n 0000432429 00000 n 0000436936 00000 n 0000435228 00000 n 0000381862 00000 n 0000382177 00000 n 0000382515 00000 n 0000382791 00000 n 0000383071 00000 n 0000383351 00000 n 0000383620 00000 n 0000383933 00000 n 0000384185 00000 n 0000384423 00000 n 0000064071 00000 n 0000250014 00000 n 0000064147 00000 n 0000069734 00000 n 0000384668 00000 n 0000384947 00000 n 0000385206 00000 n 0000385451 00000 n 0000417078 00000 n 0000385693 00000 n 0000385923 00000 n 0000069756 00000 n 0000250169 00000 n 0000069816 00000 n 0000079988 00000 n 0000436875 00000 n 0000438595 00000 n 0000436814 00000 n 0000435458 00000 n 0000386189 00000 n 0000386452 00000 n 0000386790 00000 n 0000387051 00000 n 0000080011 00000 n 0000387299 00000 n 0000250324 00000 n 0000080097 00000 n 0000084915 00000 n 0000387547 00000 n 0000387777 00000 n 0000388041 00000 n 0000388312 00000 n 0000388557 00000 n 0000388829 00000 n 0000389080 00000 n 0000389362 00000 n 0000389597 00000 n 0000389866 00000 n 0000084937 00000 n 0000250479 00000 n 0000084997 00000 n 0000090792 00000 n 0000390177 00000 n 0000390448 00000 n 0000390758 00000 n 0000390997 00000 n 0000391234 00000 n 0000391458 00000 n 0000391685 00000 n 0000391931 00000 n 0000392196 00000 n 0000392452 00000 n 0000090814 00000 n 0000250634 00000 n 0000090874 00000 n 0000096246 00000 n 0000392754 00000 n 0000393081 00000 n 0000393363 00000 n 0000393697 00000 n 0000393960 00000 n 0000394291 00000 n 0000096268 00000 n 0000250789 00000 n 0000096328 00000 n 0000114241 00000 n 0000436753 00000 n 0000433578 00000 n 0000436692 00000 n 0000416927 00000 n 0000436631 00000 n 0000438293 00000 n 0000394546 00000 n 0000114264 00000 n 0000250944 00000 n 0000114363 00000 n 0000119905 00000 n 0000394810 00000 n 0000395102 00000 n 0000395312 00000 n 0000119927 00000 n 0000251099 00000 n 0000119987 00000 n 0000123872 00000 n 0000395625 00000 n 0000123894 00000 n 0000251254 00000 n 0000123954 00000 n 0000128454 00000 n 0000395920 00000 n 0000396209 00000 n 0000396429 00000 n 0000396689 00000 n 0000128476 00000 n 0000251409 00000 n 0000128536 00000 n 0000146508 00000 n 0000436570 00000 n 0000437982 00000 n 0000434851 00000 n 0000438213 00000 n 0000436509 00000 n 0000435153 00000 n 0000434785 00000 n 0000435303 00000 n 0000436448 00000 n 0000432579 00000 n 0000434719 00000 n 0000432960 00000 n 0000396913 00000 n 0000146531 00000 n 0000251564 00000 n 0000146669 00000 n 0000172053 00000 n 0000436387 00000 n 0000438444 00000 n 0000434653 00000 n 0000438670 00000 n 0000436326 00000 n 0000437364 00000 n 0000434587 00000 n 0000437826 00000 n 0000436265 00000 n 0000432809 00000 n 0000434521 00000 n 0000433422 00000 n 0000397272 00000 n 0000397601 00000 n 0000172076 00000 n 0000251719 00000 n 0000172214 00000 n 0000178620 00000 n 0000436204 00000 n 0000437213 00000 n 0000434455 00000 n 0000437670 00000 n 0000436143 00000 n 0000433271 00000 n 0000434389 00000 n 0000434997 00000 n 0000436082 00000 n 0000416776 00000 n 0000434323 00000 n 0000432273 00000 n 0000397879 00000 n 0000398066 00000 n 0000178642 00000 n 0000251874 00000 n 0000178780 00000 n 0000204440 00000 n 0000436021 00000 n 0000435383 00000 n 0000434257 00000 n 0000437133 00000 n 0000435960 00000 n 0000432504 00000 n 0000434191 00000 n 0000432729 00000 n 0000435899 00000 n 0000438977 00000 n 0000434125 00000 n 0000416696 00000 n 0000398295 00000 n 0000204463 00000 n 0000252029 00000 n 0000204601 00000 n 0000216107 00000 n 0000435838 00000 n 0000437595 00000 n 0000434059 00000 n 0000438057 00000 n 0000435777 00000 n 0000433120 00000 n 0000433993 00000 n 0000434917 00000 n 0000435716 00000 n 0000416545 00000 n 0000433927 00000 n 0000432193 00000 n 0000398621 00000 n 0000398798 00000 n 0000399053 00000 n 0000399298 00000 n 0000399520 00000 n 0000399764 00000 n 0000400012 00000 n 0000400240 00000 n 0000400452 00000 n 0000400683 00000 n 0000400918 00000 n 0000216130 00000 n 0000252184 00000 n 0000216268 00000 n 0000221050 00000 n 0000401176 00000 n 0000401389 00000 n 0000221072 00000 n 0000252339 00000 n 0000221132 00000 n 0000233567 00000 n 0000435655 00000 n 0000437058 00000 n 0000433861 00000 n 0000437515 00000 n 0000435594 00000 n 0000432654 00000 n 0000433795 00000 n 0000433040 00000 n 0000435533 00000 n 0000438826 00000 n 0000433729 00000 n 0000416389 00000 n 0000233590 00000 n 0000252486 00000 n 0000233728 00000 n 0000239387 00000 n 0000401644 00000 n 0000401939 00000 n 0000402305 00000 n 0000402580 00000 n 0000402845 00000 n 0000403068 00000 n 0000403134 00000 n 0000403370 00000 n 0000239409 00000 n 0000252641 00000 n 0000239469 00000 n 0000244917 00000 n 0000403622 00000 n 0000403919 00000 n 0000404168 00000 n 0000404435 00000 n 0000404709 00000 n 0000404975 00000 n 0000405272 00000 n 0000405480 00000 n 0000405732 00000 n 0000406006 00000 n 0000406290 00000 n 0000406553 00000 n 0000406826 00000 n 0000407157 00000 n 0000407443 00000 n 0000407723 00000 n 0000408005 00000 n 0000408297 00000 n 0000408544 00000 n 0000408776 00000 n 0000409040 00000 n 0000409360 00000 n 0000409636 00000 n 0000409902 00000 n 0000410167 00000 n 0000410426 00000 n 0000410713 00000 n 0000410962 00000 n 0000411170 00000 n 0000411452 00000 n 0000411700 00000 n 0000411977 00000 n 0000412201 00000 n 0000412447 00000 n 0000412711 00000 n 0000412989 00000 n 0000413264 00000 n 0000244939 00000 n 0000252796 00000 n 0000244999 00000 n 0000248522 00000 n 0000413539 00000 n 0000413817 00000 n 0000414109 00000 n 0000414403 00000 n 0000414469 00000 n 0000414732 00000 n 0000415013 00000 n 0000415301 00000 n 0000415569 00000 n 0000415847 00000 n 0000416128 00000 n 0000248544 00000 n 0000416486 00000 n 0000416637 00000 n 0000416868 00000 n 0000417019 00000 n 0000432370 00000 n 0000432901 00000 n 0000433212 00000 n 0000433363 00000 n 0000433519 00000 n 0000433670 00000 n 0000435094 00000 n 0000437305 00000 n 0000437456 00000 n 0000437767 00000 n 0000437923 00000 n 0000438154 00000 n 0000438385 00000 n 0000438536 00000 n 0000438767 00000 n 0000438918 00000 n trailer << /Size 942 /Root 1 0 R /Info 2 0 R >> startxref 439104 %%EOF evd/inst/doc/Multivariate_Extremes.R0000644000176000001440000002331714225274441017262 0ustar ripleyusers### R code from vignette source 'Multivariate_Extremes.Rnw' ################################################### ### code chunk number 1: rawdata ################################################### options(show.signif.stars=FALSE) library(evd); nn <- nrow(lossalae) loss <- lossalae/1e+05; lts <- c(1e-04, 100) plot(loss, log = "xy", xlim = lts, ylim = lts) ################################################### ### code chunk number 2: Multivariate_Extremes.Rnw:42-44 ################################################### ula <- apply(loss, 2, rank)/(nn + 1) plot(ula) ################################################### ### code chunk number 3: Multivariate_Extremes.Rnw:49-50 ################################################### options(show.signif.stars=FALSE) library(evd); nn <- nrow(lossalae) loss <- lossalae/1e+05; lts <- c(1e-04, 100) plot(loss, log = "xy", xlim = lts, ylim = lts) ################################################### ### code chunk number 4: asylogdfn ################################################### abvevd(dep = 0.5, asy = c(1,1), model = "alog", plot = TRUE) abvevd(dep = 0.5, asy = c(0.6,0.9), model = "alog", add = TRUE, lty = 2) abvevd(dep = 0.5, asy = c(0.8,0.5), model = "alog", add = TRUE, lty = 3) ################################################### ### code chunk number 5: Multivariate_Extremes.Rnw:88-91 ################################################### abvevd(dep = -1/(-2), model = "neglog", plot = TRUE) abvevd(dep = -1/(-1), model = "neglog", add = TRUE, lty = 2) abvevd(dep = -1/(-0.5), model = "neglog", add = TRUE, lty = 3) ################################################### ### code chunk number 6: Multivariate_Extremes.Rnw:94-97 ################################################### abvevd(alpha = 1, beta = -0.2, model = "amix", plot = TRUE) abvevd(alpha = 0.6, beta = 0.1, model = "amix", add = TRUE, lty = 2) abvevd(alpha = 0.2, beta = 0.2, model = "amix", add = TRUE, lty = 3) ################################################### ### code chunk number 7: Multivariate_Extremes.Rnw:100-103 ################################################### abvevd(dep = 1/1.25, model = "hr", plot = TRUE) abvevd(dep = 1/0.83, model = "hr", add = TRUE, lty = 2) abvevd(dep = 1/0.5, model = "hr", add = TRUE, lty = 3) ################################################### ### code chunk number 8: Multivariate_Extremes.Rnw:108-109 ################################################### abvevd(dep = 0.5, asy = c(1,1), model = "alog", plot = TRUE) abvevd(dep = 0.5, asy = c(0.6,0.9), model = "alog", add = TRUE, lty = 2) abvevd(dep = 0.5, asy = c(0.8,0.5), model = "alog", add = TRUE, lty = 3) ################################################### ### code chunk number 9: Multivariate_Extremes.Rnw:121-129 ################################################### set.seed(131); cml <- loss[sample(nn),] xx <- rep(1:50, each = 30); lts <- c(1e-04, 100) cml <- cbind(tapply(cml[,1], xx, max), tapply(cml[,2], xx, max)) colnames(cml) <- colnames(loss) plot(loss, log = "xy", xlim = lts, ylim = lts, col = "grey") points(cml) ecml <- -log(apply(cml,2,rank)/51) plot(ecml) ################################################### ### code chunk number 10: nonpardfn ################################################### pp <- "pickands"; cc <- "cfg" abvnonpar(data = cml, epmar = TRUE, method = pp, plot = TRUE, lty = 3) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 1, lty = 2) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 2, lty = 4) abvnonpar(data = cml, epmar = TRUE, method = cc, add = TRUE, lty = 1) ################################################### ### code chunk number 11: Multivariate_Extremes.Rnw:142-148 ################################################### m1 <- fbvevd(cml, asy1 = 1, model = "alog") m2 <- fbvevd(cml, model = "log") m3 <- fbvevd(cml, model = "bilog") plot(m1, which = 4, nplty = 3) plot(m2, which = 4, nplty = 3, lty = 2, add = TRUE) plot(m3, which = 4, nplty = 3, lty = 4, add = TRUE) ################################################### ### code chunk number 12: Multivariate_Extremes.Rnw:153-154 ################################################### pp <- "pickands"; cc <- "cfg" abvnonpar(data = cml, epmar = TRUE, method = pp, plot = TRUE, lty = 3) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 1, lty = 2) abvnonpar(data = cml, epmar = TRUE, method = pp, add = TRUE, madj = 2, lty = 4) abvnonpar(data = cml, epmar = TRUE, method = cc, add = TRUE, lty = 1) ################################################### ### code chunk number 13: Multivariate_Extremes.Rnw:164-167 ################################################### round(rbind(fitted(m2), std.errors(m2)), 3) anova(m3, m2) evind.test(cml, method = "score") ################################################### ### code chunk number 14: nonparqc ################################################### lts <- c(0.01,100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) points(cml); pp <- c(0.98,0.99,0.995) qcbvnonpar(pp, data = cml, epmar = TRUE, mint = 30, add = TRUE) ################################################### ### code chunk number 15: Multivariate_Extremes.Rnw:185-186 ################################################### lts <- c(0.01,100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) points(cml); pp <- c(0.98,0.99,0.995) qcbvnonpar(pp, data = cml, epmar = TRUE, mint = 30, add = TRUE) ################################################### ### code chunk number 16: Multivariate_Extremes.Rnw:202-204 (eval = FALSE) ################################################### ## k0 <- bvtcplot(loss)$k0 ## bvtcplot(loss, spectral = TRUE) ################################################### ### code chunk number 17: bvtc ################################################### k0 <- bvtcplot(loss)$k0 ################################################### ### code chunk number 18: Multivariate_Extremes.Rnw:213-214 ################################################### k0 <- bvtcplot(loss)$k0 ################################################### ### code chunk number 19: Multivariate_Extremes.Rnw:224-228 ################################################### thresh <- apply(loss, 2, sort, decreasing = TRUE)[(k0+5)/2,] mar1 <- fitted(fpot(loss[,1], thresh[1])) mar2 <- fitted(fpot(loss[,2], thresh[2])) rbind(mar1,mar2) ################################################### ### code chunk number 20: Multivariate_Extremes.Rnw:233-237 ################################################### m1 <- fbvpot(loss, thresh, model = "alog", asy1 = 1) m2 <- fbvpot(loss, thresh, model = "bilog") m3 <- fbvpot(loss, thresh, model = "bilog", likelihood = "poisson") round(rbind(fitted(m2), std.errors(m2)), 3) ################################################### ### code chunk number 21: Multivariate_Extremes.Rnw:242-247 ################################################### abvnonpar(data = loss, method = "pot", k = k0, epmar = TRUE, plot = TRUE, lty = 3) plot(m1, which = 2, add = TRUE) plot(m2, which = 2, add = TRUE, lty = 4) plot(m3, which = 2, add = TRUE, lty = 2) ################################################### ### code chunk number 22: qcthresh ################################################### lts <- c(1e-04, 100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) plot(m1, which = 3, p = c(0.95,0.975,0.99), tlty = 0, add = TRUE) abline(v=thresh[1], h=thresh[2]) ################################################### ### code chunk number 23: Multivariate_Extremes.Rnw:261-262 ################################################### lts <- c(1e-04, 100) plot(loss, log = "xy", col = "grey", xlim = lts, ylim = lts) plot(m1, which = 3, p = c(0.95,0.975,0.99), tlty = 0, add = TRUE) abline(v=thresh[1], h=thresh[2]) ################################################### ### code chunk number 24: chiplot ################################################### old <- par(mfrow = c(2,1)) chiplot(loss, ylim1 = c(-0.25,1), ylim2 = c(-0.25,1), nq = 200, qlim = c(0.02,0.98), which = 1:2, spcases = TRUE) par(old) ################################################### ### code chunk number 25: Multivariate_Extremes.Rnw:285-286 ################################################### old <- par(mfrow = c(2,1)) chiplot(loss, ylim1 = c(-0.25,1), ylim2 = c(-0.25,1), nq = 200, qlim = c(0.02,0.98), which = 1:2, spcases = TRUE) par(old) ################################################### ### code chunk number 26: etaplot ################################################### fla <- apply(-1/log(ula), 1, min) thresh <- quantile(fla, probs = c(0.025, 0.975)) tcplot(fla, thresh, nt = 100, pscale = TRUE, which = 2, vci = FALSE, cilty = 2, type = "l", ylim = c(-0.2,1.2), ylab = "Tail Dependence") abline(h = c(0,1)) ################################################### ### code chunk number 27: Multivariate_Extremes.Rnw:304-307 ################################################### thresh <- quantile(fla, probs = 0.8) m1 <- fpot(fla, thresh = thresh) cat("Tail Dependence:", fitted(m1)["shape"], "\n") ################################################### ### code chunk number 28: Multivariate_Extremes.Rnw:310-312 ################################################### m2 <- fpot(fla, thresh = thresh, shape = 1) anova(m1, m2, half = TRUE) ################################################### ### code chunk number 29: Multivariate_Extremes.Rnw:317-318 ################################################### fla <- apply(-1/log(ula), 1, min) thresh <- quantile(fla, probs = c(0.025, 0.975)) tcplot(fla, thresh, nt = 100, pscale = TRUE, which = 2, vci = FALSE, cilty = 2, type = "l", ylim = c(-0.2,1.2), ylab = "Tail Dependence") abline(h = c(0,1)) evd/inst/CITATION0000644000176000001440000000122413264634362013202 0ustar ripleyuserscitHeader("To cite the evd package in publications please use:") citEntry(entry="Article", title = "evd: Extreme Value Distributions", author = "A. G. Stephenson", journal = "R News", year = 2002, volume = 2, number = 2, pages = 31-31, month = "June", url = "https://CRAN.R-project.org/doc/Rnews/", textVersion = paste("A. G. Stephenson.", "evd: Extreme Value Distributions.", "R News, 2(2):31-32, June 2002.", "URL: https://CRAN.R-project.org/doc/Rnews/") ) citFooter("Thank you very much. Have a lovely day.") evd/inst/CHANGES0000644000176000001440000005076513270066332013047 0ustar ripleyusersCHANGES FROM VERSION 2.3-2 ARE AS FOLLOWS Changed url in CITATION to canonical form. Registered C routines in evd_init.c file. Added a = 0 argument to plotting functions. CHANGES FROM VERSION 2.3-0 ARE AS FOLLOWS Minor edits to vignette. Added cmax to output of fpot to correct bug in profile call. Using requireNamespace in plot.profile2d.evd Added importFrom calls to NAMESPACE Removed dependency on stats Added Imports for stats, grDevices, graphics [Version 2.3-1 was not uploaded to CRAN.] CHANGES FROM VERSION 2.2-7 ARE AS FOLLOWS The demo soe9 has been replaced with a vignette on multivariate extremes. Added functions bvtcplot and evind.test. Added [dpqr]nweibull functions to the namespace! Implemented the possion likelihood for bivariate threshold models. CHANGES FROM VERSION 2.2-6 ARE AS FOLLOWS Documentation edited. In particular, \synopsis sections have been removed as this is no longer supported. Added venice2 dataset. Added [dpqr]nweibull functions. The lazy loading of datasets is now implemented. Some internal C and R code cleaning to avoid warnings. In particular, optimizations over one parameter allow consistent inclusion of the "Brent" method. CHANGES FROM VERSION 2.2-5 ARE AS FOLLOWS Included proper NAMESPACE file and removed zzz.R. CHANGES FROM VERSION 2.2-4 ARE AS FOLLOWS Added default NAMESPACE file to avoid note produced under R CMD check. Changed licence to GPL-3. Datasets are now binary .rda files instead of .R. Renamed doc/guide22.tex to doc/guide22.txt. Call to library in plot.profile2d.evd did not use full argument matching. Fixed. CHANGES FROM VERSION 2.2-3 ARE AS FOLLOWS Removed defunct url from description file. Internal coding change to fpot.norm in order to avoid note produced under R CMD check. CHANGES FROM VERSION 2.2-2 ARE AS FOLLOWS Added a Suggests field to the description file in order to avoid warnings under future versions of R CMD check. CHANGES FROM VERSION 2.2-1 ARE AS FOLLOWS Fitted objects now contain the variance covariance matrix, which can be accessed by the function vcov. New function confint (methods confint.profile.evd and confint.evd) for calculating Wald and profile confidence intervals. The internal function pcint has now been deleted, and plot.profile.evd no longer returns profile confidence intervals invisibly. The function amvnonpar now implements non-parametric estimators for dependence functions of extreme value distributions of any dimension. The function amvevd now implements parametric evaluation of dependence functions of logistic and asymmetric logistic models of any dimension. I have removed the bootstrap confidence intervals option from chiplot. This had problems with zero empirical cdf estimates for some replications. A solution would be to use smoothed estimates, but I decided against implementing this. Argument trunc added to chiplot to control whether estimates are truncated at theoretical upper and lower bounds. The old interfaces to abvnonpar and amvnonpar have been removed. I have included a CITATION file in the /inst directory so that typing citation("evd") returns an appropriate citation. The internal functions ccop and ccop.case have been converted into a new documented function ccbvevd. The recommended R package "stats" is now a required package for evd. The files INDEX and data/00Index are now unnecessary (the information is now automatically generated from documentation files) and have been removed. The defunct function abvpar has been removed. CHANGES FROM VERSION 2.2-0 ARE AS FOLLOWS New function hbvevd for plotting the spectral density of bivariate extreme value models. The spectral density is also now plotted from plot.bvevd. Plotting diagnostics are now implemented for bivariate threshold methods using the method function plot.bvpot. The fbvpot function is now consistent with fbvevd; the dsm argument has been removed, and the asymmetric mixed model has been added. Also, the Husler-Reiss model has been added for (undocumented) Poisson process likelihood fitting. The new argument boot in the function chiplot allows bootstrap confidence intervals. The new argument spcase plots lines corresponding to special cases for comparison. The functions mrlplot and tcplot have a new argument pscale allowing the x-axis to be the threshold exceedance probability rather than the threshold. The default plotting character in bivariate density plots is now a circle, to be consistent with quantile curves plots. Also, all plotting functions now produce all available plots by default. The function tcplot has a new argument vci allowing control over the plotting style of the confidence intervals. Other arguments allow more control over labels and limits. The clusters function with plot = TRUE would produce an error if no data points were above the threshold. This has been fixed. The demo soe9 has been expanded to include all of Chapter Nine of the text Statistics of Extremes. CHANGES FROM VERSION 2.1-7 ARE AS FOLLOWS Added the asymmetric mixed bivariate model to the function fbvevd. A demo soe9 has been included, giving examples from Chapter Nine of the book statistics of extremes. An associated file demo.txt has been added to the /inst directory. The atvnonpar and atvpar functions have been renamed to amvnonpar and amvevd. The abvpar function has been renamed to abvevd, but the former still runs, with a warning. An argument rev has been added to abvpar and abvnonpar, allowing the evaluation of A(1-t) rather than A(t). It can also be passed from plot.bvevd. The argument epmar has been added to abvnonpar and atvnonpar. It allows empirical estimation of the margins. The formerly internal function mtransform is now documented. It transforms to and from exponential distributions under the gev model. The profile plots now plot profile log-likelihoods rather than profile deviances. The plotting functions plot.uvevd and plot.bvevd have an additional argument cilwd to control the line width of confidence intervals. The functions abvpar and abvnonpar now have default axes labels and a border line width argument. The function abvnonpar is simpler; the "tdo" method is now undocumented, old methods "deheuvels" and "halltajvidi" can now be implemented using the argument madj. For back compatability, the old interface can still be used. The weight function option for method "cfg" has been removed, and the "cfg" definition now has a simpler equivalent representation. Similar changes have been made to atvnonpar (now renamed to amvnonpar). In fbvevd the dependence summaries, and hence the argument dsm, have been removed, though the former Dependence One value is now automatically given in the output. The argument warn.inf is now undocumented. The marginal option "exponential" to the function evmc has been changed to "rweibull" (negative exponential) because the former swaps the bivariate tails around. The function anova now has a logical argument half to deal with non-regular cases where the asymptotic distribution of the deviance difference is known to be one half of a chi-squared. Also, it no longer errors when testing bilog vs log or negbilog vs bilog. Added the dataset lossalae on general liability claims. CHANGES FROM VERSION 2.1-6 ARE AS FOLLOWS The exi function has been simplified; it now returns only a single estimate, but a new estimation method based on inter-exceedance times has been added. A new function exiplot plots estimates of the extremal index. The rlow argument (lower clustering interval) is now hidden in the documentation for fpot, clusters, exi and exiplot. Due to numerical problems, the function rmvevd could return Inf when the dependence parameters were small. This has been fixed. The maintainer thanks Mohammed Mehdi Gholam Rezaee for reporting this. The anova function errored when used inside another function. This is now corrected. The maintainer thanks William Valdar for reporting this. In function abvnonpar the method "hall" is now "halltajvidi", and an additional comment has been added to the help file, following a request from Nader Tajvidi. Typographic sign error in User's Guide corrected. The maintainer thanks C L Wong for reporting this. Spelling errors in uccle help file corrected. The maintainer thanks Tobias Verbeke for reporting this. Apologies to residents of Belgium! CHANGES FROM VERSION 2.1-5 ARE AS FOLLOWS The data passed to the bivariate fitting function fbvevd can now be a data frame with a third column of mode logical. See the corresponding documentation for more details. A new dataset called sealevel2 has been introduced. CHANGES FROM VERSION 2.1-4 ARE AS FOLLOWS The lower.tail argument for pbvevd and pmvevd did not properly produce survivor functions when set to FALSE. This has been fixed. CHANGES FROM VERSION 2.1-3 ARE AS FOLLOWS A file was accidently included in Version 2.1-3 which meant that the package would not easily install under C compilers other than gcc. This has been fixed. CHANGES FROM VERSION 2.1-2 ARE AS FOLLOWS The function dextreme errored when the argument largest was FALSE. This has been fixed. The maintainer thanks Brian Tolley for reporting this. CHANGES FROM VERSION 2.1-1 ARE AS FOLLOWS The function fbvevd now has arguments cshape, cscale and cloc for fitting common marginal parameters. The function fbvpot now has arguments cshape and cscale for fitting common marginal parameters. The Husler-Reiss model is now implemented in fbvpot. New function chiplot for plotting estimates of the dependence measures chi and chi-bar for bivariate data. The latex file for The Users' Guide is now included in the doc directory along with the pdf file. The default x-label "theshold" in mrlplot has been corrected to "threshold". CHANGES FROM VERSION 2.1-0 ARE AS FOLLOWS New function fbvpot for fitting bivariate threshold models. A plot method for these models will be implemented at a later date. New argument sym in function fbvevd, to allow the fitting of dependence structures under a symmetry constraint. The argument also exists in the new function fbvpot. CHANGES FROM VERSION 2.0-1 ARE AS FOLLOWS Univariate threshold models are now implemented. The main new function is fpot, which calculates maximum likelihood estimates under the generalized Pareto and point process representations. Density, distribution, quantile and simulation functions for the generalized Pareto distribution have been added. The new function clusters identifies extreme clusters. A related function exi calculates estimates of a quantity known as the extremal index. The new plotting functions mrlplot and tcplot aid threshold selection. The class structure has changed slightly. Models fitted using fextreme and forder still have class c("extreme", "evd"). Models fitted using fbvevd still have class c("bvevd", "evd"). Models fitted using the new function fpot have class c("pot", "uvevd", "evd"). Models fitted using fgev now have class c("gev", "uvevd", "evd"). The method function plot.gev is now plot.uvevd. This operates on both the gev and pot classes, due to the new class structure. The defunct functions fgumbel, frweibull, ffrechet (each defunct since version 1.2-0) and fbvall (defunct since version 2.0-0) have been removed. CHANGES FROM VERSION 2.0-0 ARE AS FOLLOWS Internal change to avoid warnings under R version 1.7.0 when calling the multivariate asymmetric logistic distribution, density, quantile and generation functions. The tests directory has been removed. The function evmc unintentionally reversed asymmetric dependence structures. This has been fixed. The maintainer thanks Chris Ferro for reporting this. CHANGES FROM VERSION 1.2-3 ARE AS FOLLOWS The function fgev.quantile is now internal; the functionality has been absorbed into fgev. It is now possible to parameterize gev model fits using the endpoint of the distribution by setting prob to zero or one in fgev. New functions for generating stochastic processes associated with extreme value theory. marma, mar and mma generate max autoregressive moving average processes. evmc generates first order Markov chains with bivariate extreme value dependence structures. The functions fbvlog, fbvalog, etc are now internal. The new function fbvevd should be used for the fitting of all bivariate models. The rbvevd, dbvevd and pbvevd functions replace individual functions for bivariate models. Similarly, rmvevd and dmvevd functions replace individual functions for multivariate models. The function abvpar replaces individual functions for plotting and calculating the dependence functions of parametric bivariate models. New functions atvnonpar and atvpar, which calculate and plot dependence functions of trivariate extreme value distributions, using non-parametric estimates and parametric models (at given parameter values). Fitted bivariate models (i.e. objects of class bvevd) now include Akaike's Information Criterion and, optionally, various dependence structure summaries. The argument dsm controls this option. New lower.tail argument in bivariate and multivariate distribution functions. The function pcint is now internal. Profile confidence intervals are now invisibly returned from plot.profile.evd. Also, the argument ci of plot.profile.evd can now be a vector. Functions called from plot.evd (dens, pp, qq, rl) and plot.bvevd (bvdens, bvdp, bvcpp) are now internal. The default labelling of the x-axis for the return level plot has been changed from the technically correct "-1/log(1-1/Return Period)" to the more widely used "Return Period". There now exists a density function for the multivariate asymmetric logistic model. The density function can be calculated by calling dmvevd with model = "alog". The argument mar of rmvevd, pmvevd and dmvevd can now be a list with d elements, where d is the dimension of the distribution. An extraction function logLik.evd has been added so that the function AIC.default in R base can be used. The function profile2d.evd has a new method argument (to be consistent with profile.evd) and new arguments xaxs and yaxs (to override the default behaviour of the function image). The function plot.bvevd has new arguments blty (border line type) and grid. In the function abvnonpar the logical argument convex replaces the numeric argument modify. The functions fext, rext, etc are now called fextreme, rextreme, etc. The objects formery of class "evd" are now of class c("gev","evd") or c("extreme","evd"). The plot.evd function is now plot.gev. The row names of all data.frame datasets are now the years of observation. Furthermore, the period of observation for the venice data has been corrected in the help file. The arguments mesh and conf in profile.evd now work as documented. The fbvall function is defunct. New datasets: failure, fox, lisbon, ocmulgee, oldage, sask and uccle. The CHANGES file has been moved to the top-level directory. CHANGES FROM VERSION 1.2-2 ARE AS FOLLOWS Two more datasets - venice and portpirie, intended for use in the evdbayes package. Fixed minor problem with extraction functions for bvall objects when only one model is fitted. Contours for bivariate density plots are now chosen by the contour function. Error messages in internal functions are more informative. CHANGES FROM VERSION 1.2-1 ARE AS FOLLOWS New methods hall and tdo for calculating non-parametric dependence function estimates. BUG fix: the non-parameteric dependence function estimator of Caperaa et al (the default) was plotting/calculating A(1-x) rather than A(x). The recommended citation for the package is now the article included in R-News Volume 2/2. Extra graphical arguments have been included in the abv[...] functions. CHANGES FROM VERSION 1.2-0 ARE AS FOLLOWS The profile.evd function now has a method argument to specify the optimization method. The default method is now BFGS. A BUG existed in profile.evd; a fatal error would result if the mesh argument did not have a names attribute. This has been fixed. Internal: General code cleaning/optimizing. New internal functions have been created. CHANGES FROM VERSION 1.1-0 ARE AS FOLLOWS Class orientated objects have been introduced, including print methods and extraction functions. Diagnostics plots can be implemented using plot, or the lower level functions dens, rl, pp, qq (univariate) and bvdens, bvcpp, bvdp (bivariate). Parameters can be profiled using the functions profile and profile2d. Profile deviance surfaces can be plotted using plot. Profile confidence intervals can be calculated using pcint. Fitted models can be compared using the function anova. New function fgev.quantile to fit the GEV distribution, re-parameterizing using a quantile. This allows profile deviances of extreme quantiles to be plotted. Extra argument corr for fitting functions. If corr is TRUE the correlation matrix is calculated. By default corr is FALSE. Extra argument warn.inf for fitting functions. When warn.inf is TRUE (the default) a warning is given if the negative log-likelihood is infinite at the starting values. The ffrechet, fgumbel and frweibull functions are defunct. Internal: Function ccop for calculating conditional copulas. CHANGES FROM VERSION 1.0-0 ARE AS FOLLOWS Automated starting values for fitting functions. Compiled code is now used within the bivariate fitting routines and all bivariate simulation functions. They are consequently much faster than those in Version 1.0-0. Simulation, distribution, density and fitting functions for the bivariate bilogistic, bivariate negative bilogistic and bivariate Coles-Tawn models. A new function fbvall which fits all bivariate models simultaneously. For every model it returns maximum likelihood estimates, standard errors, criteria for model comparisons based on the deviance (e.g. AIC), and summaries of the dependence structure (see the help file for details). A new function abvnonpar which calculates or plots non-parametric estimates of the dependence function. All functions explicitly allow for missing values. This includes bivariate fitting functions, where missing values can occur on either or both margins within any observation. Extra argument nsloc for univariate fitting functions, and arguments nsloc1 and nsloc2 for bivariate fitting functions. These allow non-stationary fitting using linear models for the location parameters. Extra argument std.err for fitting functions. If std.err is FALSE the standard errors are not calculated. By default std.err is TRUE. Extra argument method for fitting functions. The method argument explicitly specifies the optimization method to be passed to the function optim. The default method is now BFGS for all fitting functions except fext and forder, where the default method is still Nelder-Mead. The sealevel data frame has been expanded to include observations from 1912 to 1992. There are 39 missing values. Explicit error handling in fitting functions when the observed information matrix is singular. Artificial constraints are now placed on dependence parameters within bivariate fitting functions to prevent numerical problems. The asy argument for the bivariate asymmetric logistic and bivariate asymmetric negative logistic models now defaults to c(1,1). The default values of the marginal parameters for the bivariate and multivariate functions in Version 1.0-0 are different. This is counter intuitive, so the default value for each margin within the multivariate functions is now c(0,1,0) (Gumbel), which is consistent with the functions for bivariate models. The bivariate density functions contained a fairly minor BUG; if one of the marginal parameter arguments were passed a three column matrix and some of the rows of the matrix produced zero density, a fatal error would result. This has now been fixed. Internal: The .C interface is called with PACKAGE = "evd". Internal: R_alloc replaces malloc in C routines.