Below is a patch against Ian's CVS tree which can massively accelerate
the `dpkg -iGROEB' call from the disk method of dselect (and
elsewhere).
It works by parsing filenames to determine whether it can skip
particular files, instead of looking inside them. When most of the
packages on your system are up to date, it leads to an enormous
speedup, as instead of opening and parsing thousands of *.deb files it
just does a bit of work on the filenames.
In this version there are two special rules that you must follow:
* Firstly your binary-* directories must contain .can.parse.filenames
files for the new code to take effect. You might say e.g.
touch dists/slink/{main,contrib,non-free}/binary-i386/.can.parse.filenames
to make this take effect.
IMHO this test should be removed from production code, unless there is
a really good reason for keeping it in. (If you do have an archive
with unsuitable filenames everything should just work, unless you make
the filenames lie about their version number, in which case you
deserve what you get).
If you don't have direct control over the contents of the archive
you use, then I recommend you just disable the test and always
parse filenames.
* Secondly, all version numbers must be unique EXCLUDING THE EPOCH.
What this means is that if you have two instances of a package where
the version number differs only in the epoch, you will get files
ignored when possibly they should not be.
I do not know how many packages this effects. Hopefully it is none
at all. Clearly it is possible for it to be none at all, since we
have the Debian-specific revision field.
If this patch is adopted then either (1) the rule must become
mandatory or (2) all filenames must be modified to include the
epoch and this patch adjusted to take advantage of this.
Other package management tools would benefit from this too, I
imagine.
This patch is EXPERIMENTAL, do not run a dpkg that uses it unless you
know exaclty what you are doing. That said I would be interested in
anyone's experience with it.
ttfn/jk
begin 644 faster.dpkg.diff
M/R!D;V,O<"YD:69F"DEN9&5X.B!V97)S:[EMAIL PROTECTED]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/0I20U,@[EMAIL PROTECTED]<B]S<F,O0U93+V1P:V<O=F5R<VEO;BYH
M+'8*<F5T<FEE=FEN9R!R979I<VEO;B`Q+C0*9&EF9B`M=2`M<C$N-"!V97)S
M:[EMAIL PROTECTED]('9E<G-I;VXN:`DQ.3DY+S`W+S(U(#$W.C(U.C4R"3$N-`HK
[EMAIL PROTECTED]<VEO;BYH"3$Y.3DO,[EMAIL PROTECTED],34@,3(Z,[EMAIL
PROTECTED],[EMAIL PROTECTED]@[EMAIL PROTECTED]
M+2-D969I;[EMAIL PROTECTED])324].("(Q+C4N,R(@[EMAIL PROTECTED]&AI<R!L:6YE(&UO
M9&EF:65D(&)Y($UA:V5F:6QE("HO"BLC9&5F:6YE($102T=?5D524TE/3B`B
M,2XU+C0M<FIK(B`O*B!4:&ES(&QI;F4@;6]D:[EMAIL PROTECTED]@36%K969I;&4@
[EMAIL PROTECTED](&1O8R]P<F]G<F%M;65R+G-G;6P*/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/0I20U,@[EMAIL PROTECTED]<B]S<F,O0U93+V1P:V<O9&]C+W!R;V=R
M86UM97(N<V=M;"QV"G)E=')I979I;F<@<F5V:7-I;VX@,2XQ"[EMAIL PROTECTED]@
M+7(Q+C$@<')O9W)A;6UE<BYS9VUL"BTM+2!D;V,O<')O9W)A;6UE<BYS9VUL
M"[EMAIL PROTECTED],3`O,C4@,C(Z,C0Z,#,),2XQ"BLK*R!D;V,O<')O9W)A;6UE<BYS
M9VUL"3$Y.3DO,[EMAIL PROTECTED],34@,3(Z,[EMAIL PROTECTED],[EMAIL
PROTECTED],S,C0L-R`K,S,R-"PW($!`
M"B`\=&%G/CQT="]U<&1A=&4O"B`\=&%G/CQT="]I;G-T86QL+PH@/&ET96T^
M97AE8W5T86)L92!P<F]G<F%M<[EMAIL PROTECTED]&AE('-C<FEP=',@=&AE;7-E;'9E<RX*
M+3QT86<^/'1T+V1E<V,N/'9A<B]O<'1I;VXO+PHK/'1A9SX\='0O9&5S8RX\
M=F%R+VUE=&AO9"\O"B`\:71E;3YD97-C<FEP=&EO;B!F:[EMAIL PROTECTED]@/"]T86=L
M:7-T/@H@/'`^"D!`("TS,S4R+#$Q("LS,S4R+#$Q($!`"B`\=F%R+V=R;W5P
M+R!A;F0@/'9A<B]M971H;V0O+B`@/'9A<B]V87)D:7(O(&ES('1H92!B87-E
M(&1I<F5C=&]R>2!F;W(*('-T;W)I;F<@/'!R9VXO9'[EMAIL PROTECTED](#QP<F=N
M+V1S96QE8W0O)W,@<W1A=&4L('5S=6%L;'D*(#QT=#XO=F%R+VQI8B]D<&MG
M/"\^.R!T:&ES(&ES('!A<W-E9"!I;B!S;R!T:&%T('1H92`\='0O+2UA9&UI
M;F1I<B\*+6]P=&EO;B!T;R`\<')G;B]D<V5L96-T+R!I<R!H;VYO=7)E9"DN
M"BMM971H;[EMAIL PROTECTED]&\@/'!R9VXO9'-E;&5C="\@:7,@:&]N;[EMAIL
PROTECTED]@/'`^
M"B`*+45A8V@@;W!T:6]N(&UA>2!H879E(&%N(&5X=&5N9&5D(&1E<V-R:7!T
M:6]N(&EN"BT\='0O9&5S8RX\=F%R+V]P=&EO;[EMAIL PROTECTED]&AI<R!S:&]U;&0@
[EMAIL PROTECTED];6%T=&5D(&QI:[EMAIL
PROTECTED]&AE(&5X=&5N9&5D"BM%86-H(&UE=&AO9"!M
M87D@:&%V92!A;B!E>'1E;F1E9"!D97-C<FEP=&EO;B!I;@HK/'1T+V1E<V,N
M/'9A<B]M971H;V0O+RX@(%1H:7,@<VAO=6QD(&)E(&9O<FUA='1E9"!L:6ME
M('1H92!E>'1E;[EMAIL PROTECTED]&5S8W)I<'1I;VX@<&%R="!O9B!A(#QT="]$97-C
M<FEP=&EO;[EMAIL PROTECTED];&[EMAIL
PROTECTED]<GD@/&5M+W-H:69T960@;VYE"B!C:&%R86-T
M97(@=&[EMAIL PROTECTED]&AE(&[EMAIL
PROTECTED]@/'`^"DEN9&5X.B!I;F-L=61E+V1P:V<N:`H]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F:6QE.B`O=7-R+W-R8R]#5E,O
M9'!K9R]I;F-L=61E+V1P:V<N:"QV"G)E=')I979I;F<@<F5V:7-I;VX@,2XQ
M"[EMAIL PROTECTED]@+7([EMAIL PROTECTED]'!K9RYH"BTM+2!I;F-L=61E+V1P:V<N:`DQ.3DX
M+S$P+S(U(#(R.C(U.C`W"3$N,0HK*RL@:6YC;'5D92]D<&MG+F@),3DY.2\P
M."\Q-2`Q,[EMAIL PROTECTED]"`M,3$P+#@@*S$Q,"PQ,R!`0`H@("[EMAIL PROTECTED]@=7-E
M<B!D:60@;F]T(&5D:[EMAIL PROTECTED]@("`@>R`@("[EMAIL PROTECTED]("`@("`@("`@
M("!C9F]?:6YS=&%L;"`@("!]+"`@("`@("[EMAIL PROTECTED]@("[EMAIL
PROTECTED]@=7-E<B!D:60@
M961I="`@("[EMAIL PROTECTED]@("`@>R`@("[EMAIL PROTECTED]("`@("`@("[EMAIL
PROTECTED]
M;VUP=%]K965P("!]"B`*+2-D969I;[EMAIL PROTECTED])#2$E615]&24Q%3D%-15]00514
M15).("(J+F1E8B(**R-D969I;[EMAIL PROTECTED])#2$E615]&24Q%3D%-15]0051415).
M("(J(B!$14)%6%0*(`HK+RH@:[EMAIL PROTECTED]&AI<R!F:6QE(&5X:7-T<R!A="!T:&4@
M=&]P(&QE=F5L(&]F(&%N(&%R8VAI=F4L(&1P:V<@+5(@=VEL;`HK("[EMAIL PROTECTED]
M96UP="!T;R!P87)S92!F:6QE;F%M97,@=&[EMAIL PROTECTED];6EN871E('5N=V%N=&5D
M(&9I;&5S('=I=&AO=70**R`@(&AA=FEN9R!T;R!O<&5N('[EMAIL PROTECTED]
M969I;[EMAIL PROTECTED]&3U)-051!4U-%4E1.04U%("(N8V%N+G!A<G-E+F9I;&5N86UE
M<R(**PH@(V1E9FEN92!"04-+14Y$("`@("`@(F1P:V<M9&5B(@H@(V1E9FEN
M92!34$Q)5%1%4B`@("`@(F1P:V<M<W!L:70B"B`C9&5F:6YE($U$-5-532`@
M("`@("`B;60U<W5M(@I`0"`M,[EMAIL PROTECTED],RPW($!`"B!I;G0@;5]F;W)K
M*'9O:[EMAIL PROTECTED]"!M7V1U<#(H:6YT(&]L9&9D+"!I;G0@;F5W9F0I.PH@
M=F]I9"!M7W!I<&4H:6YT(&9D<ULR72D["BMV;VED(&U?8VQO<V4H:6YT(&9D
M*3L*([EMAIL PROTECTED]"!C:&5C:W-U8G!R;V-E<G(H:6YT('-T871U<[EMAIL PROTECTED]<W0@
M8VAA<B`J9&5S8W)I<'1I;VXL(&EN="!S:6=P:7!E;[EMAIL PROTECTED]"!W86ET
M<W5B<')O8RAP:61?="!P:60L(&-O;G-T(&-H87(@*F1E<V-R:7!T:6]N+"!I
M;G0@<VEG<&[EMAIL PROTECTED](&QI8B]M;&EB+F,*/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/0I20U,@[EMAIL PROTECTED]<B]S<F,O0U93+V1P:V<O;&EB+VUL
M:6(N8RQV"G)E=')I979I;F<@<F5V:7-I;VX@,2XQ"[EMAIL PROTECTED]@+7(Q+C$@
M;6QI8BYC"BTM+2!L:6(O;6QI8BYC"[EMAIL PROTECTED],3`O,C4@,C(Z,C4Z,3<),2XQ
M"BLK*R!L:6(O;6QI8BYC"3$Y.3DO,[EMAIL PROTECTED],34@,3(Z,[EMAIL
PROTECTED],[EMAIL PROTECTED],BPS
M("LQ,C(L.2!`0`H@("!I9B`H<B`A/2!P:60I('L@;VYE<G)?86)O<G0K*SL@
M;VAS:&[EMAIL PROTECTED]"!F;W(@)7,@9F%I;&5D(BQD97-C<FEP=&EO;BD[('T*
M("[EMAIL PROTECTED])P<F]C97)R*'-T871U<RQD97-C<FEP=&EO;BQS:6=P:7!E
M;[EMAIL PROTECTED]"BMV;VED(&U?8VQO<V4H:6YT(&9D*2!["BL@(&EF*"%C;&]S
M92AF9"DI(')E='5R;CL**R`@;VYE<G)?86)O<G0K*SL**R`@;VAS:&[EMAIL PROTECTED]
M9F%I;&5D('1O(&-L;W-E(&1E<V-R:7!T;W(B*3L**WT@(`I);F1E>#H@;6%I
M;B]A<F-H:79E<RYC"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I;&4Z
M("]U<W(O<W)C+T-64R]D<&MG+VUA:6XO87)C:&EV97,N8RQV"G)E=')I979I
M;F<@<F5V:7-I;VX@,2XU"[EMAIL PROTECTED]@+7([EMAIL PROTECTED])C:&EV97,N8PHM+2T@
M;6%I;B]A<F-H:79E<RYC"3$Y.3DO,#<O,C(@,#`Z-3,Z,C$),2XU"BLK*R!M
M86EN+V%R8VAI=F5S+F,),3DY.2\P."\Q-2`Q,[EMAIL PROTECTED]"`M-#(L-B`K
M-#(L."!`0`H@(VEN8VQU9&4@(FUA:6XN:"(*("-I;F-L=61E(")A<F-H:79E
M<RYH(@H@"BMS=&%T:6,@:6YT(&EG;F]R969I;&4H8V]N<[EMAIL PROTECTED]<B`J<&%T
M:"D["BL*(&EN="!F:6QE<V%V97-P86-K86=E*'-T<G5C="!F:6QE:6YL:7-T
M("IF:6QE+"!S=')U8W0@<&MG:6YF;R`J<&MG=&]B97-A=F5D+`H@("`@("`@
M("`@("`@("`@("`@("`@<W1R=6-T('[EMAIL PROTECTED])E:6YG:6YS=&%L
M;&5D*2!["B`@('-T<G5C="!P:V=I;F9O("ID:79P:V<L("IT:&ER9'!K9SL*
[EMAIL PROTECTED],"[EMAIL PROTECTED]($!`"B`@('-T871I8R!S=')[EMAIL PROTECTED]
M(&9I;F1O=71P=70["B`@(&-O;G-T(&-H87(@*BIA<F=L:7-T.PH@("!C:&%R
M("IP.PHK("!I;G0@<&%R<V5N86UE<SL**R`@<W1R=6-T('9A<F)U9B!A<W-E
M<G1P871H.PHK("!I;[EMAIL PROTECTED])T9F0["BL@(&-O;G-T(&-H87(@*F-O;G-T
M("IA<#L*(`H@("!C:&5C:W!A=&@H*3L**PHK("!M;V1S=&%T9&)?:6YI="AA
M9&UI;F1I<BP**R`@("`@("`@("`@("`@("[EMAIL PROTECTED];V%C="`_("`@("`@("`@
M("`@("`@("`@("`@;7-D8G)W7W)E861O;FQY"BL@("`@("`@("`@("`@("`Z
M(&-I<&%C=&EO;BT^87)G(#T](&%C=%]A=F%I;"`_(&US9&)R=U]W<FET90HK
M("`@("`@("`@("`@("[EMAIL PROTECTED];VYR;V]T(#\@("`@("`@("`@("`@("`@
M("!M<V1B<G=?=W)I=&4**R`@("`@("`@("`@("`@(#H@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@;7-D8G)W7VYE961S=7!E<G5S97(I.PH@("`*
M("`@:[EMAIL PROTECTED]&9?<F5C=7)S:79E*2!["B`@("`@"B`@("`@:[EMAIL
PROTECTED]"$J87)G=BD*
M("`@("`@(&)A9'5S86=E*"(M+25S("TM<F5C=7)S:79E(&YE961S(&%T(&QE
M87-T(&]N92!P871H(&%R9W5M96YT(BQC:7!A8W1I;VXM/F]L;VYG*3L*("`@
M("`**R`@("!I9BAC:7!A8W1I;VXM/F%R9R`]/2!A8W1?:6YS=&%L;"!\?"!C
M:7!A8W1I;VXM/F%R9R`]/2!A8W1?=6YP86-K*2(&%R92!S96YS:6)L92X@($EF('-O+"!W92!W:6QL('!A
M<G-E(&9I;&5N86UE<R!T;R!D:7-C87)D"BL)('1H:6YG<R!T:&%T(&%R92!O
M8G9I;W5S;'D@;F]T('=A;G1E9"X**PHK("`@("`@("[EMAIL PROTECTED]"!W92!A8W1U
M86QL>2!C:&5C:R!F;W(@:7,@9FEL96YA;65S(&QI:V4**R`@("`@("`@("]V
M87(O;&EB+V1P:V<O;65T:&]D<R]M;G0O9&5B:6%N+V1I<W1S+W-T86)L92]M
M86EN+V)I;F%R>2UI,[EMAIL PROTECTED]<&%R<V4N9FEL96YA;65S("HO"BL@("`@
M("!P87)S96YA;65S(#T@,3L**R`@("`@('9A<F)U9FEN:70H)F%S<V5R='!A
M=&@I.PHK("`@("[EMAIL PROTECTED]("AA<#UA<F=V.R`J87`[(&%P*RLI('L**PDO*B!8
M6%@@=F%R8G5F<')I;G1F(&1O97-N)[EMAIL PROTECTED]:[EMAIL PROTECTED])B=69R97-E
M="@F87-S97)T<&%T:"D["BL)=F%R8G5F861D<W1R*"9A<W-E<G1P871H+"`J
M87`I.PHK"79A<F)U9F%D9&,H)F%S<V5R='!A=&@L("<O)RD["BL)=F%R8G5F
M861D<W1R*"9A<W-E<G1P871H+"!&3D9/4DU!5$%34T525$Y!344I.PHK"79A
M<F)U9F%D9&,H)F%S<V5R='!A=&@L(#`I.PHK"6EF*"AA<W-E<G1F9"`](&]P
M96XH87-S97)T<&%T:"YB=68L($]?4D1/3DQ9*2D@/"`P*2B8@:6=N;W)E9FEL92AP
M*2DI(&%R9VQI<W1;:2LK73T@<#L*("`@("`@('=H:6QE("@[EMAIL PROTECTED]@
M(3T@,"D["B`@("[EMAIL PROTECTED]@("`@(&%R9VQI<W1;:5T](#`["D!`("TW-3,L,3(@
M*S<X.2PV($!`"B`@("`@"B`@('T*(`HM("!M;V1S=&%T9&)?:6YI="AA9&UI
M;F1I<BP*+2`@("`@("`@("`@("`@("[EMAIL PROTECTED];V%C="`_("`@("`@("`@("`@
M("`@("`@("`@;7-D8G)W7W)E861O;FQY"BT@("`@("`@("`@("`@("`Z(&-I
M<&%C=&EO;BT^87)G(#T](&%C=%]A=F%I;"`_(&US9&)R=U]W<FET90HM("`@
M("`@("`@("`@("[EMAIL PROTECTED];VYR;V]T(#\@("`@("`@("`@("`@("`@("!M
M<V1B<G=?=W)I=&4*+2`@("`@("`@("`@("`@(#H@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@;7-D8G)W7VYE961S=7!E<G5S97(I.PHM"B`@(&-U
M<G)E;G1T:6UE/2!T:6UE*#`I.PH@"B`@('9A<F)U9F%D9'-T<[EMAIL PROTECTED];65V
M8BQI;G-T9&[EMAIL PROTECTED]@F9FYA;65V8BPG+R<I.PI`0"`M-SDX
[EMAIL PROTECTED]@R."PQ,#@@0$`*("[EMAIL
PROTECTED]@"B`@(&UO9'-T871D8E]S:'5T9&]W;[EMAIL PROTECTED]
M.PHK?0HK"BLO*B!D971E<FUI;[EMAIL PROTECTED]&AE<B!W92!A<F4@:6YT97)E<W1E
M9"!I;B!T:&[EMAIL PROTECTED]@<&%T:"<N("!)9B!W92!A<F4L"BL@("!W92!R971U
M<FX@,"X@($EF('=E('=A;[EMAIL PROTECTED]&\@:6=N;W)E(&ET+"!W92!R971U<FX@,2X*
M*PHK("[EMAIL PROTECTED]@;VYL>2!D;R!T:&ES(&9O<B`M+75N<&%C:R!A;[EMAIL
PROTECTED];G-T
M86QL+"!S;R!T:&[EMAIL PROTECTED]&EM97,@=VAE;B!W90HK("[EMAIL
PROTECTED]"!T;R!I9VYO<F4@
M82!F:6QE(&%R92!A<R!F;VQL;[EMAIL PROTECTED]("`@"BL@("`J(&EF('1H92!P86-K
M86=E(&ES(&YO="!M87)[EMAIL PROTECTED](&EN<W1A;&PN("!);B!T:&%T(&-A<V4@
M:70@:7,@;F]T"BL@("`@(&]F(&EN=&5R97-T('1O('[EMAIL PROTECTED](&9A8W0@
M=V4@<&QA>2!I="!A(&)I="!S869E<B!T:&%N('1H:7,L"BL@("`@('-E92!B
M96QO=RXI"BL**R`@("H@:[EMAIL PROTECTED]&AE('!A8VMA9V4@:7,@;6%R:V5D(&%S(&EN
M<W1A;&[EMAIL PROTECTED]('1H92!V97)S:6]N(&EN('1H90HK("`@("!F:6QE<WES=&5M
M(&ES(&YO="!A<R!U<"!T;R!D871E(&%S('1H92!I;[EMAIL PROTECTED]<VEO
M;BX@($EN"BL@("`@('!R86-T:6-E('[EMAIL PROTECTED]@9&\@:7,@=V4@;VYL>2!I
M9VYO<[EMAIL PROTECTED]&AE(&9I;&4@:[EMAIL
PROTECTED]&AE(&%V86EL86)L90HK("`@("!V97)S:6]N
M(&YU;6)E<B!I<R!I9&5N=&[EMAIL PROTECTED]&[EMAIL
PROTECTED]&AE(&EN<W1A;&QE9"!V97)S:6]N
M(&YU;6)E<BX**PHK("[EMAIL PROTECTED]&AE<F4@:7,@82!P<F]B;&5M(&AE<F4Z(&5P;V-H
M<RX@($5P;V-H<R!A<F4@<F5C;W)D960@:[EMAIL PROTECTED]&AE('-T871U<PHK("[EMAIL
PROTECTED]
M92!A;[EMAIL PROTECTED]:6QA8FQE(&9I;&4L(&)U="!D;R!N;[EMAIL
PROTECTED]'5R;B!U<"!I;B!F
M:6QE;F%M97,N("!4:&4**R`@('-O;'5T:6]N(&%D;W!T960@:7,@=&\@<W1R
M:[EMAIL PROTECTED]('=H97)E=F5R('=E('-E92!T:&5M+"!A;F0**R`@(&EN=')O
M9'5C92!T:&4@<G5L92!T:&%T('1W;R!V97)S:6]N<R!O9B!A('!A8VMA9V4@
M35535"[EMAIL PROTECTED]&EF9F5R"BL@("!O;FQY(&EN('1H96ER(&5P;[EMAIL
PROTECTED]("`@
M("`**R`@("HO"BL**W-T871I8R!I;G0@:6=N;W)E9FEL92AC;VYS="!C:&%R
M("IP871H*2!["BL@(&-O;G-T(&-H87(@*G!T<[EMAIL PROTECTED]<[EMAIL PROTECTED]<B`J
M9FEL93L)"2\J(&9I;&5N86UE("HO"BL@(&-H87(@*G9E<G-I;VXL("IP86-K
M86=E.PDO*B!V97)S:6]N(&YU;6)E<B`K('!A8VMA9V4@;F%M92`J+PHK("!S
M=')U8W0@<&MG:6YF;R`J<&MG.PD)+RH@<&%C:V%G92!I;F9O('-T<G5C='5R
M92`J+PHK("!S=')[EMAIL PROTECTED]<VEO;G)E=FES:6]N(')V97)S:6]N.R`O*B!P
M87)[EMAIL PROTECTED]<VEO;B!N=6UB97(@*B\**PHK("`O*B!F:6YD('1H92!F:6QE
M;F%M92`J+PHK("!I9B`H(2AF:6QE(#T@<W1R<F-H<BAP871H+"`G+R<I*2D@
M9FEL92`]('!A=&@["BL@(&5L<[EMAIL PROTECTED]"BL@("\J(&9I;[EMAIL PROTECTED]
M9VAT+2!T;[EMAIL PROTECTED]&AI<R!F;W(@=7,L(&)U="!W92!C:&5C:R!I
M="!A;[EMAIL PROTECTED]@:[EMAIL PROTECTED]'-T<FQE;BAF:6QE*2`\('-T<FQE;BA$14)%
M6%0I"BL@("`@("!\?"!S=')C;7`H9FEL92`K('-T<FQE;BAF:6QE*2`M('-T
M<FQE;BA$14)%6%0I+"!$14)%6%0I*0HK("`@(')E='5R;B`P.PHK("`**R`@
M+RH@:[EMAIL PROTECTED]&AE(&9I;&5N86UE(&1O97-N)W0@;&]O:R!L:6ME('1H92!R:6=H
M="!S:&[EMAIL PROTECTED]@;&]O:R!M;W)E"BL@("`@(&-A<F5F=6QL>2!A="!I="`J
M+PHK("!I9B`H(2AP='(@/2!S=')R8VAR*&9I;&4L("=?)RDI*2!R971U<FX@
M,#L**PHK("`O*B!E>'1R86-T('1H92!P86-K86=E(&YA;[EMAIL PROTECTED]@<&%C
M:V%G92`](&U?;6%L;&]C*'!T<B`M(&9I;&[EMAIL PROTECTED]@;65M8W!Y*'!A
M8VMA9V4L(&9I;&4L('!T<B`M(&9I;&4I.PHK("!P86-K86=E6W!T<B`M(&9I
M;&5=(#T@,#L**PHK("`O*B!E>'1R86-T('1H92!V97)S:6]N(&YU;6)E<B`J
M+PHK("!P='([EMAIL PROTECTED]<VEO;B`](&U?;6%L;&]C*'-T<FQE;BAP='(I
M*3L**R`@;65M8W!Y*'9E<G-I;VXL('!T<BP@<W1R;&5N*'!T<[EMAIL PROTECTED]')L
M96XH1$5"15A4*2D["BL@('9E<G-I;VY;<W1R;&5N*'!T<[EMAIL PROTECTED]')L96XH
M1$5"15A4*5T@/2`P.PHK"BL@("\J(&9I;[EMAIL PROTECTED]&AE('!A8VMA9V4@:[EMAIL
PROTECTED]&AE
M('-T871U<R!F:6QE("HO"BL@('!K9R`](&9I;F1P86-K86=E*'!A8VMA9V4I
M.PHK"BL@("\J('-E92!W:&%T('1H92!D97-I<F5D('-T871E(&ES("HO"BL@
M('-W:71C:"AP:V<M/G=A;G0I('L**R`@("`O*B!I9B!T:&4@<&%C:V%G92!I
M<R!O;B!H;VQD(&]R(&ES('1O(&)E(&1E:6YS=&%L;&5D("AO<B!P=7)G960I
M"BL@("`@("[EMAIL PROTECTED]&AE;B!W92!A<F4@;F]T(&EN=&5R97-T960@:6X@:70N("HO
M"BL@(&-A<[EMAIL PROTECTED];[EMAIL PROTECTED]("!C87-E('=A;G1?9&5I;[EMAIL
PROTECTED]
M("!C87-E('=A;G1?<'5R9V4Z"BL@(&-A<[EMAIL PROTECTED];FMN;[EMAIL PROTECTED]("`@
M(&=O=&\@:6=N;W)E7W!A8VMA9V4["BL@("[EMAIL PROTECTED]@:[EMAIL
PROTECTED]&AE(&1E<VER960@
M<W1A=&4@:7,@=&AA="!T:&4@<&%C:V%G92!B92!I;G-T86QL960L('=E(&%R
M90HK("`@("`@(&EN=&[EMAIL PROTECTED]@8V%S92!W86YT7VEN<W1A;&PZ
M"BL@("[EMAIL PROTECTED])E86L["BL@("[EMAIL PROTECTED]@:[EMAIL
PROTECTED]&AE(&1E<VER960@<W1A=&4@:7,@
M86YY=&AI;F<@96QS92!W92!P;&%Y(&ET('[EMAIL PROTECTED]@9&5F875L=#H*
M*R`@("!G;W1O(&1O;G1?:6=N;W)E7W!A8VMA9V4["BL@('T**PHK("`O*B!I
M9B!W92!G970@:&5R92!T:&5N('1H92!D97-I<F5D('-T871E(&ES('1H870@
M=&AE('[EMAIL PROTECTED]@("`@:6YS=&%L;&[EMAIL PROTECTED]('=E(&AA=F4@
M82!L;V]K(&%T('1H92!V97)S:6]N(&YU;6)E<BX@("HO"[EMAIL PROTECTED]@:68@
M=&AE<F4G<R!N;R!I;[EMAIL PROTECTED]<VEO;B!N=6UB97(L('[EMAIL PROTECTED]@
M9&5F:6YI=&5L>2!W86YT"BL@("`@('1O(&QO;[EMAIL PROTECTED]@=&AI<R!F:6QE("HO
M"BL@(&EF*"%P:V<M/F-O;F9I9W9E<G-I;VXN=F5R<VEO;B!\?"`A<&MG+3YC
M;VYF:6=V97)S:6]N+G)E=FES:6]N*0HK("`@(&=O=&[EMAIL PROTECTED]&]N=%]I9VYO<F5?
M<&%C:V%G93L**PHK("`O*B!P87)S92!T:&[EMAIL PROTECTED]<VEO;B!N=6UB97(@:6X@
M=&AE(&9I;&5N86UE("HO"BL@(&EF*'!A<G-E=F5R<VEO;[EMAIL PROTECTED]<G9E<G-I;VXL
M('9E<G-I;VXI*0HK("`@(&=O=&[EMAIL PROTECTED]&]N=%]I9VYO<F5?<&%C:V%G93L)+RH@
M8V%N)W0@<&%R<[EMAIL PROTECTED]<VEO;B!I;B!F:6QE;F%M92`J+PHK("[EMAIL PROTECTED]@
M:[EMAIL PROTECTED]&AE('9E<G-I;VX@:7,@=&AE('-A;64L('=E(&EG;F]R92!T:&4@<&%C
M:V%G92`J+PHK("!I9BAS=')C;7`H<G9E<G-I;VXN=F5R<VEO;BP@<&MG+3YC
M;VYF:6=V97)S:6]N+G9E<G-I;VXI"BL@("`@('Q\('-T<F-M<"AR=F5R<VEO
M;BYR979I<VEO;BP@<&MG+3YC;VYF:6=V97)S:6]N+G)E=FES:6]N*2D**R`@
M("!G;W1O(&1O;G1?:6=N;W)E7W!A8VMA9V4["BL@("\J(%A86"!W92!I9VYO
M<[EMAIL PROTECTED]&AE(&5P;V-H(&9O<B!N;W<@*B\**R`@"BL@:6=N;W)E7W!A8VMA9V4Z
M"BL@(&9R964H<&%C:V%G92D["BL@(&9R964H=F5R<VEO;BD["BL@(')E='5R
M;B`Q.PHK("`**V1O;G1?:6=N;W)E7W!A8VMA9V4Z"BL@(&9R964H<&%C:V%G
M92D["BL@(&9R964H=F5R<VEO;BD["BL@(')E='5R;[EMAIL PROTECTED]);F1E>#H@
M;65T:&]D<R]D:7-K+FEN<W1A;&P*/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0I2
M0U,@[EMAIL PROTECTED]<B]S<F,O0U93+V1P:V<O;65T:&]D<R]D:7-K+FEN<W1A
M;&[EMAIL PROTECTED]:65V:6YG(')E=FES:6]N(#$N,@ID:69F("UU("UR,2XR(&1I
M<VLN:6YS=&%L;`HM+2T@;65T:&]D<R]D:7-K+FEN<W1A;&P),3DY.2\P-R\R
M,B`P,#HQ,CHQ,@DQ+C(**RLK(&UE=&AO9',O9&ES:RYI;G-T86QL"3$Y.3DO
M,[EMAIL PROTECTED],34@,3(Z,[EMAIL PROTECTED],[EMAIL
PROTECTED]<L."`K-RPQ,"!`0`H@"B!C9"`B)'9A<F1I
M<B]M971H;V1S+V1I<VLB"B`**R,@<F5A9"!O<'1I;VYS('-E="!B>2!D:7-K
M+G-E='5P"B`N("XO<VAV87(N)&]P=&EO;@H@"BLC('5N;6]U;[EMAIL PROTECTED]
M>7-T96T@;[EMAIL PROTECTED]@>&ET/3$*('1R87`@)PH@"6EF([EMAIL PROTECTED]@(B1U;6]U
M;G0B([EMAIL PROTECTED]@*S(P+#<@0$`*(`EE>&ET("1X:70*("<@,`H@"BLC
M(&UO=6YT(&9I;&4@<WES=&5M"B!I9B!;("UN("(D<%]B;&]C:V1E=B(@70H@
M=&AE;@H@"75M;W5N=#TB)'!?;6]U;G1P;VEN="([EMAIL PROTECTED],[EMAIL
PROTECTED],S+#$Q
M($!`"B`);6]U;[EMAIL PROTECTED])T(&YF<R`B)'!?;F9S(B`M;R!N;W-U:60L;F]D978@
M(B1P7VUO=6YT<&]I;G0B"B!F:0H@"BLC(&AA;F1L92!P<F5D97!E;F1S"BLC
M(&1P:V<@+2UP<F5D97`M<&%C:V%G92!E>&ET<R!A<R!F;VQL;[EMAIL PROTECTED](R`@
M(#`@<')I;G1E9"!T:&4@;F%M92!O9B!T:&4@;F5X="!P86-K86=E('1O(&EN
M<W1A;&P**R,@("`Q(&YO(&UO<F4@<')E9&5P96YD<R!T;R!B92!S871I<V9I
M960**R,@("`R(&5R<F]R"B!P<F5D97`](B1V87)D:7(O<')E9&5P+7!A8VMA
M9V4B"B!W:&EL92!T<G5E"B!D;PI`0"`M,[EMAIL PROTECTED]"PX($!`"B`)"61I
M92`B9F%I;&5D('1O(&5X96,@9'!K9SH@)"%<;B(["B`))R`M+2`B)'!?;6]U
M;G1P;VEN="1P7VUA:6Y?8FEN87)Y(B`B)'!R961E<"(*(&1O;F4**PHK(R!D
M;R!T:&4@;6%I;B!I;G-T86QL"B`*(&9O<B!F(&EN(&UA:[EMAIL PROTECTED](&YF(&YU
M<R!L8VP*(&1O"DEN9&5X.B!M971H;V1S+VAD+G-E='5P"CT]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T*4D-3(&9I;&4Z("]U<W(O<W)C+T-64R]D<&MG+VUE=&AO
M9',O:&0N<[EMAIL PROTECTED]:65V:6YG(')E=FES:6]N(#$N,0ID:69F("UU
M("UR,2XQ(&AD+G-E='5P"BTM+2!M971H;V1S+VAD+G-E='5P"[EMAIL PROTECTED],3`O
M,C4@,C(Z,C8Z,#4),2XQ"BLK*R!M971H;V1S+VAD+G-E='5P"3$Y.3DO,[EMAIL PROTECTED]
M,34@,3(Z,[EMAIL PROTECTED],[EMAIL PROTECTED]"`K,2PT($!`"BTC(2]B:6XO<&5R;`HK(R$O
M=7-R+V)I;B]P97)L"B`C"B`C"4-O<'ER:6=H="`H0RD@,3DY-"!#87)L(%-T
B<F5E=&5R(#QS=')E971E<D!C864N=VES8RYE9'4^"B`C"@``
`
end