rlp@cbosgd.UUCP (J. Knapp) (05/04/86)
Here is a type of fractal generation program that you've probably not
seen yet. It generates something like a topographical map of a random
relief. The relief is divided into 15 altitude zones, each with a different
color. The resulting maps can be very pretty. This is a TTP application.
Run the program without parameters and you will get the usage directions.
The algorithm is due to (who else) Benoit Mandelbrot. It is based on
the "Brownian plane-to-line" function of Paul Levy.
note: This program is public-domain. I put no restrictions on its use.
Comments/improvements are welcome.
-----------------------------------------------------------------------
begin 666 levy.ttp
M8!H ':* "9O 0CRP 9D1!ZP" 0H(4
M&"A(4T(D2 P0 IG $ #! (&< H,$ )9@ #%*(4T)JXF .8,$ \
M9P K P0 #YG ":#! /6<*#! )6=*8 QE*(< !R !(0#$$ .6X:!$$
M,&T4XX O .6 T)_0@5*(4T)K ":8-Q*@&< )(,@ ! !N!B \ $ "/
M !M\F _WI2B' <@ 2$ Q! #EN& 1! #!M$N. +P#E@-"?T(%2B%-":U1@
MWDJ 9TX,@ " !N!B \ ( "/ !LQF _SA#^0 9A!@ (0_D &7P
M<A]2B%-":R0,$ @9P#_& P0 EG /\0#! "F< _P@2V%')_^!P\6 )A*
M0FL&%-A1RO_\0AHB*P 8TJL '" /D+D &WRD($D.0 ;,9F"B0 !(( !
M8 X,@@ " !N!B0\ ( "8!EHO6@M:Y !M\B\#+PM"9S\\ $I.04J 9P8P
M//_98#P@ BY!W\+?^0 ;?(CP0 9C CP0 9C0CP 9CA.N0 ,.(O#$OY
M #EZ"Q-3KD !&\< !.N0 -\H_ #\\ $Q.06#\("\ !&#J !.5O]T80 (
M#DAN_Y1(;O^62&[_F$AN_^A(;O_T2&[_^$AN_^Q(;O_P+RX #"\N AA @2
M3^\ *$IN_Y9G "&2&[_=$AY !F2&$ !6A0CTAY !F2$AN_Y@]0/_J80 .
MJ%"/2H!J)G !+P!.N0 3+!8CS N_^I(P"\ 80 ,1%B/< $O $ZY =M%B/
M2'D &9(< 8O $ZY !-3%"/< $O $ZY !,L%B/,"[_ZDC +P!A P,6(]"
MITZY =M%B/+R[_]$ZY 6S%B/("[_\.. (B[_[$ZY !.3"\ 3KD "%4
M6(\M0/_\2H!F+$AY !F:$AY !RXDZY :W%"/< $O $ZY !,L%B/< $O
M $ZY =M%B/+R[_["\N__ O+O_\80 #)$_O Q(;O]T2'D &9(80 $=E"/
M/4#_ZDC ,B[_Z$C!-"[_E$C"+P(O 2\N__@O+O_L+R[_\"\N__PO &$ (Y/
M[P <2H!G,# N_^I(P#(N_Y1(P2\!+R[_["\N__ O+O_\+P!A 2\3^\ %' !
M+P!.N0 3+!8CTAN_W1(;O^880 ,;%"/2H!J)G !+P!.N0 3+!8CS N_^I(
MP"\ 80 *]%B/< $O $ZY =M%B/,"[_ZDC +P!A K:6(]"ITZY =M%B/
M3EY.=4Y6__A(>0 9GM.N0 '!18CT*N__P@+O_\L*X &&P +1.N0 $Y@D
M/#_@ !V $ZY !.%&P6+RX %"\N ! O+@ ,80 E$_O Q@%"\N !0O+@ 0
M+RX #&$ 3Q/[P ,2FX 'F=&2J[__&= ,"X 'DC +T " N__PB+P 3KD
M $W$2H%F)# N I(P#(N ")(P2\!+RX %"\N ! O+@ ,+P!A .N3^\ %' "
M+P!P 2\ 3KD $S^4(]*@&<*80 %5G 3EY.=5*N__Q@ /]$< %.7DYU3E;_
MZ$CG PPL+@ 02&[_[$AN__ O+@ 0+RX #&$ 91/[P 0("X #%. (BX $$ZY
M !.3.. (&X "-' *$CC@2!,T<$J2" N PO0 04X M0 ,2J\ $&=<(B[_
M\$ZY !.3." T*[_["X 2D=J GX ( =(P+"N !!L+.. V<"YS60,($Q4C# 0
M4D P@&#P( 9(P"] !#C@)O ("\ $.. XX"9P&">( 8B!DC!XX&9P9O!8)!,
MWS# 3EY.=4Y6_^A(YP,,+"X $$AN_^Q(;O_P+RX $"\N QA #63^\ $" N
M Q3@"(N !!.N0 3DSC@"!N C1P"A(XX$@3-'!*D@@+@ ,+T $%. +4
M#$JO !!G7"(N__!.N0 3DS@@-"N_^PN $I':@)^ " '2,"PK@ 0;"SC@-G
MN<UD#"!,5(PP$%- ,(!@\" &2, O0 0XX";P" O !#C@.. F<!@GB &(@9(
MP>.!F<&;P6"03-\PP$Y>3G5.5O_X2.< #"IN @@+@ ,(BX $$ZY !.3..
M(&X "-' *$B[S&0&0E54C6#V3-\P $Y>3G5.5O_@0J[__$*N__A.N0 $Y@D
M/$ !V $ZY !'F"0\/_ '8 3KD $@P3KD $,L+4#__$ZY !"Q("!
M9\I.N0 $YA.N0 0RPM0/_X3KD !.8+T " N @O00 $3KD $*<)"\
M "8O 1.N0 1YA.N0 0N@M0/_T3KD !.8+T " N PO00 $3KD $*<
M)"\ "8O 1.N0 1YA.N0 0N@M0/_P("[_^$ZY !"Q"0\0' '8 3KD
M $>8+T " N__PO00 $3KD $+$+T "" O O00 ,(B\ !"0O @F+P ,
M3KD $;L3KD $+H(&X $"" (( B+O_T3KD $Y,(CP $ 3KD $W$(B[_
M\)* (&X %""!3EY.=4Y6__1A =<0F[__CU __PP+O_^#$ $&PV2, O0
MXX @0-'\ !R#G#_+P O+P $< <O "]( !!.N0 34Q/[P ,(&\ !#" 4F[_
M_F# 0F[__C N__X,0 0;"9(P.. (&X #-' (D#3_ 9H@P$4C XX B;@ (
MT\ PD5)N__Y@T"\N QP!B\ 3KD $U,4(\P+O_\3EY.=4Y6_@Y(YPD,2FX
M&F<*+7P &;H_^A@""U\ !FJ/_H2&[_\DAN__ O+@ 4+RX $"\N QA $P
M3^\ %$*N__0@+O_T#( 0; G.. (B[_].6!(&[_Z-'!,B[_\$C!-"[_
M\DC"DH(O0 0(! O00 @3KD $+$+T )" O " O00 H3KD $*<)B\ )"@O
M "@O0 L( ,O00 P(@0O0@ <)"\ +"8O #!.N0 1Y@O0 @("\ '"]! "1.
MN0 0IPD+P @)B\ )$ZY !(*$ZY !"Z"(O ! ]@!C(4J[_]& _UHP+O_F
M4D ]0/_F*FX #$*N__@@+O_XL*X $&Q:0J[__" N__RPK@ 4;"I)[O_(?@ P
M%3(45(RP06T$4D=@\B N__SC@$'N_CC1P#"'5(U2KO_\8,PP+@ *2, O+@ 4
M+R[_^$AN_C@O &$ !@I/[P 04J[_^&"<3-\PD$Y>3G5.5O_X2.< #"!N @P
M$")N !0R@")N !@RD"I(("X #"(N !!.N0 3DSC@"!-T< H2+O,9" P%2!N
M !0R$+!!;P(P@# 5(&X &#(0L$%L C" 5(U@W$S?, !.7DYU3E;__G "+P!P
M 2\ 3KD $S^4(]*@&<4< (O "\ 3KD $S^4(\=0/__8-A.7DYU3E;_^'
M(&X '""\ "' <R!N !@@@"!N ! @O 4 @;@ 4(+P #((&X ($)02'D
M &<K2'D &<H+RX )"U __Q.N0 .3A/[P ,< @;@ H,( @;@ L,(!P 2U
M__@@+O_XL*X "&P >CE@"!N S1P")0$!$, M9@ !U" N__CE@"!N S1
MP")04HD0$4B 2, B/ ( $@0 AK &@L+L8"&;P3OL8!@ $E@ &$
M :6 7P !88 !4@ 'A@ %* 66 2 !Y8 !& $1@
M #@ 9& -@ !&8 I@ &9@ "> 56 '( !U8 :@
M $Y@ ^ ;F #8 !38 "@ '-@ "("[_^.6 (&X #-' (E!4
MB2\)3KD $JT6(\@;@ <((!@ #X("[_^.6 (&X #-' (E!4B2\)3KD $JT
M6(\@;@ 8((!@ #4("[_^.6 (&X #-' (E!4B2\)3KD $J(6(\@;@ @,(!@
M "P("[_^.6 (&X #-' (E!4B2\)2'D &<T+RX )$ZY Y.$_O Q@ "&
M("[_^.6 (&X #-' (E!4B2\)2'D &<W+RX )$ZY Y.$_O P@;@ H,+P
M 6!4("[_^.6 (&X #-' (E!4B2\)3KD $J(6(\@;@ 4((!@,B N__CE@"!N
M S1P")05(DO"4ZY !*B%B/(&X $"" 8! @;@ L,+P 6 &< $M0/_\4J[_
M^& _A @+@ ((B[_^+* 9@13@&8&< $M0/_\2J[__&< @I(>0 9SU(>0
M9SI(>0 <N).N0 &MQ/[P ,2'D &=72'D &=42'D '+B3KD !K<3^\
M#$AY !G<4AY !G;DAY !RXDZY :W$_O Q(>0 9YA(>0 9Y5(>0
M<N).N0 &MQ/[P ,2'D &>_2'D &>\2'D '+B3KD !K<3^\ #$AY !G
MYDAY !GXTAY !RXDZY :W$_O Q(>0 :!%(>0 : Y(>0 <N).N0
M&MQ/[P ,2'D &@Z2'D &@W2'D '+B3KD !K<3^\ #$AY !H94AY !H
M8DAY !RXDZY :W$_O Q(>0 :)!(>0 :(U(>0 <N).N0 &MQ/[P ,
M2'D &B[2'D &BX2'D '+B3KD !K<3^\ #$AY !HYTAY !HY$AY !R
MXDZY :W$_O Q(>0 :1-(>0 :1!(>0 <N).N0 &MQ/[P ,2'D &DA
M2'D &D>2'D '+B3KD !K<3^\ #$AY !I,TAY !I,$AY !RXDZY :
MW$_O Q(>0 :5E(>0 :59(>0 <N).N0 &MQ/[P ,2'D &EM2'D &EJ
M2'D '+B3KD !K<3^\ #$AY !IEDAY !RXDZY :W%"/< $O $ZY !,
ML%B/< $O $ZY =M%B/3EY.=4Y6 P+@ *2, O $ZY !:DEB/0J=P 2\
M<!4O $ZY !-3$_O Q(>0 <@YP!B\ 3KD $U,4(\P+@ *2, O $ZY !/
MA%B/3KD %U(3EY.=4Y6_VQ.N0 7 !"KO]P#*X *_W!L$B N_W#C@%*N
M_W ]O !".9@Y#U\ +_^DAN_W1(;O_^2&[_YDZY !/&$_O PP+O_^2, O
M $ZY !:OEB/< O "\ <!4O $ZY !-3$_O PP+O_^2, O $ZY !/J%B/
M,"[__DC <@$O 2\ 3KD %;44(\P+O_^3EY.=4Y6__Q(YP$$*FX #"XN ! ]
M1__\+BX %#U'__X@!R('4T$N 3U'__Y*0&<\,"X "DC (@=(P>.!($W1P3(0
M2,$O 2\ 3KD %<T4(\P+@ *2,!(;O_\<@$O 2\ 3KD %"F3^\ #&"T3-\@
M@$Y>3G5.5O_R< (O $ZY !-3%B/0F[_\B\\ "! 2\N @M0/_\3KD "F>
M4(\M0/_X2H!J("\N A(>0 :;!(>0 <N).N0 &MQ/[P ,</].7DYU< (O
M $AN__(O+O_X3KD "U<3^\ #'(@+P$O+@ ,+R[_^"U __1.N0 +5Q/[P ,
MT:[_]"\\ !] "\N__PO+O_X3KD "U<3^\ #"(N__30@2U __0,@ ?2)G
M*B\ 2'D &G%2'D '+B3KD !K<3^\ #"\N__A.N0 +_18CW#_3EY.=2\N
M__A.N0 +_18CW 3EY.=4Y6__(O/ @ O+@ (3KD "F>4(\M0/_\2H!J
M("\N A(>0 :>Y(>0 <N).N0 &MQ/[P ,</].7DYU< (O $ZY !-3%B/
M<@(O 4AN__8O+O_\+4#_\DZY L+D_O QR("\!+RX #"\N__PM0/_X3KD
M "PN3^\ #-&N__@O/ ?0 O+O_R+R[__$ZY L+D_O PB+O_XT($M0/_X
M#( 'TB9RHO $AY !J TAY !RXDZY :W$_O PO+O_\3KD "_T6(]P
M_TY>3G4O+O_\3KD "_T6(]P $Y>3G5.5O_N0KD '(R< $CP <BX,N0
M " '(N; B"!N @0$$B 2,!2@") T_P &SF$!$( #9P92K@ (8-X@
M;@ ($!!* &=:(#D '(NY8!2N0 <BX@0-'\ !R,B"N @@;@ ($!!(@$C
M2H!G&%* (D#3_ ;.80$0@ -F!E*N A@VB!N @0$'( $(%2K@ ('4#_
M_TH 9@#_<$YQ2'D '*R2'D &HJ2'D &7P3KD !YN3^\ #!(Y !F$"U
M__8, 0 ^9R)(>0 <LI(>0 :BQ(>0 9A!.N0 'FY/[P ,+4#_\F @2'D
M '+*2'D &HN2'D &813KD !YN3^\ #"U __)(>0 <N)(>0 :C%(>0
M:C!.N0 'FY/[P ,+4#_[DJ 9@QP 2\ 3KD #!T6(]*KO_V9AXO+O_N2'D
M &HS3KD !J"4(]P 2\ 3KD !VT6(\O.0 ;,Y.N0 )M!8CR\ +R[_]DZY
M =9%"/(&[_]A H ! " #W$4 $$JN__)F'B\N_^Y(>0 :DI.N0 &H)0
MCW !+P!.N0 ';18CTAY !R,B\Y !R+DZY !S%"/0J=.N0 ';18CTY>
M3G4 $Y6_\A(;O_D2&[_Z$AN__1"IV$ ]9/[P 02&[_V"\N_^1(;O_H2&[_
M]&$ !3A/[P 0< O "\ 2&[_V' "+P!A .H3^\ $" N_^!.N0 0H M0/_0
M+4'_U"0\0/ '8 3KD $;L+4#_R" N_]PM0?_,3KD $* +4#_T"U!_]0D
M+O_()B[_S$ZY !(*"0\0/ '8 3KD $;L+4#_R" N_]@M0?_,3KD $*
M+4#_T"U!_]0D+O_()B[_S$ZY !(*"0\0/ '8 3KD $;L3EY.=4Y6_]1(
M;O_P2&[_]$*G< $O &$ OY/[P 02&[_Y"\N__!(;O_T+RX "&$ !&!/[P 0
M("[_Y"!N @@@%B(("[_Z"" 6(@@+O_L(( @+O_L3KD $* +4#_W"U!_^ D
M/$#P !V $ZY !&["U _]0@+O_H+4'_V$ZY !"@"U _]PM0?_@)"[_U"8N
M_]A.N0 2"@D/$#P !V $ZY !&["U _]0@+O_D+4'_V$ZY !"@"U _]PM
M0?_@)"[_U"8N_]A.N0 2"@D/$#P !V $ZY !&[$Y>3G5.5O_42&[_Y$AN
M_^A(;O_T0J=A (B3^\ $$AN_]@O+O_D2&[_Z$AN__1A .$3^\ $' +P O
M $AN_]AP B\ 80 !]$_O ! @+O_<<A M0/_4XZ" KO_@ H!_____3EY.=4Y6
M_^!(;O_P2&[_]$*G< $O &$ <!/[P 02&[_Y"\N__!(;O_T+RX "&$ R)/
M[P 0(&X """N_^18B" N_^@@@%B(("[_["" ("[_Z'(0+4#_X..@@*[_[ *
M?____TY>3G5.5O_42&[_Y$AN_^A(;O_T0J=A %<3^\ $$AN_]@O+O_D2&[_
MZ$AN__1A *^3^\ $' +P O $AN_]AP B\ 80 !+D_O ! @+O_<<A M0/_4
MXZ" KO_@3EY.=4Y6_^!(;O_P2&[_]$*G< $O &$ 0!/[P 02&[_Y"\N__!(
M;O_T+RX "&$ F)/[P 0(&X """N_^18B" N_^@@@%B(("[_["" ("[_Z'(0
M+4#_X..@@*[_[$Y>3G5.5O_T<! B+@ (X*$"@0 __\M0?_T("X " * #_
M_RU __@M? ,P[__' +P O "\ < 4O &$ 'Q/[P 0< O "\ 2&[_]' "
M+P!A !F3^\ $$Y>3G5.5@ < O "\ +P!P!2\ 80 2D_O !!P "\ +P O
M+@ (< 0O &$ #1/[P 03EY.=4Y6 @;@ (T/P #")N C2_ 8+PDO""\N
M AP R\ 80A/[P 03EY.=4Y6 !(YP @$"X "TB 2, ,@ 9D %,Y8!.
M^P@"8 %F %Q@ "L8 @& ,1@ $((&X #""Y !J;EB((+D &IR
M6(@@N0 :G8B;@ 0(KD &IZ6(DBN0 :GY8B2*Y !J@B1N !0DN0 :H8M
M2 ,+4D $& /(@;@ 0(+D &IZ6(@@N0 :GY8B""Y !J@B)N !0BN0
M:H8M2 08 QB!N ! CT :GI8B"/0 !J?EB((] &J"(FX %"/1 !J
MABU( ! @;@ ,(] &IN6(@CT :G)8B"/0 !J=BU( Q@?"/Y !J;@
M:F(C^0 :G( &IF(_D &IV !J:B!N PCT :FY8B"/0 !J<EB((]
M &IV0_D &IB( E,WP0 3EY.=7 %(\ &IZ(_P -[L !J?B/\ #F;0
M:H)P"R/ !JAF .2'D &J*3KD !P46(],WP0 3EY.=4Y6__ @;@ ,("@
M"")N @B*0 (3KD $Z<T*X $'00+4#_].2@ H /__)"[_] *" #__RU
M__ @* $3KD $Z<T*[_\'80+4#_^.:@ H /__)B[_^ *# #__RU __ @
M$$ZY !.G-"N__ "@ /__\M0/_\("@ ""(I 1.N0 3IS0@W80+4#_^.:@
M H /__)B[_^ *# #__RU __ @* $3KD $Z<(B[__-* TJ[_\ *! #_
M_R 1+4'__"(H A.N0 3IPB+O_\TH "@0 __\"@0 __\@;@ 4(($A0P $
M(4( "$Y>3G5.5O_\(&X "! 02(!(P%*N @M0/_\2H!G.B(Y !RTE.!(\$
M '+22H%K%"!Y !RRE*Y !RRA" 2(!(P&#$2'D '+*+R[__$ZY C*E"/
M8+ @.0 <M)3@"/ !RTDJ :Q8@>0 <LI2N0 <LIP"A" 2(!(P& 22'D
M '+*< HO $ZY C*E"/3EY.=4Y6__A"KO_X(&X "! 02(!(P%*N @M0/_\
M2H!G-"!N PB* (4X$A00 (2H%K#")04I 2@$B 2,!@$"\N PO+O_\3KD
M ",J4(\M0/_X8+8@+O_X3EY.=4Y6_NQ(YP @0>X $"U(_^P@;@ ,$!!* &<
M 19(@$C 4H@M0/_X+4@ # R )68 ,80$ P "5F/$B 2,!2K@ ,(&X
M""(H A3@2%! @M0/_X2H%K#")04I 2@$B 2,!@JB\N @O+O_X3KD ",J
M4(]@F$AN__1(;O_L2&[^["\N Q.N0 .?1/[P 0+4#_\$J 9P#_=D*N__PM
M0 ,("[__+"N__1L /]B(&X ""(H A3@2%! A*@6L4(E!2D$7N_NS5P! 2
M$H!(@$C 8!Q![O[LT>[__! 02(!(P"\N @O $ZY C*E"/4J[__&"L(&X
M"" H A3@"% A*@&L2(E!2D" N__@2@$B 2,!@ /[V+RX ""\N__A.N0
M(RI0CV _N),WP0 3EY.=4Y6_NQ![@ ,+4C_["!N @0$$H 9P !-$B 2,!2
MB"U __@M2 (#( E9@ VA 0# )69&2(!(P%*N @B.0 <M)3@2/!
M !RTBU __A*@6L4('D '+*4KD '+*$(!(@$C 8*)(>0 <LHO+O_X3KD
M ",J4(]@CDAN__1(;O_L2&[^["\N A.N0 .?1/[P 0+4#_\$J 9P#_;$*N
M__PM0 (("[__+"N__1L /]8(CD '+24X$CP0 <M)*@6L<('D '+*4KD
M '+*0^[^[-/ $!$0@$B 2,!@'D'N_NS1[O_\$!!(@$C 2'D '+*+P!.N0
M(RI0CU*N__Q@HB Y !RTE. (\ '+22H!K&B!Y !RRE*Y !RRB N__@0
M@$B 2,!@ /[:2'D '+*+R[_^$ZY C*E"/8 #^Q$Y>3G4 $Y6 O+@ (
M3KD "#H6(]*K@ ,9@9P $Y>3G4@;@ ($"@ $ ( /L10 0 "!% ! @
M;@ ,(FX ""*((T@ #"-Y !LS@ 2< !.7DYU3E;__$*N__P@+O_\#( 4
M;"!R&$ZY !.3"! T?P '*R+PA.N0 ('I8CU*N__Q@U$*N__P@+O_\L+D
M &WJ;! O $ZY O]%B/4J[__&#D+RX #"\N A.N0 ,'10CTY>3G5.5O_X
M+7P '*R__P@;O_\L?P '229!(0* 02@!G"@:N &/_\8.(@;O_\L?P
M '229@9P $Y>3G4O+O_\+RX #"\N AA"$_O Q.7DYU3E;_ZB!N !!** 0
M9P@O"&$ ?I8CRUY !M[O_T+6X #/_P(&[_\! H %(@$C #( !B9PX,
M@ &%F$D*N__1@""U\ " /_T4J[_\"!N__ 0* !# *U?!1 %(@4C!
M(&X #! 02(!(P!U!_^\,@ '=G #0#( !R9P @@R 868 10@
M+O_T ( (+T $HN_^]G!'("8 )R 2 O " @0" ! "\\ !I"\
M+RX "$ZY IGD_O PM0/_X4H!F!G 3EY.=7 "+P!"IR\N__A.N0 +R!/
M[P ,2B[_[V<((#P " 8 )P BU __Q@ "D2B[_[V<$< )@ G (B[_](*
M+P$O+@ (3KD "F>4(\M0/_X4H!F!G 3EY.=4HN_^]G"" \ @& "< $M
M0/_\8%Y*+O_O9P1P F "< $B+O_T@H @0 0 @0 @ O/ :0O 2\N
M A.N0 *9Y/[P ,+4#_^%* 9@9P $Y>3G5*+O_O9P@@/ (!@ G "+4#_
M_& &< !.7DYU("[_^'(&3KD $Y,($#1_ =A)** !9Q@([@ "__\@;@ 0
MT/P %B)N ! C2 ,8 @@;@ 00J@ #" N__@@;@ 0$4 $2"H QP "% @A
M0 $("[__!% ! @"$Y>3G5.5@ (&X "! H ! ( !9PXO"'#_+P!.N0
M(RI0CR!N @0* 0 @ #$H 9A9*J 29Q O* 2+R@ #$ZY GV%"/D<@B
M;@ ((T@ #"-( !)"*0 0$"D $4B 2, O $ZY O]%B/3EY.=4Y6 @;@ (
M$"@ $ @ )G!G 3EY.=2!N A*J 29QH0* 0" V80+R@ $B\H Q.
MN0 )]A0CR!N C0_ 6(FX ""-( P0*0 0 !!- !!P "- !(C0 (
M(T !$Y>3G4 $Y6__A*K@ (9@9P $Y>3G4@+@ (6( O "U A.N0 )M!8
MCRU __Q*@&8&< !.7DYU(&[__""N @M2/_X6(@@"$Y>3G5.5O_T("X ""(N
M Q.N0 3IPO "U __QAH%B/+4#_]$J 9@9P $Y>3G5"IR\N__PO+O_T3KD
M $V@3^\ #" N__1.7DYU3E;__"!N A9B" ((D O$2\ +4#__"U A.N0
M)]A0CTY>3G4 $Y6__@@;@ ($"@ $ ( #!* &<&</].7DYU(&X "$JH !)F
M'! H ! ( "9A(O"&$ TY8CTJ 9P9P_TY>3G4@;@ ($"@ $ @ )G"' !
M+4#_^& J(&X "! H ! ( !9P9P_TY>3G4@;@ ($"@ $ $10 0+6@
M$O_X(&X "! H !%(@$C +R[_^"\H PO $ZY L+D_O PM0/_\2H!J$"!N
M @0* 0 (!% !!*KO_\9A @;@ ($"@ $ ! 10 02J[__&\.(&X
M""%N__P !""H P@;@ ($"@ $ ( #!* &<&</].7DYU(&X "" H 13@"%
M 1*@&L*(E!2D' $!%@"B\N AA /[F6(].7DYU3E;_\BUN C_]B!N P0
M* 0 @ ,$H 9P9P_TY>3G4@;@ ,2J@ $F9R$"@ $ @ )F: RN_____P (
M9@9P $Y>3G4O+@ ,80 "%%B/2H!G!G#_3EY.=2!N P0* 0 A% ! @
M* 2(4 "%. (4 "$J :Q B4%*0("X "!* 2(!(P& .+RX #"\N AA /]L
M4(].7DYU(&X #! H ! ( "9TH,KO____\ "&8&< !.7DYU("X "!U __\@
M;@ ,$"@ $4B 2,!R 2\!2&[__R\ +4'_\DZY M7$_O QR_RU! @M0/_Z
M8 PB!N P0* 0" &<&</].7DYU(&X #! H ! "$4 $ RN____
M_P (9SA*J (;S(@* (4X A0 (2H!K$")04I @+@ ($H!(@$C 8 XO+@ ,
M+RX "&$ _K!0CW#_+4 "")N P@4;'I QG1$JI AJ""UI !+_\F 0(&X
M#" H !*0J (+4#_\B!N P0* 12(!(P"\N__(O* ,+P!.N0 +5Q/[P ,
M+4#_^F *< M0/_Z+4#_\@RN_______Z9A(@;@ ,$"@ $ " 10 08!H@
M+O_ZL*[_\F<0(&X #! H ! 0$4 $"!N P@* 2(4 "")H P@B2 N
M @,@/____]G*"(H A3@2%! A*@6L,(E!2D!* 2(!(P& .+RX #"\N AA
M /W44(\@;@ ,$"@ $ ( #!* &<&</].7DYU#*[_______9F!G 3EY.=2 N
M__9.7DYU3E8 "!N A*J 29Q 0* 0" V8&< !.7DYU+SD &S.3KD
M ";06(\@;@ ((( A0 ,2H!F#G ,(\ &S*</].7DYU(&X ""%Y !LS@ 2
M$"@ $ ( /,10 0< A0 ((4 !$Y>3G4 "/Y !LT@ ;-H@.0 ;-8C
MP ;-Y*N0 ;-9F!'#_3G61R")Y !LVB*((WD &S> 0@"$YU0J=A!%B/
M3G5.5O_X2JX "&H&</].7DYUD<@CR ;-(CR ;-8M? (#_^"\\ $
M $ZY PC%B/+4#__$J 9@9P_TY>3G4C[O_\ !LTB/N__@ &S6("X "%.
M+4 "$J 9QXO/ ! !.N0 ,(Q8CTJ 9PP@+O_XT;D &S68-1A /] < !.
M7DYU3E;__" Y !LWN> 3EY.=4Y6__P@+@ (+P M0/_\8098CTY>3G5.5O_P
M2JX "&X&< !.7DYU("X "%Z <@A.N0 3<0M? ;-K_^"!N__@M4/_\+4#_
M\$JN__QG5B N__ @;O_\(B@ !+* ;3:R@&8((F[_^"*08!8@;O_\("@ !)"N
M__ A0 $YX#1KO_\("[_\)&Y !LWB!N__P@"$Y>3G4M;O_\__@@;O_\+5#_
M_&"D("[_\.> +P!.N0 ,(Q8CRU __1*@&=&2KD &S69A CP ;-(C[O_P
M !LUF F(#D &S6YX @>0 ;-+1P")N__0M2/_\L\AF"B N__#1N0 ;-8@
M+O_T3EY.=7 3EY.=4Y6__P@+@ ,+P O+@ (+4#__&$&4(].7DYU3E;_Y$JN
M QN!G#_3EY.=2!N @@+@ ,7H!R"$ZY !-Q"U _^3G@"U(_^S1P" N_^31
MN0 ;-XM? ;-K_]")N__0M4?_\+4C_Z$JN__QG #H(&[__" H 3G@-'
M+4C_^"!N__RQ[O_H8Q@B;O_L(H@C;O_D 0@;O_T((EP $Y>3G4@;O_\L>[_
MZ&8>(F[_["*0("[_Y-"H 0C0 $(&[_]"")< !.7DYU(&[_[+'N__AD$" N
M_^21N0 ;-YP_TY>3G4@;O_LL>[_^&90(&[__$J09QP@;O_H(F[__+'18Q @
M+O_DD;D &S></].7DYU("[_Y"!N__S1J $2I!G%B!N_^@B;O_\L=%F"B H
M 31J0 $(I!P $Y>3G4M;O_\__0M;O_X__ @;O_\+5#__& _Q0@;O_T(*[_
M[)'((F[_["*((V[_Y $( A.7DYU3E8 $JN AK)" N BPN0 ;>IL&'(&
M3KD $Y,($#1_ =A(0$ @ =F#G )(\ &S*< !.7DYU("X "'(&3KD
M $Y,($#1_ =A(@"$Y>3G5.5O_P0J[__" N__RPN0 ;>IL''(&3KD $Y,
M($#1_ =A(0$$H 9P92KO_\8-@@+O_\L+D &WJ9@YP&"/ !LRG#_3EY.
M=2 N__QR!DZY !.3"! T?P '82(#D &SB H ( (BX #+. +4 #"U(
M__ ( /9P1P$& "< @ ( @;O_P$( @+@ , H ##( "9SX,
M@ %G$DJ 9E8@;O_P$! ! $(!@7 @N , #V<$< A@ G ( @
M(&[_\!(02(%(P8* $(%@. @N , #V<$< A@ G ( !@(&[_\!(02(%(
MP8* $(%@%"!N__!"$' 6(\ &S*</].7DYU< @;O_P$4 2!N @0$$H
M9A8@;O_P$7P 0 !0J@ B N__Q.7DYU0J[_^" N__@,@ !AL1G()3KD
M $Y,($#1_ :J)2B"\(+RX "$ZY !.U%"/2H!F'" N__AR"4ZY !.3"!
MT?P &JB(F[_\!-0 %2KO_X8*X(+@ ! YG#"\N A.N0 ,_98CP@N ,
M#V<$< )@"B N P"@ ,O "\N A.N0 ,210CR!N__ A0 "2KD &9
M9T @+@ , H , 2H!G%D*G+RX "$ZY R\%"/(&[_\"% )*N0 9D!G
M2G "(\ &S*(&[_\$(0</].7DYU("X # * % R % &8D(&[_\"\H
M ).N0 ,V!8CW 1(\ &S*(&[_\$(0</].7DYU("[__$Y>3G5.5@ ("X
M# * " " # 2(N P"@?__?_\O 2\ +RX "&$ _7I/[P ,3EY.=4Y6
M_]Y*K@ 0:@YP%B/ !LRG#_3EY.=2\N AA /S\6(\M0/_B2H!F!G#_3EY.
M=2!N_^(0* !2(!(P R !60 .3E@$[[" )@ 28 #F I@ #.
M8 B\N ! O+@ ,(&[_XB\H ).N0 -#1/[P ,+4#_^DJY !F0&<*2H!F
M!G#_3EY.=2!N_^(0$ @ 1G"" N__I.7DYU< M0/_V+4#_\B N__:PKO_Z
M;%H@;@ ,T<!2KO_V$! =0/__2(!(P R #6?:#( :9B0@+O_VD*[_
M^E. <@$O 2\ +RX "&$ @!/[P ,("[_\DY>3G4@;@ ,T>[_\E*N__(0KO__
M8)Q*KO_R9@A*KO_Z9@#_0B N__).7DYU</].7DYU3E;_XDJN !!J#G 6(\
M &S*</].7DYU+RX "&$ ^\Y8CRU _^9*@&8&</].7DYU(&[_YA H %(@$C
M#( %9 !<N6 3OL( F !)@ .8 "F 9@ %0(&[_YA 0"
M V<2< (O $*G+RX "&$ 4Q/[P ,(&[_YA 0" !&<P+RX $"\N PO* "
M3KD #1V3^\ #"U __9*N0 9D!G!G#_3EY.=2 N__9.7DYU0B[__G +4#_
M]BU __(M0/_N("[_]K"N !!L "0(&X #-' 4J[_]A 0'4#__PP IF$@PN
M W__F<*'7P #?__4Z[_]B!N__+1_ =)(@+O_R4H 2+O__$($M0/_R'4'_
M_@R @&VF+P!(>0 =)(@;O_F+R@ DZY T=D_O PM0/_JL*[_\F<&
M< !.7DYU2KD &9 9P9P_TY>3G5"KO_R8 #_:$JN__)G.B\N__)(>0 =)(@
M;O_F+R@ DZY T=D_O PM0/_JL*[_\F<&< !.7DYU2KD &9 9P9P_TY>
M3G4@+O_V3EY.=2 N !!.7DYU<!,CP ;,IP_TY>3G5.5O_N+RX "&$ ^AY8
MCRU __)*@&8&</].7DYU(&[_\A H %* &<&< !.7DYU+RX $"\N P@;O_R
M+R@ DZY TO$_O PM0/_Z2KD &9 9PYP%B/ !LRG#_3EY.=0RN
M @ 09F!*KO_Z9UH@;O_R$! ( $9DX@+O_Z4X M0/_V2J[_]FLT0J<O+O_V
M+RX "&$ _V9/[P ,2H!G'G !+P!(;O__+RX "&$ _%Q/[P ,2H!F!E.N__9@
MQB N__92@$Y>3G4@+O_Z3EY.=4Y6__0O+@ (80#Y2EB/+4#_^$J 9@9P_TY>
M3G5"KO_\(&[_^"\H ).N0 ,V!8CTJY !F0&<&</\M0/_\(&[_^$(0("[_
M_$Y>3G5.5O_<+RX "$ZY S]EB/2KD &9 9P9P_TY>3G5P $Y>3G5.5@
M+RX "&'26(].7DYU3E8 "\N PO+@ (3KD '$4(].7DYU3E;_]" N BP
MN0 9CAO!G 3EY.=2!Y !F-" N C1N0 9C21N0 9C@@"$Y>3G5.5O_\
M+RX "&'$6(\M0/_\2H!G!$Y>3G4@?/____\@"$Y>3G5.5O_X(#D &8TD+D
M &8PT;D &8X(_D &8P !F-)'((\@ &S:(\@ &S2(\@ &S>(\@ &S6
M( A.7DYU !.5O_T80 &3 *N P ,+RX ""\Y !KEBU __AA ;\4(\@
M;@ ($A M0/_\2@%F!G $+4#__" N__P,@ 5D "<XX!.^P@"8 A@'F X
M8%)@8$JN QF %@0?H$!B)N__@C2 $8 !- RN 0 ,9@ !1$'Z! @B
M;O_X(T@ !& 1@,K@ $ #&8 2A!^@0L(F[_^"-( 1@ #\0?H%E")N
M__@C2 $8 [ RN 0 ,9A!!^@40(F[_^"-( 1@ #20?H$,B)N__@C
M2 $8 P@RN 0 ,9BX@+@ (<A O0 XJ!"IR\O 0O '(#+P%R/"\!
M3KD $QH3^\ %"/ !F0&!H("X "'(0+T .*@<@(O 2\O 0O '(#+P%R
M/2\!3KD $QH3^\ %"/ !F0$J :C8,K@ ( #&8L("X "'(0+T .*@
M0J<O+P $+P!R R\!<CPO 4ZY !,:$_O !0CP 9D!*N0 9D!K-"!N__@A
M>0 9D "$'Z F@B;O_X(T@ !"!N__@@N0 =@8CR =@9"N0 9D @"$Y>
M3G4O+O_X80 $U%B/< !.7DYU3E;_^&$ !( B+@ (=! O00 Y*%"IR\O 0O
M 70#+P)T/"\"+4#__$ZY !,:$_O !0CP 9D!*@&H0+R[__&$ !(A8CW
M3EY.=2!N__PA>0 9D "$/Z =@A20 $(+D '8&(\@ '8&3EY.=4Y6__Q(
MYP @+7D '8&__Q*K@ (9@IP $S?! !.7DYU(&[__+'N AF#"!N @CT
M=@9@'B!N__P@$")N BSP&<&+4#__&#L(&X "")N__PBD$'Z 6PD;@ ((FH
M!+/(9APO*@ (< $O ' ^+P!.N0 3&A/[P ,(\ &9 2KD &9 5\!$ $B
M2,!,WP0 3EY.=4Y6__P@+@ (<A O0 XJ O+P +P!R B\!<D$O 4ZY !,
M:$_O ! CP 9D!*@%?!1 %(@4C!( %.7DYU3E8 $JN AF&D*G+RX $"\N
M PO+@ (80 !VD_O !!.7DYU(FX ""!I 1"IR\N ! O+@ ,+PE.D$_O !!.
M7DYU3E8 $JN AF'' !+P O+@ 0+RX #"\N AA )D3^\ $$Y>3G4B;@ (
M(&D !' !+P O+@ 0+RX #"\)3I!/[P 03EY.=4Y6 !(YP @2JX "&8*< !,
MWP0 3EY.=4'Z $PD;@ ((FH !+/(9PIP $S?! !.7DYU<! B+@ ,X*$O+@ 0
M(&X ""\H @O+@ ,+P%P!"\ <$(O $ZY !,:$_O !A,WP0 3EY.=4Y6__!*
MK@ 49P1P0& "<#]R$"0N !#BHB(N QV$"]! 3FH2\O 0O 2\N ! O B!N
M @O* (=@4O R\ +4#__$ZY !,:$_O !PM0/_X2H!J#"/ !F0' 3EY.
M=2 N__A.7DYU3E;__D*G< ,O $ZY !,:%"/(&X #!" < %.7DYU3E;__$*N
M__P@+O_\L*X $&PF(&X #-' $!!(@$C +P!R 2\!<@0O 4ZY !,:$_O Q2
MKO_\8- @+@ 03EY.=4Y6__Q"KO_\("[__+"N !!L)B!N S1P! 02(!(P"\
M<@$O 7(%+P%.N0 3&A/[P ,4J[__�("X $$Y>3G5.5O]V("X $ R
M?VP$4X!@ G!]'4#_@$'N_X @"'(0XJ O""\ <@(O 7(*+P%.N0 3&A/[P 0
M< HO ' !+P!P B\ 3KD $QH3^\ #! N_X%(@$C <@(M0?]X+4#_?" N_WQ4
M@"(N_WBR@&P^$#88@!U _W<, -9@8=? *_W<,+@ :_W=F#" N_WA5@$2
M3EY.=2 N_WA5@"!N S1P!"N_W=2KO]X8+0@+O]\#( !]; H@;@ ,T< 0
MO *("[_?%* 3EY.=4Y6__I"KO_\("[__+"N !!L4"!N S1P! 0'4#_^TB
M2, ,@ IF%G -+P!P 2\ < (O $ZY !,:$_O P0+O_[2(!(P"\ <@$O
M 7("+P%.N0 3&A/[P ,4J[__&"F("X $$Y>3G5.5@ 2JX %&<&("X $& "
M< !.7DYU3E;__$*N__P@+O_\#( 3;BIR#$ZY !.3"! T?P '462J@
M!&8.($#1_ =18@"$Y>3G52KO_\8,IP $Y>3G5.5@ (&X "$*H 1.7DYU
M2KD '8&9PXO.0 =@9A /N&6(]@ZDYU3E8 ! N L, !A;1(, !Z;@P$
M !A!@ 04Y>3G40+@ +3EY.=4Y6__X0+@ +2(!(P"\ 8<A8CQ(N ](@4C!
M+P$?0 $8;98CQ(O "R &8$< %@ G 3EY.=4Y6_^IP 2U __QP_RU __AP
M "U __ M0/_T(&X #-'N__!*$&<&4J[_\&#N0J[_[" N_^P@;@ (T<!*$&<
M )8@;@ (T< 0$!U _^M*KO_\9U(, ]9P8, L9A8@+O_P4X B+O_XLH!F
M"" N__1.7DYU("[_^%* $B[_ZTB!2,$@;@ ,T< 4$$B"2,(O B\!+4#_^&$
M_S)0CTJ 9@1"KO_\$"[_ZPP "QG!@P #UF#' !+4#__'#_+4#_^ PN "S_
MZV8$4J[_]%*N_^Q@ /]>2J[__&<6("[_\%. (B[_^+* 9@@@+O_T3EY.=7#_
M3EY.=0 3E;^Z$'N ! M2/_H+6X "/_L(&X #! 02@!G ",2(!(P%*(+4#_
M^"U( P,@ "5F8A 0# )680(FX "!* 4JX #%*N A@QDAN__1(;O_H
M2&[^Z"\N Q.N0 .?1/[P 0+4#_\$J 9Z1"KO_\+4 #" N__RPKO_T;))!
M[O[HT< B;@ ($I!2K@ (4J[__&#@("[_^"!N @0@%*N A@ /]L(&X "$(0
M( B0KO_L+4#_]$Y>3G5.5O^T2.< (' +4#_Z'+_+4'_Y'(@+4'_X"!N @2
M$"U __ M0/_<+4#_[ P! "UF"G !4JX ""U __ @;@ ($!!(@$C +T !%*
M($#1_ ;.80$ @ )G: RO , $9@9P,"U _^ @;@ ($!!(@$C 4JX
M" * #RU _]P@;@ ($!!(@$C 4H B0-/\ !LYA 1" F<D("[_W'(*
M3KD $Y,$A!(@4C!4JX " *! #]"!+4#_W&# (&X "! 0# +F9(4JX
M"$*N_^0@;@ ($!!(@$C 4H B0-/\ !LYA 1" F<D("[_Y'(*3KD $Y,
M$A!(@4C!4JX " *! #]"!+4#_Y&# (&X "! 0# ;&8*< %2K@ (+4#_
M[$*N_] @;@ ($!!(@$C <D@$@0 AK *(L+L8"&;P3OL8!@ &9@ )N
M 96 F !G8 "4 &-@ (J <V =( !O8 !6 'A@
M #< =6 #@ !D8 DJN_^QG#B)N ! @45B1+5#_S& ,(FX $"!1
M6)$M4/_,2J[_S&HH< $M0/_H8"!*KO_L9PXB;@ 0(%%8D2U0_\Q@#")N ! @
M45B1+5#_S' ++4#__" N_\QR"DZY !-Q"U!__A*@6H$1*[_^%.N__P@+O_X
M!H P(B[__!V &+@@+O_,<@I.N0 3<0M0/_,2J[_S&:\#*X !_^AF
M#E.N__P@+O_\';P +0BX0>[_N" N__S1P'(+DH M0?_T+4C_T& 79*KO_L
M9PXB;@ 0(%%8D2U0_\Q@#")N ! @45B1+5#_S' (+4#__%.N__P@+O_, H
M /($#1_ :YH@+O_\'9 (N" N_\SH@ * #____RU _\Q*KO_,9LQ![O^X
M("[__-' <@B2@"U!__0M2/_08 ! DJN_^QG#B)N ! @45B1+5#_S& ,(FX
M$"!16)$M4/_,< LM0/_\4Z[__" N_\P"@ <&@ # B+O_\'8 8N" N
M_\SF@ * '____RU _\Q*KO_,9LY![O^X("[__-' <@N2@"U!__0M2/_08
MD RN_______D9@@M? ,C_Y")N ! @45B1(E M2?_0L_P 9@@M?
M:ZK_T$*N__0@+O_TL*[_Y&Q0(&[_T-' $!!* &=$4J[_]&#D0>[_N' !+4#_
M]"1N ! B4EB2(!$=0/^X+4C_T& @< (M0/_48!A"KO_48!)P 2U _]1@"G
M3-\$ $Y>3G5*KO_09P TDJN_]QG"B N_]RPKO_T; 8M;O_T_]P@+O_TD:[_
MW$*N__Q*KO_P9T@@+O_T4X M0/_T2H!K&"!N S1[O_\4J[__")N_] 0D5*N
M_]!@VB N_]Q3@"U _]Q*@&M<(&X #-'N__Q2KO_\("[_X!" 8-X@+O_<4X M
M0/_<2H!K%"!N S1[O_\4J[__" N_^ 0@&#>("[_]%. +4#_]$J :Q@@;@ ,
MT>[__%*N__PB;O_0$)%2KO_08-H@;@ 4(*[__"!N A2B" (3-\$ $Y>3G4,
MKO______Y&8&< 8M0/_D#*X 4_^1M!' 38 0@+O_D+4#_]%* #*X !
M_]17P40!2(%(P4AN_[A(;O_H2&[_V"\!+P @;@ 0+Q!.N0 0U!/[P 8(&X
M$%"00>[_N"(N_]@M0/_T+4'__"U(_]!*@6H$1*[__ RN O_49AI*KO_T
M9PX,K@ ;__&T$< !@ G !+4#_U$JN__1G!%.N_]AP "U __Q*KO_H9P12
MKO_\2J[_U&<J("[_Y%* (B[__-"!+4#__$JN_]AK"" N_]C1KO_\2J[_Y&=
M4J[__& Z("[_Y%R T:[__$JN_]AJ"" N_]A$@& $("[_V"U __@,@ &-O
M!%*N__P,K@ ^?_^&\$4J[__$JN__!F-" N_]RPKO_\;RH@+O_\D:[_W" N
M_]Q3@"U _]Q*@&L4("[_X"!N P0@%*N Q2KO_\8-Y*KO_H9PP@;@ ,$+P
M+5*N Q*KO_49P !!DJN_]AJ<"!N P0O P4H@0O N4H@M2 ,("[_Y%.
M+4#_Y$J :P !Y" N_]A2@"U _]A*@&H.(&X #!"\ #!2K@ ,8-0@+O_T4X M
M0/_T2H!K%"!N_] B;@ ,$I!2KO_04JX #&"R(&X #!"\ #!2K@ ,8*0@+O_8
M4Z[_V$J :S @+O_T4X M0/_T2H!K%"!N_] B;@ ,$I!2KO_04JX #(&X
M#!"\ #!2K@ ,8,1*KO_D9PP@;@ ,$+P +E*N P@+O_D4X M0/_D2H!K $Z
M("[_]%. +4#_]$J :Q0@;O_0(FX #!*04J[_T%*N Q@SB!N P0O P4JX
M#&# ("[_]%. +4#_]$J :Q0@;O_0(FX #!*04J[_T%*N Q@#"!N P0O P
M4JX #"!N P0O N4JX #" N_^13@"U _^1*@&LP("[_]%. +4#_]$J :Q0@
M;O_0(FX #!*04J[_T%*N Q@T"!N P0O P4JX #&#"(&X #!"\ $52B"U(
M Q*KO_8:@X0O M4JX #$2N_]A@#"!N P0O K4JX #' ++4#_]%.N__0@
M+O_8<@I.N0 3<0&@0 # @+O_T'8$(N" N_]AR"DZY !-Q"U _]@,K@
M G_]&[(2J[_V&;"("[_] R "VP24J[_]"!N P0M@BX4JX #&#B#*X
M !__!F-" N_]RPKO_\;RH@+O_\D:[_W" N_]Q3@"U _]Q*@&L4("[_X"!N
M P0@%*N Q2KO_\8-X@;@ 4(*[__"!N A2B" (3-\$ $Y>3G4 '+P)"
M@70?3KD $G>)!].=0 "B\"0H%T'TJ :@9$@ C" !].N0
M2=XD'TYU DO DZY !(]"0!<@!.N0 2=XD'TYU
M !$O B0 "(( 'TJ"9@1P & B3KD $FH4D)O\@1" "!K"'#_
M"( 'V $1$+DJ$J":@)$@"0?3G4 ""\"3KD $FH(@).
MN0 218D'TYU #H $Y0_^).40 2.=_,"1H @@&B(2
M3KD $FH0FD "$)I 8O (.?9@XD: <)B@ #%.#8 ^%)",T( !$A",T(
M"$)&-"D !&=<:A)60FL8"D( ]5I 1A $ 8$AA $R4FD !F 2= 35:0 $
M80 ZF$ /)3:0 &2H!KQ%-I 3CB>.08/)"0D)&+P"#GV<480 TDI&9@P,
M0@ !9@93:0 &8.P&!@ P$X8@"E)"#$( %&O4=@$D* ,2J@ $&<.*#P !
MU&D !E-":SIX% Q" !)L,C@"&C$@"P8% 4,!0 Y;R(3O P( M2,2 *&C$@
M"E-":NA2:0 &4T-Z +JH !!G E*$)&@ '$?Q, H@!&<>4T0V! 1# !1K G@3
M%-M1S/_\2D-K"!3\ #!1R__Z)&@ &$*22FD "&<"4Y(D: 40H$R*0 &2,$D
M@4S?#/Y.64Y83G7BB.*1!$( 6;V3G5\ $CG, D "8!XXGCD..6XXGCD..6
MTH/1@F0 12AN.)XY#CEDS? Q.=2\"= _/ ! XXGCD..2#$( "FT(!((
M *4H%35V;H3^\ B0?3G5.4/_T3E$ $CG?C!P '( ,T #- (S0 $
M,T !F$ 70,!@ P9@@ :2 1@[@P& "UF"@!I@ !&$ 58,!@ P;3X,
M!@ Y;C@ :2 0S1@ */"D !IUI (O *?\ &<&4FD F#.80#_.CPI
M H"A@ _2AD*&T89@N P& "YF#$II 9F8%)I 9@I@P& &5G!@P& &5F
M3F$ / ,!@ K9PP,!@ M9@H :1 1A #:# 8 ,&TN# 8 .6XH.BD ./I
M #CZ0 VVD ./I "1@ /W6D QI#_\ &W,XND #\I 0"7R 9@HD
M: 40I)@ ""-"D #\I 0"7Q 9P)$0M5I (O (.?9U0S? _ !*@&L*
MXXGCD%-I !@\DII )G(&L4= 35:0 80#^7&$ _F13:0 "8-9A /Z&4FD
M F#,= T*0 /RD ! )?@ !G! C" !].N0 2=XD: 8), D@21H !0DO
M %P # I A,WP1^3EE.6$YU+"@ "&<*(7P A.=4CG_. D: 03I(\
M $S?!S\S1@ (4Z@ #&8( &D( $3G4_*0 $ E\( &<"?/].=0
M *TCG/P O @)7?_^'GV86+SP #3KD $K@3^\ !$* 0H%@1"\ E=_
M_X.?9SHO DZY !)J"@ *@$L B ?(@-.N0 2:C-0I1&2$9(0KU"2$(L "X!
M0H!"@4*#81 @ 6$,3KD $G>3-\ _$YU/SP ('( XXE*@V8*N(9E$&8$NH=E
M"IJ'F89D E.#4H'CC>.4XY-35V;<3^\ DYU "1(YS\
M+P "5W__LY]G5"\" E=__[>?9@9"@$*!8$0O DZY !)J"@ *@$L B ?(@-.
MN0 2:C41DA&2$*]0DA"+ N 4* 0H%"@V$<+@9A&$J#9PCBD^*0XI%20DZY
M !)WDS? /Q.=3\\ "#BD^*0XI'BGV0$TH71A$##4U=F[%2/3G4
M #-(YS\ 0H=@"DCG/P N/( H @B$ !\O!(>?9P G"@ "(0 'R\$
M@Y]F"B "(@._@& (8O DZY !)J"@ *@$L B ?(@-.N0 2:@F!C8"ED9L
M'D1##$, 0&T(( 0B!20&8$Y30^*(XI%1R__Z-@9@&&<4#$, 0&T$OX)@-%-#
MXHSBE5'+__HV K6&OX9K#M*%T81D&N*0XI%20V 2FH&9@&0("$, 'T2%0(0@
M!"(%) -.N0 2=Y,WP#\3G4 "TB * ?____V<62$%(P0*!
M@ !__^Y)!$$ ?^&(", 'TYU+P)*@&=,44$O *?_P &<<4D'BB.*2+P "
MG_\ !F\$J":@A2@&#>4T'CB @ !=G]@9! ']O' Q! /]L)@B !?O23\!
M2$&"7TA!0D& @20?3G4O/ %.N0 2N!"@& :+SP "3KD $K@(#Q_
M@ 2H%J! C !]/[P $8,P #DD * ?____V8(< !R '0
M8")(0DC"Z$("@H !_\$0@/_+P)T"N.)XY!1RO_Z", 'R0?3G4O R\ @Y]G
M9 1" M*@&8(( %"@01" " O *?_^ &<D4D+BB.*1XI,O *?_^ &;N
M2H-J#E*!9 I2@TT+CB>.0" %&?T!D(#_V\>#$('_VPH H #___Z4H_
M D)"2$*$7TA"@((F'TYU+SP !3KD $K@< !@&"\\ DZY !*X# \
M?_!(0H!"2$!"0$_O 1R &#, $Y6__PO+@ (3KD $PX6(](
M;O_\+P M0 (3KD $KP4(\@+O_\3EY.=0 3E;__"\N A.N0 3#A8CTAN
M__PO "U A.N0 2Y10CR N__Q.7DYU !.5@ (^X " =@Y.7DYU3E;_
M\' (&X "!(0+4#__"U __@M0/_P# $ +68,<@$M0?_X+4'_\& 2(&X "! 0
M# *V8&< $M0/_X("[_^"!N C1P!(02(%(P5*!($'1_ ;.82$ @! )G
M+" N__QR"DZY !.3"!N C1[O_X4J[_^!(02(%(P02! ,-"!+4#__&"R
M2J[_\&<$1*[__"!N P@KO_\("[_^$Y>3G5.5O_P< @;@ ($A M0/_X+4#_
M\"U __P, 0 M9@QP 2U __@M0/_P8!(@;@ ($! , K9@9P 2U __@@+O_X
M(&X "-' $A!(@4C!4H$@0='\ !LYA(0" $ F<L("[__'(*3KD $Y,(&X
M"-'N__A2KO_X$A!(@4C!!($ PT($M0/_\8+)*KO_P9P1$KO_\(&X #""N
M__P@+O_X3EY.=4Y6 @;@ ($!!(@$C 4H B0-/\ !LYA 1" V<&4JX
M"&#>("X "$Y>3G4 $Y6 !(YW_\*D]"N0 9D!P!Y!N [E0$[[ (_+@ J
M/RX )C\N "(_+@ >/RX &C\N !8_+@ 2/RX "DY!+DU,WS_^3EY.=4/Y !K
MKB// !V"B!/,"\ !N- $C$ ! Q %G B2(!30#0 5$+E0B0P( ! 6<
M @O F 0_ E- :N0_* &3D$N>0 =@I.=4/Y !L7B// !V"B!/,"\
M!N- $C$ ! Q %G B2(!30#0 5$+E0B0P( ! 6< @O F 0_ E-
M:N0_* &3DTN>0 =@I.=4/Y !L=B// !V"B!/,"\ !N- $C$ ! Q %G
M B2(!30#0 5$+E0B0P( ! 6< @O F 0_ E- :N0_* &3DXN>0
M=@I.=0 "2!O 0@+P (;PHB+P ,$,%3@&;Z3G4
M%$CG/ J 6<R:@)$@2@ 9RAJ D2 0H)V'^. XY*T@64$E(%2@%'+__(B KF%
M:@)$@+.$:@A$@6 $0H%"@$S? #Q.=0 .2.?P "\ "(
M'TJ?:@1$@4" +P((@@ ?2I]J!$2#0(*P@F8"LH-,WP /3G4
M !1(YW@ * "SA$J 9S!J D2 ) !*@68$0H!@(FH"1($F ,;!2$+$P4A"0D+6
M@DA!P,%(0$) T(-*A&H"1(!,WP >3G4 #TCG< D &<@
M2H%F!$* 8!@F ,;!2$+$P4A"0D+6@DA!P,%(0$) T(-,WP .3G4
M 3E8 "!N @0$"!N P2$+ !9A1* &8&< !.7DYU4JX "%*N Q@W"!N
M @0$$B 2, @;@ ,$A!(@4C!D(%.7DYU !!^0 780A;P , PB;P (,5$
M."%O 0 !$)H "XQ? + #(Q? !D "Q.N0 77!!^0 781#Z !$(4D !$/H
M!$0A20 ,(F\ "#*H #@R/ +(F\ #$/I %@O"D7H!D0RVE')__PD7TC 3G5!
M^0 780Q;P & #A": N0F@ ,C%\ &4 +$ZY !=<$C 3G5!^0 780Q;P &
M #A": N0F@ ,C%\ , +$ZY !=<$C 3G5!^0 780Q;P * $0Q;P & #A"
M: N,7P 0 R,7P =P L3KD %UP,"@$1$C 3G5!^0 780Q;P * $0Q;P &
M #A": N,7P 0 R,7P > L3KD %UP2,!.=4'Y !=A"%O P "#%O H
M1#%O 8 .#%\ ( +C%\ $ ,C%\ ($ +$ZY !=<$'Y !=A$/H D0A20 (
M2,!.=0 0?D %V$(6\ # (,6\ "@ N,6\ !@ X0F@ ,C%\ 8 +$ZY !=
M<$'Y !=A$/H D0A20 (2,!.=4'Y !=A"%O P "#%O H +C%O 8 .$)H
M #(Q? ' "Q.N0 77!!^0 781#Z )$(4D "$C 3G5!^0 780Q;P . D8Q
M;P * D0Q;P & #AR_R)O !!2@4H99OHQ00 R< B;P 0+PI%Z !$$!DTP%')
M__HD7S%\ $ +C%\ @ +$ZY !=<$C 3G5!^0 780A;P , @Q;P * "XQ
M;P & #A": R,7P "0 L3KD %UP0?D %V$0^@"1"%) A(P$YU0?D %V$
M(6\ ' $,6\ &@! ("\ %"% #XQ;P 2 #PB+P ,(4$ .B%O @ "#%O 8
M.#%\ ( +L'!(4 ,C%\ H +$ZY !=<$'Y !=A$/H $0A20 $0^@"1"%)
M A(P$YU0?D %V$,6\ #@!$,6\ "@)&,6\ !@)$,6\ @ X,7P 0 N,7P
M 0 R,7P 9P L3KD %UP2,!.=4'Y !=A"%O @ "#%O 8 .#%\ ( +D)H
M #(Q? !R "Q.N0 77!!^0 781#Z )$(4D "$C 3G5!^0 780A;P ( @Q
M;P & #@Q? " "Y": R,7P 0 V,7P "P L3KD %UP0?D %V$0^@"1"%)
M A(P$YU0?D %V$,6\ &@!&,6\ %@!$,6\ $@)0,6\ #@)&,6\ "@)$,6\
M!@ X,7P ! N,7P @ R,7P @ V0F@"2$)H DI": ),0F@"3D)H E(Q? +
M "Q.N0 77!(P$YU0?D %V$,6\ &@!&,6\ %@!$,6\ $@)0,6\ #@)&,6\
M"@)$,6\ !@ X,7P ! N,7P @ R,7P P V0F@"2$)H DI": ),0F@"3D)H
M E(Q? + "Q.N0 77!(P$YU0?D %V$,6\ $@),,6\ #@)&,6\ "@)$,6\
M!@ X,7P P N0F@ ,C%\ 0 -D)H DA": )*0F@"3C%\ L +$ZY !=<$C
M3G5!^0 780Q;P > $8Q;P : $0Q;P 6 DHQ;P 2 D@Q;P . D8Q;P * D0Q
M;P & #@Q? " "XQ? " #(Q? & #8Q? + "Q.N0 77!(P$YU0?D %V$
M,6\ '@!&,6\ &@!$,6\ %@)*,6\ $@)(,6\ #@)&,6\ "@)$,6\ !@ X,7P
M @ N,7P @ R,7P !P V,7P "P L3KD %UP2,!.=4'Y !=A#%O !8"2C%O
M !("2#%O X"1C%O H"1#%O 8 .#%\ ( +D)H #(Q? % #8Q? + "Q.
MN0 77!(P$YU0?D %V$(6\ " (,6\ !@ X,7P @ N0F@ ,C%\ @ -C%\
M L +$ZY !=<$'Y !=A$/H D0A20 (2,!.=4'Y !=A"%O @ "#%O 8
M.#%\ ( +D)H #(Q? ) #8Q? + "Q.N0 77!!^0 781#Z )$(4D "$C
M3G5!^0 780Q;P > $8Q;P : $0Q;P 6 D@Q;P . D8Q;P * D0Q;P & #@Q
M? " "YR_R)O !!2@4H99OHQ00 R< B;P 0+PI%Z !($!DTP%')__HD7P9H
M ( ,C%\ H -C%\ L +$ZY !=<$C 3G5!^0 780Q;P * $0Q;P & #A"
M: N,7P 0 R,7P ( L3KD %UP,"@$1$C 3G5!^0 780Q;P * $0Q;P &
M #@R/ "(F\ #$/I O"D7H $8TV5')__PD7T)H "XQ? $ #(Q? . "Q.
MN0 77!(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\ $ ,C%\ \ +$ZY
M !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\ $ ,C%\ '$
M+$ZY !=<$C 3G5!^0 780Q;P * D0Q;P & #A": )&,7P 0 N0F@ ,C%\
M ! +$ZY !=<# H!D1(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\ $
M,C%\ !$ +$ZY !=<# H!$1(P$YU0?D %V$,6\ #@!&,6\ "@!$,6\ !@ X
M0F@ +C%\ ( ,C%\ &P +$ZY !=<$C 3G5!^0 780Q;P * $0Q;P & #A"
M: N,7P 0 R,7P $@ L3KD %UP,"@$1$C 3G5!^0 780Q;P * D8Q;P &
M #@Q? ! "Y": R,7P $P L3KD %UP,"@&1DC 3G5!^0 780Q;P * $0Q
M;P & #A": N,7P 0 R,7P % L3KD %UP,"@$1$C 3G5!^0 780Q;P *
M D8Q;P & #A": )$,7P 0 N0F@ ,C%\ P +$ZY !=<$'Y !=A")O PR
MJ 9$(F\ $#*H!D8B;P 4,J@&2")O !@RJ 9*2,!.=4'Y !=A#%O H 1#%O
M 8 .$)H "XQ? ! #(Q? !K "Q.N0 77!!^0 780B;P ,,J@&1")O ! R
MJ 9&(F\ %#*H!D@B;P 8,J@&2C H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X
M0F@ +C%\ $ ,C%\ T +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\
M!@ X0F@ +C%\ $ ,C%\ !4 +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$
M,6\ !@ X0F@ +C%\ $ ,C%\ !8 +$ZY !=<# H!$1(P$YU0?D %V$,6\
M"@!$,6\ !@ X0F@ +C%\ $ ,C%\ &H +$ZY !=<# H!$1(P$YU0?D %V$
M,6\ #@!&,6\ "@!$,6\ !@ X0F@ +C%\ ( ,C%\ "< +$ZY !=<$'Y !=
MA")O ! RJ 1$(F\ %#*H!$9(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\
M $ ,C%\ !< +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@
M+C%\ $ ,C%\ !@ +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X
M0F@ +C%\ $ ,C%\ !D +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\
M!@ X0F@ +C%\ $ ,C%\ &@ +$ZY !=<# H!$1(P$YU0?D %V$("\ ".F
M(4 ,B%O 0 !#%O ( .$)H "XQ? !P "Q.N0 77!!^0 781#Z !$(4D
M!$C 3G4 $'Y !=A"%O @ !#%O 8 .$)H "XQ? E #(Q? !O "Q.N0
M77!!^0 781#Z !$(4D !$C 3G5!^0 780A;P ( #HQ;P & #A": N0F@
M,C%\ '8 +$ZY !=<$'Y !=A")O ! RJ !$(F\ #"*H #Y(P$YU0?D %V$
M,6\ "@!$,6\ !@ X0F@ +C%\ $ ,C%\ 'H +$ZY !=<$C 3G5!^0 780Q
M;P & #A": N0F@ ,C%\ 'L +$ZY !=<$C 3G5!^0 780Q;P & #A": N
M0F@ ,C%\ 'P +$ZY !=<$'Y !=A")O @RJ 1$(F\ ##*H!D0B;P 0,J@&
M1DC 3G5!^0 780A;P ( #HQ;P & #A": N0F@ ,C%\ 'T +$ZY !=<$'Y
M !=A")O PBJ ^2,!.=4'Y !=A"%O @ .C%O 8 .$)H "Y": R,7P
M?@ L3KD %UP0?D %V$(F\ #"*H #Y(P$YU0?D %V$(6\ " Z,6\ !@ X
M0F@ +D)H #(Q? !_ "Q.N0 77!!^0 780B;P ,(J@ /DC 3G5!^0 780Q
M;P & #A": N0F@ ,C%\ ( +$ZY !=<$'Y !=A")O @RJ 1$2,!.=0
M0?D %V80F@ &C%\ $ '$)H !XQ? * !A.N0 77HP* 0P2,!.=4'Y !=
MF"%O P",#%O H ,C%O 8 ,#%\ ( &C%\ $ '#%\ $ 'C%\ L &$ZY
M !=>C H!#!(P$YU0?D %V8(6\ # (P,6\ "@ R,6\ !@ P,7P @ :,7P
M 0 <,7P 0 >,7P # 83KD %UZ,"@$,$C 3G5!^0 79@Q;P & #!": :
M,7P 0 <0F@ 'C%\ T &$ZY !=>C H!#!(P$YU0?D %V8,6\ #@ R,6\
M"@ P(6\ ! (P,7P @ :,7P 0 <,7P 0 >,7P #@ 83KD %UZ,"@$,$C
M3G5!^0 79@Q;P * # A;P $ C Q? ! !HQ? ! !PQ? ! !XQ? / !A.
MN0 77HP* 0P2,!.=4'Y !=F$)H !HQ? ! !Q": >,7P $P 83KD %UZ
M,"@$,$C 3G4B"# \ '-.0DYU(@@P/ #(3D).=0 7; %W( !?R 8<@
M &/( !=L 9<@ %W( !AR 7\@ &/(
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M , ! %!F %4 1 T 0 !0!#(%
M0P93!$0%50=W3F]T(&5N;W5G:"!M96UO<GD* '=O<FMI;F<N+BX* "
M , !@ $ < !0 ( D "@ + X # / T 0 ^&9F:/H #ZS,S,^
MS,S-/N9F9C\ _#,S-/R9F9C\S,S,_0 /TS,S3]9F9H_9F9F/W,S,S^
M /IF9FC\,S,T_)F9F/RX4>S\UPH\_/7"D/T4>N#]9F9H_84>N/VCU
MPS]N%'L_<S,S/WA1[#]]<*0_@ )7, ;&5V>2YP:3$ )7, )7, )7, 5%10
M('!A<F%M971E<B!U<V%G93H*"@ E<P!N=6UB97(@;V8@:71E<F%T:6]N<SH*
M "5S " @("UN/$X^(&UU<W0@86QW87ES(&)E('-P96-I9FEE9 H* "5S &]P
M=&EO;F%L;'D@6V1E9F%U;'0@=F%L=65S(&EN("@I73H* "5S "US/&EN=#X@
M<V5T<R!R86YD;VT@<V5E9" H,C(Q,3DU-2D* "5S "UX/#$M,S(P/B C(&]F
M(&AO<FEZ;VYT86P@<&EX96QS("@S,C I"@ E<P M>3PQ+3(P,#X@(R!O9B!V
M97)T:6-A;"!P:7AE;',@*#(P,"D* "5S "UU/$X^('5P9&%T92!S8W)E96X@
M979E<GD@3B!I=&5R871I;VYS"@ E<P @(" @(" H9&5F875L=#H@;VYL>2!U
M<&1A=&4@=VAE;B!D;VYE*0H )7, +68\9FEL96YA;64^('-A=F4M9FEL92!N
M86UE("AL979Y+G!I,2D* "5S "UD/&9I;&4^(&1I<W!L87D@<')E=FEO=7-L
M>2US=&]R960@9FEL90H )7, +6D@=&\@9V5N97)A=&4@:7-L86YD+61O;6EN
M871E9"!R96QI968*"@ E<P!E>&%M<&QE<SH* "5S " @("UN,3 P,# @+6D*
M "5S " @("UN,3 P("US.3,T.30Y,#,Y," M9F-O87-T+G!I,0H )7, (" @
M+61C;V%S="YP:3$*"@ E<P!P<F5S<R!A;GD@:V5Y('1O(&%B;W)T(')U;B!I
M;B!P<F]G<F5S<PH* '!R97-S(&%N>2!K97D@=&\@8V]N=&EN=64 ;W!E;B!O
M9B G)7,G(&9A:6QE9 H 9FEL92!W<FET92!E<G)O<CH@;VYL>2 E9"!B>71E
M<R!W<FET=&5N"@!O<&5N(&]F("<E<R<@9F%I;&5D"@!F:6QE('=R:71E(&5R
M<F]R.B!O;FQY("5D(&)Y=&5S(')E860* !R '< 80 80!#86XG="!O<&5N
M('-T9&EN(&9I;&4* $-A;B=T(&]P96X@<W1D;W5T(&9I;&4*
M 4 -[L #F;0 L*7W9A;&)A;FLZ($EM
M<"X@17)R;W( !8V]N.@ !0T]..@ "<')N.@ "4%)..@
M ";'-T.@ "3%-4.@ ";'!T.@ "3%!4.@ ";'!T,3H
M "3%!4,3H #875X.@ #0558.@ #8V]M.@ #0T]-.@
M #8V]M,3H #0T]-,3H #<F1R.@ #4D12.@ #<'5N.@
M #4%5..@ $;G5L.@ $3E5,.@ $;G5L;#H $3E5,3#H
M !!6$DZ+$%83SHL3%-4.BQ.24PZ+$-/3CH]*@ !K>C Q,C,T-38W.#E!
M0D-$148 ! 0 ! $ 0$! 0 !
M $! $!
M 0 $ ! @ 0( 0$! 0$! 0(! @ !
M!@,& P$! 0,! P $ @$" 0$! 08##@0! 0 0(
M 8# @,! 0 ! $ @(% @( ! $ 0 $& P ! P,! 0 "
M P<#!P " @(" $ !@<# #! ,' @$! (" $ 0 " $
M 0@$ 0$ 0 ( 0$ "
M " @(" @(" @("@H*"@H(" @(" @(" @(" @(" @(" @2! 0$! 0
M$! 0$! 0$! 0$(2$A(2$A(2$A(00$! 0$! 0@8&!@8&! 0$! 0$! 0$! 0$!
M 0$! 0$! 0$0$! 0$!""@H*"@H(" @(" @(" @(" @(" @(" @(" A 0$! @
M(" @(" @(" @*"@H*"@@(" @(" @(" @(" @(" @("!($! 0$! 0$! 0$! 0
M$! 0A(2$A(2$A(2$A! 0$! 0$!"!@8&!@8$! 0$! 0$! 0$! 0$! 0$! 0$!
M 1 0$! 0$(*"@H*"@@(" @(" @(" @(" @(" @(" @("$! 0$" 4
M "
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M &DD(*"D@()B(&!@8&" @(7 P<&@@*#!@,$@@0!@8,#"!H'AH8$ 88#E V
M4C".,'0N#@X&"@H&"A(.!@H2#@8.#A(>!A(,.A8P(AX*7!(F$@X&N$820@8.
M 0(D)"0*( HF(D8&!@8*!@8&"@8&!@H&!@8*!@8&"@8&!@H&!@8*!@8&"@8&
M!@H&!@8*!@8&"@8&!@H&!@8*!@8&"@8&!@H&!@8*!@8&"@8&# P8$@H*$ @.
M.!(2$A14&!P:% 8&'!H<'@8&#A(<% 8&%!@:'!X&!@X2$@@*&!X("!PN!@8&
M"A &!@80!@8&#@8&!A82!@P(!@XB!@P(!@8*6A82%@X2%@Y:%A(6#A(6#@$!
M@ @("@@("A8(" H2" @*#@@(# 0&! 8$"@@(!A(*"@@(!B0J*!PH($0("@8.
M"@H("@80"E"$&F(Z5 @.!@X*&B@("@8D" X("@84"AHZ) @(%@H6$ P>.JXB
M.E8Z"&PF)$!4-B@LI %JON(&&! D! 8&!@X()@84& @:$!8Z!E H$ @(" @8
M2A8&A"YZ"@@0$@@8"@@6"A((!JY(" X2"" D$!P0"BP*6&0.O(H.8"0.&B .
M&B!*#@JF""0(,!0."@8T!@8&! @&!@8B\@HF"C *!@P8!@9$"AX0!A(F0@H&
M- KR5!(>/$!(%KX<1 @.* @!Q*Y$%$ 4^BYXV &. 0'F&I@F&@HH-@@N 0$!
M&H@<$")J$"QL$&R6$-(0+!(:$AA:%) 44B@^!D (!D (!D !B"H&/!H*&@HB
M#B(**@84(@82(@822@HB!A)&!AHP"B(&$B@&$E8*5@I "D@*2 HZ"B@&$B@&
M$F@*(@X\"B(.(@HF#B(.* HB#B(.(@XF!BHB!BXB#B(.(@XB#B@&&B(.(@XB
M#B(.)@84(@82( 8:(@H:"AH&(B &$B &$B &$AH&%!H., XP#B ., XJ#AH@
:! 0$! 0$! 0$! $! 0$! 0$! 0$! 0$!!@ &
endrlp@cbosgd.UUCP (J. Knapp) (05/04/86)
Here is the source code for the uuencoded file 'levy.ttp' posted previously:
----------------------------------------------------------------------------
/*
* levy.ttp: Brownian Relief Fractal Generation Program for the Atari 520ST
*
* This program is distributed in the public domain with no restrictions on
* its use.
*
* The algorithm implemented herein is described in B. B. Mandelbrot "Fractals:
* Form, Chance, and Dimension" (Freeman 1977) p. 207. It was first defined
* by P. Levy "Processus Stochastiques et Mouvement Brownien" (Paris:
* Gauthier-Villars 1948).
*
* program author: J. M. Knapp AT&T Bell Labs Columbus OH (cbosgd!nscs!jmk)
*
* Background (from Mandelbrot):
*
* [The Brownian model of the landscape] finally provides us with our
* long-sought example of a curve that (a) is devoid of self intersections,
* (b) is practically devoid of self contacts, (c) has fractal dimension
* clearly greater than 1, and (d) is isotropic.
*
* More precisely, the dimension of these coastlines is 3/2, which is of
* course much higher than most of Richardson's values [e.g. 1.26 for the
* coast of Britain]. The Brownian artificial coastline is therefore
* limited in its applicability. It recalls northern Canada, Indonesian
* Islands, perhaps western Scotland, and the Aegean. It is applicable to
* other examples as well, but certainly not to all.
*
* It is a pity, because a relief of dimension D=5/2 and coastlines of
* dimension 3/2 would have been easy to explain. Indeed, the Brown-Levy
* function is an excellent approximation of the relief that would have
* been created by superimposing independent rectilinear faults. The
* generative model proceeds simply as follows. Starting with a horizontal
* plateau, break it along a straight line chosen at random to introduce
* a kind of cliff, a random difference between the levels of the two
* sides of the break. Then start all over again, ad infinitum. The
* process merely generalizes the Poisson process. With no need for
* mathematical or physical details, we can see that the argument seizes
* at least one aspect of tectonic evolution...
*
* From B.B. Mandelbrot "Fractals: Form, Chance, and Dimension"
*
*/
#include <stdio.h>
#include <math.h>
#include <fcntl.h>
/* PUT YOUR ST HEADER FILES HERE */
/* the following are Lattice C header files */
#include <gemlib.h>
#include <osbind.h>
#define TRUE 1
#define FALSE 0
#define NX 320 /* max number of horizontal pixels */
#define NY 200 /* max number of vertical pixels */
#define NCOLOR 15 /* number of colors excluding background */
#define GRMODE 0 /* graphics mode 0 (320x200) */
#define SAVEFILE "levy.pi1" /* DEGAS default save-file */
#define FSIZE 32034 /* size of DEGAS save-file */
#define SEED 2211955 /* default pseudorandom seed */
/* help */
#define US0 "TTP parameter usage:\n\n"
#define US1 "number of iterations:\n"
#define US1a " -n<N> must always be specified\n\n"
#define US2 "optionally [default values in ()]:\n"
#define US3 "-s<int> sets random seed (2211955)\n"
#define US4 "-x<1-320> # of horizontal pixels (320)\n"
#define US5 "-y<1-200> # of vertical pixels (200)\n"
#define US6 "-u<N> update screen every N iterations\n"
#define US7 " (default: only update when done)\n"
#define US8 "-f<filename> save-file name (levy.pi1)\n"
#define US9 "-d<file> display previously-stored file\n"
#define US9a "-i to generate island-dominated relief\n\n"
#define US10 "examples:\n"
#define US11 " -n10000 -i\n"
#define US12 " -n100 -s9349490390 -fcoast.pi1\n"
#define US13 " -dcoast.pi1\n\n"
#define US14 "press any key to abort run in progress\n\n"
/* VDI globals */
short contrl[12],
intin[128],
intout[128],
ptsin[128],
ptsout[128] ;
short oldpalette[16] ; /* storage for old palette */
/*************/
main(argc,argv)
int argc ;
char *argv[] ;
{
short *relief ; /* pointer to 'relief' data structure */
long ncyc ; /* number of iterations of generation process */
long iseed ; /* pseudorandom seed */
int xl, yl ; /* extent of each axis of screen region */
short handle ; /* VDI screen handle */
short update ; /* screen update every 'update' iterations */
char fname[80] ; /* save-file */
short loadf ; /* load flag: if true then load & display pic */
short island ; /* if true --> generate island-dominated relief */
/* VDI palette (increasing altitude) */
static short palette[NCOLOR+1] = { 0x000, 0x003, 0x004, 0x005,
0x660, 0x550, 0x440, 0x340,
0x040, 0x050, 0x432, 0x543,
0x653, 0x444, 0x555, 0x777 } ;
short xpalette[NCOLOR+1] ; /* palette xlated to VDI ordering */
short cginit(), cgopen() ;
/* begin */
conflush() ; /* clear console input buffer */
/* process argv[] options */
options(argc,argv,&xl,&yl,&ncyc,&iseed,&update,fname,&loadf,&island) ;
if (loadf) /* load and display DEGAS file */
{
handle = cginit(palette,xpalette) ; /* open screen */
if (readfrac(fname,palette) < 0) /* send file data to physbase */
{
gemdos(0x1) ; /* PAKTC */
cgclose(handle) ; /* file read error */
exit(1) ;
}
Setpallette(palette) ; /* set new palette */
gemdos(0x1) ; /* PAKTC */
cgclose(handle) ; /* done, restore screen */
exit(0) ;
}
/* generate new relief */
srand48(iseed) ; /* randomize */
/* allocate 'relief' data structure */
if((relief = (short *)malloc(sizeof(short)*xl*yl)) == 0)
{
fprintf(stderr,"Not enough memory\n") ;
gemdos(0x1) ; /* PAKTC */
exit(1) ;
}
level(relief,xl,yl) ; /* initialize to level 'plain' */
handle = cginit(palette,xpalette) ; /* initialize graphics device */
if (cycle(handle,relief,xl,yl,ncyc,update,island)) /* generate relief */
{
plotrel(handle,relief,xl,yl,island) ; /* plot relief */
gemdos(0x1) ;
}
if (writefrac(fname,xpalette) < 0) /* save screen to DEGAS file */
{
gemdos(0x1) ;
cgclose(handle) ; /* file write error, clean up & quit */
exit(1) ;
}
cgclose(handle) ; /* close graphics device */
exit(0) ; /* done */
}
/* fractal generation routine */
int cycle(handle,relief,xl,yl,ncyc,update,island)
short handle ;
short *relief ;
int xl, yl ;
long ncyc ;
short update ;
short island ;
{
int icyc ; /* cycle counter */
printf("working...\n") ;
for (icyc = 0 ; icyc < ncyc ; icyc++)
{
if (drand48() < .5) /* either inc or dec half-plane */
inc_hplane(relief,xl,yl) ;
else
dec_hplane(relief,xl,yl) ;
if (update && icyc && !(icyc % update))
plotrel(handle,relief,xl,yl,island) ; /* update screen */
if (Bconstat(2))
{
conflush() ; /* a key was pressed, flush and abort */
return(FALSE) ;
}
}
return(TRUE) ;
}
/* increment half-plane */
inc_hplane(relief,xl,yl)
short *relief ;
int xl, yl ;
{
register short *endcolp, *ap ; /* end-of-column pointer, array pointer */
register short iy, ryl ; /* row index, reg yl holder */
int m, b ; /* slope & intercept of random line */
ryl = yl ; /* put yl in register */
rndmb(xl,yl,&m,&b) ; /* get random line parameters m & b */
ap = relief + yl * (xl - 1) ; /* point to beginning of last column */
endcolp = ap + yl ; /* point to end of last column */
/* increment all elements below random line */
while (xl--) /* for all columns */
{
iy = ((m * xl) >> 8) + b ; /* starting y-value to increment */
if(iy < 0) iy = 0 ; /* can't start before 0th element! */
if (iy < yl) /* no action if past last element in col */
{
ap += iy ; /* point to 1st value to inc */
while(ap < endcolp) /* increment rest of column */
(*(ap++))++ ;
endcolp -= ryl ; /* point to end of previous column */
ap -= (ryl << 1) ; /* point to beginning of previous column */
}
else
{
ap -= ryl ; /* point to end of previous column */
endcolp -= ryl ; /* point to beginning of previous column */
}
}
}
/* decrement half-plane */
dec_hplane(relief,xl,yl)
short *relief ;
int xl, yl ;
{
register short *endcolp, *ap ; /* end-of-column pointer, array pointer */
register short iy, ryl ; /* row index, reg yl holder */
int m, b ; /* slope & intercept of random line */
ryl = yl ; /* put yl in register */
rndmb(xl,yl,&m,&b) ; /* get random line parameters m & b */
ap = relief + yl * (xl - 1) ; /* point to beginning of last column */
endcolp = ap + yl ; /* point to end of last column */
/* decrement all elements to right of random line */
while (xl--) /* for all columns */
{
iy = ((m * xl) >> 8) + b ; /* starting y-value to decrement */
if(iy < 0) iy = 0 ; /* can't start before 0th element! */
if (iy < yl) /* no action if past last element in col */
{
ap += iy ; /* point to 1st value to dec */
while(ap < endcolp) /* decrement rest of column */
(*(ap++))-- ;
endcolp -= ryl ; /* point to end of previous column */
ap -= (ryl << 1) ; /* point to beginning of previous column */
}
else
{
ap -= ryl ; /* point to end of previous column */
endcolp -= ryl ; /* point to beginning of previous column */
}
}
}
/* set all elements to 0 (level plane) */
level(relief,xl,yl)
short *relief ;
int xl, yl ;
{
register short *ap, *endp ; /* array pointer, end pointer */
ap = relief ;
endp = relief + xl*yl ;
while (ap < endp)
*(ap++) = 0 ;
}
/* return slope (m) and intercept (b) of random line through plane */
/* (slope is scaled by 256) */
rndmb(xl,yl,m,b)
int xl, yl ;
int *m, *b ;
{
float dx, dy ; /* delta-x, delta-y */
int x0, y0 ; /* random point on plane */
double drand48() ;
dx = 0 ; dy = 0 ;
while((dx = 2.0*drand48() - 1.0) == 0) ; /* prevent division by 0 */
dy = drand48() ;
x0 = xl*drand48() ;
y0 = yl*drand48() ; /* (x0,y0) random point */
*m = (256.0*dy)/dx ;
*b = y0 - (*m*x0)/256 ; /* calculate y-intercept */
}
/* initialize screen device */
short cginit(palette,xpalette)
short *palette, *xpalette ;
{
/* translation from color index to palette index PI = ctrans[CI] */
static short ctrans[NCOLOR+1] =
{ 0, 2, 3, 6, 4, 7, 5, 8, 9, 10, 11, 14, 12, 15, 13, 1 } ;
short colind ; /* color index */
short handle ; /* screen handle */
short cgopen() ;
handle = cgopen() ;
/* save old palette */
for (colind = 0 ; colind < NCOLOR+1 ; colind++)
oldpalette[colind] = Setcolor(colind,-1) ;
/* initialize color look-up table */
for (colind = 0 ; colind < NCOLOR+1 ; colind++)
xpalette[colind] = palette[ctrans[colind]] ;
Setpallette(xpalette) ;
return(handle) ;
}
/* plot relief */
plotrel(handle,relief,xl,yl,island)
short handle ;
short *relief ;
int xl, yl ;
short island ;
{
int iy, ix, icol ; /* row index, column index, color index */
short minval, maxval ; /* min, max altitude */
register short *ap ; /* array pointer */
/* extents of color regions (increasing altitude): */
/* continental relief */
static float cext_con[NCOLOR+1] = { 0, .15, .25, .35,
.40, .45, .50,
.55, .65, .70,
.75, .80, .85,
.90, .95, 1.00 } ;
/* island relief */
static float cext_ile[NCOLOR+1] = { 0, .30, .55, .65,
.68, .71, .74,
.77, .85, .88,
.91, .93, .95,
.97, .99, 1.00 } ;
float *cext ;
/* integer (absolute altitude) extents of color regions */
short icext[NCOLOR+1] ;
/* set extents pointer */
if (island)
cext = cext_ile ;
else
cext = cext_con ;
minmax(relief,xl,yl,&maxval,&minval) ; /* find max and min altitude */
/* calculate integer extents */
for (icol = 0 ; icol < NCOLOR+1 ; icol++)
icext[icol] = minval + cext[icol] * (maxval - minval) ;
icext[NCOLOR]++ ; /* tricky: bump last value by one */
ap = relief ; /* point to beginning */
for (ix= 0 ; ix < xl ; ix++) /* for all columns */
{
register short colm[NY] ; /* color indices for screen column */
for (iy = 0 ; iy < yl ; iy++) /* for all rows */
{
register short *cp, colind ; /* color pointer, color index */
cp = icext ; /* point to color region 0 */
colind = 0 ;
while(*ap >= *(cp++)) colind++ ;
colm[iy] = colind ;
ap++ ;
}
column(handle,colm,ix,yl) ; /* plot column */
}
}
/* find maximum & minimum values of altitude */
minmax(relief,xl,yl,maxval,minval)
short *relief ;
int xl, yl ;
short *maxval, *minval ;
{
register short *ap, *endp ; /* array pointer, end pointer */
*maxval = *relief ; *minval = *relief ;
ap = relief ;
endp = ap + xl*yl ;
while (ap < endp)
{
if (*ap > *maxval) *maxval = *ap ;
if (*ap < *minval) *minval = *ap ;
ap++ ;
}
}
/* flush any characters in console input buffer */
conflush()
{
char ch ;
while(Bconstat(2))
ch = Bconin(2) ;
}
/* process argv options */
options(argc,argv,xl,yl,ncyc,iseed,update,fname,loadf,island)
int argc ;
char *argv[] ;
int *xl, *yl ;
long *ncyc ;
long *iseed ;
short *update ;
char *fname ;
short *loadf ;
short *island ;
{
int help ;
int optind ;
/* set defaults */
help = FALSE ;
*iseed = SEED ;
*ncyc = 0 ;
*xl = NX ;
*yl = NY ;
*update = 0 ;
sprintf(fname,"%s",SAVEFILE) ;
*loadf = FALSE ;
*island = FALSE ;
optind = 1 ;
while ((optind < argc) && (*argv[optind] == '-'))
{
switch(*(argv[optind]+1))
{
case 's':
case 'S':
*iseed = atol(argv[optind]+2);
break;
case 'n':
case 'N':
*ncyc = atol(argv[optind]+2);
break;
case 'u':
case 'U':
*update = atoi(argv[optind]+2) ;
break ;
case 'f':
case 'F':
sprintf(fname,"%s",argv[optind]+2) ;
break ;
case 'd':
case 'D':
sprintf(fname,"%s",argv[optind]+2) ;
*loadf = TRUE ;
break ;
case 'y':
case 'Y':
*yl = atoi(argv[optind]+2) ;
break ;
case 'x':
case 'X':
*xl = atoi(argv[optind]+2) ;
break ;
case 'i':
case 'I':
*island = TRUE ;
break ;
default:
help = TRUE ;
break ;
}
optind += 1 ;
}
if((optind != argc) || (argc == 1 )) help = TRUE ;
if( help )
{
fprintf(stderr,"%s", US0);
fprintf(stderr,"%s", US1);
fprintf(stderr,"%s", US1a) ;
fprintf(stderr,"%s", US2);
fprintf(stderr,"%s", US3);
fprintf(stderr,"%s", US4);
fprintf(stderr,"%s", US5);
fprintf(stderr,"%s", US6);
fprintf(stderr,"%s", US7);
fprintf(stderr,"%s", US8);
fprintf(stderr,"%s", US9);
fprintf(stderr,"%s", US9a) ;
fprintf(stderr,"%s", US10);
fprintf(stderr,"%s", US11);
fprintf(stderr,"%s", US12);
fprintf(stderr,"%s", US13);
fprintf(stderr,"%s", US14) ;
fprintf(stderr,"press any key to continue") ;
gemdos(0x1) ;
exit(1);
}
}
/* close graphics screen and enable cursors */
cgclose(handle)
short handle ;
{
v_show_c(handle) ;
Cursconf(1,0) ;
Setpallette(oldpalette) ;
v_clsvwk(handle) ;
appl_exit() ;
}
/* open graphics screen and disable cursors */
short cgopen()
{
short handle ;
short work_in[12],
work_out[57] ;
int iwk, set_type ;
appl_init() ;
for (iwk = 0 ; iwk < 10 ; work_in[iwk++] = 1) ;
work_in[10] = 2 ; /* raster coordinates */
v_opnvwk(work_in,&handle,work_out) ;
v_hide_c(handle) ; /* bye mouse */
Cursconf(0,0) ; /* bye cursor */
v_clrwk(handle) ; /* clear screen */
set_type = vsm_type(handle,1) ; /* marker type = point */
return(handle) ;
}
/* plot column on graphics screen */
column(handle,colm,ix,npoints)
short handle ;
register short *colm ;
int ix ;
int npoints ;
{
register short pxy[2] ;
*pxy = ix ;
*(pxy+1) = npoints ;
while((*(pxy+1))--)
{
vsm_color(handle,colm[*(pxy+1)]) ;
v_pmarker(handle,1,pxy) ;
}
}
/* save screen data to disk in DEGAS format */
int writefrac(fname,palette)
char *fname ;
short *palette ;
{
char *scrnp ;
int fd, n ;
short gmode[1] ;
scrnp = (char *)Physbase() ; /* get pointer to display frame */
*gmode = GRMODE ;
if ((fd = open(fname, O_RAW | O_CREAT | O_WRONLY)) < 0) {
fprintf(stderr,"open of '%s' failed\n",fname) ;
return(-1) ;
}
n = write(fd, gmode, 2) ; /* write graphics mode */
n += write(fd, palette, 32) ; /* write palette */
if ((n += write(fd, scrnp, 32000)) != FSIZE) /* write screen */
{
fprintf(stderr,"file write error: only %d bytes written\n",n) ;
close(fd) ;
return(-1) ;
}
close(fd) ;
return(0) ;
}
/* read file (DEGAS format) */
int readfrac(fname,palette)
char *fname ;
short *palette ;
{
int fd, n ;
short gmode[1] ;
char *scrnp ;
if ((fd = open(fname, O_RAW | O_RDONLY)) < 0) {
fprintf(stderr,"open of '%s' failed\n",fname) ;
return(-1) ;
}
scrnp = (char *)Physbase() ;
n = read(fd, gmode, 2) ; /* read graphics mode */
n += read(fd, palette, 32) ; /* read palette */
if ((n += read(fd, scrnp, 32000)) != FSIZE) /* read screen */
{
fprintf(stderr,"file write error: only %d bytes read\n",n) ;
close(fd) ;
return(-1) ;
}
close(fd) ;
return(0) ;
}turner@imagen.UUCP (05/08/86)
> Here is a type of fractal generation program that you've probably not > seen yet. It generates something like a topographical map of a random > relief. The relief is divided into 15 altitude zones, each with a different > color. The resulting maps can be very pretty. This is a TTP application. > Run the program without parameters and you will get the usage directions. > > The algorithm is due to (who else) Benoit Mandelbrot. It is based on > the "Brownian plane-to-line" function of Paul Levy. > > note: This program is public-domain. I put no restrictions on its use. > Comments/improvements are welcome. ~~~~~~~~~~~~~~~~~~~~~~~~~\ lineater, \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ the program looks good, how about posting the sources for us poor hackers still learning about fractals ? -- ---- "If only you could see what I've seen with your eyes" -Blade Runner Name: James M. Turner (not the James M. Turner at Lisp Machine Inc.) Mail: Imagen Corp. 2650 San Tomas Expressway, P.O. Box 58101 Santa Clara, CA 95052-8101 AT&T: (408) 986-9400 UUCP: ...{decvax,ucbvax}!decwrl!imagen!turner CompuServe: 76327,1575 GEnie : D-ARCANGEL
turner@imagen.UUCP (05/08/86)
> > Here is the source code for the uuencoded file 'levy.ttp' posted previously: > ---------------------------------------------------------------------------- *** REPLACE THIS LINE WITH YOUR MESSAGE *** foot-in-mouth alert, foot-in-mouth alert, please ignore my previous posting re: posting the sources, i should look before i leap, sorry -- ---- "If only you could see what I've seen with your eyes" -Blade Runner Name: James M. Turner (not the James M. Turner at Lisp Machine Inc.) Mail: Imagen Corp. 2650 San Tomas Expressway, P.O. Box 58101 Santa Clara, CA 95052-8101 AT&T: (408) 986-9400 UUCP: ...{decvax,ucbvax}!decwrl!imagen!turner CompuServe: 76327,1575 GEnie : D-ARCANGEL