diff options
-rw-r--r-- | doc/UsersGuide.pdf | 3442 | ||||
-rw-r--r-- | doc/UsersGuide/Notes.tex | 49 | ||||
-rw-r--r-- | src/include/utili_Expression.h | 5 | ||||
-rw-r--r-- | src/main/Parameters.c | 63 | ||||
-rw-r--r-- | src/util/Expression.c | 144 |
5 files changed, 1890 insertions, 1813 deletions
diff --git a/doc/UsersGuide.pdf b/doc/UsersGuide.pdf index ed998887..a3db342c 100644 --- a/doc/UsersGuide.pdf +++ b/doc/UsersGuide.pdf @@ -2969,7 +2969,7 @@ endobj /Filter /FlateDecode >> stream -xUn1 +xUn1 endstream endobj 945 0 obj << @@ -3014,8 +3014,8 @@ kN`F`mMAOy}qSῪ;wsKf܂}{/&G@j-k ɨgP`:bG
&x?~ jY|+%$iΚIE@ G䫠cY/ZL&00Pc5}UImv>5 0[}O9UR\y
|Q3XLi^BqZZ_ -l|SK y7m*a"W|S4A)'6"YJm@f=tH*]PfTЂn\1cVʼ90'0<`KD{`] -?DE[V +l|SK y7m*a"W|S4A)'6"YJm@f=tH*]PfTЂn\1cVʼ90'0<`KD{`] +
%]\ endstream endobj 957 0 obj << @@ -3108,7 +3108,7 @@ hɆ@jo 9L5GfTUǺH""LlE]}} m$7qdni
Q|1VFմ̩ o~;=tn?։JXG~B@Q) lNƁ0%FP>PʬPTen2>$ӯAڑrC/6EeˉPskQ6Ha4VX~u3kT|9w܄4w~6}?d)*KMZ:&旅J"1ad˞6|.0N{o
ӏ3+V ~?4ʄ45
=UDd奪`ôx3|)DW[Fi͎W_
ҨlUѻ6s_}dUQΧ:!':C-{8_^/ :)CkDpg7+f 䍫`ડpr\ga/kz'N-| h)e۶- %+-Pů0;%ϋ?O{8LwQZo-rΜ~PWexz]gwӋKfD9-,p
Y:M89!$wwa?8\˹iV4 9-0e/jEz>8Ttg~,dϯI=].<:17_ -QIĖO <=BD01ǖ`<HO>\_64+9 +QIĖO <=BD01ǖ%1`<HO>\_7+? endstream endobj 967 0 obj << @@ -3152,8 +3152,7 @@ xڭVMs6WHΘ> 7Ycg2+13Ir`$JBM*Iѿj6 X} N6
%u&UԦ\q]?Ml~ h#TWvatl#+v̱b(kՔXU6-M7h9bSnMV>z|vu('Ł{`Fr O#R|&be\UcN14ϰ~Φ62 hvk]W_|Ul0꼞V.ڭ_V+7:UmlgӬ =Rk^.ρڔ345nm[@;nt>S&*ig:5sSUiM
~mѨiH7aeFqҬ̹"B]keMMs. X͢AJO*:Hp"t|Џ<mWMGg/\)WtriƑ-bWà]%r>a -&(V؋6mwLʎ;r0*LܐϠ!xog]Rq#I#/4UyAQ9QoDKcR \ea`C=\ -x +&(V؋6mwLʎ;r0*LܐϠ!xog]Rq#I#/4UyAQ9QoDK($\˾nz%py*
C endstream endobj 972 0 obj << @@ -3182,17 +3181,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 979 0 obj << -/Length 1806 +/Length 1805 /Filter /FlateDecode >> stream -xXY6~_!"1W )
6=fdk˶P[r%yrHٲ"30KI|{<KXFb2^$%*bDr=Oަ/VvdʵL/Cm4u;d*s -;Ͷ\ۮ -
bZiE`N2 2*7{W[7nIr+N)`ŁH 3u?[\j\ڶLt;) -Pu{vrF6@t:+ږuυH,'<*,K'lze5/oήbEܖM]mp!DJPIioE(F<R 'nK0S< -~TvS|lUE]
¿Eƶ+'يRKۢ+[&~l\rc/"ϺZ{"0ۦѐX]f,yY4O&S!D:k -whyuw?ͬS\<>C_# $0#,F~h3rNfvӆ0G "B{Y U\Z\>Ֆ:`
DI^g*{sy=`CfĨ|4jtCݪVuphT2BSg;-89-.`AC? &ջ7]=و*"/" -h!9KAʔ2'P:5>iqJ57$=SM*PʜB6p.D6ڃXo +xXY6~_!"1#dh>yڲ-Զ\Im}Rl&=Ѿ9!fE̊ˋ"_^_<yŋD)&EY"Fd]rv]L\M_;FSȦUQovuU \(&ZDKFdJ)qsAr Ώ[d2Kb*y*p;|Q0;ŵƕk[wUggg]dL糲m?i_q+D6ectHn*">r]Wyu[nf]5(m
;H *ͺl"gS*x]v FyG۔_<6[mnz_~oQ78qX)[v>qS\Ȣ:ܸ_ij.zS\emdH +s,.sc["5;:4ȼ\ןxg利UĂ(s$Db\D՛Fx +PURKr_}sbPCXOjjHsHQa/FHC6}]g)!W(IcL"`x>r(7XyLkt> 7V0=c.*aBh!XX<R)DTP +\?.lX{1T4$EsRLm=d0X 0 #96̑D_]"E_˞nԗ)Hq(C/OeTZuW&m^1%V +8<mzYj!bίק^"9:$O+'¸$cV߇}y+ѫfÉo{x242Ӷ'M^F*N,=p}P;ʌ$_PCwF +g〧`P%#Ç7rx +>,*S<AQju<ߏP/ՠN2L6@*-|,!_a]wZRu endstream endobj 978 0 obj << @@ -3240,7 +3239,7 @@ DcHa/<I)C)1Lm@xlwO?.{M9^[B\yX^k7Ar cQIԢ\$?Xs \D6|/ma<?. -#"q
/bܫv@4;̠Yg<.2g;m[ӀYPhUYH{Z=ˠ`kb}1n* +#"q
/bܫv@4;̠Yg<.2g;m[ӀYPhUYH{Z=ˠ`kb}1n* endstream endobj 983 0 obj << @@ -3285,7 +3284,7 @@ Ea&!tÀ@Qv [=4#"8u֞aS6wm6%X78Uv{GYKG Z9!prPB1Ĉfeď %fCjmCI5]C76 mXdD1=,<TGw@eVʀU|):pqɖºj -I$kr=>EX5c|NOq$M,`*,zk<OWb +I$kr=>EX5c|NOq$M>U"Xּy*pegc
韻 endstream endobj 989 0 obj << @@ -3337,7 +3336,7 @@ g|8 \]_]? QO7)zSJ=)z\sx*HBO֩^'y2ɷlRd:W2BM\SmEInwz_5ww[e.xuW9( ]JI6/S"ZpQz/|`G
9fij~a#% 7 4B&XN-ǔҨ+\`TgEi'h* H -ֺXս{uT`dR^%TqK1qKù,*<"F)",2\<}*r wIb]Ŗ%c%1J` +ֺXս{uT`dR^%TqK1qKù,*<"F)",2\<}*r wIb]Ŗ%c%1J` endstream endobj 996 0 obj << @@ -3375,7 +3374,7 @@ xZKs6WH% 0"gՙ<
|rk0)qe|2AuPvlojzTQ,>QXMf?u*O|I?Rkz6lV=UuvWm2Mn!_i :-Hٛ@yt]{8Ql)#%ס(Dpmޏ]{xr7y~]&iއx˪B|DIy+N' ь$Eʤ(l7~H! -zq̌jDDBh"3*/V_}8QDPW4}iDjB""7(7dZ:9<d*$á0EAbvur<O/9~Ck=,պ:M{~56XlX0;Lj`E FWfN6ٝauD?O.f'g'WC'#D*f؛XAH+.pE/$_f6I8b|<lv,Ǜ~W7<k)۠"{u,z˵am%ۊD;wƛ
GB`xMYƴ$N7ͪy_s}JrMQ<K&N:LlibABKuɪ)Rp~. d1j+4GG1J#ɴwO+ +zq̌jDDBh"3*/V_}8QDPW4}iDjB""7(7dZ:9<d*$á0EAbvur<O/9~Ck=,պ:M{~56XlX0;Lj`E FWfN6ٝauD?O.f'g'WC'#D*f؛XAH+.pE/$_f6I8b|<lv,Ǜ~W7<k)۠"{u,z˵am%ۊD;wƛ
GB`xMYƴ$N7ͪy_s}JrMQ<K&N:LlibABKuɪ)Rp~. d1j+4GG1J#ɴwO+ endstream endobj 1005 0 obj << @@ -3443,7 +3442,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1013 0 obj << -/Length 2401 +/Length 2402 /Filter /FlateDecode >> stream @@ -3456,7 +3455,7 @@ xYKsFW=p%[%ɴDd+LB"$ :>z")_6tT[G-9yAnt!n&q% 9$!q.}rBXس?znnsq9
^<H1R݊u=+ 6 Zn*1-,H1{0uR2PaM|1PgkԴHИIy'QJ|j{C*"IB_oK93HJ5~oС:0#],.3ѽ4>CGyNMLǶCػקy*` _ ;.ŢG6!v,_V6*ۭ/ «)/60),f/K.`֠Ł駯TQ#Rxy GFH5~ڱg&n
Q{Gs@Ehky]^n6!rrZ$_*JΏGAu1J9m|@bx79UOfvN!JE8WwbE$ -3~2SE8 +3~2SE8 endstream endobj 1012 0 obj << @@ -3494,30 +3493,29 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1026 0 obj << -/Length 2800 +/Length 2801 /Filter /FlateDecode >> stream -xZM{HWZ'07$oI%v$OVu5ȳ{6tWW[V?
k
"a@ A8~.l8 -л|{w}sp$>_߿8T0TP?'\}Bw=r^|J?]ݟ猃@H&˳_Sy3'{rdZI/yrcQzi! ]x$Oɸk1zFէ+o%u)` -o#$) -yJIOP9]?rݜebr!@=t-l>pqmmY%>WD'8&ϓ\|õ&d 3z`$Qa/R;Y+%ϔTzYh,_Dl"jK]̗rWpA{X=lEdk8,3*dmX~,){4\VK@{1Y
+:Iͬ
`!/W!.]0Ii6IP*"]!(8c1DpʧI{b{pՆ.1^},GƄd- -Zmg*4xQO2KtjĜPl]φi⎙MlFsؔLYQƋE1x -\t"V? -v;]<hxA oס64~X$KTҦ(۪4eG֙|8eܼct3Ns@H$:9E<yWtT4O&*FH")y]!7[CQ,
kB]s -uomχ@{xglp<LOGZ#">Dp!{EV'SNqL?n}~wu獐B=P%D.%U{XuHrP^B岻9]xhˉno(x_^8mya(mtf?>5>&rI4nej[-כ2{A7UK|كEr"MI
@qSDA*50֝Wh -(TcpCoV*?h'dpoˁSZ4!Ԗq)-AM&jAT +xZM{HWZ4sNY;&$KXbGBZ@oUW +
+ 7M&7E27s1UI7,u'3GHkLWSx|5'IQSXШH|qӠ-s<"pkf(ulk+*/)nĽ&<AM6yd5䌛Z(/Ѓ '9.p kEr +x%իA(+6KRe\Ц{Ş-VbwZ$Φ=ˌ2Loy%eՒ_:khcN}A3G +1
(X '}BڥBtjĜI#g4q̦i69 +lY&Ҭ("Ƙf< +pJڣDTt"|.
:`+qJX3jJQ"VEѵd} M1 +XN_>a~#zķy_iӑz +LH Lbiv(S{jޔIj~Za,wixOB +RQXeBW@ <*6o<06j湳}ҍӭ*\{rlQmIhM,\=JʛTg -5{a!8*G".
VaOlL Ȣ%ϊ5M2zA$0V-^ѩIu -c3QeO!5tr X0Rfj:w' -S=9}:Mz*CShgrI#=ytLqL -~&E6єy莨v0d)$:#a:bƦI6.OR ->Kge
+0!2G5Xa=TS3ۼ kv02(Py)ΠKuCpplk({ -c<EW.1IwgpqYT9 -} -[ZtoZ
oN^DԾ -Ċ. -|_ +5{a!8*G".
VaOlL Ȣ%ϊ5M2zA$0V-^ѩIu +c3QeO6r:9! X` Kaܝp +P +a;4JT=Bn3(R +OHp[ *_ !T$uq +Ȗ2m/wxs/ǟ洍8$e<znh[a=xV +Zrjva +$-{ +FNoztrZH洞im-X*z)84;q''g6EP裚i2Zk,˜%5tx%1PDq}z1qQէ3tL[hux"իq$g8"nU..j9GAo`PײfBi/)'.,]o\NkqMtv*
=R_AsuKM3b[iˑH@2#'y\{]FΧp>":K8wZ@XEs+`ߛs`z{P{Sad!.8?쇄u { endstream endobj 1025 0 obj << @@ -3610,7 +3608,7 @@ xڽZ[sۺ~C"`=3s;䁑c8>],HKBۅ(9xqv0} xK.sYhV˖!
)0ʖX*#^}TLFId>m7=6o{l fyV :GWU+ui5\7UN.pnOhU?լbi`uVW3O+4/ُ{ 1 @ḅ
ᠾTMfi2bxF=bJbHHJu5E[my`P%v(cH=n3jXޮM!>$D>7l)(~__۰aw6M0'6 ,UR$Kh1}zI[U+4"UsSƛy\GU-.&b̸HEq{E:89 xm -l>:W<ϱbs7ƫ;(^p1Q2M
}+ +l>:W<ϱbsجI/(]|>p_ endstream endobj 1034 0 obj << @@ -3678,7 +3676,7 @@ v t *Cr͟,Hk߽"dDOpf5A?ŵ UhnM 3]ڼ$>ǧW -ijC,g{QLuWY銼ؾӮ +ijC,g{QLuWY銼ؾӮ endstream endobj 1039 0 obj << @@ -3720,7 +3718,7 @@ xYKs6WVj& #ɌĮ2:)Ɂ )E$eX")թ;^,X =& 9\sa,yZ.;bv&e"8he`*W @q]#/جe-q=2
,I2mhK(<EQO;OVEݠׇlim3faMb.GZ=Cg.ʺsm(Gg`ݞEN'@ழOif,;vip<_U*wks:p=M{.q[X
1&jg71,o}50Ay7Xĉ:HW"QLjn!$]op NqN߰99pO!Zc`q]hF0|=3w}-W:f$[rV9ڳa^fOLu9R7x9D'KM!'\3x*1`7`P0 ɸ¤E3yNM/q.8Rf)ﶙn\&]_?w='buÿq2H|Ow%QP\u2O'@#zt1=KANP4~&}56`RA'sa$LE7S1? 7Fs'w̦jlA}D|Gĩqg?>?OKp(P>^DXv"-F-reZI
m(TySVzշY
{zpvL0g >Z0 /_wʀ2Kp2UOo\z^\т\IIz ?W=*azOWAsDZwOx!z[gx^yX,C$s|I;S?33XIu,:t,9>6q,Kl3=~`7c<i#qV7ڮ -Ĉ{wO{z=P`vֺtsG٧XI{Un=zz'q48$7&gP6zE]u/ya:u.Lv4{ip[p͎ҳ$pz5 +Ĉ{wO{z=P`vֺtsG٧XI{Un=zz'q48$7&gP6zE]u/ya:u.Lv4{ip[p͎ҳ$pz5 endstream endobj 1044 0 obj << @@ -3766,7 +3764,7 @@ B%^*SB8vX?pH<N_*j]fa흧ope*CȪja(n!@+5q @FFd# 6R Fȅ."J -St룥T?y.yD%Bwt&F0PBӖk3p!z +St룥T?y.yD%Bwt&F0PBӖk3p!z endstream endobj 1052 0 obj << @@ -3816,25 +3814,20 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1060 0 obj << -/Length 2247 +/Length 2248 /Filter /FlateDecode >> stream -xY[s6~ׯ`RjB/fgqmN'-Ak^T^x}dIwg/" -z|Cs?|~ x^٩*z*_*[xQRIlYU[FH4e -XKW̪2<Q]vlӐ{3U7mYilSYG,w1~(ɢ3d@}mzyV+1p 4UWQjUg-ZfmYٴ*5Y8{6dg=v6=vH&fWvO0\+*|Nǥ5&Es:x"v?:[D$z7v0PiI, c!H({]! -crIܶYUbXঃlmf$QC| ,l`NJ䑍4qSe>܍Sj"ز%AxDؑV"{I&<[ozJlЂg1Ju7Ŀd=N*)v -:xxզ&U{DZa2-!35\$綛ҺdU]y6:jgEwLsK4{o7iqF$3=IKM }/;{k@{weY=QhLh.Q -Nj -b" -& -4&<@+f - $IN/>-TsUpb^Ȑ@iX>EBj>ݽfLQ ,њE!v+nTخrΠ!EW-Xt=*Dz!]U$:x!Ephm.Vkg{A!68 y1*&xH]4QUȤ䥪K@ OL#@5@v:"۴i?xtY$#`*>x\,}zQjuC>˄6 - -Y+LN#t!,I&\fX#Mw0OSo>%6*>u`MM+h1Ϗ%\[W6tA=`iQ۪k҇[hJ\!#eow -YnuZ<#s51B7i͍ܸ945{^"2*Md1v MUh-Y_3QWG)Hqx֤luj6 -h@ %
*W:+WճMkTq1ߏŪo`b9"kpN1OhocIQ@G4gP33 d$qzew\J[RkCtAgD$k>* -1+ #q#x_ARKJc/"X/{kovL8cЭrW(ix/65~?:xͫ?#6*?K^y6k\Cv* %|b3BA"=$Bد3;]B~&JQmžb+x(^H~U +xY[s6~L74;㤎lkgm}%H"U^x}dIwg/" +Q12HXp&i0[WH2&I^~:L9/;s$f2BDQw3O-^_I*ۓ'؉ꎏ U,oNXD4T@HN0.DCq8Cyy"J$c<p2^VnDYpلm,~o`EQBSO&{賈Wmi/)pyrv@݄ypo9F=b]U~\@Ãi7y#%mVg-l`_DؿwpDJ̨0m]fŃU]nm}0[hS&BS +f|c3"<bvx^.z"iX]n.s_@ 2+زq/c% ф% +Hˬ+BJphϚYg5RNG̐1z$#`tub=[*E>֕zrB,y>C84fvϛuE'`R7H`ج͖&R:oX"o+˦ՙUjTDڄ۳'=鉌Ck@21r{GFQp=.5-1$?ݼ>ýEBwc`:qlӈ"<8ˈIJ +>-mW%fn;a6JKbAMSI&X +D(L0U8*驖>r-[GiEK:L0j`ҮnmJ`"пիnh}*_s3]N()v +&xxf6t{DZy`ltsu:Gi}21.wI;f%lsF(HYWŏ$ޥ&|ϝAѽ5뽻rl(X&*äK0!B`m` ABjM mf^bssjzfy_0JpH
,k!|Un>ݽLQ ,U!իv]nBYG)C6Zphz(teC6ILBzՋ)ڲ]6Z%W
lbC\z`ANSUlhS7T#.6
&b2<]0VHt`<edxneUo 3PatǕ"hؗg%V1dST|QxNVPJc +<i\u(g#xpayh.t6Q"|*KF'u}VSVcQKl܃{|}6[K01J1O5BG>>)(sG3o;&\i[y&6 +{c7F^olSQͶnq&F#yIqc=Pi:%Ct6H7ݞhѸZVj=O$~#t&ME^9صFPx,.$UD +
6wkXo̍qL8cЭW(ix/v>+~t}~شhNo,a[;{c-)oP>烕P gĂ$2!*Aد'S;SB~&JQmHT:1}EիI6&[ endstream endobj 1059 0 obj << @@ -3884,7 +3877,7 @@ xXY6~_ۂ1`VQ=&+3D4OFKCNFʏOd'|U}.4_<g^ aeܻ1RYʻXh<3 )Ư6~'V1dXtePb0JN6bIoJmPVRdwLX%o1BV.cj\w~.W|Ǎ^7۲^MvݔݺK9taJ0";"ABduq +lz/H=W3ch0kdDfy0NKOb翟nݨș)p;F)D{>'w8f?42B]MO䎞zDώDfI[lX#jq-luUW{Bs[]*s: nFp=Ɂ?m!O98SN!ZGlW*M3ލB pw&%tf9(Ó9d̗m릃zb(.h6JFnҍRSh1@m}iF-fSla+N*۵%cku1ᤛ݁(ۯFDha]3 -$`^SdZriwnJvo呻AWG7r+1{wFh#$8Fi27&su J7<im{K+LsRmAH~3Z" +$`^SdZriwnJvo呻AWG7r+1{wFh#$8Fi27&su J7<im{K+LsRmAH~3Z" endstream endobj 1066 0 obj << @@ -3927,7 +3920,7 @@ stream xڵXYo6~УQ<$M:hEӦ KBV ̃
Xi֍+'6<t,J46nMdǦv]k\2!u)ݼv<QK_oN`B B(I)I¡3璠v<xk\xvR)AZF@Bh::\o[!J,kuO@շ \<Gǂh@ts)(Y|Ӄ; -SzuLhM:rC
?(ǖvh9=*Ltɘ:1Vq,[Ju$[
UqP[;Vxj<A_Y19;sJa2%}ۋ}2|,NRMbI3TNTSu/-)AG23%ɉcs![tB>}ӿVx.
vh>&u'I
>*~<#<Ƀç860b{G
Ve/"4A7JYzoW({:j&Lcܟș2yxgv"{,_O +SzuLhM:rC
?(ǖvh9=*Ltɘ:1Vq,[Ju$[
UqP[;Vxj<A_Y19;sJa2%}ۋ}2|,NRMbI3TNTSu/-)AG23%ɉcs![tB>}ӿVx.
vh>&u'I
>*~<#<Ƀç860b{G
Ve/"4A7JYzoW({:j&Lcܟș230gE",YO endstream endobj 1072 0 obj << @@ -3983,7 +3976,7 @@ v%۫{ .UP&nX%Vcit-V\w -]עh/caC>tq_<-g ?wy6K/{"[m}``RZ6saX5`Hf~o@
)>7<(>Zc,Ԗoq` skͰ?8MM~Pr?uhJf2[t{UV&=R͟Xv!e -@}_`g@wt]W`[`SXh*;hҾݘbƭYnK=n&rd0"T.e3vđ?<jvae&sǽE_\<h?2V\*$xI }է +@}_`g@wt]W`[`SXh*;hҾݘbƭYnK=n&rd0"T.e3vđ?<jvae&sǽE_\<h?2V\j$xI }խ endstream endobj 1079 0 obj << @@ -4022,26 +4015,30 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1090 0 obj << -/Length 3446 +/Length 3577 /Filter /FlateDecode >> stream -xڕYoݿBmBML7-7fh
PZl(R/"gۅx{M.R7T,b5:_|v^iWU'e8.~y}ruykiﯗv.\ -"Nj Χ__E6~x^_~fgL"Ob;[0su, jB톁q:'y -# -ժyѼq8E#P ̺G$Rc83\n`!_]`[wkp;u'Ҧnx0u}'떾Co*qd3^pұRa1XzuBx9=eDkRMd7<+@δճ5<Q[L -/ʒH) -Za5@,GT=R<IQ!.0,pfO5M8x2' !ۑ_<<&ˬ[髯ȡx7wK2ݳ5 l.Z)kj4Mv~ed#ddOf"y
@bsGL6\eKZGZh0n)<IXAu78Ckh`r0+74n2A8ct*U9Rj}<GZD~`&[w$2Ejn6Y_vҚN,g§pF] PIlG@j? -9Yx|@A-GnZ}ÆPEcL8@N: -϶ޙy[ZCc2txBd-8w+lWlN/Xxy4Cv5XlK p - d\sN?OGN43\nD(;{Ag=0$B -`8Pּ@JGyzw26vPnC|9
=JyĹ3
p)8T0W`1×v'*
ZT+_G][bR^,6MiDE .jYv<e"U -[ -֧G8뻧wDOh{z1}$S(B%%OP'D:@aV}W}X<uADfrB0P@B0u=Sj"<sTD,b1OMi<RiJT< qCO7LX/&<%R0l`@SI 2R -x$7(EF%VlTls<mڪ00}/|4&KG\Oz=IPlfq{~ij |2ם)+DBKcC="u6#W֊R; R,}f*يl8G$<iwd'gLK"T*%!R<b7D4ƴ-ep4QZ<vl)5XMD8ۄ;kyNlVՂ:auZf]O(eɪv5s^pǍ,o'2#UVN>"9v$}&i%N[n$N^n~U^r0u(@e -4fCUR13+ib8r -;셔Mj0Ķ7ww0JQGҭ -v6vgazuن4q~9eto"'vp0+d]q5|U?q[ ~\w'NuXa< m-q`.7ȯwbVu&] +xڕZڢ049Ӎv ]p+)R!= +}r7q8Qb?^xeb/VE$]6k)o&I|\s77֡o_-Sk +co
n8*q~Y݇/ެ~;f"^z@OYYEi/ +5|̟PPGInY6E{Ëq<)O;MYf=ϜlRW^L74Z +n1 LgkyO,Z~vyɛ% tlA:GOToyc.IǮ{"tc8k<KggI~\Sşf2ڎ
,a5@l,ǫ[ޥ){QI8'\B#Iuy3\s"CАZ,ʸ62!w՚LYU[lL_ +϶ޛy=d:`ߵ4}}dwrxZྩ7MC<Biݹ.)<$Tq98 9}szI t-oxBt5 +$`Vk݂--
ўd,Mң+,%p@at`s ip1'źV3,5h)X#NA$P:uJ/KB9}Wܨ +R' s7y{;p.R-?T/? +M?fe*Aۜ=H@gg,1HɰkOf\]觲`
>~l|w2@~b7W(/ѐQ3gqeN"9=>#bhҒDAjEb{=#Soˣ5mSyDr~Q1 +Cub'l]WK
q5{*nbspxs$ř4뻧gO$#|Ÿ{@ue5uT 9ꛢ>6;Ln;>vL!w<0(`dzQA*ʱA) +%@W1x@E+&dڔ
7@MkGj +"1g'#X̘H
4Gruʡc<bKz1Ս<Z73 Or]IGvHd>h&*+*ԜՅ2Z +ø+{3'C_zM<g~C=?
U#~O8LYlSZ*ItrT
L?oTbƖHƆ>WXVM +m +s#_thfMLJj=IP-2_Z3 W{̰ugzBHhi8~lHO +ؘCQdٌP\y+ +Km_"HYsGćC#lU| +Xg6v05F{ܣnpd;)MqS [M +Dy>Sxk-(тlUot0\wZ|e|,1>in)uA7fEL))G٨oJ4ƚ l?zk EFԩshjpϽ35!É:P
Cq&)D GV;*n N 7v^uc@eߘ!Ӌ(Di\01(9o::S +Z/-b3މ endstream endobj 1089 0 obj << @@ -4055,14 +4052,14 @@ endobj 1085 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [274.241 500.83 296.021 509.741] +/Rect [274.241 503.709 296.021 512.62] /Subtype /Link /A << /S /GoTo /D (section.43) >> >> endobj 1086 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [438.701 308.966 460.618 320.922] +/Rect [438.701 317.501 460.618 329.457] /Subtype /Link /A << /S /GoTo /D (section.87) >> >> endobj @@ -4077,24 +4074,36 @@ endobj /D [1089 0 R /XYZ 72 736.391 null] >> endobj 150 0 obj << -/D [1089 0 R /XYZ 72 382.15 null] +/D [1089 0 R /XYZ 72 390.685 null] >> endobj 1088 0 obj << /Font << /F59 901 0 R /F58 711 0 R /F66 889 0 R /F8 710 0 R /F60 921 0 R /F30 708 0 R /F62 866 0 R /F53 709 0 R /F11 877 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1096 0 obj << -/Length 2925 +/Length 3099 /Filter /FlateDecode >> stream -xڭ[k=6(HHMg6i䤉3Nz:fw&?nl/6^>${7YN糋X4P`2[L8p~p2K&_>"hr:!u>]9{i>u^Ky;a6
}ScBśMGFNOS/foߛ}w/g/0 &X# d7IC~N~^ e>bԇl_Yv1?jaEJaK#(|ʱ'uZqeRL]:뢬ECA8C|օ>Wb
b%X+
Dz#E>90@_CEڲ\}jY<+A3NuEUWFJE]|YZOFLH0]C7[Yru1@g)*vLSZGϋi.uvG%4p梇8"91܀q-q-ʓh~<6:#$F!sL#/($C=YraOCd=2:>sA{;B? -C?{u#ώHc&O4͍qL^K.~b {XdJ?_C - OZFzL:O}06dAFvO8=L LQ"U9!o
ym{+Z],kG}ʂGUc@p04<.VA9Lb9ơxMXMUaapzgzx -''Fjs]#kl;a?lO'7FD/1^YMm頓i6=,<?EIUe;a}?w-%@6ԶQVu~@,lp{|-JA(|zP -#%ExPyOtM(wM9dbx!u$ΌT..1VU"=bWibF -3-'楐v2sC"\ %c(; C -AZ"t%` V+//c$}!V:lv=ltfV}3ߔɽ{ݤ=yH(ʹ2Ej#Rpʿ%hA8oͼ}wU %B.qK&HӅyJK5w= #0w1H@H#2;T1ZGn2L/yS4NJy֭{@V}Ig9]N\DZ=6*{G#l+L@u&ZkUFK6AԡN &XW6C.L>"qU
齉I)s}k3Qam1U8Y;@R% +xڭ[[6~_-ܭ"umH\ѤdͱT' "KG4z]\qg;{y"̟]6<xj#A:!w|xq_|ﻫy9O3_Pʸ<{}AÜΧwWߚz뻏߯\<2wF5Ј͖ۋ~wg+xf/ +gU}:x^QJX(<JQDGCKJ"!Lw%!_F!ejYU^]0`D
c!lxA/ +};Ar ~|W] ++Icz +qj≗yyJl +g)~I&{ +@hxc(?>j,lr4%+.N + 07A(O0<o"A{oK"w3by$O& ;q$CT?9;\\3A\7k|-PҼ6ZP=&LST5rwk&_-Qɵ,z88SJLB> L_c_2dqo?eu(O]6 04iO
=Ni<*j +ݍF?? K~;At^-8$M3|4 +(5|fr3gŇ<uH":>%f(`g\6-ubMa#@}Ãwm<> +,GSV.[I*"jQӎ~=YztpTt_U9lNשQ<wv9_pΝ[JD/e`C :叶Mܗk[\Yyu)W2[J$zxlp Bu.YpWNjC-]Z}ȹjkwp_g>c;JVX, +љ*jkKG,sw +!.ui(،ׂdT^!/rwjmv.`<Ȁj Q7y_f⤌Wؙ!u \ϩǏ-Md +sKxdr}FrmX+Wd.IU>/yٓoeU$KZѕn"02ZZnFxMVfU#lm40JUp v:uS]@:76GѰw8^qZ{#OWlFūFM59bd +lɫ6Rεf
EVǗW<V!2wdPe6RMWNӴ`{jWxc)ؖVC.wʕQ_?V*XNз6"S)1L{b$UC09"`Tq+ +zP|H<rQj;-(qM4_u({:K2#L/ruvWosQ6%eS{
ߤH5=vUQ5ҏYpdT`|WB+<H&c$/ :ʢ!\|d2$ +2$hř%vy{3 +-n +% endstream endobj 1095 0 obj << @@ -4108,7 +4117,7 @@ endobj 1092 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [125.854 401.658 155.52 413.613] +/Rect [125.854 332.073 155.52 344.028] /Subtype /Link /A << /S /GoTo /D (subsection.94) >> >> endobj @@ -4123,31 +4132,31 @@ endobj /D [1095 0 R /XYZ 72 736.391 null] >> endobj 1099 0 obj << -/D [1095 0 R /XYZ 160.36 482.798 null] +/D [1095 0 R /XYZ 160.36 458.091 null] >> endobj 1094 0 obj << /Font << /F59 901 0 R /F8 710 0 R /F58 711 0 R /F11 877 0 R /F10 1098 0 R /F14 912 0 R /F62 866 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1105 0 obj << -/Length 2507 +/Length 2646 /Filter /FlateDecode >> stream -xYYF~_ -Ga9q۟/^m/]x@x\/?\:V>\|+wz;OMn煑V -%]- -l vXb'?s0%^MڼbzRfOuU1xb![&)yûm~G'@ -@*ό%J3mDTy0֚%PIq~w_
>P2mnMcdYp# T;>vKF)H(VlT
s:{%hY[L#w|>2?ҟa*l?4GԼo;RlYn \xQ5J2,@YvPX0R%!KƭCjhƹH1+X10"EZ<W"1:INJ:U.mhZ+˟KCi@p4Ozae/Q1Iet
d: -9A8(l]l>\PbU9bмbhwDׁtmˉkCTZ%~kD9C%|9Ƭ|L性@?uu3H`BB~ -^sssn~E4ZsEkr~,g!dRPܲ,0nZ h6>D̕LDP6FC<R! -L1oͣ4=Þ*@%p}d,c(=ܡiZ QM -~BI/cE)>B6 -+Y -I7<-#Ű
I;vk%H`UW- -iH˗f`FhO*.{'{+W!-k=9\0j4wA I58ݒj'D!|.30{$dDihk1KfS2kbO&$D;$ɀ;>Uq6~-}6rdD;Iڟ\-d*%qq8~Cc̑ -7a,wr>K4 -M%}JS>S.D0֘#~5f7A[2vEmݩ,~i% ]O@>y:Q`?jox鮘7; jcYR50rg+ xT2P[C:o%i? -&a$x9 -2A@y!;%
sOn_e +xYYF~_ +F^##&u%uڍRH-jtPxAq?a8L"WEԻmS01x3x XOsX" *W%,=yT ` +9m3B\WYg,ؖ
1YW?9~N06(m$EߩqdqŋQ2l'9u(փƥ>xKf8c`!`dVS$10W#\D$m^+B03X?\b[AΆ1s&˥]䶱<YCpd,&Ϛzae'Q1- V\`: +:0q;׆7UjB7NzCQ*qջ;vgilr~TëǮT']Gn&ki0rmLU6H$ +&05K;[S69 +:ϤK:E]:2:_{h +Fϼ~hg-IgX7Φ*RQ'jR#!$bSxdzLΏs+sO'/;<:<Nf'G6б'<
R+,P/֠4rif͊瀘t|RqѝI<hg=̒\0okRĻ( +X58eeՎ^qÑB\aQ3aӸE(
U5UH +Qn-Sd,-)Uc_ؑ%3НZXً̻R2Xdjn(TNxeƐ#a|*2l[?u +u+EH.s[ͱ,.f(PO0܂C&,3:atUȊ:xmlB +oۂ)+FE&M QIE-a\S2b_ro=93%<dڽq d +=вF11<[(_pNay
8 +iRD +t.tL$Xs
lJ'퉣4gANITģm$ endstream endobj 1104 0 obj << @@ -4161,14 +4170,14 @@ endobj 1100 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [181.589 520.7 203.368 532.655] +/Rect [181.589 468.894 203.368 480.85] /Subtype /Link /A << /S /GoTo /D (section.40) >> >> endobj 1101 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [123.584 147.682 153.251 158.531] +/Rect [123.584 95.877 153.251 106.725] /Subtype /Link /A << /S /GoTo /D (subsection.141) >> >> endobj @@ -4183,7 +4192,7 @@ endobj /D [1104 0 R /XYZ 72 736.391 null] >> endobj 154 0 obj << -/D [1104 0 R /XYZ 72 355.528 null] +/D [1104 0 R /XYZ 72 303.722 null] >> endobj 1103 0 obj << /Font << /F59 901 0 R /F14 912 0 R /F8 710 0 R /F58 711 0 R /F62 866 0 R /F30 708 0 R /F11 877 0 R /F66 889 0 R >> @@ -4199,7 +4208,7 @@ n}6E:+i<31vYS2)є"
O=FE7E{YQjsTmQWHP+IPT ߕ vBzv
技bx+:D|g3+|[wsU)GW9hG^yaAZ9xd( mM{{s86g}9[e{S ptwŃjM%τS=+'+*Դ}Lrt\]D;C1eLFL3҂!w$9FVJd9EY"jZH&O]Wd#G/{_>ga:|v'J 8{ʌ0kd~G%WTU]mw<3_p|-tч@o.,^0JLBy3o{\z9AVώ )8Ka'266cܓI% -z(0St(IڿkHR +z(0St(IڿkH2.dMį+f,w endstream endobj 1113 0 obj << @@ -4259,7 +4268,8 @@ stream xڭWKs8Wl7Mi3{h{`$Ҭ,"7~%G3C GvZWmY~lmķ 8A!$i\ЇRgQ (PHQ:&ִȱ -le?\zAls4ۗL%[ m`4<"z #`l&B,
hp)3zŧeA+PsrǙ-:A;9Ga_V(T+m UxWQr^@j xw0녦+Yuu5 +le?\zAls4ۗL%[ m`4<"z #`l&B,
hp)3zŧeA+PsrǙ-:A;9Ga_V(T+m UxWQr^@j xw0녦+Yuu5 +=ϾNN"ED endstream endobj 1119 0 obj << @@ -15918,8 +15928,8 @@ endobj >> endobj 2258 0 obj << /Author(Gabrielle Allen, Tom Goodale, Gerd Lanfermann, Thomas Radke, David Rideout, Erik Schnetter, Jonathan Thornburg, Steve White)/Title(Cactus Users Guide)/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() -/CreationDate (D:20120411143854-07'00') -/ModDate (D:20120411143854-07'00') +/CreationDate (D:20120418170747-07'00') +/ModDate (D:20120418170747-07'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj @@ -15932,655 +15942,655 @@ xref 0000000852 00000 f 0000000015 00000 n 0000082043 00000 n -0000812178 00000 n +0000812625 00000 n 0000000057 00000 n 0000000089 00000 n 0000085967 00000 n -0000812069 00000 n +0000812516 00000 n 0000000134 00000 n 0000000168 00000 n 0000086023 00000 n -0000811958 00000 n +0000812405 00000 n 0000000214 00000 n 0000000249 00000 n 0000086079 00000 n -0000811897 00000 n +0000812344 00000 n 0000000298 00000 n 0000000336 00000 n 0000089459 00000 n -0000811773 00000 n +0000812220 00000 n 0000000382 00000 n 0000000431 00000 n 0000089686 00000 n -0000811712 00000 n +0000812159 00000 n 0000000480 00000 n 0000000523 00000 n 0000093572 00000 n -0000811638 00000 n +0000812085 00000 n 0000000570 00000 n 0000000617 00000 n 0000096111 00000 n -0000811515 00000 n +0000811962 00000 n 0000000664 00000 n 0000000712 00000 n 0000096167 00000 n -0000811441 00000 n +0000811888 00000 n 0000000759 00000 n 0000000791 00000 n 0000098563 00000 n -0000811367 00000 n +0000811814 00000 n 0000000838 00000 n 0000000868 00000 n 0000100301 00000 n -0000811281 00000 n +0000811728 00000 n 0000000915 00000 n 0000000956 00000 n 0000101943 00000 n -0000811208 00000 n +0000811655 00000 n 0000001003 00000 n 0000001036 00000 n 0000102771 00000 n -0000811081 00000 n +0000811528 00000 n 0000001080 00000 n 0000001117 00000 n 0000106706 00000 n -0000810970 00000 n +0000811417 00000 n 0000001164 00000 n 0000001195 00000 n 0000106762 00000 n -0000810896 00000 n +0000811343 00000 n 0000001242 00000 n 0000001278 00000 n 0000109882 00000 n -0000810785 00000 n +0000811232 00000 n 0000001325 00000 n 0000001367 00000 n 0000111613 00000 n -0000810724 00000 n +0000811171 00000 n 0000001417 00000 n 0000001440 00000 n -0000114054 00000 n -0000810598 00000 n +0000114053 00000 n +0000811045 00000 n 0000001487 00000 n 0000001517 00000 n -0000114110 00000 n -0000810487 00000 n +0000114109 00000 n +0000810934 00000 n 0000001564 00000 n 0000001604 00000 n -0000117211 00000 n -0000810426 00000 n +0000117210 00000 n +0000810873 00000 n 0000001654 00000 n 0000001690 00000 n 0000130874 00000 n -0000810300 00000 n +0000810747 00000 n 0000001737 00000 n 0000001785 00000 n 0000130931 00000 n -0000810226 00000 n +0000810673 00000 n 0000001835 00000 n 0000001884 00000 n -0000140218 00000 n -0000810139 00000 n +0000140219 00000 n +0000810586 00000 n 0000001934 00000 n 0000001993 00000 n -0000140275 00000 n -0000810050 00000 n +0000140276 00000 n +0000810497 00000 n 0000002043 00000 n 0000002093 00000 n -0000140332 00000 n -0000809959 00000 n +0000140333 00000 n +0000810406 00000 n 0000002144 00000 n 0000002226 00000 n -0000143155 00000 n -0000809881 00000 n +0000143156 00000 n +0000810328 00000 n 0000002277 00000 n 0000002320 00000 n -0000143213 00000 n -0000809790 00000 n +0000143214 00000 n +0000810237 00000 n 0000002368 00000 n 0000002399 00000 n -0000145690 00000 n -0000809659 00000 n +0000145691 00000 n +0000810106 00000 n 0000002447 00000 n 0000002509 00000 n -0000145748 00000 n -0000809580 00000 n +0000145749 00000 n +0000810027 00000 n 0000002560 00000 n 0000002639 00000 n -0000149231 00000 n -0000809487 00000 n +0000149232 00000 n +0000809934 00000 n 0000002690 00000 n 0000002729 00000 n -0000152273 00000 n -0000809394 00000 n +0000152275 00000 n +0000809841 00000 n 0000002780 00000 n 0000002817 00000 n -0000152331 00000 n -0000809315 00000 n +0000152333 00000 n +0000809762 00000 n 0000002868 00000 n 0000002929 00000 n -0000152389 00000 n -0000809223 00000 n +0000152391 00000 n +0000809670 00000 n 0000002977 00000 n 0000003016 00000 n -0000154598 00000 n -0000809145 00000 n +0000154600 00000 n +0000809592 00000 n 0000003064 00000 n 0000003091 00000 n -0000157230 00000 n -0000809015 00000 n +0000157232 00000 n +0000809462 00000 n 0000003139 00000 n 0000003174 00000 n -0000157288 00000 n -0000808936 00000 n +0000157290 00000 n +0000809383 00000 n 0000003222 00000 n 0000003262 00000 n -0000165549 00000 n -0000808843 00000 n +0000165682 00000 n +0000809290 00000 n 0000003310 00000 n 0000003351 00000 n -0000172777 00000 n -0000808764 00000 n +0000173224 00000 n +0000809211 00000 n 0000003399 00000 n 0000003438 00000 n -0000175342 00000 n -0000808647 00000 n +0000175789 00000 n +0000809094 00000 n 0000003486 00000 n 0000003535 00000 n -0000175400 00000 n -0000808568 00000 n +0000175847 00000 n +0000809015 00000 n 0000003583 00000 n 0000003616 00000 n -0000177805 00000 n -0000808489 00000 n +0000178252 00000 n +0000808936 00000 n 0000003664 00000 n 0000003690 00000 n -0000178653 00000 n -0000808357 00000 n +0000179100 00000 n +0000808804 00000 n 0000003735 00000 n 0000003770 00000 n -0000181813 00000 n -0000808238 00000 n +0000182260 00000 n +0000808685 00000 n 0000003818 00000 n 0000003856 00000 n -0000181871 00000 n -0000808120 00000 n +0000182318 00000 n +0000808567 00000 n 0000003904 00000 n 0000003938 00000 n -0000181928 00000 n -0000808041 00000 n +0000182375 00000 n +0000808488 00000 n 0000003989 00000 n 0000004015 00000 n -0000181986 00000 n -0000807948 00000 n +0000182433 00000 n +0000808395 00000 n 0000004066 00000 n 0000004098 00000 n -0000185830 00000 n -0000807869 00000 n +0000186277 00000 n +0000808316 00000 n 0000004149 00000 n 0000004184 00000 n -0000185888 00000 n -0000807737 00000 n +0000186335 00000 n +0000808184 00000 n 0000004232 00000 n 0000004270 00000 n -0000185946 00000 n -0000807658 00000 n +0000186393 00000 n +0000808105 00000 n 0000004321 00000 n 0000004347 00000 n -0000188693 00000 n -0000807565 00000 n +0000189140 00000 n +0000808012 00000 n 0000004398 00000 n 0000004434 00000 n -0000188869 00000 n -0000807472 00000 n +0000189316 00000 n +0000807919 00000 n 0000004485 00000 n 0000004527 00000 n -0000214054 00000 n -0000807379 00000 n +0000214501 00000 n +0000807826 00000 n 0000004578 00000 n 0000004633 00000 n -0000217267 00000 n -0000807300 00000 n +0000217714 00000 n +0000807747 00000 n 0000004684 00000 n 0000004723 00000 n -0000222984 00000 n -0000807168 00000 n +0000223431 00000 n +0000807615 00000 n 0000004771 00000 n 0000004807 00000 n -0000223042 00000 n -0000807089 00000 n +0000223489 00000 n +0000807536 00000 n 0000004858 00000 n 0000004887 00000 n -0000227257 00000 n -0000806996 00000 n +0000227704 00000 n +0000807443 00000 n 0000004938 00000 n 0000004969 00000 n -0000227315 00000 n -0000806903 00000 n +0000227762 00000 n +0000807350 00000 n 0000005020 00000 n 0000005050 00000 n -0000231312 00000 n -0000806810 00000 n +0000231759 00000 n +0000807257 00000 n 0000005101 00000 n 0000005137 00000 n -0000231370 00000 n -0000806717 00000 n +0000231817 00000 n +0000807164 00000 n 0000005188 00000 n 0000005219 00000 n -0000246449 00000 n -0000806624 00000 n +0000246896 00000 n +0000807071 00000 n 0000005270 00000 n 0000005300 00000 n -0000285519 00000 n -0000806545 00000 n +0000285966 00000 n +0000806992 00000 n 0000005351 00000 n 0000005403 00000 n -0000289483 00000 n -0000806413 00000 n +0000289930 00000 n +0000806860 00000 n 0000005451 00000 n 0000005488 00000 n -0000289541 00000 n -0000806334 00000 n +0000289988 00000 n +0000806781 00000 n 0000005539 00000 n 0000005575 00000 n -0000295365 00000 n -0000806241 00000 n +0000295812 00000 n +0000806688 00000 n 0000005626 00000 n 0000005651 00000 n -0000295423 00000 n -0000806162 00000 n +0000295870 00000 n +0000806609 00000 n 0000005702 00000 n 0000005731 00000 n -0000295480 00000 n -0000806030 00000 n +0000295927 00000 n +0000806477 00000 n 0000005779 00000 n 0000005809 00000 n -0000299304 00000 n -0000805951 00000 n +0000299751 00000 n +0000806398 00000 n 0000005860 00000 n 0000005893 00000 n -0000299362 00000 n -0000805858 00000 n +0000299809 00000 n +0000806305 00000 n 0000005944 00000 n 0000005970 00000 n -0000299420 00000 n -0000805765 00000 n +0000299867 00000 n +0000806212 00000 n 0000006021 00000 n 0000006057 00000 n -0000302823 00000 n -0000805672 00000 n +0000303270 00000 n +0000806119 00000 n 0000006109 00000 n 0000006147 00000 n -0000305778 00000 n -0000805593 00000 n +0000306225 00000 n +0000806040 00000 n 0000006199 00000 n 0000006255 00000 n -0000305836 00000 n -0000805461 00000 n +0000306283 00000 n +0000805908 00000 n 0000006304 00000 n 0000006339 00000 n -0000305894 00000 n -0000805382 00000 n +0000306341 00000 n +0000805829 00000 n 0000006391 00000 n 0000006438 00000 n -0000305951 00000 n -0000805289 00000 n +0000306398 00000 n +0000805736 00000 n 0000006490 00000 n 0000006533 00000 n -0000349671 00000 n -0000805210 00000 n +0000350118 00000 n +0000805657 00000 n 0000006585 00000 n 0000006620 00000 n -0000349729 00000 n -0000805078 00000 n +0000350176 00000 n +0000805525 00000 n 0000006669 00000 n 0000006718 00000 n -0000349787 00000 n -0000804999 00000 n +0000350234 00000 n +0000805446 00000 n 0000006770 00000 n 0000006801 00000 n -0000360993 00000 n -0000804906 00000 n +0000361440 00000 n +0000805353 00000 n 0000006853 00000 n 0000006876 00000 n -0000364243 00000 n -0000804813 00000 n +0000364690 00000 n +0000805260 00000 n 0000006928 00000 n 0000006971 00000 n -0000367622 00000 n -0000804734 00000 n +0000368069 00000 n +0000805181 00000 n 0000007023 00000 n 0000007062 00000 n -0000384391 00000 n -0000804602 00000 n +0000384838 00000 n +0000805049 00000 n 0000007111 00000 n 0000007149 00000 n -0000384449 00000 n -0000804523 00000 n +0000384896 00000 n +0000804970 00000 n 0000007201 00000 n 0000007243 00000 n -0000384507 00000 n -0000804430 00000 n +0000384954 00000 n +0000804877 00000 n 0000007295 00000 n 0000007344 00000 n -0000388368 00000 n -0000804337 00000 n +0000388815 00000 n +0000804784 00000 n 0000007396 00000 n 0000007461 00000 n -0000394242 00000 n -0000804244 00000 n +0000394689 00000 n +0000804691 00000 n 0000007513 00000 n 0000007553 00000 n -0000400895 00000 n -0000804165 00000 n +0000401342 00000 n +0000804612 00000 n 0000007605 00000 n 0000007644 00000 n -0000407681 00000 n -0000804033 00000 n +0000408128 00000 n +0000804480 00000 n 0000007693 00000 n 0000007735 00000 n -0000407739 00000 n -0000803954 00000 n +0000408186 00000 n +0000804401 00000 n 0000007787 00000 n 0000007826 00000 n -0000416569 00000 n -0000803861 00000 n +0000417016 00000 n +0000804308 00000 n 0000007878 00000 n 0000007911 00000 n -0000419347 00000 n -0000803768 00000 n +0000419794 00000 n +0000804215 00000 n 0000007963 00000 n 0000007997 00000 n -0000424444 00000 n -0000803675 00000 n +0000424891 00000 n +0000804122 00000 n 0000008049 00000 n 0000008096 00000 n -0000433155 00000 n -0000803582 00000 n +0000433602 00000 n +0000804029 00000 n 0000008148 00000 n 0000008185 00000 n -0000440221 00000 n -0000803489 00000 n +0000440668 00000 n +0000803936 00000 n 0000008237 00000 n 0000008275 00000 n -0000440279 00000 n -0000803396 00000 n +0000440726 00000 n +0000803843 00000 n 0000008327 00000 n 0000008373 00000 n -0000444253 00000 n -0000803317 00000 n +0000444700 00000 n +0000803764 00000 n 0000008425 00000 n 0000008465 00000 n -0000451347 00000 n -0000803199 00000 n +0000451794 00000 n +0000803646 00000 n 0000008514 00000 n 0000008568 00000 n -0000451405 00000 n -0000803120 00000 n +0000451852 00000 n +0000803567 00000 n 0000008620 00000 n 0000008652 00000 n -0000451463 00000 n -0000803027 00000 n +0000451910 00000 n +0000803474 00000 n 0000008704 00000 n 0000008737 00000 n -0000451521 00000 n -0000802934 00000 n +0000451968 00000 n +0000803381 00000 n 0000008789 00000 n 0000008823 00000 n -0000451579 00000 n -0000802855 00000 n +0000452026 00000 n +0000803302 00000 n 0000008875 00000 n 0000008917 00000 n -0000453341 00000 n -0000802737 00000 n +0000453788 00000 n +0000803184 00000 n 0000008966 00000 n 0000009007 00000 n -0000453399 00000 n -0000802619 00000 n +0000453846 00000 n +0000803066 00000 n 0000009056 00000 n 0000009100 00000 n -0000453456 00000 n -0000802540 00000 n +0000453903 00000 n +0000802987 00000 n 0000009152 00000 n 0000009200 00000 n -0000456003 00000 n -0000802447 00000 n +0000456450 00000 n +0000802894 00000 n 0000009252 00000 n 0000009285 00000 n -0000456061 00000 n -0000802368 00000 n +0000456508 00000 n +0000802815 00000 n 0000009337 00000 n 0000009368 00000 n -0000456119 00000 n -0000802275 00000 n +0000456566 00000 n +0000802722 00000 n 0000009417 00000 n 0000009450 00000 n -0000456177 00000 n -0000802182 00000 n +0000456624 00000 n +0000802629 00000 n 0000009499 00000 n 0000009566 00000 n -0000458694 00000 n -0000802089 00000 n +0000459141 00000 n +0000802536 00000 n 0000009615 00000 n 0000009682 00000 n -0000458752 00000 n -0000801996 00000 n +0000459199 00000 n +0000802443 00000 n 0000009731 00000 n 0000009797 00000 n -0000458810 00000 n -0000801864 00000 n +0000459257 00000 n +0000802311 00000 n 0000009846 00000 n 0000009873 00000 n -0000458868 00000 n -0000801785 00000 n +0000459315 00000 n +0000802232 00000 n 0000009925 00000 n 0000009952 00000 n -0000458926 00000 n -0000801692 00000 n +0000459373 00000 n +0000802139 00000 n 0000010004 00000 n 0000010031 00000 n -0000461797 00000 n -0000801599 00000 n +0000462244 00000 n +0000802046 00000 n 0000010083 00000 n 0000010119 00000 n -0000466991 00000 n -0000801520 00000 n +0000467438 00000 n +0000801967 00000 n 0000010171 00000 n 0000010207 00000 n -0000469423 00000 n -0000801388 00000 n +0000469870 00000 n +0000801835 00000 n 0000010256 00000 n 0000010287 00000 n -0000472606 00000 n -0000801309 00000 n +0000473053 00000 n +0000801756 00000 n 0000010339 00000 n 0000010382 00000 n -0000472664 00000 n -0000801216 00000 n +0000473111 00000 n +0000801663 00000 n 0000010434 00000 n 0000010487 00000 n -0000472722 00000 n -0000801123 00000 n +0000473169 00000 n +0000801570 00000 n 0000010539 00000 n 0000010593 00000 n -0000476088 00000 n -0000801044 00000 n +0000476535 00000 n +0000801491 00000 n 0000010645 00000 n 0000010703 00000 n -0000476146 00000 n -0000800912 00000 n +0000476593 00000 n +0000801359 00000 n 0000010752 00000 n 0000010802 00000 n -0000476204 00000 n -0000800833 00000 n +0000476651 00000 n +0000801280 00000 n 0000010854 00000 n 0000010898 00000 n -0000480393 00000 n -0000800754 00000 n +0000480840 00000 n +0000801201 00000 n 0000010950 00000 n 0000010989 00000 n -0000482756 00000 n -0000800675 00000 n +0000483203 00000 n +0000801122 00000 n 0000011038 00000 n 0000011075 00000 n -0000484994 00000 n -0000800556 00000 n +0000485441 00000 n +0000801003 00000 n 0000011121 00000 n 0000011153 00000 n -0000488927 00000 n -0000800477 00000 n +0000489374 00000 n +0000800924 00000 n 0000011202 00000 n 0000011230 00000 n -0000507345 00000 n -0000800345 00000 n +0000507792 00000 n +0000800792 00000 n 0000011279 00000 n 0000011324 00000 n -0000507403 00000 n -0000800266 00000 n +0000507850 00000 n +0000800713 00000 n 0000011373 00000 n 0000011409 00000 n -0000507461 00000 n -0000800134 00000 n +0000507908 00000 n +0000800581 00000 n 0000011458 00000 n 0000011491 00000 n -0000507519 00000 n -0000800055 00000 n +0000507966 00000 n +0000800502 00000 n 0000011543 00000 n 0000011575 00000 n -0000511232 00000 n -0000799962 00000 n +0000511679 00000 n +0000800409 00000 n 0000011627 00000 n 0000011660 00000 n -0000511290 00000 n -0000799869 00000 n +0000511737 00000 n +0000800316 00000 n 0000011712 00000 n 0000011749 00000 n -0000513993 00000 n -0000799790 00000 n +0000514440 00000 n +0000800237 00000 n 0000011801 00000 n 0000011836 00000 n -0000521430 00000 n -0000799658 00000 n +0000521877 00000 n +0000800105 00000 n 0000011885 00000 n 0000011914 00000 n -0000521488 00000 n -0000799579 00000 n +0000521935 00000 n +0000800026 00000 n 0000011966 00000 n 0000012014 00000 n -0000521545 00000 n -0000799500 00000 n +0000521992 00000 n +0000799947 00000 n 0000012066 00000 n 0000012122 00000 n -0000527840 00000 n -0000799368 00000 n +0000528287 00000 n +0000799815 00000 n 0000012171 00000 n 0000012203 00000 n -0000527898 00000 n -0000799289 00000 n +0000528345 00000 n +0000799736 00000 n 0000012255 00000 n 0000012296 00000 n -0000531534 00000 n -0000799196 00000 n +0000531981 00000 n +0000799643 00000 n 0000012348 00000 n 0000012383 00000 n -0000537698 00000 n -0000799117 00000 n +0000538145 00000 n +0000799564 00000 n 0000012435 00000 n 0000012477 00000 n -0000541131 00000 n -0000798999 00000 n +0000541578 00000 n +0000799446 00000 n 0000012526 00000 n 0000012563 00000 n -0000543181 00000 n -0000798934 00000 n +0000543628 00000 n +0000799381 00000 n 0000012615 00000 n 0000012656 00000 n -0000545926 00000 n -0000798802 00000 n +0000546373 00000 n +0000799249 00000 n 0000012705 00000 n 0000012741 00000 n -0000545984 00000 n -0000798723 00000 n +0000546431 00000 n +0000799170 00000 n 0000012790 00000 n 0000012822 00000 n -0000546042 00000 n -0000798605 00000 n +0000546489 00000 n +0000799052 00000 n 0000012871 00000 n 0000012907 00000 n -0000546100 00000 n -0000798526 00000 n +0000546547 00000 n +0000798973 00000 n 0000012959 00000 n 0000012989 00000 n -0000546158 00000 n -0000798433 00000 n +0000546605 00000 n +0000798880 00000 n 0000013041 00000 n 0000013075 00000 n -0000550362 00000 n -0000798340 00000 n +0000550809 00000 n +0000798787 00000 n 0000013127 00000 n 0000013163 00000 n -0000553887 00000 n -0000798247 00000 n +0000554334 00000 n +0000798694 00000 n 0000013215 00000 n 0000013257 00000 n -0000556445 00000 n -0000798154 00000 n +0000556892 00000 n +0000798601 00000 n 0000013309 00000 n 0000013346 00000 n -0000559890 00000 n -0000798061 00000 n +0000560337 00000 n +0000798508 00000 n 0000013398 00000 n 0000013438 00000 n -0000564058 00000 n -0000797968 00000 n +0000564505 00000 n +0000798415 00000 n 0000013490 00000 n 0000013525 00000 n -0000564116 00000 n -0000797875 00000 n +0000564563 00000 n +0000798322 00000 n 0000013577 00000 n 0000013637 00000 n -0000564174 00000 n -0000797796 00000 n +0000564621 00000 n +0000798243 00000 n 0000013689 00000 n 0000013734 00000 n -0000566635 00000 n -0000797703 00000 n +0000567082 00000 n +0000798150 00000 n 0000013783 00000 n 0000013816 00000 n -0000575684 00000 n -0000797571 00000 n +0000576131 00000 n +0000798018 00000 n 0000013865 00000 n 0000013901 00000 n -0000575742 00000 n -0000797492 00000 n +0000576189 00000 n +0000797939 00000 n 0000013950 00000 n 0000013988 00000 n -0000577690 00000 n -0000797413 00000 n +0000578137 00000 n +0000797860 00000 n 0000014037 00000 n 0000014078 00000 n -0000581271 00000 n -0000797320 00000 n +0000581718 00000 n +0000797767 00000 n 0000014127 00000 n 0000014157 00000 n -0000585797 00000 n -0000797188 00000 n +0000586244 00000 n +0000797635 00000 n 0000014206 00000 n 0000014235 00000 n -0000585855 00000 n -0000797123 00000 n +0000586302 00000 n +0000797570 00000 n 0000014284 00000 n 0000014326 00000 n -0000590078 00000 n -0000797005 00000 n +0000590525 00000 n +0000797452 00000 n 0000014375 00000 n 0000014405 00000 n -0000590136 00000 n -0000796926 00000 n +0000590583 00000 n +0000797373 00000 n 0000014454 00000 n 0000014489 00000 n -0000592508 00000 n -0000796847 00000 n +0000592955 00000 n +0000797294 00000 n 0000014538 00000 n 0000014570 00000 n 0000014909 00000 n @@ -16589,8 +16599,8 @@ xref 0000014623 00000 n 0000043216 00000 n 0000043273 00000 n -0000790133 00000 n -0000792750 00000 n +0000790580 00000 n +0000793197 00000 n 0000015362 00000 n 0000015418 00000 n 0000043196 00000 n @@ -16633,10 +16643,10 @@ xref 0000044939 00000 n 0000043430 00000 n 0000050533 00000 n -0000789257 00000 n -0000789111 00000 n -0000789989 00000 n -0000792166 00000 n +0000789704 00000 n +0000789558 00000 n +0000790436 00000 n +0000792613 00000 n 0000052961 00000 n 0000053113 00000 n 0000053265 00000 n @@ -16790,19 +16800,19 @@ xref 0000079308 00000 n 0000077233 00000 n 0000080238 00000 n -0000791292 00000 n -0000791874 00000 n +0000791739 00000 n +0000792321 00000 n 0000081296 00000 n 0000081127 00000 n 0000080431 00000 n 0000081239 00000 n -0000792868 00000 n +0000793315 00000 n 0000081837 00000 n 0000082098 00000 n 0000081705 00000 n 0000081380 00000 n 0000081986 00000 n -0000789697 00000 n +0000790144 00000 n 0000084222 00000 n 0000084584 00000 n 0000084793 00000 n @@ -16814,7 +16824,7 @@ xref 0000082195 00000 n 0000085910 00000 n 0000084403 00000 n -0000790998 00000 n +0000791445 00000 n 0000085007 00000 n 0000085393 00000 n 0000088790 00000 n @@ -16826,7 +16836,7 @@ xref 0000088634 00000 n 0000086269 00000 n 0000089402 00000 n -0000790853 00000 n +0000791300 00000 n 0000089515 00000 n 0000089572 00000 n 0000089629 00000 n @@ -16837,7 +16847,7 @@ xref 0000092748 00000 n 0000089890 00000 n 0000093515 00000 n -0000791440 00000 n +0000791887 00000 n 0000095443 00000 n 0000095596 00000 n 0000095752 00000 n @@ -16846,14 +16856,14 @@ xref 0000095287 00000 n 0000093790 00000 n 0000096054 00000 n -0000791146 00000 n +0000791593 00000 n 0000098204 00000 n 0000098357 00000 n 0000098618 00000 n 0000098064 00000 n 0000096346 00000 n 0000098506 00000 n -0000792986 00000 n +0000793433 00000 n 0000099941 00000 n 0000100095 00000 n 0000100357 00000 n @@ -16885,10 +16895,10 @@ xref 0000105165 00000 n 0000102924 00000 n 0000106649 00000 n -0000790421 00000 n -0000790278 00000 n +0000790868 00000 n +0000790725 00000 n 0000106818 00000 n -0000790564 00000 n +0000791011 00000 n 0000109522 00000 n 0000109676 00000 n 0000109938 00000 n @@ -16900,1295 +16910,1295 @@ xref 0000111275 00000 n 0000110087 00000 n 0000111556 00000 n -0000793104 00000 n -0000113848 00000 n -0000114166 00000 n -0000113716 00000 n +0000793551 00000 n +0000113847 00000 n +0000114165 00000 n +0000113715 00000 n 0000111829 00000 n -0000113997 00000 n -0000117005 00000 n -0000117266 00000 n -0000116873 00000 n -0000114315 00000 n -0000117154 00000 n -0000120576 00000 n -0000120733 00000 n -0000120939 00000 n -0000120436 00000 n -0000117415 00000 n -0000120882 00000 n -0000126571 00000 n -0000126726 00000 n -0000123465 00000 n -0000123671 00000 n -0000123333 00000 n -0000121075 00000 n -0000123614 00000 n -0000126882 00000 n -0000127038 00000 n -0000127195 00000 n -0000127352 00000 n -0000127505 00000 n -0000127714 00000 n -0000126384 00000 n -0000123781 00000 n -0000127655 00000 n +0000113996 00000 n +0000117004 00000 n +0000117265 00000 n +0000116872 00000 n +0000114314 00000 n +0000117153 00000 n +0000120575 00000 n +0000120732 00000 n +0000120938 00000 n +0000120435 00000 n +0000117414 00000 n +0000120881 00000 n +0000126570 00000 n +0000126725 00000 n +0000123464 00000 n +0000123670 00000 n +0000123332 00000 n +0000121074 00000 n +0000123613 00000 n +0000126881 00000 n +0000127037 00000 n +0000127194 00000 n +0000127351 00000 n +0000127504 00000 n +0000127713 00000 n +0000126383 00000 n +0000123780 00000 n +0000127654 00000 n 0000130480 00000 n -0000134251 00000 n +0000134252 00000 n 0000130665 00000 n 0000130988 00000 n 0000130334 00000 n -0000127851 00000 n +0000127850 00000 n 0000130815 00000 n -0000793223 00000 n -0000134421 00000 n -0000134589 00000 n -0000134761 00000 n -0000135132 00000 n -0000135514 00000 n -0000135691 00000 n -0000139442 00000 n -0000135904 00000 n -0000136113 00000 n -0000134033 00000 n +0000793670 00000 n +0000134422 00000 n +0000134590 00000 n +0000134762 00000 n +0000135133 00000 n +0000135515 00000 n +0000135692 00000 n +0000139443 00000 n +0000135905 00000 n +0000136114 00000 n +0000134034 00000 n 0000131151 00000 n -0000136054 00000 n -0000134946 00000 n -0000135322 00000 n -0000139631 00000 n -0000139808 00000 n -0000140009 00000 n -0000140390 00000 n -0000139278 00000 n -0000136237 00000 n -0000140159 00000 n -0000142946 00000 n -0000143271 00000 n -0000142809 00000 n -0000140540 00000 n -0000143096 00000 n -0000145481 00000 n -0000145806 00000 n -0000145344 00000 n -0000143395 00000 n -0000145631 00000 n -0000148560 00000 n -0000148714 00000 n -0000148868 00000 n -0000149022 00000 n -0000149288 00000 n -0000148396 00000 n -0000145943 00000 n -0000149172 00000 n -0000151913 00000 n -0000154234 00000 n -0000152064 00000 n -0000152447 00000 n -0000151767 00000 n -0000149438 00000 n -0000152214 00000 n -0000792312 00000 n -0000793348 00000 n -0000154389 00000 n -0000154656 00000 n -0000154088 00000 n -0000152624 00000 n -0000154539 00000 n -0000156871 00000 n -0000157021 00000 n -0000157346 00000 n -0000156725 00000 n -0000154819 00000 n -0000157171 00000 n -0000161008 00000 n -0000160644 00000 n -0000160799 00000 n -0000161134 00000 n -0000160498 00000 n -0000157496 00000 n -0000160949 00000 n -0000161071 00000 n -0000792459 00000 n -0000791728 00000 n -0000165033 00000 n -0000165186 00000 n -0000165340 00000 n -0000165606 00000 n -0000164878 00000 n -0000161350 00000 n -0000165490 00000 n -0000168935 00000 n -0000169091 00000 n -0000169363 00000 n -0000168789 00000 n -0000165782 00000 n -0000169241 00000 n -0000789843 00000 n -0000169300 00000 n -0000172258 00000 n -0000172410 00000 n -0000172568 00000 n -0000172835 00000 n -0000172103 00000 n -0000169514 00000 n -0000172718 00000 n -0000793473 00000 n -0000174668 00000 n -0000174822 00000 n -0000174979 00000 n -0000175133 00000 n -0000175458 00000 n -0000174504 00000 n -0000172998 00000 n -0000175283 00000 n -0000177441 00000 n -0000177596 00000 n -0000177862 00000 n -0000177295 00000 n -0000175582 00000 n -0000177746 00000 n -0000178443 00000 n -0000178710 00000 n -0000178306 00000 n -0000178012 00000 n -0000178594 00000 n -0000179174 00000 n -0000179384 00000 n -0000179037 00000 n -0000178795 00000 n -0000179325 00000 n -0000181603 00000 n -0000182044 00000 n -0000181466 00000 n -0000179456 00000 n -0000181754 00000 n -0000184844 00000 n -0000184999 00000 n -0000185154 00000 n -0000185309 00000 n -0000185464 00000 n -0000185620 00000 n -0000186004 00000 n -0000184662 00000 n -0000182155 00000 n -0000185771 00000 n -0000793598 00000 n -0000188327 00000 n -0000188483 00000 n -0000189045 00000 n -0000188181 00000 n -0000186141 00000 n -0000188634 00000 n -0000188751 00000 n -0000188810 00000 n -0000188927 00000 n -0000188986 00000 n -0000191638 00000 n -0000191791 00000 n -0000192001 00000 n -0000191492 00000 n -0000189195 00000 n -0000191942 00000 n -0000197617 00000 n -0000194672 00000 n -0000194941 00000 n -0000194535 00000 n -0000192112 00000 n -0000194823 00000 n -0000194882 00000 n -0000197773 00000 n -0000198046 00000 n -0000197471 00000 n -0000195065 00000 n -0000197924 00000 n -0000197983 00000 n -0000200726 00000 n -0000200881 00000 n -0000201150 00000 n -0000200580 00000 n -0000198222 00000 n -0000201032 00000 n -0000201091 00000 n -0000204904 00000 n -0000205114 00000 n -0000204767 00000 n -0000201287 00000 n -0000205055 00000 n -0000793723 00000 n -0000207876 00000 n -0000208086 00000 n -0000207739 00000 n -0000205251 00000 n -0000208027 00000 n -0000210912 00000 n -0000211240 00000 n -0000210775 00000 n -0000208197 00000 n -0000211063 00000 n -0000211122 00000 n -0000211181 00000 n -0000213688 00000 n -0000213844 00000 n -0000214112 00000 n -0000213542 00000 n -0000211377 00000 n -0000213995 00000 n -0000217057 00000 n -0000217443 00000 n -0000216920 00000 n -0000214236 00000 n -0000217208 00000 n -0000217325 00000 n -0000217384 00000 n -0000219398 00000 n -0000219667 00000 n -0000219261 00000 n -0000217593 00000 n -0000219549 00000 n -0000219608 00000 n -0000222620 00000 n -0000222774 00000 n -0000223100 00000 n -0000222474 00000 n -0000219804 00000 n -0000222925 00000 n -0000793848 00000 n -0000226890 00000 n -0000227047 00000 n +0000136055 00000 n +0000134947 00000 n +0000135323 00000 n +0000139632 00000 n +0000139809 00000 n +0000140010 00000 n +0000140391 00000 n +0000139279 00000 n +0000136238 00000 n +0000140160 00000 n +0000142947 00000 n +0000143272 00000 n +0000142810 00000 n +0000140541 00000 n +0000143097 00000 n +0000145482 00000 n +0000145807 00000 n +0000145345 00000 n +0000143396 00000 n +0000145632 00000 n +0000148561 00000 n +0000148715 00000 n +0000148869 00000 n +0000149023 00000 n +0000149289 00000 n +0000148397 00000 n +0000145944 00000 n +0000149173 00000 n +0000151915 00000 n +0000154236 00000 n +0000152066 00000 n +0000152449 00000 n +0000151769 00000 n +0000149439 00000 n +0000152216 00000 n +0000792759 00000 n +0000793795 00000 n +0000154391 00000 n +0000154658 00000 n +0000154090 00000 n +0000152626 00000 n +0000154541 00000 n +0000156873 00000 n +0000157023 00000 n +0000157348 00000 n +0000156727 00000 n +0000154821 00000 n +0000157173 00000 n +0000161010 00000 n +0000160646 00000 n +0000160801 00000 n +0000161136 00000 n +0000160500 00000 n +0000157498 00000 n +0000160951 00000 n +0000161073 00000 n +0000792906 00000 n +0000792175 00000 n +0000165166 00000 n +0000165319 00000 n +0000165473 00000 n +0000165740 00000 n +0000165011 00000 n +0000161352 00000 n +0000165623 00000 n +0000169243 00000 n +0000169399 00000 n +0000169671 00000 n +0000169097 00000 n +0000165916 00000 n +0000169549 00000 n +0000790290 00000 n +0000169608 00000 n +0000172705 00000 n +0000172858 00000 n +0000173015 00000 n +0000173282 00000 n +0000172550 00000 n +0000169822 00000 n +0000173165 00000 n +0000793920 00000 n +0000175115 00000 n +0000175269 00000 n +0000175426 00000 n +0000175580 00000 n +0000175905 00000 n +0000174951 00000 n +0000173445 00000 n +0000175730 00000 n +0000177888 00000 n +0000178043 00000 n +0000178309 00000 n +0000177742 00000 n +0000176029 00000 n +0000178193 00000 n +0000178890 00000 n +0000179157 00000 n +0000178753 00000 n +0000178459 00000 n +0000179041 00000 n +0000179621 00000 n +0000179831 00000 n +0000179484 00000 n +0000179242 00000 n +0000179772 00000 n +0000182050 00000 n +0000182491 00000 n +0000181913 00000 n +0000179903 00000 n +0000182201 00000 n +0000185291 00000 n +0000185446 00000 n +0000185601 00000 n +0000185756 00000 n +0000185911 00000 n +0000186067 00000 n +0000186451 00000 n +0000185109 00000 n +0000182602 00000 n +0000186218 00000 n +0000794045 00000 n +0000188774 00000 n +0000188930 00000 n +0000189492 00000 n +0000188628 00000 n +0000186588 00000 n +0000189081 00000 n +0000189198 00000 n +0000189257 00000 n +0000189374 00000 n +0000189433 00000 n +0000192085 00000 n +0000192238 00000 n +0000192448 00000 n +0000191939 00000 n +0000189642 00000 n +0000192389 00000 n +0000198064 00000 n +0000195119 00000 n +0000195388 00000 n +0000194982 00000 n +0000192559 00000 n +0000195270 00000 n +0000195329 00000 n +0000198220 00000 n +0000198493 00000 n +0000197918 00000 n +0000195512 00000 n +0000198371 00000 n +0000198430 00000 n +0000201173 00000 n +0000201328 00000 n +0000201597 00000 n +0000201027 00000 n +0000198669 00000 n +0000201479 00000 n +0000201538 00000 n +0000205351 00000 n +0000205561 00000 n +0000205214 00000 n +0000201734 00000 n +0000205502 00000 n +0000794170 00000 n +0000208323 00000 n +0000208533 00000 n +0000208186 00000 n +0000205698 00000 n +0000208474 00000 n +0000211359 00000 n +0000211687 00000 n +0000211222 00000 n +0000208644 00000 n +0000211510 00000 n +0000211569 00000 n +0000211628 00000 n +0000214135 00000 n +0000214291 00000 n +0000214559 00000 n +0000213989 00000 n +0000211824 00000 n +0000214442 00000 n +0000217504 00000 n +0000217890 00000 n +0000217367 00000 n +0000214683 00000 n +0000217655 00000 n +0000217772 00000 n +0000217831 00000 n +0000219845 00000 n +0000220114 00000 n +0000219708 00000 n +0000218040 00000 n +0000219996 00000 n +0000220055 00000 n +0000223067 00000 n +0000223221 00000 n +0000223547 00000 n +0000222921 00000 n +0000220251 00000 n +0000223372 00000 n +0000794295 00000 n +0000227337 00000 n 0000227494 00000 n -0000226744 00000 n -0000223263 00000 n -0000227198 00000 n -0000227372 00000 n -0000227435 00000 n -0000230795 00000 n -0000230950 00000 n -0000234097 00000 n -0000245805 00000 n -0000231102 00000 n -0000231428 00000 n -0000230640 00000 n -0000227669 00000 n -0000231253 00000 n -0000246321 00000 n -0000239871 00000 n -0000245957 00000 n -0000246111 00000 n -0000246507 00000 n -0000233942 00000 n -0000231578 00000 n -0000246262 00000 n -0000246385 00000 n -0000235380 00000 n -0000235617 00000 n -0000235698 00000 n -0000236740 00000 n -0000236762 00000 n -0000237065 00000 n -0000239848 00000 n -0000241130 00000 n -0000241367 00000 n -0000241448 00000 n -0000242490 00000 n -0000242512 00000 n -0000242817 00000 n -0000245782 00000 n -0000284937 00000 n -0000249149 00000 n -0000285090 00000 n -0000285246 00000 n -0000285636 00000 n -0000248994 00000 n -0000246687 00000 n -0000285397 00000 n -0000285456 00000 n -0000789403 00000 n -0000790708 00000 n -0000792605 00000 n -0000285577 00000 n -0000258387 00000 n -0000258619 00000 n -0000258700 00000 n -0000260237 00000 n -0000261279 00000 n -0000261302 00000 n -0000261690 00000 n -0000262018 00000 n -0000262200 00000 n -0000262528 00000 n -0000262710 00000 n -0000263038 00000 n -0000263220 00000 n -0000263548 00000 n -0000263730 00000 n -0000264058 00000 n -0000264240 00000 n -0000264568 00000 n -0000264750 00000 n -0000265078 00000 n -0000265260 00000 n -0000265588 00000 n -0000265770 00000 n -0000266098 00000 n -0000266280 00000 n -0000266608 00000 n -0000266790 00000 n -0000267118 00000 n -0000267300 00000 n -0000267628 00000 n -0000267810 00000 n -0000268138 00000 n -0000268320 00000 n -0000268648 00000 n -0000268830 00000 n -0000269158 00000 n -0000269340 00000 n -0000269668 00000 n -0000269850 00000 n -0000270178 00000 n -0000270360 00000 n -0000270688 00000 n -0000270870 00000 n -0000271198 00000 n -0000271380 00000 n -0000271708 00000 n -0000271890 00000 n -0000272218 00000 n -0000272400 00000 n -0000272728 00000 n -0000272910 00000 n -0000273238 00000 n -0000273420 00000 n -0000273748 00000 n -0000273930 00000 n -0000274258 00000 n -0000274440 00000 n -0000274768 00000 n -0000274950 00000 n -0000275278 00000 n -0000275460 00000 n -0000275788 00000 n -0000275970 00000 n -0000276298 00000 n -0000276480 00000 n -0000276808 00000 n -0000276990 00000 n -0000277318 00000 n -0000277500 00000 n -0000277828 00000 n -0000278010 00000 n -0000278338 00000 n -0000278520 00000 n -0000278848 00000 n -0000279030 00000 n -0000279358 00000 n -0000279540 00000 n -0000279868 00000 n -0000280050 00000 n -0000280378 00000 n -0000280560 00000 n -0000280888 00000 n -0000281070 00000 n -0000281398 00000 n -0000281580 00000 n -0000281908 00000 n -0000282090 00000 n -0000282418 00000 n -0000282600 00000 n -0000282928 00000 n -0000283110 00000 n -0000283179 00000 n -0000283462 00000 n -0000284914 00000 n -0000324870 00000 n -0000288500 00000 n -0000288656 00000 n -0000288808 00000 n -0000288964 00000 n -0000289119 00000 n -0000289273 00000 n -0000289599 00000 n -0000288318 00000 n +0000227941 00000 n +0000227191 00000 n +0000223710 00000 n +0000227645 00000 n +0000227819 00000 n +0000227882 00000 n +0000231242 00000 n +0000231397 00000 n +0000234544 00000 n +0000246252 00000 n +0000231549 00000 n +0000231875 00000 n +0000231087 00000 n +0000228116 00000 n +0000231700 00000 n +0000246768 00000 n +0000240318 00000 n +0000246404 00000 n +0000246558 00000 n +0000246954 00000 n +0000234389 00000 n +0000232025 00000 n +0000246709 00000 n +0000246832 00000 n +0000235827 00000 n +0000236064 00000 n +0000236145 00000 n +0000237187 00000 n +0000237209 00000 n +0000237512 00000 n +0000240295 00000 n +0000241577 00000 n +0000241814 00000 n +0000241895 00000 n +0000242937 00000 n +0000242959 00000 n +0000243264 00000 n +0000246229 00000 n +0000285384 00000 n +0000249596 00000 n +0000285537 00000 n +0000285693 00000 n +0000286083 00000 n +0000249441 00000 n +0000247134 00000 n 0000285844 00000 n -0000289424 00000 n -0000291937 00000 n -0000292323 00000 n -0000291800 00000 n -0000289749 00000 n -0000292088 00000 n -0000292147 00000 n -0000292205 00000 n -0000292264 00000 n -0000793973 00000 n -0000294725 00000 n -0000294883 00000 n -0000295037 00000 n -0000295538 00000 n -0000294570 00000 n -0000292473 00000 n -0000295188 00000 n -0000295247 00000 n -0000295306 00000 n -0000298624 00000 n -0000298782 00000 n -0000298939 00000 n -0000299094 00000 n -0000299478 00000 n -0000298460 00000 n -0000295701 00000 n -0000299245 00000 n -0000302458 00000 n -0000302613 00000 n -0000302881 00000 n -0000302312 00000 n -0000299628 00000 n -0000302764 00000 n -0000535144 00000 n -0000305568 00000 n -0000306009 00000 n -0000305431 00000 n -0000303044 00000 n -0000305719 00000 n -0000308882 00000 n -0000309037 00000 n -0000309423 00000 n -0000308736 00000 n -0000306133 00000 n -0000309188 00000 n -0000309247 00000 n -0000309306 00000 n -0000309365 00000 n -0000311831 00000 n -0000312100 00000 n -0000311694 00000 n -0000309560 00000 n -0000311982 00000 n -0000312041 00000 n -0000794098 00000 n -0000314462 00000 n -0000314617 00000 n -0000315063 00000 n -0000314316 00000 n -0000312211 00000 n -0000314768 00000 n -0000314827 00000 n -0000314886 00000 n -0000314945 00000 n -0000315004 00000 n -0000318002 00000 n -0000318158 00000 n -0000318545 00000 n -0000317856 00000 n -0000315174 00000 n -0000318309 00000 n -0000318368 00000 n -0000318427 00000 n -0000318486 00000 n -0000321038 00000 n -0000321196 00000 n -0000321524 00000 n -0000320892 00000 n -0000318682 00000 n -0000321347 00000 n -0000321406 00000 n -0000321465 00000 n -0000324660 00000 n -0000324929 00000 n -0000324523 00000 n -0000321635 00000 n -0000324811 00000 n -0000328728 00000 n -0000328882 00000 n -0000329038 00000 n -0000329307 00000 n -0000328573 00000 n -0000325091 00000 n -0000329189 00000 n -0000329248 00000 n -0000331118 00000 n -0000330908 00000 n -0000331182 00000 n -0000330771 00000 n -0000329483 00000 n -0000331059 00000 n -0000794223 00000 n -0000334169 00000 n -0000334326 00000 n -0000334479 00000 n -0000337363 00000 n -0000334633 00000 n -0000335079 00000 n -0000334005 00000 n -0000331293 00000 n -0000334784 00000 n -0000334843 00000 n -0000334902 00000 n -0000334961 00000 n -0000335020 00000 n -0000346283 00000 n -0000346073 00000 n -0000346347 00000 n -0000337226 00000 n -0000335216 00000 n -0000346224 00000 n -0000341282 00000 n -0000341508 00000 n -0000341589 00000 n -0000342644 00000 n -0000342667 00000 n -0000342999 00000 n -0000346050 00000 n -0000349306 00000 n -0000349461 00000 n -0000349845 00000 n -0000349160 00000 n -0000346541 00000 n -0000349612 00000 n -0000352744 00000 n -0000353013 00000 n -0000352607 00000 n -0000349982 00000 n -0000352895 00000 n -0000352954 00000 n -0000355492 00000 n -0000355761 00000 n -0000355355 00000 n -0000353137 00000 n -0000355643 00000 n -0000355702 00000 n -0000358243 00000 n -0000358453 00000 n -0000358106 00000 n -0000355898 00000 n -0000358394 00000 n -0000794348 00000 n -0000360629 00000 n -0000360783 00000 n -0000361051 00000 n -0000360483 00000 n -0000358564 00000 n -0000360934 00000 n -0000364033 00000 n -0000364301 00000 n -0000363896 00000 n -0000361175 00000 n -0000364184 00000 n -0000367412 00000 n -0000367680 00000 n -0000367275 00000 n -0000364425 00000 n -0000367563 00000 n -0000369996 00000 n -0000370206 00000 n -0000369859 00000 n -0000367844 00000 n -0000370147 00000 n -0000371861 00000 n -0000372071 00000 n -0000371724 00000 n -0000370330 00000 n -0000372012 00000 n -0000374890 00000 n -0000375048 00000 n -0000375258 00000 n -0000374744 00000 n -0000372195 00000 n -0000375199 00000 n -0000794473 00000 n -0000377100 00000 n -0000377257 00000 n -0000377467 00000 n -0000376954 00000 n -0000375395 00000 n -0000377408 00000 n -0000378867 00000 n -0000379077 00000 n -0000378730 00000 n -0000377591 00000 n -0000379018 00000 n -0000383683 00000 n -0000381189 00000 n -0000381399 00000 n -0000381052 00000 n -0000379188 00000 n -0000381340 00000 n -0000383840 00000 n -0000384027 00000 n -0000384181 00000 n -0000384564 00000 n -0000383519 00000 n -0000381523 00000 n -0000384332 00000 n -0000387699 00000 n -0000387854 00000 n -0000388006 00000 n -0000388158 00000 n -0000388488 00000 n -0000387535 00000 n -0000384675 00000 n -0000388309 00000 n -0000388426 00000 n -0000391394 00000 n -0000391551 00000 n -0000391708 00000 n -0000392043 00000 n -0000391239 00000 n -0000388664 00000 n -0000391859 00000 n -0000391918 00000 n -0000391981 00000 n -0000794598 00000 n -0000394032 00000 n -0000394358 00000 n -0000393895 00000 n -0000392193 00000 n -0000394183 00000 n -0000394300 00000 n -0000397320 00000 n -0000397589 00000 n -0000397183 00000 n -0000394469 00000 n -0000397471 00000 n -0000397530 00000 n -0000400685 00000 n -0000400953 00000 n -0000400548 00000 n -0000397752 00000 n -0000400836 00000 n -0000403707 00000 n -0000403861 00000 n -0000404130 00000 n -0000403561 00000 n -0000401103 00000 n -0000404012 00000 n -0000791585 00000 n -0000404071 00000 n -0000407316 00000 n -0000407471 00000 n -0000407856 00000 n -0000407170 00000 n -0000404293 00000 n -0000407622 00000 n -0000407797 00000 n -0000411016 00000 n -0000411285 00000 n -0000410879 00000 n -0000408018 00000 n -0000411167 00000 n -0000411226 00000 n -0000794723 00000 n -0000413652 00000 n -0000413921 00000 n -0000413515 00000 n -0000411409 00000 n -0000413803 00000 n -0000413862 00000 n -0000416359 00000 n -0000416686 00000 n -0000416222 00000 n -0000414032 00000 n -0000416510 00000 n -0000416627 00000 n -0000419137 00000 n -0000419523 00000 n -0000419000 00000 n -0000416836 00000 n -0000419288 00000 n -0000419405 00000 n -0000419464 00000 n -0000421943 00000 n -0000422153 00000 n -0000421806 00000 n -0000419647 00000 n -0000422094 00000 n -0000424234 00000 n -0000424620 00000 n -0000424097 00000 n -0000422251 00000 n -0000424385 00000 n -0000424502 00000 n -0000424561 00000 n -0000427176 00000 n -0000427386 00000 n -0000427039 00000 n -0000424757 00000 n -0000427327 00000 n -0000794848 00000 n -0000432787 00000 n -0000429565 00000 n -0000429834 00000 n -0000429428 00000 n -0000427497 00000 n -0000429716 00000 n -0000429775 00000 n -0000432945 00000 n -0000433331 00000 n -0000432641 00000 n -0000429971 00000 n -0000433096 00000 n -0000433213 00000 n -0000433272 00000 n -0000436718 00000 n -0000436875 00000 n -0000437266 00000 n -0000436572 00000 n -0000433468 00000 n -0000437026 00000 n -0000437085 00000 n -0000437144 00000 n -0000437203 00000 n -0000439952 00000 n -0000440337 00000 n -0000439815 00000 n -0000437442 00000 n -0000440103 00000 n -0000440162 00000 n -0000443887 00000 n -0000444043 00000 n -0000444311 00000 n -0000443741 00000 n -0000440474 00000 n -0000444194 00000 n -0000448545 00000 n -0000448702 00000 n -0000449034 00000 n -0000448399 00000 n -0000444422 00000 n -0000448853 00000 n -0000448912 00000 n -0000448971 00000 n -0000794973 00000 n -0000451137 00000 n -0000451637 00000 n -0000451000 00000 n -0000449183 00000 n -0000451288 00000 n -0000453131 00000 n -0000453573 00000 n -0000452994 00000 n -0000451761 00000 n -0000453282 00000 n -0000453514 00000 n -0000455734 00000 n -0000456235 00000 n -0000455597 00000 n -0000453710 00000 n -0000455885 00000 n -0000455944 00000 n -0000458484 00000 n -0000459101 00000 n -0000458347 00000 n -0000456372 00000 n -0000458635 00000 n -0000458984 00000 n -0000459042 00000 n -0000460879 00000 n -0000461855 00000 n -0000460742 00000 n -0000459225 00000 n -0000461030 00000 n -0000461089 00000 n -0000461148 00000 n -0000461207 00000 n -0000461266 00000 n -0000461325 00000 n -0000461384 00000 n -0000461443 00000 n -0000461502 00000 n -0000461561 00000 n -0000461620 00000 n -0000461679 00000 n -0000461738 00000 n -0000463473 00000 n -0000463683 00000 n -0000463336 00000 n -0000461966 00000 n -0000463624 00000 n -0000795098 00000 n -0000465178 00000 n -0000465388 00000 n -0000465041 00000 n -0000463781 00000 n -0000465329 00000 n -0000466781 00000 n -0000467285 00000 n -0000466644 00000 n -0000465486 00000 n -0000466932 00000 n -0000467049 00000 n -0000467108 00000 n -0000467167 00000 n -0000467226 00000 n -0000469095 00000 n -0000469481 00000 n -0000468958 00000 n -0000467396 00000 n -0000469246 00000 n -0000469305 00000 n -0000469364 00000 n -0000472087 00000 n -0000472241 00000 n -0000472396 00000 n -0000472780 00000 n -0000471932 00000 n -0000469605 00000 n -0000472547 00000 n -0000475721 00000 n -0000479714 00000 n -0000475878 00000 n -0000476262 00000 n -0000475575 00000 n -0000472904 00000 n -0000476029 00000 n -0000479868 00000 n -0000480026 00000 n -0000482390 00000 n -0000480183 00000 n -0000480451 00000 n -0000479550 00000 n -0000476386 00000 n -0000480334 00000 n -0000795223 00000 n -0000482546 00000 n -0000482814 00000 n -0000482244 00000 n -0000480575 00000 n -0000482697 00000 n -0000484004 00000 n -0000484214 00000 n -0000483867 00000 n -0000482925 00000 n -0000484155 00000 n -0000484787 00000 n -0000485051 00000 n -0000484650 00000 n -0000484325 00000 n -0000484935 00000 n -0000592859 00000 n -0000485695 00000 n -0000485902 00000 n -0000485558 00000 n -0000485149 00000 n -0000485843 00000 n -0000488410 00000 n -0000488567 00000 n -0000488720 00000 n -0000489047 00000 n -0000488255 00000 n -0000485987 00000 n -0000488868 00000 n -0000488985 00000 n -0000492320 00000 n -0000492475 00000 n -0000492630 00000 n -0000492787 00000 n -0000492994 00000 n -0000492156 00000 n -0000489222 00000 n -0000492935 00000 n -0000795348 00000 n -0000496439 00000 n -0000496597 00000 n -0000496765 00000 n -0000496944 00000 n -0000497099 00000 n -0000497306 00000 n -0000496266 00000 n -0000493158 00000 n -0000497247 00000 n -0000501130 00000 n -0000501287 00000 n -0000501477 00000 n -0000504835 00000 n -0000501632 00000 n -0000501902 00000 n -0000500966 00000 n -0000497470 00000 n -0000501780 00000 n -0000501839 00000 n -0000792020 00000 n -0000504990 00000 n -0000505143 00000 n -0000505298 00000 n -0000505453 00000 n -0000505607 00000 n -0000505814 00000 n -0000504653 00000 n -0000502105 00000 n -0000505755 00000 n -0000507138 00000 n -0000507577 00000 n -0000507001 00000 n -0000505951 00000 n -0000507286 00000 n -0000511025 00000 n -0000511348 00000 n -0000510888 00000 n -0000507714 00000 n -0000511173 00000 n -0000513786 00000 n -0000514051 00000 n -0000513649 00000 n -0000511498 00000 n -0000513934 00000 n -0000795473 00000 n -0000518356 00000 n -0000518563 00000 n -0000518219 00000 n -0000514201 00000 n -0000518504 00000 n -0000521223 00000 n -0000521603 00000 n -0000521086 00000 n -0000518713 00000 n -0000521371 00000 n -0000524242 00000 n -0000524449 00000 n -0000524105 00000 n -0000521766 00000 n -0000524390 00000 n -0000527633 00000 n -0000527956 00000 n -0000527496 00000 n -0000524599 00000 n -0000527781 00000 n -0000531172 00000 n -0000531327 00000 n -0000531592 00000 n -0000531026 00000 n -0000528119 00000 n -0000531475 00000 n -0000534937 00000 n -0000535203 00000 n -0000534800 00000 n -0000531755 00000 n -0000535085 00000 n -0000795598 00000 n -0000537491 00000 n -0000537756 00000 n -0000537354 00000 n -0000535340 00000 n -0000537639 00000 n -0000540766 00000 n -0000540924 00000 n -0000541188 00000 n -0000540620 00000 n -0000537893 00000 n -0000541072 00000 n -0000542974 00000 n -0000543239 00000 n -0000542837 00000 n -0000541351 00000 n -0000543122 00000 n -0000545562 00000 n -0000545719 00000 n -0000546279 00000 n -0000545416 00000 n -0000543389 00000 n -0000545867 00000 n -0000546216 00000 n -0000549451 00000 n -0000549604 00000 n -0000549762 00000 n -0000549919 00000 n -0000550546 00000 n -0000549287 00000 n -0000546441 00000 n -0000550067 00000 n -0000550126 00000 n -0000550185 00000 n -0000550244 00000 n -0000550303 00000 n -0000550420 00000 n -0000550483 00000 n -0000553368 00000 n -0000553524 00000 n -0000553680 00000 n -0000554070 00000 n -0000553213 00000 n -0000550721 00000 n -0000553828 00000 n -0000553945 00000 n -0000554007 00000 n -0000795723 00000 n -0000556082 00000 n -0000556238 00000 n -0000556566 00000 n -0000555936 00000 n -0000554273 00000 n -0000556386 00000 n -0000556503 00000 n -0000559369 00000 n -0000559527 00000 n -0000559683 00000 n -0000560011 00000 n -0000559214 00000 n -0000556742 00000 n -0000559831 00000 n -0000559948 00000 n -0000563694 00000 n -0000563851 00000 n -0000564293 00000 n -0000563548 00000 n -0000560173 00000 n -0000563999 00000 n -0000564230 00000 n -0000566428 00000 n -0000566693 00000 n -0000566291 00000 n -0000564468 00000 n -0000566576 00000 n -0000569830 00000 n -0000570037 00000 n -0000569693 00000 n -0000566817 00000 n -0000569978 00000 n -0000573106 00000 n -0000573313 00000 n -0000572969 00000 n -0000570148 00000 n -0000573254 00000 n -0000795848 00000 n -0000575477 00000 n -0000575800 00000 n -0000575340 00000 n -0000573424 00000 n -0000575625 00000 n -0000577483 00000 n -0000577748 00000 n -0000577346 00000 n +0000285903 00000 n +0000789850 00000 n +0000791155 00000 n +0000793052 00000 n +0000286024 00000 n +0000258834 00000 n +0000259066 00000 n +0000259147 00000 n +0000260684 00000 n +0000261726 00000 n +0000261749 00000 n +0000262137 00000 n +0000262465 00000 n +0000262647 00000 n +0000262975 00000 n +0000263157 00000 n +0000263485 00000 n +0000263667 00000 n +0000263995 00000 n +0000264177 00000 n +0000264505 00000 n +0000264687 00000 n +0000265015 00000 n +0000265197 00000 n +0000265525 00000 n +0000265707 00000 n +0000266035 00000 n +0000266217 00000 n +0000266545 00000 n +0000266727 00000 n +0000267055 00000 n +0000267237 00000 n +0000267565 00000 n +0000267747 00000 n +0000268075 00000 n +0000268257 00000 n +0000268585 00000 n +0000268767 00000 n +0000269095 00000 n +0000269277 00000 n +0000269605 00000 n +0000269787 00000 n +0000270115 00000 n +0000270297 00000 n +0000270625 00000 n +0000270807 00000 n +0000271135 00000 n +0000271317 00000 n +0000271645 00000 n +0000271827 00000 n +0000272155 00000 n +0000272337 00000 n +0000272665 00000 n +0000272847 00000 n +0000273175 00000 n +0000273357 00000 n +0000273685 00000 n +0000273867 00000 n +0000274195 00000 n +0000274377 00000 n +0000274705 00000 n +0000274887 00000 n +0000275215 00000 n +0000275397 00000 n +0000275725 00000 n +0000275907 00000 n +0000276235 00000 n +0000276417 00000 n +0000276745 00000 n +0000276927 00000 n +0000277255 00000 n +0000277437 00000 n +0000277765 00000 n +0000277947 00000 n +0000278275 00000 n +0000278457 00000 n +0000278785 00000 n +0000278967 00000 n +0000279295 00000 n +0000279477 00000 n +0000279805 00000 n +0000279987 00000 n +0000280315 00000 n +0000280497 00000 n +0000280825 00000 n +0000281007 00000 n +0000281335 00000 n +0000281517 00000 n +0000281845 00000 n +0000282027 00000 n +0000282355 00000 n +0000282537 00000 n +0000282865 00000 n +0000283047 00000 n +0000283375 00000 n +0000283557 00000 n +0000283626 00000 n +0000283909 00000 n +0000285361 00000 n +0000325317 00000 n +0000288947 00000 n +0000289103 00000 n +0000289255 00000 n +0000289411 00000 n +0000289566 00000 n +0000289720 00000 n +0000290046 00000 n +0000288765 00000 n +0000286291 00000 n +0000289871 00000 n +0000292384 00000 n +0000292770 00000 n +0000292247 00000 n +0000290196 00000 n +0000292535 00000 n +0000292594 00000 n +0000292652 00000 n +0000292711 00000 n +0000794420 00000 n +0000295172 00000 n +0000295330 00000 n +0000295484 00000 n +0000295985 00000 n +0000295017 00000 n +0000292920 00000 n +0000295635 00000 n +0000295694 00000 n +0000295753 00000 n +0000299071 00000 n +0000299229 00000 n +0000299386 00000 n +0000299541 00000 n +0000299925 00000 n +0000298907 00000 n +0000296148 00000 n +0000299692 00000 n +0000302905 00000 n +0000303060 00000 n +0000303328 00000 n +0000302759 00000 n +0000300075 00000 n +0000303211 00000 n +0000535591 00000 n +0000306015 00000 n +0000306456 00000 n +0000305878 00000 n +0000303491 00000 n +0000306166 00000 n +0000309329 00000 n +0000309484 00000 n +0000309870 00000 n +0000309183 00000 n +0000306580 00000 n +0000309635 00000 n +0000309694 00000 n +0000309753 00000 n +0000309812 00000 n +0000312278 00000 n +0000312547 00000 n +0000312141 00000 n +0000310007 00000 n +0000312429 00000 n +0000312488 00000 n +0000794545 00000 n +0000314909 00000 n +0000315064 00000 n +0000315510 00000 n +0000314763 00000 n +0000312658 00000 n +0000315215 00000 n +0000315274 00000 n +0000315333 00000 n +0000315392 00000 n +0000315451 00000 n +0000318449 00000 n +0000318605 00000 n +0000318992 00000 n +0000318303 00000 n +0000315621 00000 n +0000318756 00000 n +0000318815 00000 n +0000318874 00000 n +0000318933 00000 n +0000321485 00000 n +0000321643 00000 n +0000321971 00000 n +0000321339 00000 n +0000319129 00000 n +0000321794 00000 n +0000321853 00000 n +0000321912 00000 n +0000325107 00000 n +0000325376 00000 n +0000324970 00000 n +0000322082 00000 n +0000325258 00000 n +0000329175 00000 n +0000329329 00000 n +0000329485 00000 n +0000329754 00000 n +0000329020 00000 n +0000325538 00000 n +0000329636 00000 n +0000329695 00000 n +0000331565 00000 n +0000331355 00000 n +0000331629 00000 n +0000331218 00000 n +0000329930 00000 n +0000331506 00000 n +0000794670 00000 n +0000334616 00000 n +0000334773 00000 n +0000334926 00000 n +0000337810 00000 n +0000335080 00000 n +0000335526 00000 n +0000334452 00000 n +0000331740 00000 n +0000335231 00000 n +0000335290 00000 n +0000335349 00000 n +0000335408 00000 n +0000335467 00000 n +0000346730 00000 n +0000346520 00000 n +0000346794 00000 n +0000337673 00000 n +0000335663 00000 n +0000346671 00000 n +0000341729 00000 n +0000341955 00000 n +0000342036 00000 n +0000343091 00000 n +0000343114 00000 n +0000343446 00000 n +0000346497 00000 n +0000349753 00000 n +0000349908 00000 n +0000350292 00000 n +0000349607 00000 n +0000346988 00000 n +0000350059 00000 n +0000353191 00000 n +0000353460 00000 n +0000353054 00000 n +0000350429 00000 n +0000353342 00000 n +0000353401 00000 n +0000355939 00000 n +0000356208 00000 n +0000355802 00000 n +0000353584 00000 n +0000356090 00000 n +0000356149 00000 n +0000358690 00000 n +0000358900 00000 n +0000358553 00000 n +0000356345 00000 n +0000358841 00000 n +0000794795 00000 n +0000361076 00000 n +0000361230 00000 n +0000361498 00000 n +0000360930 00000 n +0000359011 00000 n +0000361381 00000 n +0000364480 00000 n +0000364748 00000 n +0000364343 00000 n +0000361622 00000 n +0000364631 00000 n +0000367859 00000 n +0000368127 00000 n +0000367722 00000 n +0000364872 00000 n +0000368010 00000 n +0000370443 00000 n +0000370653 00000 n +0000370306 00000 n +0000368291 00000 n +0000370594 00000 n +0000372308 00000 n +0000372518 00000 n +0000372171 00000 n +0000370777 00000 n +0000372459 00000 n +0000375337 00000 n +0000375495 00000 n +0000375705 00000 n +0000375191 00000 n +0000372642 00000 n +0000375646 00000 n +0000794920 00000 n +0000377547 00000 n +0000377704 00000 n +0000377914 00000 n +0000377401 00000 n +0000375842 00000 n +0000377855 00000 n +0000379314 00000 n +0000379524 00000 n +0000379177 00000 n +0000378038 00000 n +0000379465 00000 n +0000384130 00000 n +0000381636 00000 n +0000381846 00000 n +0000381499 00000 n +0000379635 00000 n +0000381787 00000 n +0000384287 00000 n +0000384474 00000 n +0000384628 00000 n +0000385011 00000 n +0000383966 00000 n +0000381970 00000 n +0000384779 00000 n +0000388146 00000 n +0000388301 00000 n +0000388453 00000 n +0000388605 00000 n +0000388935 00000 n +0000387982 00000 n +0000385122 00000 n +0000388756 00000 n +0000388873 00000 n +0000391841 00000 n +0000391998 00000 n +0000392155 00000 n +0000392490 00000 n +0000391686 00000 n +0000389111 00000 n +0000392306 00000 n +0000392365 00000 n +0000392428 00000 n +0000795045 00000 n +0000394479 00000 n +0000394805 00000 n +0000394342 00000 n +0000392640 00000 n +0000394630 00000 n +0000394747 00000 n +0000397767 00000 n +0000398036 00000 n +0000397630 00000 n +0000394916 00000 n +0000397918 00000 n +0000397977 00000 n +0000401132 00000 n +0000401400 00000 n +0000400995 00000 n +0000398199 00000 n +0000401283 00000 n +0000404154 00000 n +0000404308 00000 n +0000404577 00000 n +0000404008 00000 n +0000401550 00000 n +0000404459 00000 n +0000792032 00000 n +0000404518 00000 n +0000407763 00000 n +0000407918 00000 n +0000408303 00000 n +0000407617 00000 n +0000404740 00000 n +0000408069 00000 n +0000408244 00000 n +0000411463 00000 n +0000411732 00000 n +0000411326 00000 n +0000408465 00000 n +0000411614 00000 n +0000411673 00000 n +0000795170 00000 n +0000414099 00000 n +0000414368 00000 n +0000413962 00000 n +0000411856 00000 n +0000414250 00000 n +0000414309 00000 n +0000416806 00000 n +0000417133 00000 n +0000416669 00000 n +0000414479 00000 n +0000416957 00000 n +0000417074 00000 n +0000419584 00000 n +0000419970 00000 n +0000419447 00000 n +0000417283 00000 n +0000419735 00000 n +0000419852 00000 n +0000419911 00000 n +0000422390 00000 n +0000422600 00000 n +0000422253 00000 n +0000420094 00000 n +0000422541 00000 n +0000424681 00000 n +0000425067 00000 n +0000424544 00000 n +0000422698 00000 n +0000424832 00000 n +0000424949 00000 n +0000425008 00000 n +0000427623 00000 n +0000427833 00000 n +0000427486 00000 n +0000425204 00000 n +0000427774 00000 n +0000795295 00000 n +0000433234 00000 n +0000430012 00000 n +0000430281 00000 n +0000429875 00000 n +0000427944 00000 n +0000430163 00000 n +0000430222 00000 n +0000433392 00000 n +0000433778 00000 n +0000433088 00000 n +0000430418 00000 n +0000433543 00000 n +0000433660 00000 n +0000433719 00000 n +0000437165 00000 n +0000437322 00000 n +0000437713 00000 n +0000437019 00000 n +0000433915 00000 n +0000437473 00000 n +0000437532 00000 n +0000437591 00000 n +0000437650 00000 n +0000440399 00000 n +0000440784 00000 n +0000440262 00000 n +0000437889 00000 n +0000440550 00000 n +0000440609 00000 n +0000444334 00000 n +0000444490 00000 n +0000444758 00000 n +0000444188 00000 n +0000440921 00000 n +0000444641 00000 n +0000448992 00000 n +0000449149 00000 n +0000449481 00000 n +0000448846 00000 n +0000444869 00000 n +0000449300 00000 n +0000449359 00000 n +0000449418 00000 n +0000795420 00000 n +0000451584 00000 n +0000452084 00000 n +0000451447 00000 n +0000449630 00000 n +0000451735 00000 n +0000453578 00000 n +0000454020 00000 n +0000453441 00000 n +0000452208 00000 n +0000453729 00000 n +0000453961 00000 n +0000456181 00000 n +0000456682 00000 n +0000456044 00000 n +0000454157 00000 n +0000456332 00000 n +0000456391 00000 n +0000458931 00000 n +0000459548 00000 n +0000458794 00000 n +0000456819 00000 n +0000459082 00000 n +0000459431 00000 n +0000459489 00000 n +0000461326 00000 n +0000462302 00000 n +0000461189 00000 n +0000459672 00000 n +0000461477 00000 n +0000461536 00000 n +0000461595 00000 n +0000461654 00000 n +0000461713 00000 n +0000461772 00000 n +0000461831 00000 n +0000461890 00000 n +0000461949 00000 n +0000462008 00000 n +0000462067 00000 n +0000462126 00000 n +0000462185 00000 n +0000463920 00000 n +0000464130 00000 n +0000463783 00000 n +0000462413 00000 n +0000464071 00000 n +0000795545 00000 n +0000465625 00000 n +0000465835 00000 n +0000465488 00000 n +0000464228 00000 n +0000465776 00000 n +0000467228 00000 n +0000467732 00000 n +0000467091 00000 n +0000465933 00000 n +0000467379 00000 n +0000467496 00000 n +0000467555 00000 n +0000467614 00000 n +0000467673 00000 n +0000469542 00000 n +0000469928 00000 n +0000469405 00000 n +0000467843 00000 n +0000469693 00000 n +0000469752 00000 n +0000469811 00000 n +0000472534 00000 n +0000472688 00000 n +0000472843 00000 n +0000473227 00000 n +0000472379 00000 n +0000470052 00000 n +0000472994 00000 n +0000476168 00000 n +0000480161 00000 n +0000476325 00000 n +0000476709 00000 n +0000476022 00000 n +0000473351 00000 n +0000476476 00000 n +0000480315 00000 n +0000480473 00000 n +0000482837 00000 n +0000480630 00000 n +0000480898 00000 n +0000479997 00000 n +0000476833 00000 n +0000480781 00000 n +0000795670 00000 n +0000482993 00000 n +0000483261 00000 n +0000482691 00000 n +0000481022 00000 n +0000483144 00000 n +0000484451 00000 n +0000484661 00000 n +0000484314 00000 n +0000483372 00000 n +0000484602 00000 n +0000485234 00000 n +0000485498 00000 n +0000485097 00000 n +0000484772 00000 n +0000485382 00000 n +0000593306 00000 n +0000486142 00000 n +0000486349 00000 n +0000486005 00000 n +0000485596 00000 n +0000486290 00000 n +0000488857 00000 n +0000489014 00000 n +0000489167 00000 n +0000489494 00000 n +0000488702 00000 n +0000486434 00000 n +0000489315 00000 n +0000489432 00000 n +0000492767 00000 n +0000492922 00000 n +0000493077 00000 n +0000493234 00000 n +0000493441 00000 n +0000492603 00000 n +0000489669 00000 n +0000493382 00000 n +0000795795 00000 n +0000496886 00000 n +0000497044 00000 n +0000497212 00000 n +0000497391 00000 n +0000497546 00000 n +0000497753 00000 n +0000496713 00000 n +0000493605 00000 n +0000497694 00000 n +0000501577 00000 n +0000501734 00000 n +0000501924 00000 n +0000505282 00000 n +0000502079 00000 n +0000502349 00000 n +0000501413 00000 n +0000497917 00000 n +0000502227 00000 n +0000502286 00000 n +0000792467 00000 n +0000505437 00000 n +0000505590 00000 n +0000505745 00000 n +0000505900 00000 n +0000506054 00000 n +0000506261 00000 n +0000505100 00000 n +0000502552 00000 n +0000506202 00000 n +0000507585 00000 n +0000508024 00000 n +0000507448 00000 n +0000506398 00000 n +0000507733 00000 n +0000511472 00000 n +0000511795 00000 n +0000511335 00000 n +0000508161 00000 n +0000511620 00000 n +0000514233 00000 n +0000514498 00000 n +0000514096 00000 n +0000511945 00000 n +0000514381 00000 n +0000795920 00000 n +0000518803 00000 n +0000519010 00000 n +0000518666 00000 n +0000514648 00000 n +0000518951 00000 n +0000521670 00000 n +0000522050 00000 n +0000521533 00000 n +0000519160 00000 n +0000521818 00000 n +0000524689 00000 n +0000524896 00000 n +0000524552 00000 n +0000522213 00000 n +0000524837 00000 n +0000528080 00000 n +0000528403 00000 n +0000527943 00000 n +0000525046 00000 n +0000528228 00000 n +0000531619 00000 n +0000531774 00000 n +0000532039 00000 n +0000531473 00000 n +0000528566 00000 n +0000531922 00000 n +0000535384 00000 n +0000535650 00000 n +0000535247 00000 n +0000532202 00000 n +0000535532 00000 n +0000796045 00000 n +0000537938 00000 n +0000538203 00000 n +0000537801 00000 n +0000535787 00000 n +0000538086 00000 n +0000541213 00000 n +0000541371 00000 n +0000541635 00000 n +0000541067 00000 n +0000538340 00000 n +0000541519 00000 n +0000543421 00000 n +0000543686 00000 n +0000543284 00000 n +0000541798 00000 n +0000543569 00000 n +0000546009 00000 n +0000546166 00000 n +0000546726 00000 n +0000545863 00000 n +0000543836 00000 n +0000546314 00000 n +0000546663 00000 n +0000549898 00000 n +0000550051 00000 n +0000550209 00000 n +0000550366 00000 n +0000550993 00000 n +0000549734 00000 n +0000546888 00000 n +0000550514 00000 n +0000550573 00000 n +0000550632 00000 n +0000550691 00000 n +0000550750 00000 n +0000550867 00000 n +0000550930 00000 n +0000553815 00000 n +0000553971 00000 n +0000554127 00000 n +0000554517 00000 n +0000553660 00000 n +0000551168 00000 n +0000554275 00000 n +0000554392 00000 n +0000554454 00000 n +0000796170 00000 n +0000556529 00000 n +0000556685 00000 n +0000557013 00000 n +0000556383 00000 n +0000554720 00000 n +0000556833 00000 n +0000556950 00000 n +0000559816 00000 n +0000559974 00000 n +0000560130 00000 n +0000560458 00000 n +0000559661 00000 n +0000557189 00000 n +0000560278 00000 n +0000560395 00000 n +0000564141 00000 n +0000564298 00000 n +0000564740 00000 n +0000563995 00000 n +0000560620 00000 n +0000564446 00000 n +0000564677 00000 n +0000566875 00000 n +0000567140 00000 n +0000566738 00000 n +0000564915 00000 n +0000567023 00000 n +0000570277 00000 n +0000570484 00000 n +0000570140 00000 n +0000567264 00000 n +0000570425 00000 n +0000573553 00000 n +0000573760 00000 n +0000573416 00000 n +0000570595 00000 n +0000573701 00000 n +0000796295 00000 n 0000575924 00000 n -0000577631 00000 n -0000580709 00000 n -0000581064 00000 n -0000581329 00000 n -0000580554 00000 n -0000577885 00000 n -0000581212 00000 n -0000580887 00000 n -0000582348 00000 n -0000582555 00000 n -0000582211 00000 n -0000581479 00000 n -0000582496 00000 n -0000585239 00000 n -0000585416 00000 n -0000585590 00000 n -0000585913 00000 n -0000585084 00000 n -0000582666 00000 n -0000585738 00000 n -0000587380 00000 n -0000587729 00000 n -0000587936 00000 n -0000587225 00000 n -0000586050 00000 n -0000587877 00000 n -0000587554 00000 n -0000795973 00000 n -0000589871 00000 n -0000590371 00000 n -0000589734 00000 n -0000588073 00000 n -0000590019 00000 n -0000590194 00000 n -0000590253 00000 n -0000590312 00000 n -0000592183 00000 n -0000592917 00000 n -0000592046 00000 n -0000590508 00000 n -0000592331 00000 n -0000592390 00000 n -0000592449 00000 n -0000592565 00000 n -0000592624 00000 n -0000592683 00000 n -0000592742 00000 n -0000592800 00000 n -0000789549 00000 n -0000593108 00000 n -0000593436 00000 n -0000593604 00000 n -0000593630 00000 n -0000593706 00000 n -0000594199 00000 n -0000594649 00000 n -0000594954 00000 n -0000595477 00000 n -0000596019 00000 n -0000596171 00000 n -0000596870 00000 n -0000596938 00000 n -0000597012 00000 n -0000597648 00000 n -0000598285 00000 n -0000598538 00000 n -0000598882 00000 n -0000599416 00000 n -0000600086 00000 n -0000600539 00000 n -0000600935 00000 n -0000601626 00000 n -0000602270 00000 n -0000602918 00000 n -0000603408 00000 n -0000617036 00000 n -0000617495 00000 n -0000629378 00000 n -0000629785 00000 n -0000634016 00000 n -0000634277 00000 n -0000639114 00000 n -0000639392 00000 n -0000645212 00000 n -0000645508 00000 n -0000648248 00000 n -0000648477 00000 n -0000666252 00000 n -0000666865 00000 n -0000670832 00000 n -0000671102 00000 n -0000674079 00000 n -0000674337 00000 n -0000677463 00000 n -0000677726 00000 n -0000688423 00000 n -0000688828 00000 n -0000695379 00000 n -0000695689 00000 n -0000704018 00000 n -0000704355 00000 n -0000714440 00000 n -0000714823 00000 n -0000723169 00000 n -0000723590 00000 n -0000732741 00000 n -0000733107 00000 n -0000736090 00000 n -0000736416 00000 n -0000737627 00000 n -0000737854 00000 n -0000739592 00000 n -0000739847 00000 n -0000753960 00000 n -0000754332 00000 n -0000757394 00000 n -0000757631 00000 n -0000774238 00000 n -0000774885 00000 n -0000777678 00000 n -0000777910 00000 n -0000786484 00000 n -0000786851 00000 n -0000788888 00000 n -0000796071 00000 n -0000796193 00000 n -0000796319 00000 n -0000796445 00000 n -0000796571 00000 n -0000796670 00000 n -0000796771 00000 n -0000812288 00000 n -0000812504 00000 n -0000812726 00000 n -0000812949 00000 n -0000813142 00000 n -0000813327 00000 n -0000813512 00000 n -0000813697 00000 n -0000813882 00000 n -0000814064 00000 n -0000814240 00000 n -0000814435 00000 n -0000814638 00000 n -0000814838 00000 n -0000815024 00000 n -0000815209 00000 n -0000815392 00000 n -0000815577 00000 n -0000815760 00000 n -0000815945 00000 n -0000816128 00000 n -0000816313 00000 n -0000816496 00000 n -0000816681 00000 n -0000816863 00000 n -0000817045 00000 n -0000817215 00000 n -0000817390 00000 n -0000817565 00000 n -0000817742 00000 n -0000817917 00000 n -0000818094 00000 n -0000818268 00000 n -0000818442 00000 n -0000818619 00000 n -0000818794 00000 n -0000818971 00000 n -0000819146 00000 n -0000819323 00000 n -0000819498 00000 n -0000819675 00000 n -0000819855 00000 n -0000820072 00000 n -0000820289 00000 n -0000820506 00000 n -0000820723 00000 n -0000820940 00000 n -0000821157 00000 n -0000821374 00000 n -0000821585 00000 n -0000821794 00000 n -0000821999 00000 n -0000822197 00000 n -0000822398 00000 n -0000822599 00000 n -0000822800 00000 n -0000823001 00000 n -0000823196 00000 n -0000823388 00000 n -0000823591 00000 n -0000823818 00000 n -0000824045 00000 n -0000824272 00000 n -0000824499 00000 n -0000824726 00000 n -0000824951 00000 n -0000825178 00000 n -0000825402 00000 n -0000825629 00000 n -0000825853 00000 n -0000826070 00000 n -0000826287 00000 n -0000826506 00000 n -0000826725 00000 n -0000826942 00000 n -0000827076 00000 n -0000827195 00000 n -0000827316 00000 n -0000827436 00000 n -0000827554 00000 n -0000827671 00000 n -0000827787 00000 n -0000827908 00000 n -0000828034 00000 n -0000828159 00000 n -0000828286 00000 n -0000828416 00000 n -0000828545 00000 n -0000828641 00000 n -0000828759 00000 n -0000828881 00000 n -0000828959 00000 n -0000829051 00000 n -0000829091 00000 n -0000829385 00000 n +0000576247 00000 n +0000575787 00000 n +0000573871 00000 n +0000576072 00000 n +0000577930 00000 n +0000578195 00000 n +0000577793 00000 n +0000576371 00000 n +0000578078 00000 n +0000581156 00000 n +0000581511 00000 n +0000581776 00000 n +0000581001 00000 n +0000578332 00000 n +0000581659 00000 n +0000581334 00000 n +0000582795 00000 n +0000583002 00000 n +0000582658 00000 n +0000581926 00000 n +0000582943 00000 n +0000585686 00000 n +0000585863 00000 n +0000586037 00000 n +0000586360 00000 n +0000585531 00000 n +0000583113 00000 n +0000586185 00000 n +0000587827 00000 n +0000588176 00000 n +0000588383 00000 n +0000587672 00000 n +0000586497 00000 n +0000588324 00000 n +0000588001 00000 n +0000796420 00000 n +0000590318 00000 n +0000590818 00000 n +0000590181 00000 n +0000588520 00000 n +0000590466 00000 n +0000590641 00000 n +0000590700 00000 n +0000590759 00000 n +0000592630 00000 n +0000593364 00000 n +0000592493 00000 n +0000590955 00000 n +0000592778 00000 n +0000592837 00000 n +0000592896 00000 n +0000593012 00000 n +0000593071 00000 n +0000593130 00000 n +0000593189 00000 n +0000593247 00000 n +0000789996 00000 n +0000593555 00000 n +0000593883 00000 n +0000594051 00000 n +0000594077 00000 n +0000594153 00000 n +0000594646 00000 n +0000595096 00000 n +0000595401 00000 n +0000595924 00000 n +0000596466 00000 n +0000596618 00000 n +0000597317 00000 n +0000597385 00000 n +0000597459 00000 n +0000598095 00000 n +0000598732 00000 n +0000598985 00000 n +0000599329 00000 n +0000599863 00000 n +0000600533 00000 n +0000600986 00000 n +0000601382 00000 n +0000602073 00000 n +0000602717 00000 n +0000603365 00000 n +0000603855 00000 n +0000617483 00000 n +0000617942 00000 n +0000629825 00000 n +0000630232 00000 n +0000634463 00000 n +0000634724 00000 n +0000639561 00000 n +0000639839 00000 n +0000645659 00000 n +0000645955 00000 n +0000648695 00000 n +0000648924 00000 n +0000666699 00000 n +0000667312 00000 n +0000671279 00000 n +0000671549 00000 n +0000674526 00000 n +0000674784 00000 n +0000677910 00000 n +0000678173 00000 n +0000688870 00000 n +0000689275 00000 n +0000695826 00000 n +0000696136 00000 n +0000704465 00000 n +0000704802 00000 n +0000714887 00000 n +0000715270 00000 n +0000723616 00000 n +0000724037 00000 n +0000733188 00000 n +0000733554 00000 n +0000736537 00000 n +0000736863 00000 n +0000738074 00000 n +0000738301 00000 n +0000740039 00000 n +0000740294 00000 n +0000754407 00000 n +0000754779 00000 n +0000757841 00000 n +0000758078 00000 n +0000774685 00000 n +0000775332 00000 n +0000778125 00000 n +0000778357 00000 n +0000786931 00000 n +0000787298 00000 n +0000789335 00000 n +0000796518 00000 n +0000796640 00000 n +0000796766 00000 n +0000796892 00000 n +0000797018 00000 n +0000797117 00000 n +0000797218 00000 n +0000812735 00000 n +0000812951 00000 n +0000813173 00000 n +0000813396 00000 n +0000813589 00000 n +0000813774 00000 n +0000813959 00000 n +0000814144 00000 n +0000814329 00000 n +0000814511 00000 n +0000814687 00000 n +0000814882 00000 n +0000815085 00000 n +0000815285 00000 n +0000815471 00000 n +0000815656 00000 n +0000815839 00000 n +0000816024 00000 n +0000816207 00000 n +0000816392 00000 n +0000816575 00000 n +0000816760 00000 n +0000816943 00000 n +0000817128 00000 n +0000817310 00000 n +0000817492 00000 n +0000817662 00000 n +0000817837 00000 n +0000818012 00000 n +0000818189 00000 n +0000818364 00000 n +0000818541 00000 n +0000818715 00000 n +0000818889 00000 n +0000819066 00000 n +0000819241 00000 n +0000819418 00000 n +0000819593 00000 n +0000819770 00000 n +0000819945 00000 n +0000820122 00000 n +0000820302 00000 n +0000820519 00000 n +0000820736 00000 n +0000820953 00000 n +0000821170 00000 n +0000821387 00000 n +0000821604 00000 n +0000821821 00000 n +0000822032 00000 n +0000822241 00000 n +0000822446 00000 n +0000822644 00000 n +0000822845 00000 n +0000823046 00000 n +0000823247 00000 n +0000823448 00000 n +0000823643 00000 n +0000823835 00000 n +0000824038 00000 n +0000824265 00000 n +0000824492 00000 n +0000824719 00000 n +0000824946 00000 n +0000825173 00000 n +0000825398 00000 n +0000825625 00000 n +0000825849 00000 n +0000826076 00000 n +0000826300 00000 n +0000826517 00000 n +0000826734 00000 n +0000826953 00000 n +0000827172 00000 n +0000827389 00000 n +0000827523 00000 n +0000827642 00000 n +0000827763 00000 n +0000827883 00000 n +0000828001 00000 n +0000828118 00000 n +0000828234 00000 n +0000828355 00000 n +0000828481 00000 n +0000828606 00000 n +0000828733 00000 n +0000828863 00000 n +0000828992 00000 n +0000829088 00000 n +0000829206 00000 n +0000829328 00000 n +0000829406 00000 n +0000829498 00000 n +0000829538 00000 n +0000829832 00000 n trailer << /Size 2259 /Root 2257 0 R /Info 2258 0 R -/ID [<533A9AE3491048B1D281EB81CCF5C154> <533A9AE3491048B1D281EB81CCF5C154>] >> +/ID [<68278045A721932EAED57694E2590F45> <68278045A721932EAED57694E2590F45>] >> startxref -829858 +830305 %%EOF diff --git a/doc/UsersGuide/Notes.tex b/doc/UsersGuide/Notes.tex index ff0a6f42..d0d897bf 100644 --- a/doc/UsersGuide/Notes.tex +++ b/doc/UsersGuide/Notes.tex @@ -1318,48 +1318,61 @@ expressions in place of explicit values. The usual arithmetic operations as well as C-like transcendental functions and relational operations are supported. Integer division is handled as in C, and any non-null value is interpreted as logical true, which the relational operators return as unity. +The return value of any function whose arguments are integers will be +truncated towards zero. +The remainder operator \verb|%| is internally mapped to the \verb|fmod| +function for both integer and real valued arguments so inherits its +semantics. +The exponentiation operator \verb|**| as well as the unary operators +associate to the left which differs from the common convention in +mathematics. When in doubt use explicit parenthesis to force a desired +order of evaluation. Table~\ref{tab:expression_functions} lists the supported functions. Expressions can refer to already set parameters by using the fully qualified name \texttt{thorn::parameter} as described below. \begin{table} \begin{tabular}{|ll@{\hspace{.5cm}}|ll|} \hline - \multicolumn{2}{|c|}{Relational operators} & \multicolumn{2}{c|}{Mathematical functions} \\ + \multicolumn{2}{|c|}{Logical operators} & \verb|+| & no-op\\ \hline - \verb|=| & tests for equality & \verb|!| & logical not\\ + \verb|&&| & logical and & \verb|!| & logical not\\ \hline - \verb|<| & tests for less than & \verb|acos| & inverse cosine\\ + \verb%||% & logical or & \multicolumn{2}{c|}{Mathematical functions}\\ \hline - \verb|>| & tests for greater than & \verb|asin| & inverse sine\\ + \multicolumn{2}{|c|}{Relational operators} & \verb|acos| & inverse cosine\\ \hline - \verb|<=| & tests for less or equal & \verb|atan| & inverse tangent \\ + \verb|==| & tests for equality & \verb|asin| & inverse sine\\ \hline - \verb|>=| & tests for greater or equal & \verb|ceil| & round up to nearest integer \\ + \verb|!=| & tests for inequality & \verb|atan| & inverse tangent \\ \hline - \verb|&&| & logical and & \verb|cos| & cosine \\ + \verb|<| & tests for less than & \verb|ceil| & round up to nearest integer \\ \hline - \verb%||% & logical or & \verb|cosh| & hyperbolic cosine \\ + \verb|>| & tests for greater than & \verb|cos| & cosine \\ \hline - \multicolumn{2}{|c|}{Unary operators} & \verb|exp| & exponentiation $e^x$\\ + \verb|<=| & tests for less or equal & \verb|cosh| & hyperbolic cosine \\ \hline - \verb|-| & negate sign & \verb|fabs| & absolute value $|x|$\\ + \verb|>=| & tests for greater or equal & \verb|exp| & exponentiation $e^x$\\ \hline - \verb|+| & no-op & \verb|floor| & round down to nearest integer \\ + \multicolumn{2}{|c|}{Binary operators} & \verb|fabs| & absolute value $|x|$\\ \hline - \multicolumn{2}{|c|}{Binary operators} & \verb|log| & natural logarithm \\ + \verb|+| & addition & \verb|floor| & round down to nearest integer \\ \hline - \verb|+| & addition & \verb|log10| & base-10 logarithm \\ + \verb|-| & subtraction & \verb|log| & natural logarithm \\ \hline - \verb|-| & subtraction & \verb|sin| & sine \\ + \verb|/| & C-like division & \verb|log10| & base-10 logarithm \\ \hline - \verb|/| & C-like division & \verb|sinh| & hyperbolic sine \\ + \verb|%| & remainder of division & \verb|sin| & sine \\ \hline - \verb|*| & multiplication & \verb|sqrt| & square root \\ + \verb|*| & multiplication & \verb|sinh| & hyperbolic sine \\ \hline - \verb|^| & exponentiation $x^y$ & \verb|tan| & tangent \\ + \verb|**| & exponentiation $x^y$ & \verb|sqrt| & square root \\ \hline - & & \verb|tanh| & hyperbolic tangent \\ + \multicolumn{2}{|c|}{Unary operators} & \verb|tan| & tangent \\ \hline + \verb|-| & negate sign & \verb|tanh| & hyperbolic tangent \\ + \hline + & & \verb|trunc| & integer part of $x$\\ + \hline \end{tabular} \caption{Supported functions inside of expressions, in increasing order of precedence.} diff --git a/src/include/utili_Expression.h b/src/include/utili_Expression.h index ad3d491c..cdd473fc 100644 --- a/src/include/utili_Expression.h +++ b/src/include/utili_Expression.h @@ -19,6 +19,7 @@ extern "C" /* Defined operators */ typedef enum {OP_NONE, OP_EQUALS, + OP_NOTEQUALS, OP_LESS_THAN, OP_GREATER_THAN, OP_LEQUALS, @@ -28,6 +29,7 @@ typedef enum {OP_NONE, OP_PLUS, OP_MINUS, OP_DIV, + OP_REMAINDER, OP_TIMES, OP_POWER, OP_NOT, @@ -48,7 +50,8 @@ typedef enum {OP_NONE, OP_SINH, OP_SQRT, OP_TAN, - OP_TANH} + OP_TANH, + OP_TRUNC} uExpressionOpcode; /* What sort of expression types we have. */ diff --git a/src/main/Parameters.c b/src/main/Parameters.c index 3831a89b..3130be96 100644 --- a/src/main/Parameters.c +++ b/src/main/Parameters.c @@ -2193,19 +2193,24 @@ static int ParameterSetInteger (t_param *param, const char *value) /* try parsing as number */ inval = strtol (value, &endptr, 0); - if(*endptr) /* if we could not parse as a number, try an expression */ + if (*endptr) /* if we could not parse as a number, try an expression */ { int type = PARAMETER_INT; - int ierr; uExpressionValue val; uExpression *expr; expr = Util_ExpressionParse(value); - assert(expr); - ierr = Util_ExpressionEvaluate(expr, &val, SetVarEvaluator, &type); - Util_ExpressionFree(expr); + if (expr != NULL) + { + retval = Util_ExpressionEvaluate(expr, &val, SetVarEvaluator, &type); + Util_ExpressionFree(expr); + } + else + { + retval = -6; + } - if (ierr == 0) + if (retval == 0) { assert(val.type == ival || val.type == rval); @@ -2260,7 +2265,7 @@ static int ParameterSetInteger (t_param *param, const char *value) { CCTK_VWarn (2, __LINE__, __FILE__, "Cactus", "ParameterSetInteger: Unable to set integer '%s::%s' - '%s' " - "is not a valid integer", + "does not evaluate to a valid integer", param->props->thorn, param->props->name, value); } @@ -2299,16 +2304,21 @@ static int ParameterSetReal (t_param *param, const char *value) if (*endptr) /* if we cannot parse as a number, try expression */ { int type = PARAMETER_REAL; - int ierr; uExpressionValue val; uExpression *expr; expr = Util_ExpressionParse(value); - assert(expr); - ierr = Util_ExpressionEvaluate(expr, &val, SetVarEvaluator, &type); - Util_ExpressionFree(expr); + if (expr != NULL) + { + retval = Util_ExpressionEvaluate(expr, &val, SetVarEvaluator, &type); + Util_ExpressionFree(expr); + } + else + { + retval = -6; + } - if (ierr == 0) + if (retval == 0) { assert(val.type == ival || val.type == rval); @@ -2357,8 +2367,8 @@ static int ParameterSetReal (t_param *param, const char *value) else if (retval == -6) { CCTK_VWarn (2, __LINE__, __FILE__, "Cactus", - "ParameterSetInteger: Unable to set integer '%s::%s' - '%s' " - "is not a valid floating point number", + "ParameterSetInteger: Unable to set real '%s::%s' - '%s' " + "does not evaluate to a valid floating point number", param->props->thorn, param->props->name, value); } @@ -2376,14 +2386,20 @@ static int ParameterSetBoolean (t_param *param, const char *value) /* first try parsing as yes/no/true/false */ retval = CCTK_SetBoolean (&inval, value); - if(retval) /* if we cannot parse as a boolean, try expression */ + if (retval < 0) /* if we cannot parse as a boolean, try expression */ { expr = Util_ExpressionParse(value); - assert(expr); - int ierr = Util_ExpressionEvaluate(expr, &val, SetVarEvaluator, (void *)&type); - Util_ExpressionFree(expr); + if(expr != NULL) + { + retval = Util_ExpressionEvaluate(expr, &val, SetVarEvaluator, &type); + Util_ExpressionFree(expr); + } + else + { + retval = -6; + } - if (!ierr) + if (retval == 0) { assert(val.type == ival || val.type == rval); if (val.type == ival) @@ -2409,12 +2425,11 @@ static int ParameterSetBoolean (t_param *param, const char *value) if (!retval) *(CCTK_INT *)param->data = inval != 0; - - if (retval == -1) + else { CCTK_VWarn (2, __LINE__, __FILE__, "Cactus", "ParameterSetBoolean: Unable to set boolean '%s::%s' = '%s' " - "not recognised", + "not recognised as boolean", param->props->thorn, param->props->name, value); } @@ -2707,7 +2722,9 @@ static int SetVarEvaluator(int nvars, const char * const *vars, uExpressionValue vals[i].type = ival; ierr = 0; } - else if (strpbrk(vars[i], "eDdD.")) + else if (strpbrk(vars[i], "eDdD.") || + Util_StrCmpi(vars[i], "nan") == 0 || + Util_StrCmpi(vars[i], "inf") == 0) { /* * Canonicalize the string by converting all exponent letters diff --git a/src/util/Expression.c b/src/util/Expression.c index 1984cdc5..96b5ccb4 100644 --- a/src/util/Expression.c +++ b/src/util/Expression.c @@ -34,7 +34,7 @@ CCTK_FILEVERSION(util_Expression_c); #include "util_String.h" #define strdup(a) Util_Strdup(a) #else -#define CCTK_VWarn(lvl, line, file, thorn, fmt, ...) printf("(%s) L%d at %s line %d: "fmt"\n", thorn, lvl, file, line, ## __VA_ARGS__) +#define CCTK_VWarn(lvl, line, file, thorn, fmt, ...) do { printf("(%s) L%d at %s line %d: "fmt"\n", thorn, lvl, file, line, ## __VA_ARGS__); if(lvl == 0) exit(1); } while(0) #endif /******************************************************************** @@ -99,40 +99,43 @@ static struct uExpressionOpcode opcode; } operators[] = { /* Binary operators. */ - {"=", binary, 1,OP_EQUALS}, - {"<", binary, 1,OP_LESS_THAN}, - {">", binary, 1,OP_GREATER_THAN}, - {"<=", binary, 1,OP_LEQUALS}, - {">=", binary, 1,OP_GEQUALS}, + {"||", binary, 1,OP_OR}, {"&&", binary, 2,OP_AND}, - {"||", binary, 2,OP_OR}, - /* Sign change. */ - {"_", unary, 3,OP_NEGATE}, /* unary '-' */ - {"@", unary, 3,OP_PASS}, /* unary '+' */ + {"==", binary, 3,OP_EQUALS}, + {"!=", binary, 3,OP_NOTEQUALS}, + {"<", binary, 4,OP_LESS_THAN}, + {">", binary, 4,OP_GREATER_THAN}, + {"<=", binary, 4,OP_LEQUALS}, + {">=", binary, 4,OP_GEQUALS}, /* Binary operators. */ - {"+", binary, 3,OP_PLUS}, - {"-", binary, 3,OP_MINUS}, - {"/", binary, 4,OP_DIV}, - {"*", binary, 4,OP_TIMES}, - {"^", binary, 5,OP_POWER}, + {"+", binary, 5,OP_PLUS}, + {"-", binary, 5,OP_MINUS}, + {"/", binary, 6,OP_DIV}, + {"%", binary, 6,OP_REMAINDER}, + {"*", binary, 6,OP_TIMES}, + {"**", binary, 7,OP_POWER}, + /* Sign change */ + {"_", unary, 8,OP_NEGATE}, /* unary '-' */ + {"@", unary, 8,OP_PASS}, /* unary '+' */ /* Unary Operators - these must have the highest precedence. */ - {"!", unary, 6, OP_NOT}, - {"acos", unary, 6, OP_ACOS}, - {"asin", unary, 6, OP_ASIN}, - {"atan", unary, 6, OP_ATAN}, - {"ceil", unary, 6, OP_CEIL}, - {"cos" , unary, 6, OP_COS}, - {"cosh", unary, 6, OP_COSH}, - {"exp", unary, 6, OP_EXP}, - {"fabs", unary, 6, OP_FABS}, - {"floor", unary, 6, OP_FLOOR}, - {"log", unary, 6, OP_LOG}, - {"log10", unary, 6, OP_LOG10}, - {"sin", unary, 6, OP_SIN}, - {"sinh", unary, 6, OP_SINH}, - {"sqrt", unary, 6, OP_SQRT}, - {"tan", unary, 6, OP_TAN}, - {"tanh", unary, 6, OP_TANH}, + {"!", unary, 8, OP_NOT}, + {"acos", unary, 9, OP_ACOS}, + {"asin", unary, 9, OP_ASIN}, + {"atan", unary, 9, OP_ATAN}, + {"ceil", unary, 9, OP_CEIL}, + {"cos" , unary, 9, OP_COS}, + {"cosh", unary, 9, OP_COSH}, + {"exp", unary, 9, OP_EXP}, + {"fabs", unary, 9, OP_FABS}, + {"floor", unary, 9, OP_FLOOR}, + {"log", unary, 9, OP_LOG}, + {"log10", unary, 9, OP_LOG10}, + {"sin", unary, 9, OP_SIN}, + {"sinh", unary, 9, OP_SINH}, + {"sqrt", unary, 9, OP_SQRT}, + {"tan", unary, 9, OP_TAN}, + {"tanh", unary, 9, OP_TANH}, + {"trunc", unary, 9, OP_TRUNC}, {NULL, binary, -1,OP_NONE} }; @@ -469,7 +472,7 @@ static pToken *Tokenise(const char *expression) /* class '@' below is "everything else", "e" can be either scientific * notation or the literal character 'e' */ - const char *classes[] = {"-+", "0123456789", ".", "eEdD", "*/^=&|<>!", "(", ")", " \t", "@"}; + const char *classes[] = {"-+", "0123456789", ".", "eEdD", "*/%=&|<>!", "(", ")", " \t\n", "@"}; /* if we are in state s and read a charcter of class c we transition to state * states[s][c] */ /* if this is -1 then this is a transition that does not happen in well @@ -477,7 +480,7 @@ static pToken *Tokenise(const char *expression) int states[][sizeof(classes)/sizeof(classes[0])] = { /* - 0 . e * ( ) ' ' @ */ /* 0*/ {10, 2, 3, 9, -1, 0, -1, 0, 9}, /* beginning of subexpression */ -/* 1*/ {-1, 2, 3, 9, 1, 0, -1, 1, 9}, /* after binary operator or '!' */ +/* 1*/ { 1, 2, 3, 9, 1, 0, -1, 11, 9}, /* after first character of binary operator or '!' */ /* 2*/ { 1, 2, 3, 4, 1, -1, 5, 5, -1}, /* after first digit of integer */ /* 3*/ {-1, 7, -1, 4, 1, -1, 5, 5, -1}, /* after decimal point */ /* 4*/ { 8, 8, -1, -1, -1, -1, -1, -1, -1}, /* after 'e' of exponent */ @@ -487,13 +490,14 @@ static pToken *Tokenise(const char *expression) /* 8*/ {-1, 9, -1, -1, 1, -1, 5, 5, -1}, /* after first digit of exponent */ /* 9*/ { 1, 9, -1, 9, 1, 0, 5, 6, 9}, /* after first letter of name */ /*10*/ {-1, 2, 3, 9, -1, 0, -1, 10, 9}, /* after unary operator */ +/*11*/ {10, 2, 3, -1, 1, 0, -1, 11, 9}, /* after space after binary op */ }; - /* we terminate a token whenever we transition out of a state we check here - * is this transition could be a termination of a token */ + /* we possibly terminate a token when we transition out of a state. we check here + * if this transition is a termination of a token */ int end_of_token[][sizeof(classes)/sizeof(classes[0])] = { /* - 0 . e * ( ) ' ' @ */ -/* 0*/ { 1, 1, 1, 1, -1, 1, -1, 0, 1}, /* beginning of subexpression */ -/* 1*/ {-1, 1, 1, 1, 0, 1, -1, 0, 1}, /* after binary operator or '!' */ +/* 0*/ { 1, 1, 1, 1, -1, 1, -1, 0, 1}, /* after beginning of subexpression */ +/* 1*/ { 1, 1, 1, 1, 0, 1, -1, 0, 1}, /* after binary operator or '!' */ /* 2*/ { 1, 0, 0, 0, 1, 1, 1, 1, -1}, /* after first digit of integer */ /* 3*/ {-1, 0, -1, 0, 1, -1, 1, 1, -1}, /* after decimal point */ /* 4*/ { 0, 0, -1, -1, -1, -1, -1, -1, -1}, /* after 'e' of exponent */ @@ -502,7 +506,8 @@ static pToken *Tokenise(const char *expression) /* 7*/ {-1, 0, -1, 0, 1, -1, 1, 1, -1}, /* after first digit of fraction */ /* 8*/ {-1, 0, -1, -1, 1, -1, 1, 1, -1}, /* after first digit of exponent */ /* 9*/ { 1, 0, -1, 0, 1, 1, 1, 1, 0}, /* after first letter of name */ -/*10*/ {-1, 0, 0, 0, -1, 1, -1, 1, 0}, /* after unary operator */ +/*10*/ {-1, 0, 0, 1, -1, 1, -1, 1, 1}, /* after unary operator */ +/*11*/ { 1, 1, 3, -1, 1, 1, -1, 0, 1}, /* after space after binary op */ }; int tokenstate, state, class, error; @@ -511,7 +516,7 @@ static pToken *Tokenise(const char *expression) tokenstart = expression; state = 0; - while(*tokenstart) + while(*tokenstart) /* as long as we have tokens left */ { /* Remove leading whitespace */ @@ -520,7 +525,7 @@ static pToken *Tokenise(const char *expression) tokenend = NULL; tokenstate = -1; - /* classify first input character */ + /* classify first input character of token*/ for(class = 0; class < (int)(sizeof(classes)/sizeof(classes[0]))-1; class++) { if(strchr(classes[class], *tokenstart)) @@ -534,6 +539,7 @@ static pToken *Tokenise(const char *expression) printf("Initial state: %d, token '%c', class '%c'\n", state, *tokenstart, classes[class][0]); #endif + /* collect remainder of token */ error = 0; for(position = tokenstart+1; *position && *tokenstart; position++) { @@ -544,21 +550,20 @@ static pToken *Tokenise(const char *expression) break; } - /* see if transition closes the previous token */ - if(end_of_token[state][class]) - { - tokenend = position-1; - tokenstate = state; - } - #ifdef TEST_EXPRESSION_PARSER printf("read '%c', current state: %d, class '%c', will transition to %d, token = '%.*s', will %sappend token\n", *position, state, classes[class][0], states[state][class], (int)(position-tokenstart), tokenstart, end_of_token[state][class] ? "" : "not "); #endif - /* transition to new state or state 0 upon errors */ - if(states[state][class] >= 0) + /* see if transition closes the current token */ + if(end_of_token[state][class]) { + tokenend = position-1; + tokenstate = state; + } + else if(states[state][class] >= 0) + { + /* transition to new state or state 0 upon errors */ state = states[state][class]; } else @@ -579,7 +584,7 @@ static pToken *Tokenise(const char *expression) } } - /* Have we reached the end of the string ? */ + /* Have we reached the end of the string ? If so, make sure to add last token */ if(!tokenend) { tokenend = position; @@ -622,8 +627,8 @@ static pToken *Tokenise(const char *expression) } else { - fprintf(stderr, "Unable to allocate memory for new token !\n"); - abort(); + CCTK_VWarn (0, __LINE__, __FILE__, "Cactus", + "Unable to allocate memory for new token !\n"); } } @@ -826,10 +831,16 @@ static int VerifyParsedExpression(const uExpressionInternals *buffer) { if(buffer->tokens[position].type == val) { +#if TEST_EXPRESSION_PARSER + printf("%s ",buffer->vars[buffer->tokens[position].token.varnum]); +#endif stackpointer++; } else { +#if TEST_EXPRESSION_PARSER + printf("%s ",opname(buffer->tokens[position].token.opcode)); +#endif /* Evaluate operation, clear operands from stack and add the result to the stack. */ switch(buffer->tokens[position].type) { @@ -876,6 +887,10 @@ static int VerifyParsedExpression(const uExpressionInternals *buffer) retcode = 0; } +#if TEST_EXPRESSION_PARSER + printf("\n"); +#endif + return retcode; } @@ -946,6 +961,9 @@ static int EvaluateBinary(uExpressionValue *retval, case OP_DIV : \ (retval) = ((val1)/(val2)); \ break; \ + case OP_REMAINDER : \ + (retval) = (fmod(val1,val2)); \ + break; \ case OP_TIMES : \ (retval) = ((val1)*(val2)); \ break; \ @@ -961,6 +979,9 @@ static int EvaluateBinary(uExpressionValue *retval, case OP_EQUALS : \ (retval) = ( (val1) == (val2)); \ break; \ + case OP_NOTEQUALS : \ + (retval) = ( (val1) != (val2)); \ + break; \ case OP_LESS_THAN : \ (retval) = ((val1) < (val2)); \ break; \ @@ -1112,6 +1133,9 @@ static int EvaluateUnary(uExpressionValue *retval, case OP_TANH : \ (retval) = tanh(val); \ break; \ + case OP_TRUNC : \ + (retval) = trunc(val); \ + break; \ default : \ fprintf(stderr, "Unknown operation %d", opcode); \ (retval) = 0; \ @@ -1604,7 +1628,17 @@ int evaluator(int nvars, const char * const *vars, uExpressionValue *vals, void for(i = 0; i < nvars; i++) { - if(strchr(vars[i],'.') || strchr(vars[i],'e')) + if (strcmp(vars[i], "pi") == 0) + { + vals[i].type = rval; + vals[i].value.rval = M_PI; + } + else if (strcmp(vars[i], "one") == 0) + { + vals[i].type = ival; + vals[i].value.ival = 1; + } + else if(strchr(vars[i],'.') || strchr(vars[i],'e') || strcasecmp(vars[i], "nan") == 0 || strcasecmp(vars[i], "inf") == 0) { vals[i].type = rval; vals[i].value.rval = strtod(vars[i], &endp); @@ -1649,7 +1683,7 @@ int main(int argc, char *argv[]) } else { - printf("Value is %g\n", value.value.rval); + printf("Value is %#g\n", value.value.rval); } Util_ExpressionFree(buffer); |