# Pointless Diversion: Volume of a partially filled cylinder lying on it's side

Warren Postma embed at geocities.com
Thu May 18 16:27:29 EDT 2000

```Anyone ever want to know how much gasoline or oil is in a storage tank,
given only the height of the gasoline or oil?  Since gas storage tanks,
tanker trucks, etc, are often cylinders and lying on their sides, it's a
pain to calculate their volume. I found a great volume calculator
(javascript) here:

http://grapevine.abe.msstate.edu/~fto/tools/vol/

And I borrowed the algorithm to make this python version
(cylindervolume.py).  I wish I was clever enough to remember all the trig
that goes into this sort of thing.

Now that I've done that, it just occurred to me that the trucks that deliver
gasoline to your local gas station don't have purely cylindrical tanks, but
instead, are a flattened looking oval-cylinders. So what is it called when
you extrude an oval into 3d? Ovoids? I'll save that for version 2.0. Oh, and
what if the ends of the tanks are rounded instead of flat. At least rounded
tanks are up on his web page.

Warren Postma

begin 666 cylindervolume.py
M:6UP;W)T(&UA=&@-"@T*(R!6;VQU;64 at 17%U871I;VYS(%-O;'9E<@T*(R!0
M87)T:6%L;'D at 1FEL;&5D(\$-Y;&EN9&5R(\$QA>6EN9R!/;B!I=',@<VED90T*
M(PT*(R!B87-E9"!O;B!*879A4V-R:7!T(&9R;VT@#0HC(&AT=' Z+R]G<F%P
M979I;F4N86)E+FUS<W1A=&4N961U+WYF=&\O=&]O;',O=F]L+W!A<G1H8WEL
M:6YD97(N:'1M; T*(R!B>2!3+B!\$+B!&:6QI<"!4;R!0:&0N(%!%#0HC#0HC
M('1R86YS;&%T960 at 9G)O;2!*879A4V-R:7!T('1O(%!Y=&AO;B!B>2!787)R
M96X at 4&]S=&UA(%MW<&]S=&UA0'IT<BYC;VU=#0H-"F1E9B!C86QC<F%D:75S
M*&%N9VQE+&AE:6=H="QV;VPL;&5N9W1H*3H-"B @(" B9VEV96X at 86YG;&4L
M:&5I9VAT+'9O;'5M92P at 86YD(&QE;F=T:"P at 8V%L8W5L871E(')A9&EU<R!O
M9B!T86YK(@T*(" @('1H971A(#T at 86)S*&9L;V%T*&%N9VQE*2D@(R!T:&5T
M82!I;B!D96=R965S#0H@(" @=&AE=&\$@/2!T:&5T82 J(&UA=&@N<&D at +R Q
M.# N," C('1H971A(&EN(')A9 T*(" @(&@@/2!A8G,H9FQO870H:&5I9VAT
M*2D-"B @("!V(#T at 86)S*&9L;V%T*'9O;"DI#0H@(" @;" ](&%B<RAF;&]A
M="AL96YG=&@I*0T*(" @('(S(#T@,BXP("H@=B O*&P@*B H=&AE=&\$@+2!M
M871H+G-I;BAT:&5T82DI*0T*(" @('-P<F%D(#T@;6%T:"YP;W<H<C,L,"XU
M*0T*(" @(')E='5R;B!S<')A9 T*#0H-"F1E9B!C86QC:&5I9VAT*'9O;"QR
M861I=7,L;&5N9W1H*3H-"B @(" B9V5T(&AE:6=H="!F<F]M('9O;'5M92P@
M<F%D:75S(&%N9"!L96YG=&@B#0H@(" @=B ](&%B<RAF;&]A="AV;VPI*0T*
M(" @('(@/2!A8G,H9FQO870H<F%D:75S*2D-"B @("!L(#T at 86)S*&9L;V%T
M*&QE;F=T:"DI#0H@(" @=C\$@/2!L("H@;6%T:"YP:2 J('(@*B!R(", at 9G5L
M;"!V;VQU;64-"B @("!I9B H=C\$@/"!V*3H-"B @(" @(" @(R!R86ES92!6
M86QU945R<F]R+" B5&]O(&UU8V@@=F]L=6UE(&9O<B!T:&ES(&1I;65N<VEO
M;B(-"B @(" @(" @<F5T=7)N(# -"B @("!I9B H=C\$@/3T@=BDZ#0H@(" @
M(" @(')E='5R;B H,BXP("H@<BD-"B @("!I9B H=B ]/2 H=C\$M=BDI. at T*
M(" @(" @("!R971U<FX@<@T*(" @('8Q(#T@*"@R+C @*B!V*2]L*2\H<BIR
M*0T*(" @('@@/2!M871H+G!I("H@,BXP#0H@(" @(R!A<'!R;WAI;6%T92!A
M;F=L90T*(" @('1H971A(#T@, T*(" @('=H:6QE('1H971A(#P]('@Z#0H@
M(" @(" @('0@/2!M871H+G-I;BAT:&5T82D-"B @(" @(" @=" ]('1H971A
M("T@= T*(" @(" @("!I9B!A8G,H="UV,2D@/" P+C P,3H-"B @(" @(" @
M(" @(&)R96%K#0H@(" @(" @('1H971A(#T@=&AE=&\$K,"XP,#\$-"B @("!A
M;F=L92 ]('1H971A("H@,3 at P+C @+R!M871H+G!I#0H@(" @=#(@/2!T:&5T
M82\R+C -"B @("!T(#T@<B J(&UA=&@N8V]S*'0R*0T*(" @(&@@/2!R("T@
M= T*(" @('8Q(#T@;" J('(@("H@<B O,BXP("H@*'1H971A("T@;6%T:"YS
M:6XH=&AE=&\$I*0T*(" @(')E='5R;B H:"QA;F=L92D-"@T*#0ID968@=F]L
M<F at H:&5I9VAT+')A9&EU<RQL96YG=&@I. at T*(" @(")C86QC=6QA=&4@=F]L
M=6UE(&%N9"!A;F=L92P at 9VEV96X@<BP@:"!A;F0@;"(-"B @("!H(#T at 86)S
M*&9L;V%T*&AE:6=H="DI#0H@(" @<B ](&%B<RAF;&]A="AR861I=7,I*0T*
M(" @(&P@/2!A8G,H9FQO870H;&5N9W1H*2D-"B @("!I9B!H(#X@,BXP("H@
M<CH-"B @(" @(" @(W)A:7-E(%9A;'5E17)R;W(L(")#86XG="!D;R!(96EG
M:'0@/B!\$:6%M971E<B(-"B @(" @(" @<F5T=7)N("@P+# I#0H@(" @:68@
M:" \('(Z#0H@(" @(" @('(S(#T@*"AR("T@:"DO<BD-"B @(" @(" @82 ]
M(#(N," J(&UA=&@N86-O<RAR,RD@(R!A;F=L92!I;B!R861I86X-"B @(" @
M(" @<C,@/2!L*B!R("H@<B O,BXP(", at +C4@<EXR(&P-"B @(" @(" @<V\$@
M/2!M871H+G-I;BAA*0T*(" @(" @("!S<'9O;#UR,R J("AA("T@<V\$I#0H@
M(" @(" @(&%N9VQE(#T@,3 at P+C @*B!A+VUA=&@N<&D-"B @(" @(" @<F5T
M=7)N(" H<W!V;VPL86YG;&4I#0H@(" @96QI9B H:" ]/2!R*2!O<B H:" ]
M/2!R*W(I. at T*(" @(" @("!S<'9O;#UL("H@;6%T:"YP:2 J<BIR(", at 9G5L
M;"!C>6QI;F1E<B!A<F5A#0H@(" @(" @(&EF(&@@/3T@<CH@(",@:&5I9VAT
M(#T@<F%D:75S('1H96X@:70G<R!H86QF(&9U;&P-"B @(" @(" @(" @(&%N
M9VQE/3\$X,"XP#0H@(" @(" @(" @("!R971U<FX@*'-P=F]L+S(N,"QA;F=L
M92D-"B @(" @(" @96QS93H@(" @(" @(R!H96EG:'0@/2 R+C J<F%D:75S
M('1H96X@:70G<R!C;VUP;&5T96QY(&9U;&P-"B @(" @(" @(" @(&%N9VQE
M/3,V,"XP#0H@(" @(" @(" @("!R971U<FX@*'-P=F]L+&%N9VQE*0T*(" @
M(&5L<V4Z(",@:" ^('(-"B @(" @(" @<W!V;VP];"H@;6%T:"YP:2 J<BIR
M(", at 9G5L;"!C>6QI;F1E<B!A<F5A#0H@(" @(" @(&@Q(#T@<B K('(@+2!H
M#0H@(" @(" @('(S(#T@*'(@+2!H,2DO<@T*(" @(" @("!A(#T@,BXP("H@
M;6%T:"YA8V]S*'(S*2 C(&%N9VQE(&EN(')A9&EA;@T*(" @(" @("!R,R ]
M(&P@*B!R(" J('(@+S(N," C(" Q+S(@<EXR(&P-"B @(" @(" @<V\$@/2!M
M871H+G-I;BAA*0T*(" @(" @("!S<'9O;#US<'9O;" M('(S("H@*&\$@+2!S
M82D-"B @(" @(" @86YG;&4],S8P+C @+2 H82 J(#\$X,"XP("\@;6%T:"YP
M:2D-"B @(" @(" @<F5T=7)N(" H<W!V;VPL(&%N9VQE*0T*#0H-"F1E9B!V
M;VQR82AA;F=L92QR861I=7,L;&5N9W1H*3H-"B @(" B8V%L8W5L871E('9O
M;'5M92!A;F0@:&5I9VAT+"!G:79E;B!L+"!R+"!A;F0 at 86YG;&4B#0H@(" @
M82 ](&%B<RAF;&]A="AA;F=L92DI(",@=7-E<B!A;F=L92!E;G1R>2!I;B!D
M96=R964-"B @("!A,2 ]("AA("H@;6%T:"YP:2 O("@R+C @*B Q.# N,"DI
M(",@:&%L9B!A;F=L92!I;B!R860-"B @("!R(#T at 86)S*&9L;V%T*')A9&EU
M<RDI#0H@(" @;" ](&%B<RAF;&]A="AL96YG=&@I*0T*(" @(&EF(&\$@/" Q
M.# N,#H-"B @(" @(" @:" ]("AR("T@;6%T:"YC;W,H83\$I("H@<BD-"B @
M("!E;&EF(&%B<RAA("T@,3 at P+C I(#P@,"XP,# P,3H-"B @(" @(" @:" ]
M('(-"B @("!E;'-E.B C(#X@,3 at P#0H@(" @(" @(&\$Q(#T@*"@R+C @*B!M
M871H+G!I("T at 83\$@*B R+C I+S(N,"D-"B @(" @(" @:" ]('(@+2!M871H
M+F-O<RAA,2D@*B!R#0H@(" @(" @(&@@/2!E=F%L("@@,BXP("H@<B M(&@I
M#0H@(" @:&5I9VAT(#T@:" -"B @("!I9B!H(#P@<CH-"B @(" @(" @<C,@
M/2 H*'(@+2!H*2]R*0T*(" @(" @("!A(#T@*" R+C @*B!A,2D@(" @(" C
M(&%N9VQE(&EN(')A9&EA;@T*(" @(" @("!R,R ](&P@*B!R("H@<B O,B @
M(R!L("H@<EXR("\R#0H@(" @(" @('-A(#T@;6%T:"YS:6XH82D-"B @(" @
M(" @<W!V;VP]*'(S("H@*&\$@+2!S82DI#0H@(" @(" @(')E='5R;B @*'-P
M=F]L+&AE:6=H="D-"B @("!E;&EF("AH(#T]('(I(&]R("AH(#T]("AR*W(I
M*3H-"B @(" @(" @<W!V;VP]*&P@*B!M871H+G!I("H@<B J('(I#0H@(" @
M(" @(&EF(&@@/3T@<CH-"B @(" @(" @(" @(')E='5R;B H<W!V;VPO,BQH
M96EG:'0I#0H@(" @(" @(&5L<V4Z#0H@(" @(" @(" @("!R971U<FX@*'-P
M=F]L+&AE:6=H="D-"B @("!E;'-E.B C(&@@/B!R#0H@(" @(" @('-P=F]L
M/2AL("H@;6%T:"YP:2 J<BIR*2 C9G5L;"!C>6QI;F1E<@T*(" @(" @("!H
M,2 ]("@R+C @*B!R("T@:"D-"B @(" @(" @<C,@/2 H*'(@+2!H,2DO<BD-
M"B @(" @(" @82 ](#(N," J(&UA=&@N86-O<RAR,RD@(V%N9VQE(&EN(')A
M9&EA;@T*(" @(" @("!R,R ]("AL("H@<B J('(@+R R+C I(",@,2\R(')>
M,B J(&P-"B @(" @(" @<V\$@/2!M871H+G-I;BAA*0T*(" @(" @("!S<'9O
M;#TH<W!V;VP at +2!R,R J("AA("T@<V\$I*0T*(" @(" @("!R971U<FX@("AS
M<'9O;"QH96EG:'0I#0H-"F1E9B!V;VQH82AA;F=L92QH96EG:'0L;&5N9W1H
M*3H-"B @(" B8V%L8W5L871E('9O;'5M92!A;F0@<F%D:75S+"!G:79E;B!L
M+"!H(&%N9"!A;F=L92(-"B @("!A(#T at 86)S*&9L;V%T*&%N9VQE*2D@(V%N
M9VQE(&EN(&1E9W)E90T*(" @(&\$Q(#T@*&\$@*B!M871H+G!I("\@*#(N," J
M(#\$X,"DI(",@:&%L9B!A;F=L92!I;B!R860-"B @("!H(#T at 86)S*&9L;V%T
M*&AE:6=H="DI#0H@(" @;" ](&%B<RAF;&]A="AL96YG=&@I*0T*(" @(&EF
M(&\$@/" Q.# N,#H-"B @(" @(" @<B ](&UA=&@N8V]S*&\$Q*0T*(" @(" @
M("!R(#T@:"\H,2UR*0T*(" @(&5L:68 at 86)S*&\$@+2 Q.# N,"D@/" P+C P
M,# Q. at T*"7(@/2!H#0H@(" @96QS93H@(R ^(#\$X, T*(" @(" @("!A(#T@
M,S8P+C @+2!A#0H@(" @(" @(&\$Q(#T@*&\$@*B!M871H+G!I("\@*#(N," J
M(#\$X,"XP*2D@(R!H86QF(&%N9VQE(&EN(')A9 T*(" @(" @("!R(#T@;6%T
M:"YC;W,H83\$I#0H@(" @(" @(&EF('(@/3T at +3\$Z#0H@(" @(" @(" @("!R
M(#T@:"\R#0H@(" @(" @(&5L<V4Z#0H@(" @(" @(" @("!R(#T@:"\H,2MR
M*0T*(" @(')A9&EU<R ]('(-"B @("!I9B!H(#P@<CH-"B @(" @(" @<C,@
M/2 H*'(@+2!H*2]R*0T*(" @(" @("!A(#T@*" R+C @*B!A,2D@(V%N9VQE
M(&EN(')A9&EA;@T*(" @(" @("!R,R ](&P@*B @<B J('(@+S(@(R!L("H@
M<EXR("\@, at T*(" @(" @("!S82 ](&UA=&@N<VEN*&\$I#0H@(" @(" @('-P
M=F]L/2AR,R J("AA("T@<V\$I*0T*(" @(" @("!R971U<FX@("AS<'9O;"QR
M861I=7,I#0H@(" @96QI9B H:" ]/2!R*2!O<B H:" ]/2 H<BMR*2DZ#0H@
M(" @(" @('-P=F]L/2AL("H@;6%T:"YP:2IR*G(I#0H@(" @(" @(&EF(&@@
M/3T@<CH-"B @(" @(" @(" @(')E='5R;B H<W!V;VPO,BQR861I=7,I#0H@
M(" @(" @(&5L<V4Z#0H@(" @(" @(" @("!R971U<FX@*'-P=F]L+')A9&EU
M<RD-"B @("!E;'-E.B C(&@@/B!R#0H@(" @(" @('-P=F]L/2AL*B!M871H
M+G!I("IR*G(I("-F=6QL(&-Y;&EN9&5R#0H@(" @(" @(&@Q(#T@*#(N," J
M('(@+2!H*0T*(" @(" @("!R,R ]("@H<B M(&@Q*2]R*0T*(" @(" @("!A
M(#T@,BXP("H@;6%T:"YA8V]S*'(S*2 C86YG;&4@:6X@<F%D:6%N#0H@(" @
M(" @('(S(#T@*&P@*B @<B J('(@+S(I(",@;"!R7C(@+S(-"B @(" @(" @
M<V\$@/2!M871H+G-I;BAA*0T*(" @(" @("!S<'9O;#TH<W!V;VP at +2!R,R J
M("AA("T@<V\$I*0T*(" @(" @("!R971U<FX@("AS<'9O;"QR861I=7,I#0H-
M"@T*9&5F(&-A;&-L96YR:"AV;VPL<F%D:75S+&AE:6=H="DZ#0H@(" @(F-A
M;&-U;&%T92!L96YG=&@L86YG;&4 at 9G)O;2!R+&@@86YD('8B#0H@(" @=B ]
M(&%B<RAF;&]A="AV;VPI*0T*(" @('(@/2!A8G,H9FQO870H<F%D:75S*2D-
M"B @("!H(#T at 86)S*&9L;V%T*&AE:6=H="DI#0H@(" @=&AE=&\$@/2 R+C @
M*B H;6%T:"YA8V]S*"AR("T@:"DO<BDI(",@=&AE=&\$@:6X@<F%D#0H@(" @
M86YG;&4@/2 H,3 at P+C @*B!T:&5T82]M871H+G!I*2 C(&1E9W)E90T*(" @
M(')E='5R;B H*" R+C @*B!V("\H<B J('(@*B H=&AE=&\$@+2!M871H+G-I
M;BAT:&5T82DI*2DL(&%N9VQE("D-"@T*9&5F(&-A;&-L96YV<BAV;VPL<F%D
M:75S+&%N9VQE*3H-"B @(" B8V%L8W5L871E(&QE;F=T:"QH96EG:'0 at 9G)O
M;2!A;F=L92P@=F]L=6UE(&%N9"!R861I=7,B#0H@(" @=B ](&%B<RAF;&]A
M="AV;VPI*0T*(" @('(@/2!A8G,H9FQO870H<F%D:75S*2D-"B @("!T:&5T
M82 ](&UA=&@N<&D@*B!A8G,H9FQO870H86YG;&4I*2\S-C @(R!H86QF('1H
M971A(&EN(')A9 T*(" @(&@@/2!R("H@*#\$N," M(&UA=&@N8V]S*'1H971A
M*2D-"B @("!T:&5T82 ]('1H971A("L@=&AE=&\$@(R!F=6QL(&%N9VQE#0H@
M(" @:&5I9VAT(#T@:" C(&1I<W!L87D@:&5I9VAT#0H@(" @<F5T=7)N("@H
M,B J('8O*'(@*B!R("HH=&AE=&\$@+2!M871H+G-I;BAT:&5T82DI*2DL:&5I
M9VAT*0T*#0ID968 at 8V%L8VQE;FAA*'9O;"QH96EG:'0L86YG;&4I. at T*(" @
M(")C86QC=6QA=&4@;&5N9W1H+"!R861I=7, at 9G)O;2!V+"!H+"!A;F0 at 82(-
M"B @("!V(#T at 86)S*'9O;"D-"B @("!H(#T at 86)S*&AE:6=H="D-"B @("!T
M:&5T82 ](&%B<RAA;F=L92DC86YG;&4@:6X at 9&5G#0H@(" @=&AE=&\$@/2!T
M:&5T82 J(&UA=&@N<&DO,S8P(VAA;&8 at 86YG;&4@:6X@<F%D#0H@(" @<B ]
M(&UA=&@N8V]S*'1H971A*0T*(" @(&EF('(@/3T@,3H-"B @(" @(" @<B ]
M(&@O, at T*(" @(&5L<V4Z#0H@(" @(" @('(@/2!H("\H,2 M(&UA=&@N8V]S
M*'1H971A*2D-"B @("!T:&5T82 ]('1H971A*W1H971A("-F=6QL(&%N9VQE
M#0H@(" @<F%D:75S(#T@<B C9&ES<&QA>2!R#0H@(" @<F5T=7)N("@H,B J
M('8O*'(@*B!R("HH=&AE=&\$@+2!M871H+G-I;BAT:&5T82DI*2DL(')A9&EU
M<RD-"@T*9&5F('-O;'9E*&QE;F=T:#U.;VYE+&AE:6=H=#U.;VYE+'9O;#U.
M;VYE+&%N9VQE/4YO;F4L<F%D:75S/4YO;F4I. at T*(" @(")G96YE<FEC('-O
M;'9E('1A:V5S(&%N>2!O9B!T:&5S92!P87)A;65T97)S.B!L96YG=&@L:&5I
M9VAT+'9O;"QA;F=L92QR861I=7,B#0H@(" @;VL], T*(" @(&EF('9O;#T]
M3F]N93H-"@EI9B H;&5N9W1H(#P^3F]N92!A;F0@<F%D:75S(#P^(\$YO;F4@
M86YD(&AE:6=H=" \/B!.;VYE*3H-"@D@(" @=F]L+&%N9VQE/79O;')H*&AE
M:6=H="QR861I=7,L;&5N9W1H*0T*"2 @("!O:STQ#0H)96QI9B H;&5N9W1H
M(#P^3F]N92!A;F0@<F%D:75S(#P^(\$YO;F4 at 86YD(&%N9VQE(#P^(\$YO;F4I
M. at T*(" @(" @(" @(" @=F]L+&AE:6=H=#UV;VQR82AA;F=L92QR861I=7,L
M;&5N9W1H*0T*(" @(" @(" @(" @;VL],0T*"65L:68@*&QE;F=T:" \/DYO
M;F4 at 86YD(&AE:6=H=" \/B!.;VYE(&%N9"!A;F=L92 \/B!.;VYE*3H-"B @
M(" @(" @(" @('9O;"QR861I=7,]=F]L:&\$H86YG;&4L:&5I9VAT+&QE;F=T
M:"D-"B @(" @(" @(" @(&]K/3\$-"B @("!E;&EF("AR861I=7,@/3T at 3F]N
M92!A;F0@;&5N9W1H(#P^(\$YO;F4I.B C(&-A;&-U;&%T:6YG(')A9&EU<S\-
M"B @(" @( EI9B H=F]L(#P^3F]N92!A;F0@:&5I9VAT(#P^3F]N92!A;F0@
M86YG;&4@/#X at 3F]N92 I. at T*(" @(" @(" @(" @(')A9&EU<R ](&-A;&-R
M861I=7,H86YG;&4L:&5I9VAT+'9O;"QL96YG=&@I#0H@(" @(" @(" @(" @
M;VL],0T*(" @(&5L:68@*&AE:6=H=" ]/4YO;F4 at 86YD(&QE;F=T:" \/B!.
M;VYE*3H@(V-A;&-U;&%T:6YG(&AE:6=H=#\-"@EI9B H=F]L(#P^(\$YO;F4@
M86YD(')A9&EU<R \/DYO;F4I. at T*"0EH96EG:'0L86YG;&4@/2!C86QC:&5I
M9VAT*'9O;"QR861I=7,L;&5N9W1H*0T*"0EO:STQ#0H@(" @96QI9B H;&5N
M9W1H(#T](\$YO;F4I.B C8V%L8W5L871I;F<@;&5N9W1H#0H):68@*'9O;" \
M/DYO;F4 at 86YD(&AE:6=H=" \/B!.;VYE(&%N9"!R861I=7,@/#Y.;VYE*3H-
M"@D);&5N9W1H+&%N9VQE(#T at 8V%L8VQE;G)H*'9O;"QR861I=7,L:&5I9VAT
M*0T*"0EO:STQ#0H)96QI9B H=F]L(#P^3F]N92!A;F0@<F%D:75S(#P^(\$YO
M;F4 at 86YD(&%N9VQE(#P^(\$YO;F4I. at T*"0EL96YG=&@L:&5I9VAT(#T at 8V%L
M8VQE;G9R*'9O;"QR861I=7,L86YG;&4I#0H)"6]K/3\$)"0T*"65L:68@*'9O
M;" \/DYO;F4 at 86YD(&AE:6=H=" \/DYO;F4 at 86YD(&%N9VQE(#P^3F]N92DZ
M#0H@(" @(" @(" @(" );&5N9W1H+')A9&EU<R ](&-A;&-L96YH82AV;VPL
M:&5I9VAT+&%N9VQE*0T*(" @(" @(" @(" @"6]K/3\$-"B @("!I9B!N;W0@
M;VLZ#0H@(" @("!R86ES92!686QU945R<F]R+" B<V]L=F4Z(&YE960@;6]R
M92!D871A('1O(&-O;7!U=&4 at 82!S;VQU=&EO;B(-"B @("!R971U<FX@*&QE
M;F=T:"QH96EG:'0L=F]L+&%N9VQE+')A9&EU<RD-"@T*#0ID968 at 9'5M<"AN
M*3H-"B @(" B<')I;G0 at 82!L:7-T(&EN(&-O;'5M;G,@,3 @9&EG:71S('=I
M9&4B#0H@(" @<F]W(#T@)R<-"B @("!F;W(@:2!I;B!N. at T*(" @(" @("!S
M(#T@<W1R*&DI#0H@(" @(" @(&P@/2!L96XH<RD-"B @(" @(" @:68@;#PQ
M,#H-"B @(" @(" @(" @(',@/2!S*R at G("<J*#\$P+6PI*0T*(" @(" @("!E
M;'-E. at T*(" @(" @(" @(" @<R ]('-;.CE=*R<@)R C=')U;F-A=&4-"B @
M(" @(" @<F]W(#T@<F]W("L@<PT*(" @('!R:6YT(')O=PT*(" @(" @(" -
M"B, at 82!F97<@<V%N:71Y(&-H96-K<RP@;6%K92!S=7)E(&ET(&-O;7!L86EN
M<R!W:&5N('1H97)E(&ES(&EN8V]M<&QE=&4 at 9&%T83H-"@T*9&5F('-E;&9T
M97-T*"DZ#0H@(" @(G-I;7!L92!S96QF('1E<W0@<VAO=6QD(&9I;F0@;6]S
M="!G;&%R:6YG(&5R<F]R<RX@=&AI<R!T97-T(&ES(&YO="!F;V]L<')O;V8N
M(@T*(" @('!R:6YT("(@(@T*(" @('!R:6YT("(@0WEL:6YD<FEC86P at 5F]L
M=6UE(%-E;&8 at 5&5S=',Z(@T*(" @('!R:6YT("(@(@T*(" @(&5X/3 -"B @
M("!T<GDZ#0H@(" @(" @(&X@/2!S;VQV92 at I(",@;F\@<&%R86UE=&5R<RX@
M<VAO=6QD(')A:7-E(&5X8V5P=&EO;@T*(" @(&5X8V5P="!686QU945R<F]R
M. at T*(" @(" @("!E>" ](&5X("L@,0T*(" @('1R>3H-"B @(" @(" @;B ]
M('-O;'9E*&QE;F=T:#TQ,"XP+&AE:6=H=#TQ,"XP*2 C(&YO="!E;F]U9V at -
M"B @("!E>&-E<'0 at 5F%L=65%<G)O<CH-"B @(" @(" @97@@/2!E>" K(#\$-
M"B @("!T<GDZ#0H@(" @(" @(&X@/2!S;VQV92AR861I=7,],3 N,"QH96EG
M:'0],3 N,"QA;F=L93TQ,"XP*2 C(&YO="!E;F]U9V@@<&%R86UE=&5R<PT*
M(" @(&5X8V5P="!686QU945R<F]R. at T*(" @(" @("!E>" ](&5X("L@,0T*
M(" @(&EF("AE>" \(#,I. at T*(" @(" @("!P<FEN=" B9F%I;&5D('1O(')A
M:7-E(&5X8V5P=&EO;G,@;VX@:6YC;VUP;&5T92!D871A(@T*(" @(",@;F]W
M(&1O('-I;7!L97-T(&-A<V4Z#0H@(" @=&ET;&5S(#T at 6R G;&5N9W1H)RPG
M:&5I9VAT)RPG=F]L)RPG86YG;&4G+"=R861I=7,G70T*(" @(&1U;7 H=&ET
M;&5S*0T*(" @(&1U;7 H(%LG+2TM+2TM+2TG72HU("D-"B @("!P<FEN=" B
M("(-"B @("!T<GDZ#0H@(" @(" @(", at 8V%L8W5L871E('9O;'5M92!G:79E
M;B!R(&@@; T*(" @(" @("!N(#T@<V]L=F4H(&QE;F=T:#TQ,"XP+"!H96EG
M:'0],34N,"P@<F%D:75S/3\$U+C I#0H@(" @(" @(&1U;7 H;BD-"B @(" @
M(" @:68 at 86)S*&Y;,ETM,S4S-"XR*2 ^(# N,SH-"B @(" @(" @(" @('!R
M:6YT(")F86EL960@<VEM<&QE<W0 at 8V%S93H at 8V%N)W0 at 8V%L8W5L871E('9O
M;'5M92!F<F]M(&QE;F=T:"P@:&5I9VAT(&%N9"!R861I=7,B#0H@(" @(" @
M(&5L:68 at 3F]N92!I;B!N. at T*(" @(" @(" @(" @<')I;G0@(F9A:6QE9"!S
M:6UP;&5S="!C87-E.B!V;VQU;64 at 9&%T82!I;F-O;7!L971E(@T*(" @(" @
M(" C96QS93H-"B @(" @(" @(R @("!P<FEN=" B0F%S:6, at 5F]L=6UE(%-A
M;FET>2!#:&5C:R C(#\$@<&%S<V5D+B(-"B @("!E>&-E<'0 at 5F%L=65%<G)O
M<CH-"B @(" @(" @(" @('!R:6YT(")F86EL960@<VEM<&QE<W0 at 8V%S93H@
M97AC97!T:6]N(&-A;&-U;&%T:6YG('9O;'5M92!F<F]M(&QE;F=T:"P@:&5I
M9VAT(&%N9"!R861I=7,B#0H@(" @(" @(" @("!R971U<FX-"B @(" C(&-A
M;&-U;&%T92!V;VQU;64 at 9VEV96X@<B!A(&P-"B @("!N/7-O;'9E*')A9&EU
M<STQ,2XP+&%N9VQE/3\$W-RXP+&QE;F=T:#TS,2XP*0T*(" @(&1U;7 H(&X@
M*2 -"B @("!I9B!A8G,H;ELR72TU-CDU+C8Y.2D@/B P+C,Z#0H@(" @(" @
M("!P<FEN=" B9F%I;&5D('1O(&-A;&-U;&%T92!V;VQU;64 at 9VEV96X@<BP@
M82P@;"(-"B @(" C(&-A;&-U;&%T92!V;VQU;64 at 9VEV96X@:"!A(&P-"B @
M("!N/7-O;'9E*&AE:6=H=#TR,2XP+&%N9VQE/3\$Y,"XP+&QE;F=T:#TR,BXP
M*2 -"B @("!D=6UP*"!N("D@#0H@(" @:68 at 86)S*&Y;,ETM,30S,C,N,"D@
M/B Q+C Z#0H@(" @(" @('!R:6YT(")F86EL960@=&\@8V%L8W5L871E('9O
M;'5M92!G:79E;B!H+"!A+"!L(@T*(" @(",@='=O(&UO<F4 at 8V%S97,Z#0H@
M(" @9'5M<"@@<V]L=F4H:&5I9VAT/3(Q+C L86YG;&4],3DN,"QL96YG=&@]
M,C(N,"D@*2 -"B @("!D=6UP*"!S;VQV92AH96EG:'0],C\$N,"QA;F=L93TS
M,C N,"QL96YG=&@],C(N,"D@*2 -"B @(" C(&-A;&-U;&%T92!H96EG:'0-
M"B @("!N/7-O;'9E*'9O;#TQ-#,R,RQR861I=7,],3DN,S\$L;&5N9W1H/3(R
M*2 C(&5X<&5C="!H96EG:'0@;V8@,C\$-"B @("!D=6UP*&XI#0H@(" @:68@
M*&%B<RAN6S%=+3(Q+C I(#X at +C(I. at T*(" @(" @("!P<FEN=" B9F%I;&5D
M('1O(&-A;&-U;&%T92!H96EG:'0B#0H@(" @(R!C86QC=6QA=&4@<F%D:75S
M#0H@(" @;B ]('-O;'9E*&%N9VQE/3(S+C4R-34W-#\$L:&5I9VAT/3(Q+C L
M=F]L/34W,C Q."XR-S<V.#4W,RQL96YG=&@],3 P*0T*(" @(&1U;7 H;BD@
M(" @#0H@(" @:68@*&Y;-%TM,3 P,"XP*2 ^("XR. at T*(" @(" @("!P<FEN
M=" B9F%I;&5D('1O(&-A;&-U;&%T92!R861I=7,B#0H@(" @(R!C86QC=6QA
M=&4@;&5N9W1H(&)A<V5D(&]N('8L(&@L('(-"B @("!N(#T@<V]L=F4H=F]L
M/3\$P,# N,"QH96EG:'0],3 N,"QR861I=7,],3DI#0H@(" @9'5M<"AN*0T*
M(" @(&EF(&%B<RAN6S-=+3\$R,RXT-2D^,"XS. at T*(" @(" @("!P<FEN=" B
M9F%I;&5D('1O(&-A;&-U;&%T92!A;F=L92!G:79E;B!V+"!H+"!R(@T*(" @
M(&EF(&%B<RAN6S!=+30N,3DV,2D^,"XS. at T*(" @(" @("!P<FEN=" B9F%I
M;&5D('1O(&-A;&-U;&%T92!L96YG=&@@9VEV96X@=BP@:"P@<B(-"B @(" C
M(&-A;&-U;&%T92!L96YG=&@@8F%S960@;VX@=BP@<B!A;F0 at 86YG;&4-"B @
M("!N(#T@<V]L=F4H=F]L/3\$P,# L<F%D:75S/3\$Y+&%N9VQE/3\$R,RXT-2D-
M"B @("!D=6UP*&XI(" @( T*(" @(&EF(&%B<RAN6S!=+30N,3DV,2D^,"XS
M. at T*(" @(" @("!P<FEN=" B9F%I;&5D('1O(&-A;&-U;&%T92!L96YG=&@@
M9VEV96X@=BP@<BP at 82(-"B @(" C(&-A;&-U;&%T92!L96YG=&@@8F%S960@
M;VX@=BP@:"!A;F0 at 86YG;&4-"B @("!N(#T@<V]L=F4H=F]L/3\$P,# L:&5I
M9VAT/3\$P+&%N9VQE/3\$R,RXT-2D-"B @("!D=6UP*&XI#0H@(" @:68 at 86)S
M*&Y;,%TM-"XQ.38Q*3XP+C,Z#0H@(" @(" @('!R:6YT(")F86EL960@=&\@
M8V%L8W5L871E(&QE;F=T:"!G:79E;B!V+"!H+"!A(@T*(" @('!R:6YT("(@
M(@T*(" @('!R:6YT(")T97-T:6YG(&-O;7!L971E(@T*(" @('!R:6YT("(@
M(@T*(" @( T*:68 at 7U]N86UE7U\@/3T@)U]?;6%I;E]?)SH-"B @("!S96QF
.=&5S="@I#0H@(" @#0H`
`
end

```