[Patches] mmap changes for Win32.

Mark Hammond mhammond@skippinet.com.au
Fri, 31 Mar 2000 10:44:28 +1000


I hacked on this for Win32.  Specific changes of note:

* the Win32 version now accepts the same args as the Unix version.
The win32 specific "tag" param is now optional.  The end result is
that the exact same test suite runs on Windows (definately a worth
goal!).

* I changed the error object.  All occurences of the error, except
for 1, corresponds to an underlying OS error.  This one was changed
to a ValueError (a better error for that condition), and the module
error object is now simply EnvironmentError.  All win32 error
routines now call the new Windows specific error handler.

Ive simply attached all relevant files.  The .dsp goes in the
"PCBuild" directory.  Also attached is "PCbuild" workspace that
includes the new project.  NOT yet included is an update to the WISE
package to install this new .pyd.

Note that the test output has not changed, so this is not attached.

[Attachments should be uuencoded this time - let me know if there
are problems]

Release info:

I confirm that, to the best of my knowledge and belief, this
contribution is free of any claims of third parties under copyright,
patent or other rights or interests ("claims").  To the extent that
I have any such claims, I hereby grant to CNRI a nonexclusive,
irrevocable, royalty-free, worldwide license to reproduce,
distribute, perform and/or display publicly, prepare derivative
versions, and otherwise use this contribution as part of the Python
software and its related documentation, or any derivative versions
thereof, at no cost to CNRI or its licensed users, and to authorize
others to do so.

I acknowledge that CNRI may, at its sole discretion, decide whether
or not to incorporate this contribution in the Python software and
its related documentation.  I further grant CNRI permission to use
my name and other identifying information provided to CNRI by me for
use in connection with the Python software and its related
documentation.

Mark.


begin 666 mmapmodule.c
M+RH@+2HM($UO9&4Z($,K*SL@=&%B+7=I9'1H.B T("TJ+0T*("\)075T:&]R
M.B!386T@4G5S:&EN9R \<G5S:&EN9T!N:6=H=&UA<F4N8V]M/@T*("\@($AA
M8VME9"!F;W(@56YI>"!B>2!!+DTN($MU8VAL:6YG(#QA;6LQ0&)I9V9O;W0N
M8V]M/B -"B O"21)9#H@;6UA<&UO9'5L92YC+'8@,BXQ(#(P,# O,#,O,S @
M,C$Z,30Z,S @86MU8VAL:6X@17AP("0-"@T*("\@;6UA<&UO9'5L92YC<' @
M+2T@;6%P(&$@=FEE=R!O9B!A(&9I;&4@:6YT;R!M96UO<GD-"B O#0H@+R!T
M;V1O.B!N965D('!E<FUI<W-I;VX@9FQA9W,L('!E<FAA<',@82 G8VAS:7IE
M)R!A;F%L;V<-"B O(" @;F]T(&%L;"!F=6YC=&EO;G,@8VAE8VL@<F%N9V4@
M>65T(2$A#0H@+PT*("\-"B O($YO=&4Z(%1H:7,@;6]D=6QE(&-U<G)E;G1L
M>2!O;FQY(&1E86QS('=I=&@@,S(M8FET(&9I;&4-"B O(" @<VEZ97,N#0H@
M+PT*("\@5&AE(&QA=&5S="!V97)S:6]N(&]F(&UM87!F:6QE(&ES(&UA:6YT
M86EN960@8GD@4V%M(&%T#0H@+R!F=' Z+R]S<75I<FPN;FEG:'1M87)E+F-O
M;2]P=6(O<'ET:&]N+W!Y=&AO;BUE>'0N#0HJ+PT*#0HC:6YC;'5D92 \4'ET
M:&]N+F@^#0H-"B-I9FYD968@35-?5TE.,S(-"B-D969I;F4@54Y)6 T*(V5N
M9&EF#0H-"B-I9F1E9B!-4U]724XS,@T*(VEN8VQU9&4@/'=I;F1O=W,N:#X-
M"B-E;F1I9@T*#0HC:69D968@54Y)6 T*(VEN8VQU9&4@/'5N:7-T9"YH/@T*
M(VEN8VQU9&4@/'-Y<R]M;6%N+F@^#0HC96YD:68-"@T*(VEN8VQU9&4@/'-T
M<FEN9RYH/@T*(VEN8VQU9&4@/'-Y<R]T>7!E<RYH/@T*#0IS=&%T:6,@4'E/
M8FIE8W0@*FUM87!?;6]D=6QE7V5R<F]R.PT*#0IT>7!E9&5F('-T<G5C="![
M#0H)"5!Y3V)J96-T7TA%040-"@D)8VAA<B J"61A=&$[#0H)"7-I>F5?= ES
M:7IE.PT*"0ES:7IE7W0)<&]S.PT*#0HC:69D968@35-?5TE.,S(-"@D)2$%.
M1$Q%"6UA<%]H86YD;&4[#0H)"4A&24Q%"0EF:6QE7VAA;F1L93L-"@D)8VAA
M<B J"71A9VYA;64[#0HC96YD:68-"@T*(VEF9&5F(%5.25@-"B @+RH@3F\@
M56YI>"US<&5C:69I8R!I;F9O<FUA=&EO;B!A="!T:&ES('!O:6YT(&EN('1I
M;64@*B\-"B-E;F1I9@T*?2!M;6%P7V]B:F5C=#L-"@T*<W1A=&EC('9O:60-
M"FUM87!?;V)J96-T7V1E86QL;V,H;6UA<%]O8FIE8W0@*B!M7V]B:BD-"GL-
M"B-I9F1E9B!-4U]724XS,@T*"0E5;FUA<%9I97=/9D9I;&4@*&U?;V)J+3YD
M871A*3L-"@D)0VQO<V5(86YD;&4@*&U?;V)J+3YM87!?:&%N9&QE*3L-"@D)
M0VQO<V5(86YD;&4@*"A(04Y$3$4I;5]O8FHM/F9I;&5?:&%N9&QE*3L-"B-E
M;F1I9B O*B!-4U]724XS,B J+PT*#0HC:69D968@54Y)6 T*"0EI9B H;5]O
M8FHM/F1A=&$A/4Y53$PI('L-"@D)"0EM<WEN8RAM7V]B:BT^9&%T82P@;5]O
M8FHM/G-I>F4L($U37U-93D,@?"!-4U])3E9!3$E$051%*3L-"@D)"0EM=6YM
M87 H;5]O8FHM/F1A=&$L(&U?;V)J+3YS:7IE*3L-"@D)?0T*(V5N9&EF("\J
M(%5.25@@*B\-"@T*"0E0>4UE;5]$14PH;5]O8FHI.PT*?0T*#0IS=&%T:6,@
M4'E/8FIE8W0@*@T*;6UA<%]C;&]S95]M971H;V0@*&UM87!?;V)J96-T("H@
M<V5L9BP@4'E/8FIE8W0@*B!A<F=S*0T*>PT*(VEF9&5F($U37U=)3C,R#0H)
M"55N;6%P5FEE=T]F1FEL92 H<V5L9BT^9&%T82D[#0H)"4-L;W-E2&%N9&QE
M("AS96QF+3YM87!?:&%N9&QE*3L-"@D)0VQO<V5(86YD;&4@*"A(04Y$3$4I
M<V5L9BT^9FEL95]H86YD;&4I.PT*"0ES96QF+3YM87!?:&%N9&QE(#T@*$A!
M3D1,12D@3E5,3#L-"B-E;F1I9B O*B!-4U]724XS,B J+PT*#0HC:69D968@
M54Y)6 T*"0EM=6YM87 H<V5L9BT^9&%T82P@<V5L9BT^<VEZ92D[#0H)"7-E
M;&8M/F1A=&$@/2!.54Q,.PT*(V5N9&EF#0H-"@D)4'E?24Y#4D5&("A0>5].
M;VYE*3L-"@D)<F5T=7)N("A0>5].;VYE*3L-"GT-"@T*(VEF9&5F($U37U=)
M3C,R#0HC9&5F:6YE($-(14-+7U9!3$E$*&5R<BD@( D)"0D)"0D)"0D)(" @
M(%P-"F1O('L)"0D)"0D)"0D)"0D)"0D)"5P-"@EI9B H(7-E;&8M/FUA<%]H
M86YD;&4I('L)"0D)"0D)"0D)"2!<#0H)"5!Y17)R7U-E=%-T<FEN9R H4'E%
M>&-?5F%L=65%<G)O<BP@(FUM87 @8VQO<V5D(&]R(&EN=F%L:60B*3M<#0H)
M"7)E='5R;B!E<G(["0D)"0D)"0D)"0D)"2 @(" @7 T*"7T)"0D)"0D)"0D)
M"0D)"0D)"2!<#0I]('=H:6QE("@P*0T*(V5N9&EF("\J($U37U=)3C,R("HO
M#0H-"B-I9F1E9B!53DE8#0HC9&5F:6YE($-(14-+7U9!3$E$*&5R<BD)"0D)
M"0D)"0D)"0E<#0ID;R!["0D)"0D)"0D)"0D)"0D)"0E<#0H@(" @:68@*'-E
M;&8M/F1A=&$@/3T@3E5,3"D@>PD)"0D)"0D)"0D@(" @7 T*(" @( E0>45R
M<E]39713=')I;F<@*%!Y17AC7U9A;'5E17)R;W(L(")M;6%P(&-L;W-E9"!O
M<B!I;G9A;&ED(BD["5P-"B @(" @(" @<F5T=7)N(&5R<CL)"0D)"0D)"0D)
M"0D)"2 @("!<#0H@(" @(" @('T)"0D)"0D)"0D)"0D)"0D)"5P-"GT@=VAI
M;&4@*# I#0HC96YD:68@+RH@54Y)6" J+PT*#0IS=&%T:6,@4'E/8FIE8W0@
M*@T*;6UA<%]R96%D7V)Y=&5?;65T:&]D("AM;6%P7V]B:F5C=" J('-E;&8L
M#0H)"0D)"0D@("!0>4]B:F5C=" J(&%R9W,I#0I[#0H)"6-H87(@=F%L=64[
M#0H)"6-H87(@*B!W:&5R92 ]("AS96QF+3YD871A*W-E;&8M/G!O<RD[#0H)
M"4-(14-+7U9!3$E$*$Y53$PI.PT*"0EI9B H*'=H97)E(#X](# I("8F("AW
M:&5R92 \("AS96QF+3YD871A*W-E;&8M/G-I>F4I*2D@>PT*"0D)"79A;'5E
M(#T@*&-H87(I("HH=VAE<F4I.PT*"0D)"7-E;&8M/G!O<R K/2 Q.PT*"0D)
M"7)E='5R;B!0>5]"=6EL9%9A;'5E*")C(BP@*&-H87(I("HH=VAE<F4I*3L-
M"@D)?2!E;'-E('L-"@D)"0E0>45R<E]39713=')I;F<@*%!Y17AC7U9A;'5E
M17)R;W(L(")R96%D(&)Y=&4@;W5T(&]F(')A;F=E(BD[#0H)"0D)<F5T=7)N
M($Y53$P[#0H)"7T-"GT-"@T*<W1A=&EC(%!Y3V)J96-T("H-"FUM87!?<F5A
M9%]L:6YE7VUE=&AO9" H;6UA<%]O8FIE8W0@*B!S96QF+ T*"0D)"0D)(" @
M4'E/8FIE8W0@*B!A<F=S*0T*>PT*"0EC:&%R("H@<W1A<G0[#0H)"6-H87(@
M*B!E;V8@/2!S96QF+3YD871A*W-E;&8M/G-I>F4[#0H)"6-H87(@*B!E;VP[
M#0H)"5!Y3V)J96-T("H@<F5S=6QT.PT*#0H)"4-(14-+7U9!3$E$*$Y53$PI
M.PT*"0ES=&%R=" ]('-E;&8M/F1A=&$K<V5L9BT^<&]S.PT*#0H)"2\J('-T
M<F-H<B!W87,@82!B860@:61E82!H97)E("T@=&AE<F4G<R!N;R!W87D@=&\@
M<F%N9V4-"@D)(" @8VAE8VL@:70N("!T:&5R92!I<R!N;R G<W1R;F-H<B<@
M*B\-"@D)9F]R("AE;VP@/2!S=&%R=#L@*&5O;" \(&5O9BD@)B8@*"IE;VP@
M(3T@)UQN)RD@.R!E;VPK*RD-"@D)>R O*B!D;R!N;W1H:6YG("HO('T-"@T*
M"0ER97-U;'0@/2!0>5]"=6EL9%9A;'5E*")S(R(L('-T87)T+" H;&]N9RD@
M*"LK96]L("T@<W1A<G0I*3L-"@D)<V5L9BT^<&]S("L]("AE;VP@+2!S=&%R
M="D[#0H)"7)E='5R;B H<F5S=6QT*3L-"GT-"@T*<W1A=&EC(%!Y3V)J96-T
M("H-"FUM87!?<F5A9%]M971H;V0@*&UM87!?;V)J96-T("H@<V5L9BP-"@D)
M"0D)("!0>4]B:F5C=" J(&%R9W,I#0I[#0H)"6QO;F<@;G5M7V)Y=&5S.PT*
M"0E0>4]B:F5C=" J<F5S=6QT.PT*#0H)"4-(14-+7U9!3$E$*$Y53$PI.PT*
M"0EI9B H(5!Y07)G7U!A<G-E5'5P;&4@*&%R9W,L(")L(BP@)FYU;5]B>71E
M<RDI#0H)"0D)<F5T=7)N*$Y53$PI.PT*#0H)"2\J('-I;&5N=&QY("=A9&IU
M<W0G(&]U="UO9BUR86YG92!R97%U97-T<R J+PT*"0EI9B H*'-E;&8M/G!O
M<R K(&YU;5]B>71E<RD@/B!S96QF+3YS:7IE*2![#0H)"0D);G5M7V)Y=&5S
M("T]("AS96QF+3YP;W,K;G5M7V)Y=&5S*2 M('-E;&8M/G-I>F4[#0H)"7T-
M"@D)<F5S=6QT(#T@4'E?0G5I;&1686QU92@B<R,B+"!S96QF+3YD871A*W-E
M;&8M/G!O<RP@;G5M7V)Y=&5S*3L-"@D)<V5L9BT^<&]S("L](&YU;5]B>71E
M<SL@( T*"0ER971U<FX@*')E<W5L="D[#0I]#0H-"G-T871I8R!0>4]B:F5C
M=" J#0IM;6%P7V9I;F1?;65T:&]D("AM;6%P7V]B:F5C=" J<V5L9BP-"@D)
M"0D)("!0>4]B:F5C=" J87)G<RD-"GL-"@D);&]N9R!S=&%R=" ]('-E;&8M
M/G!O<SL-"@D)8VAA<B J(&YE961L93L-"@D):6YT(&QE;CL-"@T*"0E#2$5#
M2U]604Q)1"A.54Q,*3L-"@D):68@*"%0>4%R9U]087)S951U<&QE("AA<F=S
M+" B<R-\;"(L("9N965D;&4L("9L96XL("9S=&%R="DI('L-"@D)"0ER971U
M<FX@3E5,3#L-"@D)?2!E;'-E('L-"@D)"0EC:&%R("H@<" ]('-E;&8M/F1A
M=&$K<V5L9BT^<&]S.PT*"0D)"6-H87(@*B!E(#T@<V5L9BT^9&%T82MS96QF
M+3YS:7IE.PT*"0D)"7=H:6QE("AP(#P@92D@>PT*"0D)"0D)8VAA<B J(',@
M/2!P.PT*"0D)"0D)8VAA<B J(&X@/2!N965D;&4[#0H)"0D)"0EW:&EL92 H
M*',\92D@)B8@*"IN*2 F)B A*"IS+2IN*2D@>PT*"0D)"0D)"0ES*RLL(&XK
M*SL-"@D)"0D)"7T-"@D)"0D)"6EF("@A*FXI('L-"@D)"0D)"0D)<F5T=7)N
M(%!Y7T)U:6QD5F%L=64@*")L(BP@*&QO;F<I("AP("T@*'-E;&8M/F1A=&$@
M*R!S=&%R="DI*3L-"@D)"0D)"7T-"@D)"0D)"7 K*SL-"@D)"0E]#0H)"0D)
M<F5T=7)N(%!Y7T)U:6QD5F%L=64@*")L(BP@*&QO;F<I("TQ*3L-"@D)?0T*
M?0T*#0IS=&%T:6,@4'E/8FIE8W0@*@T*;6UA<%]W<FET95]M971H;V0@*&UM
M87!?;V)J96-T("H@<V5L9BP-"@D)"0D)(" @4'E/8FIE8W0@*B!A<F=S*0T*
M>PT*"0EL;VYG(&QE;F=T:#L-"@D)8VAA<B J(&1A=&$[#0H-"@D)0TA%0TM?
M5D%,240H3E5,3"D[#0H)"6EF("@A4'E!<F=?4&%R<V54=7!L92 H87)G<RP@
M(G,C(BP@)F1A=&$L("9L96YG=&@I*0T*"0D)"7)E='5R;BA.54Q,*3L-"@T*
M"0EI9B H*'-E;&8M/G!O<R K(&QE;F=T:"D@/B!S96QF+3YS:7IE*2![#0H)
M"0D)4'E%<G)?4V5T4W1R:6YG("A0>45X8U]686QU945R<F]R+" B9&%T82!O
M=70@;V8@<F%N9V4B*3L-"@D)"0ER971U<FX@3E5,3#L-"@D)?0T*"0EM96UC
M<'D@*'-E;&8M/F1A=&$K<V5L9BT^<&]S+"!D871A+"!L96YG=&@I.PT*"0ES
M96QF+3YP;W,@/2!S96QF+3YP;W,K;&5N9W1H.PT*"0E0>5])3D-2148@*%!Y
M7TYO;F4I.PT*"0ER971U<FX@*%!Y7TYO;F4I.PT*?0T*#0IS=&%T:6,@4'E/
M8FIE8W0@*@T*;6UA<%]W<FET95]B>71E7VUE=&AO9" H;6UA<%]O8FIE8W0@
M*B!S96QF+ T*"0D)"0D)"5!Y3V)J96-T("H@87)G<RD-"GL-"@D)8VAA<B!V
M86QU93L-"@T*"0E#2$5#2U]604Q)1"A.54Q,*3L-"@D):68@*"%0>4%R9U]0
M87)S951U<&QE("AA<F=S+" B8R(L("9V86QU92DI#0H)"0D)<F5T=7)N*$Y5
M3$PI.PT*#0H)"2HH<V5L9BT^9&%T82MS96QF+3YP;W,I(#T@=F%L=64[#0H)
M"7-E;&8M/G!O<R K/2 Q.PT*"0E0>5])3D-2148@*%!Y7TYO;F4I.PT*"0ER
M971U<FX@*%!Y7TYO;F4I.PT*?0T*#0IS=&%T:6,@4'E/8FIE8W0@*@T*;6UA
M<%]S:7IE7VUE=&AO9" H;6UA<%]O8FIE8W0@*B!S96QF+ T*"0D)"0D@(%!Y
M3V)J96-T("H@87)G<RD-"GL-"@D)0TA%0TM?5D%,240H3E5,3"D[#0H-"B-I
M9F1E9B!-4U]724XS,@T*"0EI9B H<V5L9BT^9FEL95]H86YD;&4@(3T@*$A&
M24Q%*2 P>$9&1D9&1D9&*2![#0H)"0D)<F5T=7)N("A0>5]"=6EL9%9A;'5E
M("@B;"(L($=E=$9I;&53:7IE("@H2$%.1$Q%*7-E;&8M/F9I;&5?:&%N9&QE
M+"!.54Q,*2DI.PT*"0E](&5L<V4@>PT*"0D)"7)E='5R;B H4'E?0G5I;&16
M86QU92 H(FPB+"!S96QF+3YS:7IE*2 I.PT*"0E]#0HC96YD:68@+RH@35-?
M5TE.,S(@*B\-"@T*(VEF9&5F(%5.25@-"@D)<F5T=7)N("A0>5]"=6EL9%9A
M;'5E("@B;"(L('-E;&8M/G-I>F4I("D[#0HC96YD:68@+RH@54Y)6" J+PT*
M?0T*#0HO*B!4:&ES(&%S<W5M97,@=&AA="!Y;W4@=V%N="!T:&4@96YT:7)E
M(&9I;&4@;6%P<&5D+ T*("\@86YD('=H96X@<F5C<F5A=&EN9R!T:&4@;6%P
M('=I;&P@;6%K92!T:&4@;F5W(&9I;&4-"B O(&AA=F4@=&AE(&YE=R!S:7IE
M#0H@+PT*("\@27,@=&AI<R!R96%L;'D@;F5C97-S87)Y/R @5&AI<R!C;W5L
M9"!E87-I;'D@8F4@9&]N90T*("\@9G)O;2!P>71H;VX@8GD@:G5S="!C;&]S
M:6YG(&%N9"!R92UO<&5N:6YG('=I=&@@=&AE#0H@+R!N97<@<VEZ93\-"B J
M+PT*#0IS=&%T:6,@4'E/8FIE8W0@*@T*;6UA<%]R97-I>F5?;65T:&]D("AM
M;6%P7V]B:F5C=" J('-E;&8L#0H)"0D)"0E0>4]B:F5C=" J(&%R9W,I#0I[
M#0H)"75N<VEG;F5D(&QO;F<@;F5W7W-I>F4[#0H)"4-(14-+7U9!3$E$*$Y5
M3$PI.PT*"0EI9B H(5!Y07)G7U!A<G-E5'5P;&4@*&%R9W,L(")L(BP@)FYE
M=U]S:7IE*2D@>PT*"0D)"7)E='5R;B!.54Q,.PT*(VEF9&5F($U37U=)3C,R
M#0H)"7T@96QS92![( T*"0D)"4173U)$(&1W17)R0V]D92 ](# [#0H)"0D)
M+RH@1FER<W0L('5N;6%P('1H92!F:6QE('9I97<@*B\-"@D)"0E5;FUA<%9I
M97=/9D9I;&4@*'-E;&8M/F1A=&$I.PT*"0D)"2\J($-L;W-E('1H92!M87!P
M:6YG(&]B:F5C=" J+PT*"0D)"4-L;W-E2&%N9&QE("@H2$%.1$Q%*7-E;&8M
M/FUA<%]H86YD;&4I.PT*"0D)"2\J($UO=F4@=&\@=&AE(&1E<VER960@14]&
M('!O<VET:6]N("HO#0H)"0D)4V5T1FEL95!O:6YT97(@*"A(04Y$3$4I<V5L
M9BT^9FEL95]H86YD;&4L(&YE=U]S:7IE+"!.54Q,+"!&24Q%7T)%1TE.*3L-
M"@D)"0DO*B!#:&%N9V4@=&AE('-I>F4@;V8@=&AE(&9I;&4@*B\-"@D)"0E3
M971%;F1/9D9I;&4@*"A(04Y$3$4I<V5L9BT^9FEL95]H86YD;&4I.PT*"0D)
M"2\J($-R96%T92!A;F]T:&5R(&UA<'!I;F<@;V)J96-T(&%N9"!R96UA<"!T
M:&4@9FEL92!V:65W("HO#0H)"0D)<V5L9BT^;6%P7VAA;F1L92 ]($-R96%T
M949I;&5-87!P:6YG("@H2$%.1$Q%*2!S96QF+3YF:6QE7VAA;F1L92P-"@D)
M"0D)"0D)"0D)"0D@($Y53$PL#0H)"0D)"0D)"0D)"0D)("!004=%7U)%0417
M4DE412P-"@D)"0D)"0D)"0D)"0D@(# L#0H)"0D)"0D)"0D)"0D)("!N97=?
M<VEZ92P-"@D)"0D)"0D)"0D)"0D@('-E;&8M/G1A9VYA;64I.PT*"0D)"6EF
M("AS96QF+3YM87!?:&%N9&QE("$]($Y53$PI('L-"@D)"0D)"7-E;&8M/F1A
M=&$@/2 H8VAA<B J*2!-87!6:65W3V9&:6QE("AS96QF+3YM87!?:&%N9&QE
M+ T*"0D)"0D)"0D)"0D)"0D)($9)3$5?34%07U=2251%+ T*"0D)"0D)"0D)
M"0D)"0D)(# L#0H)"0D)"0D)"0D)"0D)"0D@,"P-"@D)"0D)"0D)"0D)"0D)
M"2 P*3L-"@D)"0D)"6EF("AS96QF+3YD871A("$]($Y53$PI('L-"@D)"0D)
M"0D)<V5L9BT^<VEZ92 ](&YE=U]S:7IE.PT*"0D)"0D)"0E0>5])3D-2148@
M*%!Y7TYO;F4I.PT*"0D)"0D)"0ER971U<FX@4'E?3F]N93L-"@D)"0D)"7T@
M96QS92![#0H)"0D)"0D)"61W17)R0V]D92 ]($=E=$QA<W1%<G)O<B@I.PT*
M"0D)"0D)?0T*"0D)"7T@96QS92![#0H)"0D)"0ED=T5R<D-O9&4@/2!'971,
M87-T17)R;W(H*3L-"@D)"0E]#0H)"0D)4'E%<G)?4V5T1G)O;5=I;F1O=W-%
M<G(H9'=%<G)#;V1E*3L-"@D)"0ER971U<FX@*$Y53$PI.PT*(V5N9&EF("\J
M($U37U=)3C,R("HO#0H-"B-I9F1E9B!53DE8#0HC:69N9&5F($U214U!4%]-
M05E-3U9%#0I](&5L<V4@>PT*"0E0>45R<E]39713=')I;F<H4'E%>&-?4WES
M=&5M17)R;W(L(")M;6%P.B!R97-I>FEN9R!N;W0@879A:6QA8FQE+2UN;R!M
M<F5M87 H*2(I.PT*"0ER971U<FX@3E5,3#L-"B-E;'-E#0I](&5L<V4@>PT*
M"0EV;VED("IN97=M87 [#0H-"@D);F5W;6%P(#T@;7)E;6%P*'-E;&8M/F1A
M=&$L('-E;&8M/G-I>F4L(&YE=U]S:7IE+"!-4D5-05!?34%934]612D[#0H)
M"6EF("AN97=M87 @/3T@*'9O:60@*BDM,2D@#0H)"7L-"@D)"0E0>45R<E]3
M971&<F]M17)R;F\H;6UA<%]M;V1U;&5?97)R;W(I.PT*"0D)"7)E='5R;B!.
M54Q,.PT*"0E]#0H)"7-E;&8M/F1A=&$@/2!N97=M87 [#0H)"7-E;&8M/G-I
M>F4@/2!N97=?<VEZ93L-"@D)4'E?24Y#4D5&*%!Y7TYO;F4I.PT*"0ER971U
M<FX@4'E?3F]N93L-"B-E;F1I9B O*B!-4D5-05!?34%934]612 J+PT*(V5N
M9&EF("\J(%5.25@@*B\-"GT-"GT-"@T*<W1A=&EC(%!Y3V)J96-T("H-"FUM
M87!?=&5L;%]M971H;V0@*&UM87!?;V)J96-T("H@<V5L9BP@4'E/8FIE8W0@
M*B!A<F=S*0T*>PT*"0E#2$5#2U]604Q)1"A.54Q,*3L-"@D)<F5T=7)N("A0
M>5]"=6EL9%9A;'5E("@B;"(L('-E;&8M/G!O<RD@*3L-"GT-"@T*<W1A=&EC
M(%!Y3V)J96-T("H-"FUM87!?9FQU<VA?;65T:&]D("AM;6%P7V]B:F5C=" J
M('-E;&8L(%!Y3V)J96-T("H@87)G<RD-"GL-"@D)<VEZ95]T(&]F9G-E= D]
M(# [#0H)"7-I>F5?="!S:7IE"3T@<V5L9BT^<VEZ93L-"@D)0TA%0TM?5D%,
M240H3E5,3"D[#0H)"6EF("@A4'E!<F=?4&%R<V54=7!L92 H87)G<RP@(GQL
M;"(L("9O9F9S970L("9S:7IE*2D@>PT*"0D)"7)E='5R;B!.54Q,.PT*"0E]
M(&5L<V4@:68@*"AO9F9S970@*R!S:7IE*2 ^('-E;&8M/G-I>F4I('L-"@D)
M"0E0>45R<E]39713=')I;F<@*%!Y17AC7U9A;'5E17)R;W(L(")F;'5S:"!V
M86QU97,@;W5T(&]F(')A;F=E(BD[#0H)"0D)<F5T=7)N($Y53$P[#0H)"7T@
M96QS92![#0HC:69D968@35-?5TE.,S(-"@D)"0ER971U<FX@*%!Y7T)U:6QD
M5F%L=64@*")L(BP@1FQU<VA6:65W3V9&:6QE("AS96QF+3YD871A*V]F9G-E
M="P@<VEZ92DI*3L-"B-E;F1I9B O*B!-4U]724XS,B J+PT*(VEF9&5F(%5.
M25@-"B @(" @(" @(" @(" @(" O*B!86%@@<V5M86YT:6-S(&]F(')E='5R
M;B!V86QU93\@*B\-"B @(" @(" @(" @(" @(" O*B!86%@@9FQA9W,@9F]R
M(&US>6YC/R J+PT*"0D)"6EF("@M,2 ]/2!M<WEN8RAS96QF+3YD871A("L@
M;V9F<V5T+"!S:7IE+"!-4U]364Y#('P@35-?24Y604Q)1$%412DI#0H)"0D)
M>PT*"0D)"0D)4'E%<G)?4V5T1G)O;45R<FYO*&UM87!?;6]D=6QE7V5R<F]R
M*3L-"@D)"0D)"7)E='5R;B!.54Q,.PT*"0D)"7T-"@D)"0ER971U<FX@4'E?
M0G5I;&1686QU92 H(FPB+" P*3L)#0HC96YD:68@+RH@54Y)6" J+PD-"@D)
M?0T*?0T*#0IS=&%T:6,@4'E/8FIE8W0@*@T*;6UA<%]S965K7VUE=&AO9" H
M;6UA<%]O8FIE8W0@*B!S96QF+"!0>4]B:F5C=" J(&%R9W,I#0I[#0H)"2\J
M('!T<F1I9F9?="!D:7-T.R J+PT*"0EL;VYG(&1I<W0[#0H)"6EN="!H;W<]
M,#L-"@D)0TA%0TM?5D%,240H3E5,3"D[#0H)"6EF("@A4'E!<F=?4&%R<V54
M=7!L92 H87)G<RP@(FQ\:2(L("9D:7-T+" F:&]W*2D@>PT*"0D)"7)E='5R
M;BA.54Q,*3L-"@D)?2!E;'-E('L-"@D)"0EU;G-I9VYE9"!L;VYG('=H97)E
M.PT*"0D)"7-W:71C:" H:&]W*2![#0H)"0D)8V%S92 P.@T*"0D)"0D)=VAE
M<F4@/2!D:7-T.PT*"0D)"0D)8G)E86L[#0H)"0D)8V%S92 Q.@T*"0D)"0D)
M=VAE<F4@/2!S96QF+3YP;W,@*R!D:7-T.PT*"0D)"0D)8G)E86L[#0H)"0D)
M8V%S92 R.@T*"0D)"0D)=VAE<F4@/2!S96QF+3YS:7IE("T@9&ES=#L-"@D)
M"0D)"6)R96%K.PT*"0D)"61E9F%U;'0Z#0H)"0D)"0E0>45R<E]39713=')I
M;F<@*%!Y17AC7U9A;'5E17)R;W(L(")U;FMN;W=N('-E96L@='EP92(I.PT*
M"0D)"0D)<F5T=7)N($Y53$P[#0H)"0D)?0T*"0D)"6EF("@H=VAE<F4@/CT@
M,"D@)B8@*'=H97)E(#P@*'-E;&8M/G-I>F4I*2D@>PT*"0D)"0D)<V5L9BT^
M<&]S(#T@=VAE<F4[#0H)"0D)"0E0>5])3D-2148@*%!Y7TYO;F4I.PT*"0D)
M"0D)<F5T=7)N("A0>5].;VYE*3L-"@D)"0E](&5L<V4@>PT*"0D)"0D)4'E%
M<G)?4V5T4W1R:6YG("A0>45X8U]686QU945R<F]R+" B<V5E:R!O=70@;V8@
M<F%N9V4B*3L-"@D)"0D)"7)E='5R;B!.54Q,.PT*"0D)"7T-"@D)?0T*?0T*
M#0IS=&%T:6,@4'E/8FIE8W0@*@T*;6UA<%]M;W9E7VUE=&AO9" H;6UA<%]O
M8FIE8W0@*B!S96QF+"!0>4]B:F5C=" J(&%R9W,I#0I[#0H)"75N<VEG;F5D
M(&QO;F<@9&5S="P@<W)C+"!C;W5N=#L-"@D)0TA%0TM?5D%,240H3E5,3"D[
M#0H)"6EF("@A4'E!<F=?4&%R<V54=7!L92 H87)G<RP@(FEI:2(L("9D97-T
M+" F<W)C+" F8V]U;G0I*2![#0H)"0D)<F5T=7)N($Y53$P[#0H)"7T@96QS
M92![#0H)"0D)+RH@8F]U;F1S(&-H96-K('1H92!V86QU97,@*B\-"@D)"0EI
M9B H+RH@96YD(&]F('-O=7)C92!A9G1E<B!E;F0@;V8@9&%T83\_("HO#0H)
M"0D)"0DH*'-R8RMC;W5N="D@/B!S96QF+3YS:7IE*0T*"0D)"0D)+RH@9&5S
M="!W:6QL(&9I=#\@*B\-"@D)"0D)"7Q\("AD97-T*V-O=6YT(#X@<V5L9BT^
M<VEZ92DI('L-"@D)"0D)"5!Y17)R7U-E=%-T<FEN9R H4'E%>&-?5F%L=65%
M<G)O<BP-"@D)"0D)"0D)"0D@(G-O=7)C92!O<B!D97-T:6YA=&EO;B!O=70@
M;V8@<F%N9V4B*3L-"@D)"0D)"7)E='5R;B!.54Q,.PT*"0D)"7T@96QS92![
M#0H)"0D)"0EM96UM;W9E("AS96QF+3YD871A*V1E<W0L('-E;&8M/F1A=&$K
M<W)C+"!C;W5N="D[#0H)"0D)"0E0>5])3D-2148@*%!Y7TYO;F4I.PT*"0D)
M"0D)<F5T=7)N(%!Y7TYO;F4[#0H)"0D)?0T*"0E]#0I]#0H-"G-T871I8R!S
M=')U8W0@4'E-971H;V1$968@;6UA<%]O8FIE8W1?;65T:&]D<UM=(#T@>PT*
M"0E[(F-L;W-E(BP)"2A0>4-&=6YC=&EO;BD@;6UA<%]C;&]S95]M971H;V0L
M"0DQ?2P-"@D)>R)F:6YD(BP)"2A0>4-&=6YC=&EO;BD@;6UA<%]F:6YD7VUE
M=&AO9"P)"0DQ?2P-"@D)>R)F;'5S:"(L"0DH4'E#1G5N8W1I;VXI(&UM87!?
M9FQU<VA?;65T:&]D+ D),7TL#0H)"7LB;6]V92(L"0DH4'E#1G5N8W1I;VXI
M(&UM87!?;6]V95]M971H;V0L"0D),7TL#0H)"7LB<F5A9"(L"0DH4'E#1G5N
M8W1I;VXI(&UM87!?<F5A9%]M971H;V0L"0D),7TL#0H)"7LB<F5A9%]B>71E
M(BP@*%!Y0T9U;F-T:6]N*2!M;6%P7W)E861?8GET95]M971H;V0L"3%]+ T*
M"0E[(G)E861L:6YE(BP)*%!Y0T9U;F-T:6]N*2!M;6%P7W)E861?;&EN95]M
M971H;V0L"3%]+ T*"0E[(G)E<VEZ92(L"2A0>4-&=6YC=&EO;BD@;6UA<%]R
M97-I>F5?;65T:&]D+ D),7TL#0H)"7LB<V5E:R(L"0DH4'E#1G5N8W1I;VXI
M(&UM87!?<V5E:U]M971H;V0L"0D),7TL#0H)"7LB<VEZ92(L"0DH4'E#1G5N
M8W1I;VXI(&UM87!?<VEZ95]M971H;V0L"0D),7TL#0H)"7LB=&5L;"(L"0DH
M4'E#1G5N8W1I;VXI(&UM87!?=&5L;%]M971H;V0L"0D),7TL#0H)"7LB=W)I
M=&4B+ D)*%!Y0T9U;F-T:6]N*2!M;6%P7W=R:71E7VUE=&AO9"P)"3%]+ T*
M"0E[(G=R:71E7V)Y=&4B+"A0>4-&=6YC=&EO;BD@;6UA<%]W<FET95]B>71E
M7VUE=&AO9"P),7TL#0H)"7M.54Q,+ D@("!.54Q,?0D@(" O*B!S96YT:6YE
M;" J+PT*?3L-"@T*+RH@1G5N8W1I;VYS(&9O<B!T<F5A=&EN9R!A;B!M;6%P
M)V5D(&9I;&4@87,@82!B=69F97(@*B\-"@T*<W1A=&EC(&EN= T*;6UA<%]B
M=69F97)?9V5T<F5A9&)U9BAS96QF+"!I;F1E>"P@<'1R*0T*(" @(" @("!M
M;6%P7V]B:F5C=" J<V5L9CL-"FEN="!I;F1E>#L-"F-O;G-T('9O:60@*BIP
M='([#0I[#0H)"4-(14-+7U9!3$E$*"TQ*3L-"@D):68@*"!I;F1E>" A/2 P
M("D@>PT*"0D)"5!Y17)R7U-E=%-T<FEN9RA0>45X8U]3>7-T96U%<G)O<BP@
M(D%C8V5S<VEN9R!N;VXM97AI<W1E;G0@;6UA<"!S96=M96YT(BD[#0H)"0D)
M<F5T=7)N("TQ.PT*"0E]#0H)"2IP='(@/2!S96QF+3YD871A.PT*"0ER971U
M<FX@<V5L9BT^<VEZ93L-"GT-"@T*<W1A=&EC(&EN= T*;6UA<%]B=69F97)?
M9V5T=W)I=&5B=68H<V5L9BP@:6YD97@L('!T<BD-"B @(" @(" @;6UA<%]O
M8FIE8W0@*G-E;&8[#0II;G0@:6YD97@[#0IC;VYS="!V;VED("HJ<'1R.PT*
M>R @#0H)"4-(14-+7U9!3$E$*"TQ*3L-"@D):68@*"!I;F1E>" A/2 P("D@
M>PT*"0D)"5!Y17)R7U-E=%-T<FEN9RA0>45X8U]3>7-T96U%<G)O<BP@(D%C
M8V5S<VEN9R!N;VXM97AI<W1E;G0@;6UA<"!S96=M96YT(BD[#0H)"0D)<F5T
M=7)N("TQ.PT*"0E]#0H)"2IP='(@/2!S96QF+3YD871A.PT*"0ER971U<FX@
M<V5L9BT^<VEZ93L-"GT-"@T*<W1A=&EC(&EN= T*;6UA<%]B=69F97)?9V5T
M<V5G8V]U;G0H<V5L9BP@;&5N<"D-"B @(" @(" @;6UA<%]O8FIE8W0@*G-E
M;&8[#0II;G0@*FQE;G [#0I[#0H)"4-(14-+7U9!3$E$*"TQ*3L-"@D):68@
M*&QE;G I( T*"0D)"2IL96YP(#T@<V5L9BT^<VEZ93L-"@D)<F5T=7)N(#$[
M#0I]#0H-"G-T871I8R!I;G0-"FUM87!?8G5F9F5R7V=E=&-H87)B=69F97(H
M<V5L9BP@:6YD97@L('!T<BD-"B @(" @(" @;6UA<%]O8FIE8W0@*G-E;&8[
M#0II;G0@:6YD97@[#0IC;VYS="!V;VED("HJ<'1R.PT*>PT*"0EI9B H(&EN
M9&5X("$](# @*2![#0H)"0D)4'E%<G)?4V5T4W1R:6YG*%!Y17AC7U-Y<W1E
M;45R<F]R+ T*"0D)"0D)"0DB86-C97-S:6YG(&YO;BUE>&ES=&5N="!B=69F
M97(@<V5G;65N="(I.PT*"0D)"7)E='5R;B M,3L-"@D)?0T*"0DJ<'1R(#T@
M*&-O;G-T(&-H87(@*BES96QF+3YD871A.PT*"0ER971U<FX@<V5L9BT^<VEZ
M93L-"GT-"@T*<W1A=&EC(%!Y3V)J96-T("H-"FUM87!?;V)J96-T7V=E=&%T
M='(H;6UA<%]O8FIE8W0@*B!S96QF+"!C:&%R("H@;F%M92D-"GL-"@D)<F5T
M=7)N(%!Y7T9I;F1-971H;V0@*&UM87!?;V)J96-T7VUE=&AO9',L("A0>4]B
M:F5C=" J*7-E;&8L(&YA;64I.PT*?0T*#0IS=&%T:6,@:6YT#0IM;6%P7VQE
M;F=T:"AS96QF*0T*(" @(" @("!M;6%P7V]B:F5C=" J<V5L9CL-"GL-"@D)
M0TA%0TM?5D%,240H+3$I.PT*"0ER971U<FX@<V5L9BT^<VEZ93L-"GT-"@T*
M<W1A=&EC(%!Y3V)J96-T("H-"FUM87!?:71E;2AS96QF+"!I*0T*(" @(" @
M("!M;6%P7V]B:F5C=" J<V5L9CL-"FEN="!I.PT*>PT*"0E#2$5#2U]604Q)
M1"A.54Q,*3L-"@D):68@*&D@/" P('Q\(&D@/CT@<V5L9BT^<VEZ92D@>PT*
M"0D)"5!Y17)R7U-E=%-T<FEN9RA0>45X8U]);F1E>$5R<F]R+" B;6UA<"!I
M;F1E>"!O=70@;V8@<F%N9V4B*3L-"@D)"0ER971U<FX@3E5,3#L-"@D)?0T*
M"0ER971U<FX@4'E3=')I;F=?1G)O;5-T<FEN9T%N9%-I>F4H<V5L9BT^9&%T
M82 K(&DL(#$I.PT*?0T*#0IS=&%T:6,@4'E/8FIE8W0@*@T*;6UA<%]S;&EC
M92AS96QF+"!I;&]W+"!I:&EG:"D-"B @(" @(" @;6UA<%]O8FIE8W0@*G-E
M;&8[#0II;G0@:6QO=RP@:6AI9V@[#0I[#0H)"4-(14-+7U9!3$E$*$Y53$PI
M.PT*"0EI9B H:6QO=R \(# I#0H)"0D):6QO=R ](# [#0H)"65L<V4@:68@
M*&EL;W<@/B!S96QF+3YS:7IE*0T*"0D)"6EL;W<@/2!S96QF+3YS:7IE.PT*
M"0EI9B H:6AI9V@@/" P*0T*"0D)"6EH:6=H(#T@,#L-"@D):68@*&EH:6=H
M(#P@:6QO=RD-"@D)"0EI:&EG:" ](&EL;W<[#0H)"65L<V4@:68@*&EH:6=H
M(#X@<V5L9BT^<VEZ92D-"@D)"0EI:&EG:" ]('-E;&8M/G-I>F4[#0H)#0H)
M"7)E='5R;B!0>5-T<FEN9U]&<F]M4W1R:6YG06YD4VEZ92AS96QF+3YD871A
M("L@:6QO=RP@:6AI9V@M:6QO=RD[#0I]#0H-"G-T871I8R!0>4]B:F5C=" J
M#0IM;6%P7V-O;F-A="AS96QF+"!B8BD-"B @(" @(" @;6UA<%]O8FIE8W0@
M*G-E;&8[#0I0>4]B:F5C=" J8F([#0I[#0H)"4-(14-+7U9!3$E$*$Y53$PI
M.PT*"0E0>45R<E]39713=')I;F<H4'E%>&-?4WES=&5M17)R;W(L(")M;6%P
M<R!D;VXG="!S=7!P;W)T(&-O;F-A=&5N871I;VXB*3L-"@D)<F5T=7)N($Y5
M3$P[#0I]#0H-"G-T871I8R!0>4]B:F5C=" J#0IM;6%P7W)E<&5A="AS96QF
M+"!N*0T*(" @(" @("!M;6%P7V]B:F5C=" J<V5L9CL-"FEN="!N.PT*>PT*
M"0E#2$5#2U]604Q)1"A.54Q,*3L-"@D)4'E%<G)?4V5T4W1R:6YG*%!Y17AC
M7U-Y<W1E;45R<F]R+" B;6UA<',@9&]N)W0@<W5P<&]R="!R97!E870@;W!E
M<F%T:6]N(BD[#0H)"7)E='5R;B!.54Q,.PT*?0T*#0IS=&%T:6,@:6YT#0IM
M;6%P7V%S<U]S;&EC92AS96QF+"!I;&]W+"!I:&EG:"P@=BD-"B @(" @(" @
M;6UA<%]O8FIE8W0@*G-E;&8[#0II;G0@:6QO=RP@:6AI9V@[#0I0>4]B:F5C
M=" J=CL-"GL-"@D)=6YS:6=N960@8VAA<B J8G5F.PT*#0H)"4-(14-+7U9!
M3$E$*"TQ*3L-"@D):68@*&EL;W<@/" P*0T*"0D)"6EL;W<@/2 P.PT*"0EE
M;'-E(&EF("AI;&]W(#X@<V5L9BT^<VEZ92D-"@D)"0EI;&]W(#T@<V5L9BT^
M<VEZ93L-"@D):68@*&EH:6=H(#P@,"D-"@D)"0EI:&EG:" ](# [#0H)"6EF
M("AI:&EG:" \(&EL;W<I#0H)"0D):6AI9V@@/2!I;&]W.PT*"0EE;'-E(&EF
M("AI:&EG:" ^('-E;&8M/G-I>F4I#0H)"0D):6AI9V@@/2!S96QF+3YS:7IE
M.PT*"0T*"0EI9B H(2 H4'E3=')I;F=?0VAE8VLH=BDI("D@>PT*"0D)"5!Y
M17)R7U-E=%-T<FEN9RA0>45X8U]);F1E>$5R<F]R+" -"@D)"0D)"0D)(FUM
M87 @<VQI8V4@87-S:6=N;65N="!M=7-T(&)E(&$@<W1R:6YG(BD[#0H)"0D)
M<F5T=7)N("TQ.PT*"0E]#0H)"6EF("@@4'E3=')I;F=?4VEZ92AV*2 A/2 H
M:6AI9V@@+2!I;&]W*2 I('L-"@D)"0E0>45R<E]39713=')I;F<H4'E%>&-?
M26YD97A%<G)O<BP@#0H)"0D)"0D)"2)M;6%P('-L:6-E(&%S<VEG;FUE;G0@
M:7,@=W)O;F<@<VEZ92(I.PT*"0D)"7)E='5R;B M,3L-"@D)?0T*"0EB=68@
M/2!0>5-T<FEN9U]!<U-T<FEN9RAV*3L-"@D);65M8W!Y*'-E;&8M/F1A=&$@
M*R!I;&]W+"!B=68L(&EH:6=H+6EL;W<I.PT*"0ER971U<FX@,#L-"GT-"@T*
M<W1A=&EC(&EN= T*;6UA<%]A<W-?:71E;2AS96QF+"!I+"!V*0T*(" @(" @
M("!M;6%P7V]B:F5C=" J<V5L9CL-"FEN="!I.PT*4'E/8FIE8W0@*G8[#0I[
M#0H)"75N<VEG;F5D(&-H87(@*F)U9CL-"B -"@D)0TA%0TM?5D%,240H+3$I
M.PT*"0EI9B H:2 \(# @?'P@:2 ^/2!S96QF+3YS:7IE*2![#0H)"0D)4'E%
M<G)?4V5T4W1R:6YG*%!Y17AC7TEN9&5X17)R;W(L(")M;6%P(&EN9&5X(&]U
M="!O9B!R86YG92(I.PT*"0D)"7)E='5R;B M,3L-"@D)?0T*"0EI9B H(2 H
M4'E3=')I;F=?0VAE8VLH=BD@)B8@4'E3=')I;F=?4VEZ92AV*3T],2D@*2![
M#0H)"0D)4'E%<G)?4V5T4W1R:6YG*%!Y17AC7TEN9&5X17)R;W(L( T*"0D)
M"0D)"0DB;6UA<"!A<W-I9VYM96YT(&UU<W0@8F4@<VEN9VQE+6-H87)A8W1E
M<B!S=')I;F<B*3L-"@D)"0ER971U<FX@+3$[#0H)"7T-"@D)8G5F(#T@4'E3
M=')I;F=?07-3=')I;F<H=BD[#0H)"7-E;&8M/F1A=&%;:5T@/2!B=69;,%T[
M#0H)"7)E='5R;B P.PT*?0T*#0IS=&%T:6,@4'E397%U96YC94UE=&AO9',@
M;6UA<%]A<U]S97%U96YC92 ]('L-"B @(" @(" @*&EN<75I<GDI;6UA<%]L
M96YG=&@L(" @(" @(" @(" @(" @(" @+RIS<5]L96YG=&@J+PT*(" @(" @
M(" H8FEN87)Y9G5N8REM;6%P7V-O;F-A="P@(" @(" @(" @(" @(" O*G-Q
M7V-O;F-A="HO#0H@(" @(" @("AI;G1A<F=F=6YC*6UM87!?<F5P96%T+" @
M(" @(" @(" @(" @("\J<W%?<F5P96%T*B\-"B @(" @(" @*&EN=&%R9V9U
M;F,I;6UA<%]I=&5M+" @(" @(" @(" @(" @(" @+RIS<5]I=&5M*B\-"B @
M(" @(" @*&EN=&EN=&%R9V9U;F,I;6UA<%]S;&EC92P@(" @(" @(" @(" @
M+RIS<5]S;&EC92HO#0H@(" @(" @("AI;G1O8FIA<F=P<F]C*6UM87!?87-S
M7VET96TL(" @(" @(" @("\J<W%?87-S7VET96TJ+PT*(" @(" @(" H:6YT
M:6YT;V)J87)G<')O8REM;6%P7V%S<U]S;&EC92P@(" @(" O*G-Q7V%S<U]S
M;&EC92HO#0I].PT*#0IS=&%T:6,@4'E"=69F97)0<F]C<R!M;6%P7V%S7V)U
M9F9E<B ]('L-"B @(" @(" @*&=E=')E861B=69F97)P<F]C*6UM87!?8G5F
M9F5R7V=E=')E861B=68L#0H@(" @(" @("AG971W<FET96)U9F9E<G!R;V,I
M;6UA<%]B=69F97)?9V5T=W)I=&5B=68L#0H@(" @(" @("AG971S96=C;W5N
M='!R;V,I;6UA<%]B=69F97)?9V5T<V5G8V]U;G0L#0H@(" @(" @("AG971C
M:&%R8G5F9F5R<')O8REM;6%P7V)U9F9E<E]G971C:&%R8G5F9F5R+ T*?3L-
M"@T*<W1A=&EC(%!Y5'EP94]B:F5C="!M;6%P7V]B:F5C=%]T>7!E(#T@>PT*
M"0E0>4]B:F5C=%](14%$7TE.250H,"D@+RH@<&%T8VAE9"!I;B!M;V1U;&4@
M:6YI=" J+PT*"0DP+ D)"0D)"0D)"2\J(&]B7W-I>F4@*B\-"@D)(FUM87 B
M+ D)"0D)"0DO*B!T<%]N86UE("HO#0H)"7-I>F5O9BAM;6%P7V]B:F5C="DL
M"0D)"2\J('1P7W-I>F4@*B\-"@D),"P)"0D)"0D)"0DO*B!T<%]I=&5M<VEZ
M92 J+PT*"0DO*B!M971H;V1S("HO#0H)"2AD97-T<G5C=&]R*2!M;6%P7V]B
M:F5C=%]D96%L;&]C+" O*B!T<%]D96%L;&]C("HO#0H)"3 L"0D)"0D)"0D)
M+RH@='!?<')I;G0@*B\-"@D)*&=E=&%T=')F=6YC*2!M;6%P7V]B:F5C=%]G
M971A='1R+"\J('1P7V=E=&%T='(@*B\-"@D),"P)"0D)"0D)"0DO*B!T<%]S
M971A='1R("HO#0H)"3 L"0D)"0D)"0D)+RH@='!?8V]M<&%R92 J+PT*"0DP
M+ D)"0D)"0D)"2\J('1P7W)E<'(@*B\-"@D),"P)"0D)"0D)"0DO*B!T<%]A
M<U]N=6UB97(@*B\-"@D))FUM87!?87-?<V5Q=65N8V4L(" @(" @(" @(" @
M(" @("\J='!?87-?<V5Q=65N8V4J+PT*"0DP+" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @("\J='!?87-?;6%P<&EN9RHO#0H)"3 L(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @+RIT<%]H87-H*B\-
M"@D),"P@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" O*G1P
M7V-A;&PJ+PT*"0DP+" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @("\J='!?<W1R*B\-"@D),"P@(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" O*G1P7V=E=&%T=')O*B\-"@D),"P@(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" O*G1P7W-E=&%T=')O*B\-"@D))FUM
M87!?87-?8G5F9F5R+" @(" @(" @(" @(" @(" @("\J='!?87-?8G5F9F5R
M*B\-"@D)4'E?5%!&3$%'4U](059%7T=%5$-(05)"549&15(L(" @(" @(" O
M*G1P7V9L86=S*B\-"@D),"P@(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" O*G1P7V1O8RHO#0I].PT*#0HC:69D968@54Y)6" -"G-T871I
M8R!0>4]B:F5C=" J#0IN97=?;6UA<%]O8FIE8W0@*%!Y3V)J96-T("H@<V5L
M9BP@4'E/8FIE8W0@*B!A<F=S+"!0>4]B:F5C=" J:W=D:6-T*0T*>PT*"0EM
M;6%P7V]B:F5C=" J(&U?;V)J.PT*"0EU;G-I9VYE9"!L;VYG(&UA<%]S:7IE
M.PT*"0EI;G0@9F0L(&9L86=S(#T@34%07U-(05)%1"P@<')O=" ](%!23U1?
M5U))5$4@?"!04D]47U)%040[#0H)"6-H87(@*B!F:6QE;F%M93L-"@D):6YT
M(&YA;65L96X[#0H)"6-H87(@*FME>7=O<F1S6UT@/2![(F9I;&4B+" B<VEZ
M92(L(")F;&%G<R(L(")P<F]T(BP@3E5,3'T[#0H-"@D):68@*"%0>4%R9U]0
M87)S951U<&QE06YD2V5Y=V]R9',H87)G<RP@:W=D:6-T+" -"@D)"0D)"0D)
M"0D@(FEL?&EI(BP@:V5Y=V]R9',L( T*"0D)"0D)"0D)"2 F9F0L("9M87!?
M<VEZ92P@)F9L86=S+" F<')O="D-"@D)"0DI#0H)"0D)<F5T=7)N($Y53$P[
M#0H@( T*"0EM7V]B:B ](%!Y3V)J96-T7TY%5R H;6UA<%]O8FIE8W0L("9M
M;6%P7V]B:F5C=%]T>7!E*3L-"@D):68@*&U?;V)J(#T]($Y53$PI('MR971U
M<FX@3E5,3#M]#0H)"6U?;V)J+3YS:7IE(#T@*'-I>F5?="D@;6%P7W-I>F4[
M#0H)"6U?;V)J+3YP;W,@/2 H<VEZ95]T*2 P.PT*"0EM7V]B:BT^9&%T82 ]
M(&UM87 H3E5,3"P@;6%P7W-I>F4L( T*"0D)"0D)(" @<')O="P@9FQA9W,L
M#0H)"0D)"0D@("!F9"P@,"D[#0H)"6EF("AM7V]B:BT^9&%T82 ]/2 H=F]I
M9" J*2TQ*0T*"0E[#0H)"0D)4'E?1$5#4D5&*&U?;V)J*3L-"@D)"0E0>45R
M<E]3971&<F]M17)R;F\H;6UA<%]M;V1U;&5?97)R;W(I.PT*"0D)"7)E='5R
M;B!.54Q,.PT*"0E]#0H)"7)E='5R;B H4'E/8FIE8W0@*BEM7V]B:CL-"GT-
M"B-E;F1I9B O*B!53DE8("HO#0H-"B-I9F1E9B!-4U]724XS,@T*<W1A=&EC
M(%!Y3V)J96-T("H-"FYE=U]M;6%P7V]B:F5C=" H4'E/8FIE8W0@*B!S96QF
M+"!0>4]B:F5C=" J(&%R9W,I#0I[#0H)"6UM87!?;V)J96-T("H@;5]O8FH[
M#0H)"75N<VEG;F5D(&QO;F<@;6%P7W-I>F4[#0H)"6-H87(@*B!F:6QE;F%M
M93L-"@D):6YT(&YA;65L96X[#0H)"6-H87(@*B!T86=N86UE(#T@(B([#0H-
M"@D)1%=/4D0@9'=%<G(@/2 P.PT*"0EI;G0@9FEL96YO.PT*"0E(1DE,12!F
M:" ](# [#0H)"4]&4U1254-4(&9I;&5?:6YF;SL-"@T*"0DO*B!0871C:"!T
M:&4@;V)J96-T('1Y<&4@*B\-"@D);6UA<%]O8FIE8W1?='EP92YO8E]T>7!E
M(#T@)E!Y5'EP95]4>7!E.PT*#0H)"6EF("@A4'E!<F=?4&%R<V54=7!L92AA
M<F=S+ T*"0D)"0D)(" B:6Q\>B(L#0H)"0D)"0D@("9F:6QE;F\L#0H)"0D)
M"0D@("9M87!?<VEZ92P-"@D)"0D)"2 @)G1A9VYA;64I#0H)"0D)*0T*"0D)
M"7)E='5R;B!.54Q,.PT*(" -"@D)+RH@:68@86X@86-T=6%L(&9I;&5N86UE
M(&AA<R!B965N('-P96-I9FEE9" J+PT*"0EI9B H9FEL96YO("$](# I('L-
M"@D)"0EF:" ](%]G971?;W-F:&%N9&QE*&9I;&5N;RD[#0H)"0D):68@*&9H
M/3TM,2D@>PT*"0D)"0E0>45R<E]3971&<F]M17)R;F\H;6UA<%]M;V1U;&5?
M97)R;W(I.PT*"0D)"0ER971U<FX@3E5,3#L-"@D)"0E]#0HO+PT*+R\)"0D)
M9F@@/2!/<&5N1FEL92 H9FEL96YA;64L("9F:6QE7VEN9F\L($]&7U)%0417
M4DE412D[#0HO+PD)"0EI9B H9F@@/3T@2$9)3$5?15)23U(I('L-"B\O"0D)
M"0D)4'E%<G)?4V5T1G)O;5=I;F1O=W-%<G(H1V5T3&%S=$5R<F]R*"DI.PT*
M+R\)"0D)"0ER971U<FX@3E5,3#L-"B\O"0D)"7T-"@D)?0T*#0H)"6U?;V)J
M(#T@4'E/8FIE8W1?3D57("AM;6%P7V]B:F5C="P@)FUM87!?;V)J96-T7W1Y
M<&4I.PT*"0T*"0EI9B H9F@I('L-"@D)"0EM7V]B:BT^9FEL95]H86YD;&4@
M/2!F:#L-"@D)"0EI9B H(6UA<%]S:7IE*2![#0H)"0D)"0EM7V]B:BT^<VEZ
M92 ]($=E=$9I;&53:7IE("@H2$%.1$Q%*69H+"!.54Q,*3L-"@D)"0E](&5L
M<V4@>PT*"0D)"0D);5]O8FHM/G-I>F4@/2!M87!?<VEZ93L-"@D)"0E]#0H)
M"7T-"@D)96QS92![#0H)"0D);5]O8FHM/F9I;&5?:&%N9&QE(#T@*$A&24Q%
M*2 P>$9&1D9&1D9&.PT*"0D)"6U?;V)J+3YS:7IE(#T@;6%P7W-I>F4[#0H)
M"7T-"@T*"0DO*B!S970@=&AE(&EN:71I86P@<&]S:71I;VX@*B\-"@D);5]O
M8FHM/G!O<R ]("AS:7IE7W0I(# [#0H-"@D);5]O8FHM/FUA<%]H86YD;&4@
M/2!#<F5A=&5&:6QE36%P<&EN9R H*$A!3D1,12D@;5]O8FHM/F9I;&5?:&%N
M9&QE+ T*"0D)"0D)"0D)"0D@("!.54Q,+ T*"0D)"0D)"0D)"0D@("!004=%
M7U)%04174DE412P-"@D)"0D)"0D)"0D)(" @,"P-"@D)"0D)"0D)"0D)(" @
M;5]O8FHM/G-I>F4L#0H)"0D)"0D)"0D)"2 @('1A9VYA;64I.PT*"0EI9B H
M;5]O8FHM/FUA<%]H86YD;&4@(3T@3E5,3"D@>PT*"0D)"6U?;V)J+3YD871A
M(#T@*&-H87(@*BD@36%P5FEE=T]F1FEL92 H;5]O8FHM/FUA<%]H86YD;&4L
M#0H)"0D)"0D)"0D)"0D)("!&24Q%7TU!4%]74DE412P-"@D)"0D)"0D)"0D)
M"0D@(# L#0H)"0D)"0D)"0D)"0D)(" P+ T*"0D)"0D)"0D)"0D)"2 @,"D[
M#0H)"0D):68@*&U?;V)J+3YD871A("$]($Y53$PI('L-"@D)"0D)"7)E='5R
M;B H*%!Y3V)J96-T("HI(&U?;V)J*3L-"@D)"0E](&5L<V4@>PT*"0D)"0ED
M=T5R<B ]($=E=$QA<W1%<G)O<B@I.PT*"0D)"7T-"@D)?2!E;'-E('L-"@D)
M"0ED=T5R<B ]($=E=$QA<W1%<G)O<B@I.PT*"0E]#0H)"5!Y17)R7U-E=$9R
M;VU7:6YD;W=S17)R*&1W17)R*3L-"@D)<F5T=7)N("A.54Q,*3L-"GT-"B-E
M;F1I9B O*B!-4U]724XS,B J+PT*#0HO*B!,:7-T(&]F(&9U;F-T:6]N<R!E
M>'!O<G1E9"!B>2!T:&ES(&UO9'5L92 J+PT*<W1A=&EC('-T<G5C="!0>4UE
M=&AO9$1E9B!M;6%P7V9U;F-T:6]N<UM=(#T@>PT*"0E[(FUM87 B+ D)*%!Y
M0T9U;F-T:6]N*2!N97=?;6UA<%]O8FIE8W0L( T*"0D@34542%]605)!4D=3
M?$U%5$A?2T595T]21%-]+ T*"0E[3E5,3"P)"0E.54Q,?0D)("\J(%-E;G1I
M;F5L("HO#0I].PT*#0HC:69D968@35-?5TE.,S(-"E]?9&5C;'-P96,H9&QL
M97AP;W)T*2!V;VED#0HC96YD:68@+RH@35-?5TE.,S(@*B\-"B-I9F1E9B!5
M3DE8#0IE>'1E<FX@=F]I9 T*(V5N9&EF#0H-"FEN:71M;6%P*'9O:60I#0I[
M#0H)"5!Y3V)J96-T("ID:6-T+" J;6]D=6QE.PT*"0EM;V1U;&4@/2!0>5])
M;FET36]D=6QE("@B;6UA<"(L(&UM87!?9G5N8W1I;VYS*3L-"@D)9&EC=" ]
M(%!Y36]D=6QE7T=E=$1I8W0@*&UO9'5L92D[#0H)"6UM87!?;6]D=6QE7V5R
M<F]R(#T@4'E%>&-?16YV:7)O;FUE;G1%<G)O<CL-"@D)4'E?24Y#4D5&*&UM
M87!?;6]D=6QE7V5R<F]R*3L-"@D)4'E$:6-T7U-E=$ET96U3=')I;F<@*&1I
M8W0L(")E<G)O<B(L(&UM87!?;6]D=6QE7V5R<F]R*3L-"B-I9F1E9B!04D]4
M7T5814,-"@D)4'E$:6-T7U-E=$ET96U3=')I;F<@*&1I8W0L(")04D]47T58
M14,B+"!0>4EN=%]&<F]M3&]N9RA04D]47T5814,I("D[#0HC96YD:68-"B-I
M9F1E9B!04D]47U)%040-"@D)4'E$:6-T7U-E=$ET96U3=')I;F<@*&1I8W0L
M(")04D]47U)%040B+"!0>4EN=%]&<F]M3&]N9RA04D]47U)%040I("D[#0HC
M96YD:68-"B-I9F1E9B!04D]47U=2251%#0H)"5!Y1&EC=%]3971)=&5M4W1R
M:6YG("AD:6-T+" B4%)/5%]74DE412(L(%!Y26YT7T9R;VU,;VYG*%!23U1?
M5U))5$4I("D[#0HC96YD:68-"@T*(VEF9&5F($U!4%]32$%2140-"@D)4'E$
M:6-T7U-E=$ET96U3=')I;F<@*&1I8W0L(")-05!?4TA!4D5$(BP@4'E);G1?
M1G)O;4QO;F<H34%07U-(05)%1"D@*3L-"B-E;F1I9@T*(VEF9&5F($U!4%]0
M4DE6051%#0H)"5!Y1&EC=%]3971)=&5M4W1R:6YG("AD:6-T+" B34%07U!2
M259!5$4B+"!0>4EN=%]&<F]M3&]N9RA-05!?4%))5D%412D@*3L-"B-E;F1I
M9@T*(VEF9&5F($U!4%]$14Y95U))5$4-"@D)4'E$:6-T7U-E=$ET96U3=')I
M;F<@*&1I8W0L(")-05!?1$5.65=2251%(BP@4'E);G1?1G)O;4QO;F<H34%0
M7T1%3EE74DE412D@*3L-"B-E;F1I9@T*(VEF9&5F($U!4%]%6$5#551!0DQ%
M#0H)"5!Y1&EC=%]3971)=&5M4W1R:6YG("AD:6-T+" B34%07T5814-55$%"
M3$4B+"!0>4EN=%]&<F]M3&]N9RA-05!?15A%0U5404),12D@*3L-"B-E;F1I
M9@T*(VEF9&5F($U!4%]!3D].#0H)"5!Y1&EC=%]3971)=&5M4W1R:6YG("AD
M:6-T+" B34%07T%.3TXB+"!0>4EN=%]&<F]M3&]N9RA-05!?04Y/3BD@*3L-
M"@D)4'E$:6-T7U-E=$ET96U3=')I;F<@*&1I8W0L(")-05!?04Y/3EE-3U53
M(BP@4'E);G1?1G)O;4QO;F<H34%07T%.3TXI("D[#0HC96YD:68-"@T*(VEF
M9&5F(%5.25@-"@D)4'E$:6-T7U-E=$ET96U3=')I;F<@*&1I8W0L(")004=%
M4TE:12(L(%!Y26YT7T9R;VU,;VYG*" H;&]N9REG971P86=E<VEZ92@I("D@
M*3L-"B-E;F1I9@T*(VEF9&5F($U37U=)3C,R#0H)"7L-"@D)"5-94U1%35])
M3D9/('-I.PT*"0D)1V5T4WES=&5M26YF;R@F<VDI.PT*"0D)4'E$:6-T7U-E
M=$ET96U3=')I;F<@*&1I8W0L(")004=%4TE:12(L(%!Y26YT7T9R;VU,;VYG
M*"!S:2YD=U!A9V53:7IE("D@*3L-"@D)?0T*(V5N9&EF("\J($U37U=)3C,R
0("HO#0H-"GT-"@T*#0H-"@``
`
end

begin 666 mmap.dsp
M(R!-:6-R;W-O9G0@1&5V96QO<&5R(%-T=61I;R!0<F]J96-T($9I;&4@+2!.
M86UE/2)M;6%P(B M(%!A8VMA9V4@3W=N97(]/#0^#0HC($UI8W)O<V]F="!$
M979E;&]P97(@4W1U9&EO($=E;F5R871E9"!"=6EL9"!&:6QE+"!&;W)M870@
M5F5R<VEO;B V+C P#0HC("HJ($1/($Y/5"!%1$E4("HJ#0H-"B,@5$%21U19
M4$4@(E=I;C,R("AX.#8I($1Y;F%M:6,M3&EN:R!,:6)R87)Y(B P># Q,#(-
M"@T*0T9'/6UM87 @+2!7:6XS,B!$96)U9PT*(4U%4U-!1T4@5&AI<R!I<R!N
M;W0@82!V86QI9"!M86ME9FEL92X@5&\@8G5I;&0@=&AI<R!P<F]J96-T('5S
M:6YG($Y-04M%+ T*(4U%4U-!1T4@=7-E('1H92!%>'!O<G0@36%K969I;&4@
M8V]M;6%N9"!A;F0@<G5N#0HA34534T%'12 -"B%-15-304=%($Y-04M%("]F
M(")M;6%P+FUA:R(N#0HA34534T%'12 -"B%-15-304=%(%EO=2!C86X@<W!E
M8VEF>2!A(&-O;F9I9W5R871I;VX@=VAE;B!R=6YN:6YG($Y-04M%#0HA3453
M4T%'12!B>2!D969I;FEN9R!T:&4@;6%C<F\@0T9'(&]N('1H92!C;VUM86YD
M(&QI;F4N($9O<B!E>&%M<&QE.@T*(4U%4U-!1T4@#0HA34534T%'12!.34%+
M12 O9B B;6UA<"YM86LB($-&1STB;6UA<" M(%=I;C,R($1E8G5G(@T*(4U%
M4U-!1T4@#0HA34534T%'12!0;W-S:6)L92!C:&]I8V5S(&9O<B!C;VYF:6=U
M<F%T:6]N(&%R93H-"B%-15-304=%( T*(4U%4U-!1T4@(FUM87 @+2!7:6XS
M,B!296QE87-E(B H8F%S960@;VX@(E=I;C,R("AX.#8I($1Y;F%M:6,M3&EN
M:R!,:6)R87)Y(BD-"B%-15-304=%(")M;6%P("T@5VEN,S(@1&5B=6<B("AB
M87-E9"!O;B B5VEN,S(@*'@X-BD@1'EN86UI8RU,:6YK($QI8G)A<GDB*0T*
M(4U%4U-!1T4@#0H-"B,@0F5G:6X@4')O:F5C= T*(R!04D]0($%L;&]W4&5R
M0V]N9FEG1&5P96YD96YC:65S(# -"B,@4%)/4"!38V-?4')O:DYA;64@(B(-
M"B,@4%)/4"!38V-?3&]C86Q0871H("(B#0I#4% ]8VPN97AE#0I-5$P];6ED
M;"YE>&4-"E)30SUR8RYE>&4-"@T*(4E&(" B)"A#1D<I(B ]/2 B;6UA<" M
M(%=I;C,R(%)E;&5A<V4B#0H-"B,@4%)/4"!"05-%(%5S95]-1D,@, T*(R!0
M4D]0($)!4T4@57-E7T1E8G5G7TQI8G)A<FEE<R P#0HC(%!23U @0D%312!/
M=71P=71?1&ER(")296QE87-E(@T*(R!04D]0($)!4T4@26YT97)M961I871E
M7T1I<B B4F5L96%S92(-"B,@4%)/4"!"05-%(%1A<F=E=%]$:7(@(B(-"B,@
M4%)/4"!5<V5?349#(# -"B,@4%)/4"!5<V5?1&5B=6=?3&EB<F%R:65S(# -
M"B,@4%)/4"!/=71P=71?1&ER("(N(@T*(R!04D]0($EN=&5R;65D:6%T95]$
M:7(@(G@X-BUT96UP+7)E;&5A<V5<=VEN<F5G(@T*(R!04D]0($EG;F]R95]%
M>'!O<G1?3&EB(# -"B,@4%)/4"!487)G971?1&ER("(B#0I&.3 ]9&8N97AE
M#0HC($%$1"!"05-%($-04" O;F]L;V=O("]-5" O5S,@+T=8("]/,B O1" B
M5TE.,S(B("]$(").1$5"54<B("]$(")?5TE.1$]74R(@+T0@(E]-0D-3(B O
M1" B7U534D1,3"(@+T0@(DU-05!?15A03U)44R(@+UE8("]&1" O8PT*(R!!
M1$0@0U!0("]N;VQO9V\@+TU$("]7,R O1U@@+T\R("]$(")724XS,B(@+T0@
M(DY$14)51R(@+T0@(E]724Y$3U=3(B O1" B7TU"0U,B("]$(")?55-21$Q,
M(B O1" B34U!4%]%6%!/4E13(B O65@@+T9$("]C#0HC($%$1"!"05-%($U4
M3" O;F]L;V=O("]$(").1$5"54<B("]M:W1Y<&QI8C(P,R O=VEN,S(-"B,@
M041$($U43" O;F]L;V=O("]$(").1$5"54<B("]M:W1Y<&QI8C(P,R O=VEN
M,S(-"B,@041$($)!4T4@4E-#("]L(#!X8S Y("]D(").1$5"54<B#0HC($%$
M1"!24T,@+VP@,'AC,#D@+V0@(DY$14)51R(-"D)30S,R/6)S8VUA:V4N97AE
M#0HC($%$1"!"05-%($)30S,R("]N;VQO9V\-"B,@041$($)30S,R("]N;VQO
M9V\-"DQ)3DLS,CUL:6YK+F5X90T*(R!!1$0@0D%312!,24Y+,S(@:V5R;F5L
M,S(N;&EB('5S97(S,BYL:6(@9V1I,S(N;&EB('=I;G-P;V]L+FQI8B!C;VUD
M;&<S,BYL:6(@861V87!I,S(N;&EB('-H96QL,S(N;&EB(&]L93,R+FQI8B!O
M;&5A=70S,BYL:6(@=75I9"YL:6(@;V1B8S,R+FQI8B!O9&)C8W S,BYL:6(@
M+VYO;&]G;R O9&QL("]M86-H:6YE.DDS.#8-"B,@041$($Q)3DLS,B!K97)N
M96PS,BYL:6(@=7-E<C,R+FQI8B!G9&DS,BYL:6(@=VEN<W!O;VPN;&EB(&-O
M;61L9S,R+FQI8B!A9'9A<&DS,BYL:6(@<VAE;&PS,BYL:6(@;VQE,S(N;&EB
M(&]L96%U=#,R+FQI8B!U=6ED+FQI8B!O9&)C,S(N;&EB(&]D8F-C<#,R+FQI
M8B O;F]L;V=O("]D;&P@+VUA8VAI;F4Z23,X-B O;W5T.B(N+VUM87 N<'ED
M(@T*#0HA14Q314E&(" B)"A#1D<I(B ]/2 B;6UA<" M(%=I;C,R($1E8G5G
M(@T*#0HC(%!23U @0D%312!5<V5?349#(# -"B,@4%)/4"!"05-%(%5S95]$
M96)U9U],:6)R87)I97,@,0T*(R!04D]0($)!4T4@3W5T<'5T7T1I<B B1&5B
M=6<B#0HC(%!23U @0D%312!);G1E<FUE9&EA=&5?1&ER(")$96)U9R(-"B,@
M4%)/4"!"05-%(%1A<F=E=%]$:7(@(B(-"B,@4%)/4"!5<V5?349#(# -"B,@
M4%)/4"!5<V5?1&5B=6=?3&EB<F%R:65S(#$-"B,@4%)/4"!/=71P=71?1&ER
M("(N(@T*(R!04D]0($EN=&5R;65D:6%T95]$:7(@(G@X-BUT96UP+61E8G5G
M7&UM87 B#0HC(%!23U @26=N;W)E7T5X<&]R=%],:6(@, T*(R!04D]0(%1A
M<F=E=%]$:7(@(B(-"D8Y,#UD9BYE>&4-"B,@041$($)!4T4@0U!0("]N;VQO
M9V\@+TU49" O5S,@+T=M("]'6" O6DD@+T]D("]$(")724XS,B(@+T0@(E]$
M14)51R(@+T0@(E]724Y$3U=3(B O1" B7TU"0U,B("]$(")?55-21$Q,(B O
M1" B34U!4%]%6%!/4E13(B O65@@+T9$("]'6B @+V,-"B,@041$($-04" O
M;F]L;V=O("]-1&0@+U<S("]';2 O1U@@+UI)("]/9" O1" B5TE.,S(B("]$
M(")?1$5"54<B("]$(")?5TE.1$]74R(@+T0@(E]-0D-3(B O1" B7U534D1,
M3"(@+T0@(DU-05!?15A03U)44R(@+UE8("]&1" O1UH@("]C#0HC($%$1"!"
M05-%($U43" O;F]L;V=O("]$(")?1$5"54<B("]M:W1Y<&QI8C(P,R O=VEN
M,S(-"B,@041$($U43" O;F]L;V=O("]$(")?1$5"54<B("]M:W1Y<&QI8C(P
M,R O=VEN,S(-"B,@041$($)!4T4@4E-#("]L(#!X8S Y("]D(")?1$5"54<B
M#0HC($%$1"!24T,@+VP@,'AC,#D@+V0@(E]$14)51R(-"D)30S,R/6)S8VUA
M:V4N97AE#0HC($%$1"!"05-%($)30S,R("]N;VQO9V\-"B,@041$($)30S,R
M("]N;VQO9V\-"DQ)3DLS,CUL:6YK+F5X90T*(R!!1$0@0D%312!,24Y+,S(@
M:V5R;F5L,S(N;&EB('5S97(S,BYL:6(@9V1I,S(N;&EB('=I;G-P;V]L+FQI
M8B!C;VUD;&<S,BYL:6(@861V87!I,S(N;&EB('-H96QL,S(N;&EB(&]L93,R
M+FQI8B!O;&5A=70S,BYL:6(@=75I9"YL:6(@;V1B8S,R+FQI8B!O9&)C8W S
M,BYL:6(@+VYO;&]G;R O9&QL("]D96)U9R O;6%C:&EN93I),S@V("]P9&)T
M>7!E.G-E<'0-"B,@041$($Q)3DLS,B!K97)N96PS,BYL:6(@=7-E<C,R+FQI
M8B!G9&DS,BYL:6(@=VEN<W!O;VPN;&EB(&-O;61L9S,R+FQI8B!A9'9A<&DS
M,BYL:6(@<VAE;&PS,BYL:6(@;VQE,S(N;&EB(&]L96%U=#,R+FQI8B!U=6ED
M+FQI8B!O9&)C,S(N;&EB(&]D8F-C<#,R+FQI8B O;F]L;V=O("]D;&P@+V1E
M8G5G("]M86-H:6YE.DDS.#8@+V]U=#HB+B]M;6%P7V0N<'ED(B O<&1B='EP
M93IS97!T#0H-"B%%3D1)1B -"@T*(R!"96=I;B!487)G970-"@T*(R!.86UE
M(")M;6%P("T@5VEN,S(@4F5L96%S92(-"B,@3F%M92 B;6UA<" M(%=I;C,R
M($1E8G5G(@T*(R!"96=I;B!3;W5R8V4@1FEL90T*#0I33U520T4]+BY<36]D
M=6QE<UQM;6%P;6]D=6QE+F,-"B,@16YD(%-O=7)C92!&:6QE#0HC($5N9"!4
687)G970-"B,@16YD(%!R;VIE8W0-"@``
`
end

begin 666 pcbuild.dsw
M36EC<F]S;V9T($1E=F5L;W!E<B!3='5D:6\@5V]R:W-P86-E($9I;&4L($9O
M<FUA="!697)S:6]N(#8N,# -"B,@5T%23DE.1SH@1$\@3D]4($5$250@3U(@
M1$5,151%(%1(25,@5T]22U-004-%($9)3$4A#0H-"B,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,-"@T*4')O:F5C=#H@(E]T:VEN=&5R(CTB
M+EQ?=&MI;G1E<BYD<W B("T@4&%C:V%G92!/=VYE<CT\-#X-"@T*4&%C:V%G
M93T\-3X-"GM[>PT*?7U]#0H-"E!A8VMA9V4]/#0^#0I[>WL-"B @("!"96=I
M;B!0<F]J96-T($1E<&5N9&5N8WD-"B @("!0<F]J96-T7T1E<%].86UE('!Y
M=&AO;C$V#0H@(" @16YD(%!R;VIE8W0@1&5P96YD96YC>0T*?7U]#0H-"B,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,-"@T*4')O:F5C=#H@
M(F)S9&1B(CTB+EQB<V1D8BYD<W B("T@4&%C:V%G92!/=VYE<CT\-#X-"@T*
M4&%C:V%G93T\-3X-"GM[>PT*?7U]#0H-"E!A8VMA9V4]/#0^#0I[>WL-"B @
M("!"96=I;B!0<F]J96-T($1E<&5N9&5N8WD-"B @("!0<F]J96-T7T1E<%].
M86UE('!Y=&AO;C$V#0H@(" @16YD(%!R;VIE8W0@1&5P96YD96YC>0T*?7U]
M#0H-"B,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,-"@T*4')O
M:F5C=#H@(FUM87 B/2(N7&UM87 N9'-P(B M(%!A8VMA9V4@3W=N97(]/#0^
M#0H-"E!A8VMA9V4]/#4^#0I[>WL-"GU]?0T*#0I086-K86=E/3PT/@T*>WM[
M#0I]?7T-"@T*(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(PT*
M#0I0<F]J96-T.B B<&%R<V5R(CTB+EQP87)S97(N9'-P(B M(%!A8VMA9V4@
M3W=N97(]/#0^#0H-"E!A8VMA9V4]/#4^#0I[>WL-"GU]?0T*#0I086-K86=E
M/3PT/@T*>WM[#0H@(" @0F5G:6X@4')O:F5C="!$97!E;F1E;F-Y#0H@(" @
M4')O:F5C=%]$97!?3F%M92!P>71H;VXQ-@T*(" @($5N9"!0<F]J96-T($1E
M<&5N9&5N8WD-"GU]?0T*#0HC(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C#0H-"E!R;VIE8W0Z(")P>71H;VXB/2(N7'!Y=&AO;BYD<W B("T@
M4&%C:V%G92!/=VYE<CT\-#X-"@T*4&%C:V%G93T\-3X-"GM[>PT*?7U]#0H-
M"E!A8VMA9V4]/#0^#0I[>WL-"B @("!"96=I;B!0<F]J96-T($1E<&5N9&5N
M8WD-"B @("!0<F]J96-T7T1E<%].86UE('!Y=&AO;C$V#0H@(" @16YD(%!R
M;VIE8W0@1&5P96YD96YC>0T*?7U]#0H-"B,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,-"@T*4')O:F5C=#H@(G!Y=&AO;C$V(CTB+EQP>71H
M;VXQ-BYD<W B("T@4&%C:V%G92!/=VYE<CT\-#X-"@T*4&%C:V%G93T\-3X-
M"GM[>PT*?7U]#0H-"E!A8VMA9V4]/#0^#0I[>WL-"GU]?0T*#0HC(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C#0H-"E!R;VIE8W0Z(")P>71H
M;VYW(CTB+EQP>71H;VYW+F1S<"(@+2!086-K86=E($]W;F5R/3PT/@T*#0I0
M86-K86=E/3PU/@T*>WM[#0I]?7T-"@T*4&%C:V%G93T\-#X-"GM[>PT*(" @
M($)E9VEN(%!R;VIE8W0@1&5P96YD96YC>0T*(" @(%!R;VIE8W1?1&5P7TYA
M;64@<'ET:&]N,38-"B @("!%;F0@4')O:F5C="!$97!E;F1E;F-Y#0I]?7T-
M"@T*(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(PT*#0I0<F]J
M96-T.B B=VEN<F5G(CTB+EQW:6YR96<N9'-P(B M(%!A8VMA9V4@3W=N97(]
M/#0^#0H-"E!A8VMA9V4]/#4^#0I[>WL-"GU]?0T*#0I086-K86=E/3PT/@T*
M>WM[#0H@(" @0F5G:6X@4')O:F5C="!$97!E;F1E;F-Y#0H@(" @4')O:F5C
M=%]$97!?3F%M92!P>71H;VXQ-@T*(" @($5N9"!0<F]J96-T($1E<&5N9&5N
M8WD-"GU]?0T*#0HC(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M#0H-"E!R;VIE8W0Z(")Z;&EB(CTB+EQZ;&EB+F1S<"(@+2!086-K86=E($]W
M;F5R/3PT/@T*#0I086-K86=E/3PU/@T*>WM[#0I]?7T-"@T*4&%C:V%G93T\
M-#X-"GM[>PT*(" @($)E9VEN(%!R;VIE8W0@1&5P96YD96YC>0T*(" @(%!R
M;VIE8W1?1&5P7TYA;64@<'ET:&]N,38-"B @("!%;F0@4')O:F5C="!$97!E
M;F1E;F-Y#0I]?7T-"@T*(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(PT*#0I';&]B86PZ#0H-"E!A8VMA9V4]/#4^#0I[>WL-"GU]?0T*#0I0
M86-K86=E/3PS/@T*>WM[#0I]?7T-"@T*(R,C(R,C(R,C(R,C(R,C(R,C(R,C
M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C
1(R,C(R,C(R,C(R,C(PT*#0H`
`
end

begin 666 test_mmap.py
M#0II;7!O<G0@;6UA< T*:6UP;W)T('-T<FEN9RP@;W,L(')E+"!S>7,-"@T*
M4$%'15-)6D4@/2!M;6%P+E!!1T5325I%#0H-"F1E9B!T97-T7V)O=&@H*3H-
M"B @(" B5&5S="!M;6%P(&UO9'5L92!O;B!5;FEX('-Y<W1E;7,@86YD(%=I
M;F1O=W,B#0H@(" @#0H@(" @(R!#<F5A=&4@86X@;6UA<"=E9"!F:6QE#0H@
M(" @9B ](&]P96XH)V9O;R<L("=W*R<I#0H@(" @#0H@(" @(R!7<FET92 R
M('!A9V5S('=O<G1H(&]F(&1A=&$@=&\@=&AE(&9I;&4-"B @("!F+G=R:71E
M*"=<,"<J(%!!1T5325I%*0T*(" @(&8N=W)I=&4H)V9O;R<I#0H@(" @9BYW
M<FET92@G7# G*B H4$%'15-)6D4M,RD@*0T*#0H@(" @:68@<WES+G!L871F
M;W)M6SHS73T](G=I;B(Z#0H@(" @(" @(&T@/2!M;6%P+FUM87 H9BYF:6QE
M;F\H*2P@,B J(%!!1T5325I%*0T*(" @(&5L<V4Z#0H@(" @(" @(&T@/2!M
M;6%P+FUM87 H9BYF:6QE;F\H*2P@,B J(%!!1T5325I%*0T*(" @(&8N8VQO
M<V4H*0T*(" @( T*(" @(",@4VEM<&QE('-A;FET>2!C:&5C:W,-"B @("!P
M<FEN=" G("!0;W-I=&EO;B!O9B!F;V\Z)RP@<W1R:6YG+F9I;F0H;2P@)V9O
M;R<I("\@9FQO870H4$%'15-)6D4I+" G<&%G97,G#0H@(" @87-S97)T('-T
M<FEN9RYF:6YD*&TL("=F;V\G*2 ]/2!004=%4TE:10T*(" @( T*(" @('!R
M:6YT("<@($QE;F=T:"!O9B!F:6QE.B<L(&QE;BAM*2 O(&9L;V%T*%!!1T53
M25I%*2P@)W!A9V5S)PT*(" @(&%S<V5R="!L96XH;2D@/3T@,BI004=%4TE:
M10T*#0H@(" @<')I;G0@)R @0V]N=&5N=',@;V8@8GET92 P.B<L(')E<'(H
M;5LP72D-"B @("!A<W-E<G0@;5LP72 ]/2 G7# G#0H@(" @<')I;G0@)R @
M0V]N=&5N=',@;V8@9FER<W0@,R!B>71E<SHG+"!R97!R*&U;,#HS72D-"B @
M("!A<W-E<G0@;5LP.C-=(#T]("=<,%PP7# G#0H@(" @#0H@(" @(R!-;V1I
M9GD@=&AE(&9I;&4G<R!C;VYT96YT#0H@(" @<')I;G0@(EQN("!-;V1I9GEI
M;F<@9FEL92=S(&-O;G1E;G0N+BXB#0H@(" @;5LP72 ]("<S)PT*(" @(&U;
M4$%'15-)6D4@*S,Z(%!!1T5325I%("LS*S-=/2=B87(G#0H@(" @#0H@(" @
M(R!#:&5C:R!T:&%T('1H92!M;V1I9FEC871I;VX@=V]R:V5D#0H@(" @<')I
M;G0@)R @0V]N=&5N=',@;V8@8GET92 P.B<L(')E<'(H;5LP72D-"B @("!A
M<W-E<G0@;5LP72 ]/2 G,R<-"B @("!P<FEN=" G("!#;VYT96YT<R!O9B!F
M:7)S=" S(&)Y=&5S.B<L(')E<'(H;5LP.C-=*0T*(" @(&%S<V5R="!M6S Z
M,UT@/3T@)S-<,%PP)PT*(" @('!R:6YT("<@($-O;G1E;G1S(&]F('-E8V]N
M9"!P86=E.B<L("!M6U!!1T5325I%+3$@.B!004=%4TE:12 K(#==#0H@(" @
M87-S97)T(&U;4$%'15-)6D4M,2 Z(%!!1T5325I%("L@-UT@/3T@)UPP9F]O
M8F%R7# G#0H@(" @#0H@(" @;2YF;'5S:"@I#0H-"B @(" C(%1E<W0@9&]I
M;F<@82!R96=U;&%R(&5X<')E<W-I;VX@;6%T8V@@:6X@86X@;6UA<"=E9"!F
M:6QE#0H@(" @;6%T8V@]<F4N<V5A<F-H*"=;02U:82UZ72LG+"!M*0T*(" @
M(&EF(&UA=&-H(#T]($YO;F4Z#0H@(" @(" @('!R:6YT("<@($524D]2.B!R
M96=E>"!M871C:"!O;B!M;6%P(&9A:6QE9"$G#0H@(" @96QS93H-"B @(" @
M(" @<W1A<G0L(&5N9" ](&UA=&-H+G-P86XH,"D-"B @(" @(" @;&5N9W1H
M(#T@96YD("T@<W1A<G0@(" @(" @(" @(" @(" -"@T*(" @(" @("!P<FEN
M=" G("!296=E>"!M871C:"!O;B!M;6%P("AP86=E('-T87)T+"!L96YG=&@@
M;V8@;6%T8V@I.B<L#0H@(" @(" @('!R:6YT('-T87)T("\@9FQO870H4$%'
M15-)6D4I+"!L96YG=&@-"B @(" @(" @#0H@(" @(" @(&%S<V5R="!S=&%R
M=" ]/2!004=%4TE:10T*(" @(" @("!A<W-E<G0@96YD(#T](%!!1T5325I%
M("L@-@T*(" @(" @(" -"B @("!P<FEN=" G(%1E<W0@<&%S<V5D)PT*#0IT
.97-T7V)O=&@H*0T*#0H`
`
end