July 24, 2004 Re: The Alias peek-a-boo Game | ||||
---|---|---|---|---|
| ||||
Posted in reply to J C Calvarese | "J C Calvarese" <jcc7@cox.net> wrote in message news:cdurdu$1cm6$1@digitaldaemon.com... > Kris wrote: > > Hi Justin: inline > > > > "J C Calvarese"wrote ... > > > >>I've often read people on this newsgroup lobbying for the compiler to *require* the programmer to do things the hard way to keep the programmer from accidentily doing things wrong. Before the alias is > > > > > > If your referring to me, then yes; I do advocate such things. But in those > > where I do, it's when there's no other valid context (or, at least no-one > > has come up with anything to the contrary). > > You asked for an explanation of "the benefits of those particular resolution rules", so I came up a possible benefit. The benefit may be achieved better by another method but it could be a benefit. I'm sorry, there was a misunderstanding there. I was referring to a different topic where I've been advocating a stricter application of the language. I thought that's perhaps what you were referring to :-) You did indeed come up with possible benefits for this one, and those were much appreciated. > Often, Walter doesn't agree to change things until we gang up on him. I think there are really several issues at play here. Perhaps more could be achieved by breaking them into the separate parts: > > 1. External Names > Possible solutions: > a. Change the compiler to not do the offending behavior. > b. Don't import within the class unless you want this behavior. > If this still creates additional problems (as I know it did in > the past with forward references), maybe those problems would be > easier to fix that convincing Walter to redesign the name lookup > rules. > > 2. Satisfying Interface Contracts > I agree with you on this one. I don't understand at all why this > doesn't automatically inherit the needed method. Am I being dense? > Maybe we can convince Walter that this is an actual bug that needed > fixing. > > 3. The Alias peek-a-boo Game > Possible solutions: > a. Change the compiler to not do the offending behavior. > b. Clearly document that the alias should be added if the super's > methods are wanted. > > Your document is well-organized, but it might be easier to build consensus one page at a time. Point 2 seems the least controversial, yet it also seems to be the least discussed in this thread. > > > > > - Kris > > -- > Justin (a/k/a jcc7) Breaking it into three topics is a good idea (I think it might have already happened). The reason they were all in one document to begin with is that there's perhaps an inherent problem with name resolution in general. All very good suggestions though. Please take a look at the revised document (posted soon) which speculates a reason for all of these "issues". |
July 24, 2004 Re: The Alias peek-a-boo Game | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | On Sat, 24 Jul 2004 10:17:01 -0700, Kris wrote: > Also, please note that following doesn't even compile: > > class Writer > { > void put (bit x){} > void put (int x){} > } > > class MyWriter : Writer > { > alias Writer.put put; > > void put (bit x){} > } > > "function put conflicts with MyWriter.put" This is just a bug. If the sub-class has a method with the same signature as the *first* method in the super class and the alias appears before the methods, then the alias will generate an error message. Try swapping the methods in the Writer class. Message goes away. Change the signature in the sub-class to (int x). Message goes away. Move the alias to be after the method in the sub-class. Message goes away. This is just a bug. -- Derek Melbourne, Australia |
July 25, 2004 Revised: Three notable problems with method name resolution | ||||
---|---|---|---|---|
| ||||
Posted in reply to some idiot | I'm somewhat loath to post this (for a number of reasons), but will anyway. Here's a revised edition, with some additional clarification in the Interfaces section (the grayed sections), some minor example fixes per Derek's post, and an addendum that speculates as to what's really going on behind all this. JCC makes a very good point about trying to address each of these in individual threads. They may exist already, but I could be wrong. For those who may think I'm just having a go at Walter, please consider how confusing it can be to have three individual non-obvious issues within just one specific area of the language. - Kris "some idiot" <fu@bar.org> wrote in message news:cdsd5t$u5$1@digitaldaemon.com... > Attached is a small pdf noting three outstanding issues ~ each of which has > various bug reports stretching back into the old NG. Given that the v1.0 release is getting closer, it seemed appropriate to try getting some priority and/or traction. > > Such things might simply fall by the wayside otherwise. > > > begin 666 The Three Sins of D Name Resolution.pdf M)5!$1BTQ+C,*)>+CS],*,B P(&]B:@H\/ HO4')O9'5C97(@*$)#3"!E87-Y M4$1&(#,N,3$N,C I"CX^"F5N9&]B:@H*-R P(&]B:@I;"C<W." @-S<X(" W M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W M-S@@(#<W." @-S<X(" W-S@@(#<W." *-S<X(" W-S@@(#<W." @-S<X(" W M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W M-S@@(#<W." @-S<X( HR-3 @(#,S,R @-# X(" U,# @(#4P," @.#,S(" W M-S@@(#$X," @,S,S(" S,S,@(#4P," @-38T(" R-3 @(#,S,R @,C4P(" R M-S@@"C4P," @-3 P(" U,# @(#4P," @-3 P(" U,# @(#4P," @-3 P(" U M,# @(#4P," @,C<X(" R-S@@(#4V-" @-38T(" U-C0@(#0T-" *.3(Q(" W M,C(@(#8V-R @-C8W(" W,C(@(#8Q,2 @-34V(" W,C(@(#<R,B @,S,S(" S M.#D@(#<R,B @-C$Q(" X.#D@(#<R,B @-S(R( HU-38@(#<R,B @-C8W(" U M-38@(#8Q,2 @-S(R(" W,C(@(#DT-" @-S(R(" W,C(@(#8Q,2 @,S,S(" R M-S@@(#,S,R @-#8Y(" U,# @"C,S,R @-#0T(" U,# @(#0T-" @-3 P(" T M-#0@(#,S,R @-3 P(" U,# @(#(W." @,C<X(" U,# @(#(W." @-S<X(" U M,# @(#4P," *-3 P(" U,# @(#,S,R @,S@Y(" R-S@@(#4P," @-3 P(" W M,C(@(#4P," @-3 P(" T-#0@(#0X," @,C P(" T.# @(#4T,2 @-S<X( HU M,# @(#<W." @,S,S(" U,# @(#0T-" @,3 P," @-3 P(" U,# @(#,S,R @ M,3 P," @-34V(" S,S,@(#@X.2 @-S<X(" V,3$@(#<W." *-S<X(" S,S,@ M(#,S,R @-#0T(" T-#0@(#,U," @-3 P(" Q,# P(" S,S,@(#DX," @,S@Y M(" S,S,@(#<R,B @-S<X(" T-#0@(#<R,B *,C4P(" S,S,@(#4P," @-3 P M(" U,# @(#4P," @,C P(" U,# @(#,S,R @-S8P(" R-S8@(#4P," @-38T M(" S,S,@(#<V," @-3 P( HT,# @(#4T.2 @,S P(" S,# @(#,S,R @-3<V M(" T-3,@(#(U," @,S,S(" S,# @(#,Q," @-3 P(" W-3 @(#<U," @-S4P M(" T-#0@"C<R,B @-S(R(" W,C(@(#<R,B @-S(R(" W,C(@(#@X.2 @-C8W M(" V,3$@(#8Q,2 @-C$Q(" V,3$@(#,S,R @,S,S(" S,S,@(#,S,R *-S(R M(" W,C(@(#<R,B @-S(R(" W,C(@(#<R,B @-S(R(" U-C0@(#<R,B @-S(R M(" W,C(@(#<R,B @-S(R(" W,C(@(#4U-B @-3 P( HT-#0@(#0T-" @-#0T M(" T-#0@(#0T-" @-#0T(" V-C<@(#0T-" @-#0T(" T-#0@(#0T-" @-#0T M(" R-S@@(#(W." @,C<X(" R-S@@"C4P," @-3 P(" U,# @(#4P," @-3 P M(" U,# @(#4P," @-30Y(" U,# @(#4P," @-3 P(" U,# @(#4P," @-3 P M(" U,# @(#4P," *70IE;F1O8FH*"CD@,"!O8FH*6PHW-3 @(#<U," @-S4P M(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P M(" W-3 @(#<U," @-S4P(" W-3 @"C<U," @-S4P(" W-3 @(#<U," @-S4P M(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P M(" W-3 @(#<U," *,C<X(" S,S,@(#0W-" @-34V(" U-38@(#@X.2 @-S(R M(" R,S@@(#,S,R @,S,S(" S.#D@(#4X-" @,C<X(" S,S,@(#(W." @,C<X M( HU-38@(#4U-B @-34V(" U-38@(#4U-B @-34V(" U-38@(#4U-B @-34V M(" U-38@(#,S,R @,S,S(" U.#0@(#4X-" @-3@T(" V,3$@"CDW-2 @-S(R M(" W,C(@(#<R,B @-S(R(" V-C<@(#8Q,2 @-S<X(" W,C(@(#(W." @-34V M(" W,C(@(#8Q,2 @.#,S(" W,C(@(#<W." *-C8W(" W-S@@(#<R,B @-C8W M(" V,3$@(#<R,B @-C8W(" Y-#0@(#8V-R @-C8W(" V,3$@(#,S,R @,C<X M(" S,S,@(#4X-" @-34V( HS,S,@(#4U-B @-C$Q(" U-38@(#8Q,2 @-34V M(" S,S,@(#8Q,2 @-C$Q(" R-S@@(#(W." @-34V(" R-S@@(#@X.2 @-C$Q M(" V,3$@"C8Q,2 @-C$Q(" S.#D@(#4U-B @,S,S(" V,3$@(#4U-B @-S<X M(" U-38@(#4U-B @-3 P(" S.#D@(#(X," @,S@Y(" U.#0@(#<U," *-34V M(" W-3 @(#(W." @-34V(" U,# @(#$P,# @(#4U-B @-34V(" S,S,@(#$P M,# @(#8V-R @,S,S(" Q,# P(" W-3 @(#8Q,2 @-S4P( HW-3 @(#(W." @ M,C<X(" U,# @(#4P," @,S4P(" U-38@(#$P,# @(#,S,R @,3 P," @-34V M(" S,S,@(#DT-" @-S4P(" U,# @(#8V-R *,C<X(" S,S,@(#4U-B @-34V M(" U-38@(#4U-B @,C@P(" U-38@(#,S,R @-S,W(" S-S @(#4U-B @-3@T M(" S,S,@(#<S-R @-34R( HT,# @(#4T.2 @,S,S(" S,S,@(#,S,R @-3<V M(" U-38@(#(W." @,S,S(" S,S,@(#,V-2 @-34V(" X,S0@(#@S-" @.#,T M(" V,3$@"C<R,B @-S(R(" W,C(@(#<R,B @-S(R(" W,C(@(#$P,# @(#<R M,B @-C8W(" V-C<@(#8V-R @-C8W(" R-S@@(#(W." @,C<X(" R-S@@"C<R M,B @-S(R(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-3@T(" W-S@@(#<R M,B @-S(R(" W,C(@(#<R,B @-C8W(" V-C<@(#8Q,2 *-34V(" U-38@(#4U M-B @-34V(" U-38@(#4U-B @.#@Y(" U-38@(#4U-B @-34V(" U-38@(#4U M-B @,C<X(" R-S@@(#(W." @,C<X( HV,3$@(#8Q,2 @-C$Q(" V,3$@(#8Q M,2 @-C$Q(" V,3$@(#4T.2 @-C$Q(" V,3$@(#8Q,2 @-C$Q(" V,3$@(#4U M-B @-C$Q(" U-38@"ET*96YD;V)J"@HQ,2 P(&]B:@I;"C<W." @-S<X(" W M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W M-S@@(#<W." @-S<X(" W-S@@(#<W." *-S<X(" W-S@@(#<W." @-S<X(" W M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W M-S@@(#<W." @-S<X( HR-3 @(#,S,R @-#(P(" U,# @(#4P," @.#,S(" W M-S@@(#(Q-" @,S,S(" S,S,@(#4P," @-C<U(" R-3 @(#,S,R @,C4P(" R M-S@@"C4P," @-3 P(" U,# @(#4P," @-3 P(" U,# @(#4P," @-3 P(" U M,# @(#4P," @,S,S(" S,S,@(#8W-2 @-C<U(" V-S4@(#4P," *.3(P(" V M,3$@(#8Q,2 @-C8W(" W,C(@(#8Q,2 @-C$Q(" W,C(@(#<R,B @,S,S(" T M-#0@(#8V-R @-34V(" X,S,@(#8V-R @-S(R( HV,3$@(#<R,B @-C$Q(" U M,# @(#4U-B @-S(R(" V,3$@(#@S,R @-C$Q(" U-38@(#4U-B @,S@Y(" R M-S@@(#,X.2 @-#(R(" U,# @"C,S,R @-3 P(" U,# @(#0T-" @-3 P(" T M-#0@(#(W." @-3 P(" U,# @(#(W." @,C<X(" T-#0@(#(W." @-S(R(" U M,# @(#4P," *-3 P(" U,# @(#,X.2 @,S@Y(" R-S@@(#4P," @-#0T(" V M-C<@(#0T-" @-#0T(" S.#D@(#0P," @,C<U(" T,# @(#4T,2 @-S<X( HU M,# @(#<W." @,S,S(" U,# @(#4U-B @.#@Y(" U,# @(#4P," @,S,S(" Q M,# P(" U,# @(#,S,R @.30T(" W-S@@(#4U-B @-S<X( HW-S@@(#,S,R @ M,S,S(" U-38@(#4U-B @,S4P(" U,# @(#@X.2 @,S,S(" Y.# @(#,X.2 @ M,S,S(" V-C<@(#<W." @,S@Y(" U-38@"C(U," @,S@Y(" U,# @(#4P," @ M-3 P(" U,# @(#(W-2 @-3 P(" S,S,@(#<V," @,C<V(" U,# @(#8W-2 @ M,S,S(" W-C @(#4P," *-# P(" U-#D@(#,P," @,S P(" S,S,@(#4W-B @ M-3(S(" R-3 @(#,S,R @,S P(" S,3 @(#4P," @-S4P(" W-3 @(#<U," @ M-3 P( HV,3$@(#8Q,2 @-C$Q(" V,3$@(#8Q,2 @-C$Q(" X.#D@(#8V-R @ M-C$Q(" V,3$@(#8Q,2 @-C$Q(" S,S,@(#,S,R @,S,S(" S,S,@"C<R,B @ M-C8W(" W,C(@(#<R,B @-S(R(" W,C(@(#<R,B @-C<U(" W,C(@(#<R,B @ M-S(R(" W,C(@(#<R,B @-34V(" V,3$@(#4P," *-3 P(" U,# @(#4P," @ M-3 P(" U,# @(#4P," @-C8W(" T-#0@(#0T-" @-#0T(" T-#0@(#0T-" @ M,C<X(" R-S@@(#(W." @,C<X( HU,# @(#4P," @-3 P(" U,# @(#4P," @ M-3 P(" U,# @(#4T.2 @-3 P(" U,# @(#4P," @-3 P(" U,# @(#0T-" @ M-3 P(" T-#0@"ET*96YD;V)J"@HQ,R P(&]B:@I;"C<U," @-S4P(" W-3 @ M(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @ M(#<U," @-S4P(" W-3 @(#<U," *-S4P(" W-3 @(#<U," @-S4P(" W-3 @ M(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @ M(#<U," @-S4P( HR-S@@(#(W." @,S4U(" U-38@(#4U-B @.#@Y(" V-C<@ M(#$Y,2 @,S,S(" S,S,@(#,X.2 @-3@T(" R-S@@(#,S,R @,C<X(" R-S@@ M"C4U-B @-34V(" U-38@(#4U-B @-34V(" U-38@(#4U-B @-34V(" U-38@ M(#4U-B @,C<X(" R-S@@(#4X-" @-3@T(" U.#0@(#4U-B *,3 Q-2 @-C8W M(" V-C<@(#<R,B @-S(R(" V-C<@(#8Q,2 @-S<X(" W,C(@(#(W." @-3 P M(" V-C<@(#4U-B @.#,S(" W,C(@(#<W." *-C8W(" W-S@@(#<R,B @-C8W M(" V,3$@(#<R,B @-C8W(" Y-#0@(#8V-R @-C8W(" V,3$@(#(W." @,C<X M(" R-S@@(#0V.2 @-34V( HS,S,@(#4U-B @-34V(" U,# @(#4U-B @-34V M(" R-S@@(#4U-B @-34V(" R,C(@(#(R,B @-3 P(" R,C(@(#@S,R @-34V M(" U-38@"C4U-B @-34V(" S,S,@(#4P," @,C<X(" U-38@(#4P," @-S(R M(" U,# @(#4P," @-3 P(" S,S0@(#(V," @,S,T(" U.#0@(#<U," *-34V M(" W-3 @(#(R,B @-34V(" S,S,@(#$P,# @(#4U-B @-34V(" S,S,@(#$P M,# @(#8V-R @,S,S(" Q,# P(" W-3 @(#8Q,2 @-S4P( HW-3 @(#(R,B @ M,C(R(" S,S,@(#,S,R @,S4P(" U-38@(#$P,# @(#,S,R @,3 P," @-3 P M(" S,S,@(#DT-" @-S4P(" U,# @(#8V-R *,C<X(" S,S,@(#4U-B @-34V M(" U-38@(#4U-B @,C8P(" U-38@(#,S,R @-S,W(" S-S @(#4U-B @-3@T M(" S,S,@(#<S-R @-34R( HT,# @(#4T.2 @,S,S(" S,S,@(#,S,R @-3<V M(" U,S<@(#(W." @,S,S(" S,S,@(#,V-2 @-34V(" X,S0@(#@S-" @.#,T M(" V,3$@"C8V-R @-C8W(" V-C<@(#8V-R @-C8W(" V-C<@(#$P,# @(#<R M,B @-C8W(" V-C<@(#8V-R @-C8W(" R-S@@(#(W." @,C<X(" R-S@@"C<R M,B @-S(R(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-3@T(" W-S@@(#<R M,B @-S(R(" W,C(@(#<R,B @-C8W(" V-C<@(#8Q,2 *-34V(" U-38@(#4U M-B @-34V(" U-38@(#4U-B @.#@Y(" U,# @(#4U-B @-34V(" U-38@(#4U M-B @,C<X(" R-S@@(#(W." @,C<X( HU-38@(#4U-B @-34V(" U-38@(#4U M-B @-34V(" U-38@(#4T.2 @-C$Q(" U-38@(#4U-B @-34V(" U-38@(#4P M," @-34V(" U,# @"ET*96YD;V)J"@HQ-2 P(&]B:@H\/ HO3&5N9W1H(#(S M-#4*+T9I;'1E<B O1FQA=&5$96-O9&4*/CX*<W1R96%M"GC:G5A)<^2V%;[K M5^ (IM0T`.Z>6^1QE7WPP5%5#C,^H$FHN^T6V>$BS3B5_YZW`"1[B:R)5%*S M0>"MW]OP]\>[[W[4F=#B\>FNB"NC*Z'@US]62B3X*!Z?[S[)7]W+83ATT29) M92LB8Z2Y%S]/QVB3IO(K+RAXJZ1*H]_$X\]W61HK761 \+&YDSH2C[\COYSY MZ3Q61:F)87@&CGF5Q#ES?-P[\1B95.Y[Y\0_#NT@NB?Q@_C%/COQJQNZXS0> M.I"%N"V::,-$#=$K3%R80/ 0I:4<!,BLY"%*BO!L\2.7V_X094JZ)WP%2_ , MCT9V?;0QN;1?HS3!];3BT^T(]@#%>>EU'QDM[0C?\D*.]&;O4 $F9:=Q3Y1H M`0Q5=^U #!O7HR FH5-:=GQ@"X>)GZEDVS%!N\6U(W)W^"9C"6G!O@[B@(YH M!6Q.F'L@T*/!\.O$A$"!4J+U\"78E:VHQ$;'.JDJ]-DG^8R;'(C=P+ZRE*U% M=9Z).TJ<Y?(5"%5!6]"F1'2@.2X,D%?R!_PH4=92VA9EV4UVYV)8+K3\:211 M>"M)AQQR+5_!*TGBZ?%_UWK%8"L(`![TW-AP%ZP+<.D7?#Z!$9!HDLE]=W+L M=#;YWD8F\& B0_<<&;8R[/(0\)X\1JEFFY_9+0MV0WMN=#(3)S\,SB_6J#P! M3(.=V!)H8 VD61LB[>EO-%AE&W31@!O;-*B(F\\ERF]8T,J":\#'"^WK!R), M#D>".E9TLEKB0!L%*+'D'EK\TS7WM$E+/)W+MD92@?!:-T^5^$]M0\9DF+0H ME\<NF,W(VTB[!(7 X!C[J48DYR"?[9V@( !I2+JN7;GA*RHG:CN,'!0<GF+P M`=JRD$]DB8[,0]*%.%D[_]01#GV XQD=3/IJ^R9>Y#>QJ8+\D*QZ-$P%6M"# M5F7 (:0O)(*+VN>=MB%_G=@\#>.9#8I$%"@$KG&C)]0[T#*#W.+(WPK 5,,9 M,(S%X$AE1PY4RB<AEJ6L`/$=X79[C#)PQC,:#+>6RHL)>\@2;'J2[0FCS0UC M3"0KRL,01!Y=M*5'.]\"_ARWIM2KU* I,DU.:>CD:O)2%9(DIKN$+5.R-"=O M<#[+%MOAF3F4?1[H,2/-H0A<*_FP&<:O$>B\),DR"\BL%T>O$Z"BS!8@.WR( M$BW]BPN4HPZ#`W V!#0(0(R8-&.E<W6I]"VL#W:$- UTGM =!%T2AE34P/.G M=G0]`<_6A*4*(?"OB5S=@Q<!"VO(#!BF1@?O$[%%>Y5?*:'6&1O<2:BJ\E4N M**D\U6#@",*)85?F5\E6@SDX#.FHI;-%ODYJI8\E/A2(3P,&^4T,]6X'<79 MAY%%RG4MX50#\G\V)D$@3.UF/^.R\7:$E^EJ+Z5C@!L#:4^AQ7'#AO%1E7O_ M8[TC.?5%=9G+6\4M`QZI27L[#%AX,62J2GZT]9[K#G$NBC,%J Z C1#(B;04 MDZ?C7%.+Q0VWP+.U3*/AK=.)( PV8G(GKQ@G%D+/C4@LKG!=<GDN/7#6F9@I M["/CC4P;*-&61J[3=+**U(PME&>^=/SIH'-)] )+>'/RJ?AWZC+J\3[T1AAC M'6>I&3H:/6X&3J2W8+/4K3\<%1I*H7.*"]5EM8K5) U]`G5@H#Z;ZCB'$'M[ M.SVC[T_\;=7\A7S=M62HW'O<0VE5BB$'78-AUA90@(TGVX7=/TQ4-:@)4AQ9 M67YV-J@"!)J.52*1O1$0NBD@!4&9YY!4;@.*0N:L`BU5X"PW#7:&0(-]9NEE M-)A_7AVZAS(AF^T9-]@_G+ "%KS-=OMQLW>VQSIF1YHE?"+G*/ EF*M\QUTR MOYH8EJ-;^N39A#NP'F0`)R@GA&F@N)P&TD+%J<@,M#XI#@3@U.-QV!_&,)E< MS0^9RL]/8%Z)+P<9$U>YJOP9?H;!(RUT&&0^?AFQ4!UQ<J'J/+PYLJ0P."5A M9$$+<FQY99_0X-T1ZCE@[?70(@; -^T!%TXG-P[BJ<?6-9/"M@+G!8S6WOH0 M%5M+J<IM:NZY.'/=P^8&FBX"`)?)WHT4D$Y0+N;"S/%++EE#QN(D]KW'5PS: MT%\N^AUJ6;XQ8J:)BE7)VM9'BZ4-)$+'BX<.V;0-VFP"-ZW06^J4ILI_DS/2 M.$O3E-.!U@QKB]#=HN)(!#J.%_SL"-"0.\$\];$C;HYL]5E^CCZL>[LD,<5[ M2?4.O]"^!BC5T%!F1O:??A,-=B+#N-#>D+#)6ECY']("N"9Q6B8^+B^,\>.! MPH@8/9#@BV%0_N_17-G_,%=@=&4N;\=/D(L/+Q'D'M)A=)BRQ>$9.9Z(;#]" M,]W$=7P\H$;MA%R^8+C32K9>^;"VHC)O<:#N8A0\.>,+%O_H,!U^N.F-%V3Q MMA_?I?J,E* 7#673%XRC:YUBY(+-<^""+L[/Q 4?7[LX`'5V\=HD5ZJ\`T?? M%@6HVSL\%O?DCYGQ'D]<^>->T)=AA <8#W 1"P.NC?N;VI\#_"V[X"\GBULI M48=;J'^&`=0`DGAL>YF[VKFK>>VHZR_IMB0]RW[8M*MUGW<OOCEKF:R$.%V$ M6GLMN.<-?4R!5USS:2_2W#%_JS0`ISA/%WI+./RU*(E19V=ICLA\PTY-T^V$ M;[AE-@"=[=<(VI.@A%_$T0'*!SO*7/?(R(/&2D:,KF+0I#KO2]:C:TD20&= M4[8?,GT/8%>C\]FUUQ$[$&Y>(*JQ5:*FY<: *?#B#TO-;L =O ]JISC9`X9' M+_#>L^ A4CQ@;Y.&,:%QH!U&2X\]S8#UN5CJ\_!_U42-5Z>^)A*V*$@Y9_8M MQ.?#6SE.G6=V`3\T%;9<*"Y"G5,!]-YHAQ<,<Y^0_L9+/D7/X:W.$\PE]<LT M^>;Q=T9_I:"K8FO\0CT[=\II=OON[OKN$>]2Z>:29Y&:K_0N+S.QOZ0[D;2\ M08!:=(B!>^[#MQ,.0)FYM9.8[-J55%-/'-)DX5!CCV9"?(WNR,-)JOSE<+-T MX00[`'Y+F98(QGQO3>F0>;>WIZ++2SJ8AHDS--MAF(/@ZFG:Q;$2>E.^YL2K MJJO;RZJ8,RP.:^7J3JM<'( K]G2R)''FUU?7=+R#%1QJF/4''DGG^[S2#U7A MTMO?]_FIS4]19W?3>$G6O;B>KLDZV_ U^(Z'H_/4^O'Q[K\3.>Z."F5N9'-T M<F5A;0IE;F1O8FH*"C8@,"!O8FH*/#P*+U1Y<&4@+U!A9V4*+U!A<F5N=" T M(# @4@HO365D:6%";W@@6R P(# @-C$R(#<Y,B!="B]297-O=7)C97,@/#P* M+T9O;G0@-2 P(%(*+U!R;V-3970@6R]01$8@+U1E>'0@+TEM86=E0B O26UA M9V5#72 ^/@HO0V]N=&5N=',@,34@,"!2"CX^"F5N9&]B:@H*,3<@,"!O8FH* M/#P*+TQE;F=T:" R,3,V"B]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A M;0IXVJU866_CR!%^]Z]@WIJ Q; O'K-O7NP`WI<`60'!8B8/%$4=.S+I):EQ MC"#_/75T\Y+EL8W%8"RRV5U=_5755U5]M[[Y^V=I`QFL=S=IE"N9!S'\<X]Y M'&A\#-8/-U_$/ZOOQ^[8A"MM1!V$2@EU&_QZ/H4K8\0S#\3P-1:Q"?\=K'^] ML2:*96I!X'I[(U08K/^8["<5[04_L$\:YY';YQCJ3-1=J')\3$77=T&X4E*+ M'G_$H0B5?Z8/L2A.H9'BA O=2(E#%H= `([%,2U1HL$WD%W4*.8YU+F7>PPM M;+R'[S*-10W;&/& `JIMP >*04?^GP3M'L^27<-.95F4JNFYVBHTH"K^V3IQ MM( %78"B8QUE9BH`%<MRT;2@;BK>KY)69J%2>6I";457O44?HQ:KG3X$T;GK M"67-KT5?'NBS=J@?*D3;K>B.H4G$GA'F[^>VPH^Y%LV.#)!,%AI:F,?B9W=H M,%<4VSP/5C*2&G[!O[[@SIFH^D.S[=P\.$>Z/(?4)LJR(,EM9.D@HJE/SU=] M4UJ:-T[_(B+4!MQF?2AZ>DR<H][BFXPO-(^=)Q,TCV0_?SSW>7,*;2J:IXXD M9*)X*IY#DXL+@=JOF&"H1PQI/1AA%VHU.LH@0TYD8-AL\*7KVZ*$KWJ0O2&A M7;4J(8C F%V'P1UY\&UD//;68W^/XG/Q52D%DRDP07T.U1;"9V632?PEN?CS MS '(:A$\I/0SQ@?.C\6A>4(Q&7X`*>!B?*"B/]88MGO>Q(%S1 3Q_$9.S %B MJNZQ*D._"?*"8EZ@V&<93P><4-7.8M9#WCZC3K20B$'E\U,\M4><P&/HP<JZ M>* =>)P(;?4((P!YOVO:AQ#L[^-W[L-ELZT^@9Q,,Q+-&5[ \Q_/Q&XDE;=F MI680>-O"USU-/Z-*2<(`CNX`WPO\L6+K@7<N4[6(@1R=$Y#XQV_X*QUA;GEP MSK@P0&&+^*)&B>C.VRV(TEZ(.PSZ!T5Z$D]\-!$E4NS*J#FZ;;4CS,J^(?=L M9Y@-OE>2+LY+`W $\-FJ+=H2?<*"_0-:#YH6WQNRUS8H@KIXP Q1!; <.+#H M#J3M5Q7;5]A#Y3&QAS5$'7?GTZD['/N_>?Y(_((H3^+<K>)GR'));"*;,(O\ M!F[<[9Z/X%?W=5^UNX*<M I^;FJ*R&[0XJ6$:;,T4AF+NJ\/:,$*G=%.G:YV M(<)9S#'C*LT\&;3->8\\#9$S`Y%X! :?R#Q&?.O89-5_T 5 MQ/G3@Y5=*>. M0[RI*[;_4W,^H4DU+S("8A#),C'LN%,'8V70YI!VP4,25IIDPM1M4W53`O%N M_I(K\*D/&-@3-+SOEI1C,NERC$T7P,@T8Z]L&_+*!Q=M$D[()Y,0,\Y:>"@6 MF,B)VV)^X]V:GKB(U6TI:62)^!>^+4H8+#?PE#6&1SC+#?!E,()[YZ23I6,, MIG[JT9<[,HFOHZ4_A%8*/M+495OUE<OT)5$IN8R<% /9!- \'ZW[2DPE&%/6 MYE%"'BTZCHVK25FK%,J=<<%0B[#F[H4-A<H5?!8XPK8JJ3 L6MBBJ=DJ2GQN M6GH:7/P!H7TD?JMN?>*3>93FR\RW)Q2_$\QUT!^JCO/^,50`+FN0H@8,4U%O M`Z>"C[5/[Z[D,/Y5$FE?,==]"(F'ZDO8#I,0E9EEA</!_><FQ-B<^D F#17E M_R6,@96,,7PN*?E<WU''!L4<(9!!SHZ\D$;H3_!5? U_<M"0!#V5(/Y'HF$[ M%6DPF'.Y'ZAZ5X16+8G>";S0U1WB!5VA@H&,U7Y(Q?)44%'<$7L%")YT)WZ3 M5N]$,+ANEO@%9:\?XY?UC306VS6=4F[0&CQIE4<2PC!HJQL)[D3E_6[I:W?K M'[F;3G+L1ES7, ,(3 :$WP:?$*K$074+7H?^/A[VEHV;BO:OL>T%=G-1/\+. M(^U=X)7.!X\?JTBZQ+T^()EH0(#))"$R&<O8!HLR#94BET1RD5MI;2SNBI:F MV:$UR(AO(!T1]U3U6-B/N5Q#U;YI'+.[]QG-4<Z$$I[26'$<BC0JAK66KF^H M2Y1>.0T6_0JJ5S8/J.PC*<=J7:F^MA6=CG3<<*XC-(S@#[[*QJZ<)NWKAAL5 M%;MBX"(%*6JY@8_M,N<L$G;.I;MR</G^$K@=KP^ZW:# 6,)C,K_,#!D4FW^> M28$6# `_4P-TT<L)U'> D%B.`\HRE1<=(.Q)B$I"-!L1A2I$#V#3*!N-[S_H MN_<5"&Y?"V'I4C=CE6 =M-Q@ONA%TD\L/G!QD!DH80.5CM7KDLHP&M]PB6!B M*)]G@IQ6HUTCD$Q-A80:\/>*(35F5L[P90$@QZC3C/%DD%2B[")/<\U5?@MZ M:H,:[N:XN+)07!4M-QEG2-#]@:+D2F9&HE422P]ELL@$VD;I7T:TRL2(]9OR MND^6GX)[="V@7[-(\Q](4C](G4O>Q-09*_-BZKR6&5[(`Q^H1]Z3!^9:OU8* MO)X'I%)1XM+@W1EC/[,7UY+*-46;MBK0+MP]20C>)TP-23HPI/-F['P20?0# MR>(;E=6>-A>=OK^U-/'LWL-?3FQ()ZN6MST084S\`T- 74M7=C:_*'DA$)'P ML(W[G>X?$M<HD2+[0\_W`9M7.@O>GCGHT;T0HYMDTNY1-S-F#VKX\#9MSI[O M92N9:Y@HXVR((Q\8`%JT:X:RY(V<I93!W#\5.)*6:W9N!]*"838">)8_R-PS MD->>&NKU>L?ELQ8/KZPH!TQMV/[D+AV75X$FOY*KB1]=[WT:K%=.)$\OP5R# M`S9,E\0Y7A[A/4T7/!.8Y^5M& 1\UY\WU.!L81?@Y4>Z!H9GC2D>$*<4;\84 M_T!W3IS-3^3(WZJ@:QSM`L_^'XM8KNT*96YD<W1R96%M"F5N9&]B:@H*,38@ M,"!O8FH*/#P*+U1Y<&4@+U!A9V4*+U!A<F5N=" T(# @4@HO365D:6%";W@@ M6R P(# @-C$R(#<Y,B!="B]297-O=7)C97,@/#P*+T9O;G0@-2 P(%(*+U!R M;V-3970@6R]01$8@+U1E>'0@+TEM86=E0B O26UA9V5#72 ^/@HO0V]N=&5N M=',@,3<@,"!2"CX^"F5N9&]B:@H*,3D@,"!O8FH*/#P*+TQE;F=T:" S,#$S M"B]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IXVK5968_CN!%^[U^A M1QEH*R)U3QX6.\!N, OD0-+!/NSD@;;H8]LM-71TIQ'DOZ<N4K)L3V:3:0P& M+9,46:SCJZ]*'Q_N?O>CR@(5/.SNBJC2J@IB^">/51PD^!@\/-W]$O[5OAS[ M8[M:)VG8!"NM0WT?_#2>5NLT#=]X((;9.(S3U3^"AY_NLC2*59'!A@_U79BL M@H=?[^)(!_P_#[H]'E]^X?A"Z2C+^?SMR:R2+.Q[.B/X:%9I'G;!A^#'=I6K ML%VE<7@??/IQI>6'&X&561%V+%,<K%6D,J5(IG^13&F4I6E*$Z5*<>*7\&65 M9KS#L8:[9>$&=E%A]SG\O IN;W4^]F\WIJ,DT<6-G7>KM4YG(@?_Y8P?'NY4 MKH,\S:-$!ZF*BCQ85Y%2515T]DZ!/F/4[6ZI[(\/7]0W;9J445FRPOOQV:Y2 MT%RT:[U22;C?LW!K4EQRY<JW9T#XLD2;YG$%4J5)BN>M51+E!<L?1U6FJQ0N M<?' ER*9_77$>Y6F8?@#;I-5< N^Q,/!!N PH/$!'%6%![O2";@-C.7AJWE# M8P3D43 /+MS"C[0*]W; AS)\6R55V(X=3.:R<-O6N&>JPV?3X[*DE)=Y<QC1 M%:QZ0J4]'U<P?5HE16CIU"0\XH\>5REZ3]&A61S:!E_OQPZWAZ<W<@DZNW!G MGU9PKH$@@-?XH,,1W=MVIML>WE99*</VG[B9V0ZG%7@774-\RIL@JS*,[ID- M*O7M;%!FD1+H>$(=F&%[L'TP@$$^-8/M=G@%L[7!`1^.K"%_B?O@!/?*PT<; M].T'+[C2Z#597J+K*SH!7#_)_D_71WGSV'O^`FH`8#+G_A^"3R@N# 'ZM/,@ M%>BXQ!0)@&\0^><'?46H*5U&>1ID<8(@`6!:W8(*E9(ON)4$+;.5_X-"TXHV M^0W8S:K%2?65<'U;M;?@^MQ*\6_"+N_U/H(D=-XG@E(-^5,\\D_M*X2U@HLM M`4DI1@7%J*#=6&U["* XW$.N7I?5A#HJ5@0.:?A,L$03VR/B"J,8C1+VR%:; M=FQJWF7SMLIIO(IGF)?*R-F9.8BY@[]%OD3'$M&Q&? *&2)41&C'$Y_PU:*X MA.L*X+KE5^K^?@EEJ8[1M]\GG:0JCI2P$ 9L?Q6X- '\$^H,]5F&]@F-@5B> MRL7-<&Q%(]X*92Q;T<C^`#"=9%[KU:1T>&G*3&B-2[63P3"5`9:,K#>>(/UG M^?*5_);^8>(/1Q3AA>[7<%J2M\UTH;E87A6S75/<]<)$<1'I]XJ5!, FE5@A M@_0!T)?GMK=U`'(FG&,!>S8L[G&ER["I22//;*N:TR];)=AA*'4MI5Y*7[2- MORZ][XU>W#+Z?2!*.F).ZP,QOZ'A*NR /8-H;/7>U %N%E-2')!H0\K>V,C# MEXYT!1HCP&->H\%GS#@<6M;Z9ZVUPP"=Q>Q;#9W-<I!J#*&%+.DLF.I(]*Z1 MH<G==!&'/?*8/*33$&-W=*SW*;D83L; IWJQ.IBI6)HI8<*:Y!/%!(&3]M&\ MW=/1D"!:V0E80F?I.G0<4*UVL,UP-*?3&XTH%,S*:6 QY@"$V4Y%G=W!W=KN MV.S9D0T%%+"[)W,$!M*89DM$#A35O+2G%ULSK:/#420(J,V(#"\#U0U.')"F M:0=^&-@,$/6TMT8%N1 !`_OI5Z(+W:F.F -^/_#!)\L4$O3_BES;GB6KQ%WE M8%Z$<H*]3@&Y!I,H\)6>;]>T= A(F7H;7(2*ALQ>H"D4QB+9`"4"3/\97=>2 M:Y!'W_,P>8R/>N\=8]<X1\OB.>JD<[@"2-@X>$#]XWS.86-^Q833SKDMXY.I MS?: 44$6`$<S%)8U*Y3>E;<L*WR")T2LEI8U6[J-<P_ [^S"/;9F[*VD-4-Y M,0_[P6P?"6<!2E^(HU8AH;KDW\(=U[7C_H H*PFT(7BL&3B[07S"`8K/RIW= MCEU/&-M*8GXA_HX2E)G[@^ /49D@100O&TD$QG2$M1,:>I8K7)[MQPWBTH(. M7'.H?A@W5+EH5JD%#*G)N:LJ?"7YY*(X5L3+O)> X+UYPF1/]569DP82QDI+ M7@X"`4KU8@DP93ZA$"C,,0G<78J5)_0)`502!G(7Y)07G+24WV2]D?U(.XQG MO947>E [C/K?J)PYEW0JX*)D3S8BB?B*8TW2*WCS$YMQCJH*O;T1AD0E%3@% M:.R \VQO&0*Y^Z$;M\-4\Q$.H1?0+SI_F3V2!650<<67G")%L4N"RW1[*BD5 MN,E91>6*0UPYCX[)$V'"3*$N(QQ_-"+#USQG`PCTV&.:"J"RA&!L"<AZT-H? M;=_[8C,*_L;5#0<W:\@0UA6.!F%H@T D/"F?[0FHC#-"AZ1(_VY!)W1>O1^= MT%GIZ<3WJ,V&H>V\< 50*R=&ER,$S[,BF3N=8Q:G48D#Y3'+@V.>G5.H.3'[ M,^E*WK]![" R]F">X8R?BRP](@-O939X[@RT)S+GTSE497P;8:BMB.FNNS!& MED7)>]%OG::^"3B'H8D@0)T&TN*#H]@S/N[K&]=MP76@J0TKIIYLA<&]L1.% M>[48DASDEWP7]UCZ@X*M#+-)67'@Q)$7$\9H]_94DN5(^H;14$2=UU^PSN> M`A\%3*8XI22FP"M\<78I[<)<D/[S=XN=9&JD?&5MA(!;5(RWU;RL$D]\1B4# MB%CJ9B4>>G-)SG;OS:MG]C<#VJ1,66L3@N:5C[8I4\X#@:L%3+9F(*;?[W"= MLXES,CY/8O\L<,624@5OICI[[X ]E3V:"]OH`CLP[Q1*0/\J"27F53,6,75# MJR7O0U58S"NY_"*7G&5-Y&J5N]+6YY&QGA)?SE2G9(Z3A\\CZ"4K^*3M/9?X M3=NL*==Z[]A.38-SIE*50ANXRJ.N@<"#(V>9(V<'O*7MB%')SG3[+>;ZA?X5 M=5W>*3;BQ//NA]9Y.Z0R(&1'JD69ZK'G:G#=61\D#3M@9H[::+C<:SN>:JG: M-BX)X&Y,)>;$@0&0#*&I%'*KBV4'XTMTA"O&GAQ=[+]U4\F-3@&^PYG.E8D( MU0NEQ]1A>1^G5V6%R8F4SN6(84]@T"\F<M*WS-N9<!*W*@!YGYF*7;)@==GS M6"LPVAP=H*3*8D8@XI5E'/Z=4GDM![B6PZ'M.86X5VWW1$W3>UJFKH'1C%9F ME](5\9<[,JJDILG[N+HJ,LPQI'7GIP`<',/H?J6KB3@=]",:I>+;5)>7`2)\ MJ[VX;(E6\0(9`%B6+5)8PV3G_,.)DU ^5A"ENOHE!?%HR:V5C/N*8])TH6?M MXF_MWSE]`KQL3U[AU>Y;R_F]@4?EV)*"ZNLP]D1Y:HGR+&S?J$ %NV WXX58 M: =:`%4?K.F&@ L`.B)X/0#[-(U\X3&X&$\U>&P?S#I+J*4=IAO;76]P_8Q7 M.#A&`V:H6S9(OG2-_.;'M@*CC Q/@<(0V9F![F7I4]J,2I@7G&[Q`P(V?$8L MTW//XETB@>5GB80<#*C$>7(JRO,V",=NY6.7#X5M33/U1\[8Y'=XQ/42["^V M.YCG'BLDC S8A91E3E,/G[$E@PPWA5KB8+]_Y6FMKB V@12(QPU&I3($?,A* M:7I>/T[D5?,GT?6&&R6H7ND?X3YCTU#RW5)Q"!=&WRG.!:IES[%YI=MWG0%5 MU%^JVSF=#8@=2G;94L=(5?JB(Y-R1Z8Z8YX$QE6X&;DT8I255A#8T]5RGEVS M6W%J($T+Q!(*(6H#UNXP+,1QL/O+>,_<=V2FK^0$;%0,<J9L@4/44B'YUT_4 M"Z:CF#LV5CIAUYS"1QPJ(B#24%M$O0ST:7PE!P9J>IX^<U#W;>51W)):WTG( MWR#T1?$#0C[3$J@ZB,4Q9_ U8DEE[40).+<A73"]93 @&:1QPE^\JT6-A%T4 M-&TA/SAY1]PY_>&$WF3WO,#![S6'F1J(&"J<"*S?E\;XB[[*SSBM9-7:43!Q M4N<8,LWN^"A-(XWM`D"=>G83J9_9DE/KB+PCN^P=48>)Q '3<2NN/Z"'$OPI M+UXK_C<R;<"DY4B=\KU_!I32E:=>IAD#^P^+YF.)"F5N9'-T<F5A;0IE;F1O M8FH*"C$X(# @;V)J"CP\"B]4>7!E("]086=E"B]087)E;G0@-" P(%(*+TUE M9&EA0F]X(%L@," P(#8Q,B W.3(@70HO4F5S;W5R8V5S(#P\"B]&;VYT(#4@ M,"!2"B]0<F]C4V5T(%LO4$1&("]497AT("]);6%G94(@+TEM86=E0UT@/CX* M+T-O;G1E;G1S(#$Y(# @4@H^/@IE;F1O8FH*"C(Q(# @;V)J"CP\"B],96YG M=&@@,3DY-@HO1FEL=&5R("]&;&%T941E8V]D90H^/@IS=')E86T*>-J]6$N/ MVS80ON^O8&\4L%9$BJ2L]M0`;9$"!8K60 [='F29MM7:HJI'-ML@_[TS0TJ6 MO<]LBR+(2N)CAISYYIL9OUU=O?E>:";8:GN5Q;D4.4O@7WC-$Y;B*UL=KW[C MO]@/55>Y:)$J7K-(2BZOV8_#(5HHQ>_\0 *S"4]4]#M;_7BE59R(3(/ U>:* MJXBM_ICI$Y)TP0/T9$D>!SWV8R13WKC.,B\&MF276X0T<29/V[BK#W>/*A J MBU,S5\*BA4YX44=2A7=4JW@?+> >MJV+2 I^B-*,+TI'@W7?%B7.IV''-DI3 M[EH8,3-Y*;^+5!(&=A5*^&!Q&&RVD#DO#Y$2O.@Z--@UC)F$=T45P>J-WW2V MP@\=4<S0];A<\JX?UHS.Y!5NO.0-*>N:HB_W;.O:8+Z%BK,LS]E"Q"*%)_@" MC%R4^R@%\46]8?9#))=PZ;LHA9O8CVC[#0-IFM>P*H<I^/#&$1RFCKC5]GM' MFI=\31?<XBC9(^.6]32SMV1A,J'QUVA UM*;UK;LMHI@@K[H#RO*TC9X4:DY M7<B[A-W(1#\!"&54K)C)=:P](-X.AT.WK_JOGH*=,2=\O]M&H!(5)WE0ZD_? MVALI90<S(@<?TPK#FV%]B/32G[$,@T>\VF08N#]<#\ 0I%6X'F$@EGF0HWDW M-+9=H,\3[W-Q<8;BA$N<$ B7'JR6\VZ+0*$#6'^\[ 1IU/&N[FV[)0&EI3$! MM_EK(->V]H@/2Q#RKKT.!DX(+'H$BY_<3RB&$"<?3H=2<)8]GL@-APU;6S8@ M@&"AGH&"@@2V=D. 'GTU0]LX@DQG"?#Q$TZ6RQS=9;3R+OO9MGBWRFVF/?>\ MG$H9I[,],>K-^7N\S Q?>S><;#RW_<PVBY,KR18C,-"5$#D=AHD"2A@ZOW;= M0ICA`??,T66),<:P%'F<ZLNX+%W=5S5B89B9^ Z#$.S:WUIT%R"DPH@E[^)+ M48+_P?-@[PT#*(%U1_KP"T]1K(-(SQREC2?+F=%R<6Z2/)C/OT.DZ#R)33#A M:F_9MY'6_% 5'6NL_7-1+-;.L1^*(RJUCWL#)64IDC%)^G5HR/LI[PB?X YB M3S?@5Y8$]'L"Q2'E`T<H<X\F!? DA%LZ.0_'Y+@>J&PX1CH+7-72!L/=-J@E M:J+(I4B"0$5$@VF]T>I=D#;W?QCJX-:80.A3\S6!I@,H&.(%'*OI&E['-6DT M?#WT9^$V8>",,QBPNEKZ,"+X!"Z&`X$*N,^NGA'$T-KNZR 44IW_;UB[0V<L MG\CS6B7>(^6AP/N"51&P['VT6":\K7J+_F[/Z$$(RNN?B&!5K)52-+$4RE\$ M-YO39M8,R/4]N^$`\53 V\<(?' 3L4^?)\D0K8E\5L! Z=FAW>L=1<1'?+\G M*I79<Z*ZO8M4QELZC7Z5B!)@BB)^^QUD&/'Z&ZWOT" P"=AY5-ATH#=OF*7U M)3Q3?%ZS+4630P2UK$ YAP.+/"RU`%B6K*<\WUCZGFH$<%]ZYM?/Y->$@.(! M]% TI_ERS@O$083P))F',J0S'YL^3\!0/D+<A?FNL66%5BD.4UK[&X-J*7RZ MP=0#E-"Y(]J,9K2/*4]FM<_6*!MJ+@H.C'VCQT<WK#&D+XG#Y%!:4;A2E.OD M+/O[!;,8-X9"7,U"W.@9?SP<U#6Q@J\/7A6AJ4FPXGTH2'^ZB^ $E]#Z&H,W M>R1X0XR&X/UN=07,BI53"@\#QTCB)5ODL1!P_M9>"3@8H6![>>JWJR</#G4Z MR)2Q#!!Y,25\&=- )&Q0$.&>=0Y%'4E%#U47$K GB0U]8(RH\-=2I-#?&O@8 M%MWBDJK?4S6(#^$7,3@A#/G@W%'TM,]%S\RP20H&^T_M*G,3"_.<7=_]ZC 2 MO#6@()SNTVZIQB[PO;1TV\"A+[)]F'BY[7N')F-DOF-%.8O,:X)YZ:#R90<M M24O=$_W!TGMN&/'MW?!Z>I/0`$\FA@">5X2!M^;5,0Y!@5XZJH.:*K0UV%PA M+4&KYJA2!X+RS1JC_.I%N(ZFH#:[+8 ZB26Q42"Z\LW11)LSA7FHQA\H\J@( M7YZ3$YPY"]2UJZ?;^-(!5RM?:[2SCFW.UA,IPLA[XEO0ETQ]\\/D=Z_'H3(? MJK(@X]1:H$&IVO5I0X^WQ=Y4\K,:S(5Z<)A^*/@"0I4ZPZB4,IWZ/V31Y#*0 MXC&0L!R%7,P'*#H@*7M,GT+E"12E,K]410E2)O>*R<>A(\2(.GN"`U6JB9CG MV8L*]=2Z@KMJ%W2<.K"I$\G'3F1J^LY:V11*T.(#NJJH)O7%&@=\(X]KP$XW M"$5Q:@SA[KQI?7^W&4I"6 I7H8X)`IER.6R_);8M>E(5BO'0-(ZBW9HT$=3_ M&L91CVP/J6+G1P6=#/LP.(<2_,O1H;(D5@Q:;>^NAFJSGG(49H 7N5WE"@NC M24BPQMC0@<>:$;>+-(TS<=D*D@,\2QRQNL2?=6QW$\5LA=TDA.6MH]]8VC]9 M@3:&J!GJ#4/6A7:GNV9W6.VX`2'06OQ=QY8]4$)/NYWOOXO-YORGFBV:TAT. MR*SN%K-RSG>AC2S1K/X7AM!%]I6K7U7.B,Q,=>._+V?.LQ1F7<B/PF@XBLG@ M3/]5RH6^<$JYE(^@`T;6Z/!PN7Z -QJ$SM!_\X7=P!/5T'GI]F\R\O]=#3W: MOKR@C/H'?NY/D0IE;F1S=')E86T*96YD;V)J"@HR," P(&]B:@H\/ HO5'EP M92 O4&%G90HO4&%R96YT(#0@,"!2"B]-961I84)O>"!;(# @," V,3(@-SDR M(%T*+U)E<V]U<F-E<R \/ HO1F]N=" U(# @4@HO4')O8U-E="!;+U!$1B O M5&5X=" O26UA9V5"("]);6%G94-=(#X^"B]#;VYT96YT<R R,2 P(%(*/CX* M96YD;V)J"@HR,R P(&]B:@H\/ HO3&5N9W1H(#,R,30*+T9I;'1E<B O1FQA M=&5$96-O9&4*/CX*<W1R96%M"GC:C5E9C^/&$7[?7\&\!"U@Q+";MQ,$L+TV M8L.P@V2 /'CSP"%[)&4D4N$QX\VO3UW=;&FD36Q@1R3[JNNKKZJ_>?SPA^]U M'NGH\?E#&==&UU$"_\O/.HE2_!D]GC[\JOYF7P_38=ALTTSUT<8891ZB'Y?C M9IMEZC._2.!KHI)L\\_H\<</>18GNLQAP<?N@\HWT>._@OVTH;W@#^Q3)G4L M^_QDYT_&F"G:;&&R&FW;G/%WE:MI.&U,J:P\/C4;DZKIL,E*U=*[0OWRBWQL MI@F/M)PV::7.\V8+#X=-6JJAG[ZB,:EJW+K+T\94JCUN,L,3M:)/-4ZI%)VE MTLK^MC&9.MMVMAV\,DFB>.&!GFK>H-]OTEK9$1YR^2Z+-;"!5D<<A&^*6IWP MMYWW0P=[D-*2:*MCG=8U*NU7];Q)4S6"UDW!@V%B)1OAVIH.5R4@P]F.6Q0A M<;(_P)>Z5DM_W.25LEZN.E&=Q9&@I9$D@17/>%ZM7DFG?&K4<^5$V%O\,%J2 MJH_A4UFKQSV.*3/5HF6,.M.Y2$ [XDXIGU3.B/I+5_W!V5;UP:'.(N?K89.7 M<,0+C>1.(\.K'>&L8*^.'"%#^YW/PPAK@>STJE9O>Q36CE:>T4L*M>L;M"#O MNHR6# ON2YIMYG8OSVSHIIV/>.#/J-.8+):HKU%.G@>Z7]H]&NB!GA.Q"*L* M7YD:-/;O!720*=:T3F'CB4ZE"S4\TX^2/$/\LYGD(Y@>5#/"DFCU6\XAVQW0 MO.Y(Y#!+WY$=R?EM[TRJQ0-Q:)ZH)XM2[FGD*RU"NQ7NNS<=KML/_1;&P(]Y M\9ZM><PK"4Q*2%T0T*IG-FGIO*N9[0,\>^4T=+1.GCH+AR\XY-@TH!GQK!.' M+KD6V<.MT+;V3.YTRU<`#<XCF)&DHG.U=HK7L28VM1_;D\? ND7.V]%!=OL9 M75R+D.-GU"^^2=2;!6UF/IXAG)OI!7Z \Z+[&3@HJ(._?,0_I>AF)JV `R\M MR9FGWI/P*0&A>U+%`(8DMP'?[0</8A6"&#HDF(-#$/QKZ"T/'&TS#3V^A*A> M' #=!1>QN?@2JA6 C)V";&!"D,-0Z@;QC[<#RB?PX":2'W4LYTY>$L["'I.= MR4<JY_@%V)QQDK7K/ %C_(BOAZ:;.+B<3B6DD_I=L.E$(JLN>?WZ?5S!*Y=$ M]CAO>+OM."$4(=!,T0F=3G1EHV=<@G&.H()V>*+!1W$=A\_D!''T]1'_'M%X M$7S T-Y9_%$Z:(UZ/,T65OMDDES.!?FRO,Z7J4[B*LKK"OZ%E*F^6?"_X_'O M^\/\NR]EV;S4+LO^!?1(:19/CWY3ASZ+"3(WZ@<0LQ"7].X%5@=-3'M$8/)> M+^G (TE&4L#I2A41T8,PGZ"\M<L+P[20<;,4[0<)"C&84QF/"[+E`Y^93V5R MM+P;"%LPKO"D'_K9CL\8VTUK(TX2P^UX&.T9<@+B9;&>V.CD&GCPE4@1Y!/A M`&>![ `?*1II'7+[NKSV79P',=^.=B9YX&U+2!V(G]3!GNGEGBMR0M19'[K5 M=4:ZZU*9T7$!/I67<2X>8G\#O?7-D7B8P>/-!*5NC7<.EB<YDL5P#4J:D.9_ MF GOY " 5G&!H781<MU@IQY=<F/R5?NZ=#(T+YS+)1<@7K+K(A2Q_"N>!1Z' MGWT6=7FMDI2_.R ^](%&5X,AU@7(!P>9K)44?FT)OQ/CN'$TQ#LB/EQZ(@-A MD&,EX0+RYX+R/1$A(6/D#S[U91(-'I%N.O1Y>(,=@:-GM>>@/:J-@!8H%VGL M'8XQ7Q1R'#IZ?V&1%7IAW5<:L%O<M+TG<?3X>YJI484OI*I4[9H3BL29'L:> M"3@:$#%5S)6*0CU]WA2)8\O,7@3-F9"5D@!U+HFXF3G$B7^BXSH-WX+YA07A M?VE&F2+3@:"KB3=E<. '3MTK5X&33">DDTW[,C%24F"##);\Z8(QXZ+%Z@A% M'6#CF57/>NA7*&GF`] M"GU@RP=DZL0&F<(P16'G:U_X:?7P@O.M'T%:I=G; M)X@A=+^.@=I+=,MU^/1-1PETK1W0\;[=3O-GQ$@^O9#P2ZFJ0"I//E$JR=2> M^3)%14RG=2KG.,(@8J$@/Z-FLW>:U1#UEUR%A0HI(E-/X'&@!* (OOR"3^)R M'(VZDMPFFU V[V\[SD4`?(R.=(1^M]#?G8TF,%OLH;)P4!G715(+7O)OR,H9 MP&%&B?Q;2 ''!8KL_DM9/--EK 5@O]Y(!9AA^<2YRS$CVZ'GYF$!AU4(\\V& M,ZUG42-!&Q;!#6;2-)&T[TF7#\2+/(QK5+#H-%"V7JXQU-0KPN&1#N@3H?)& M)A!/X_!B>SPOO-NOM0O4M/>X_5JK`" U8XN&SY60%/8>)@,?20W(XLZH'OS1 M7V1M$',YTW&940BI@;W1C/,!M<'\%+T1M/"SD*&4W3@M+U3,*]()V(N'T[3A MV/3OPQ/0FS6\'=]OSF?;H'J\V]]A+4U')7QQY?J [HS)Y/"$RU5Q67!?P7A1 M"X3V#.7-SOYQXU4\-C.1TPM8"^/1;8SP:"'Z\TQFKNRP=D4G?U@3\340IB$0 MLF&HC"[5^$+<KZPN(8_M,X&QP EVG"((NFX[3S,+VCS)O-CW:8!._?6(!3N4 M459:* QH:U\J<9+[<E#K4$[$%KLFJ[6:#/L/]F(E]AU7O[PUV,YPL);HL%+V M?::6*IB>6QO3;'O(%!#:5@H=%BWL(O".^4VKH0`\0RKN>Y2"3P8F'"BZB$%( M12/^[S\8[]: *Q3ZTG\X8A@&;D9X>4#>0\MQFFO0F%C7QM'_B:1I4B*+%62$ MU-!!H'7+Z3YGA4FF3N(BXTG$4SU5"A)+]5XY:T<2Z!?"9"%>595"WB%\/0MI M',L)G*1R;2IO`XB)CT)K@LV+RYIILE^J#<LLKJH+H9[9VYH9&UZHT:_NZP-S M2W$Q6X[U/OIUZ9L&G/V$`3,)/P*'+*B\)H4TCOJ;DELN%]%(4#]T$#$KZ6>" MD!=W>ZKL/JW=/C4<.9U,<"&]?:9^U=J!10:_M@$=*^&:4Y>2<; +>$ *VN]< M0^NC8R:K2;"&Q*8R6IF)2PBMR%5W0\"5@]2 *I*FF+!/1Z!0XKM=&L8^$(J2 MWM0.9[M]H\R$9+5R#/D3C#9YV,?#/E7C*UKC!HIZ2^[-`%EDK?$8P2?GNYV= M6M!\=MU'_[2)I>O^7<.M4U"WM]M5F8\':9XHH%^MD'OD&H[ Z$+#0>D78*^T M]N_E?DG717VM7=B$^V1AY5W4MZOUPO4/0/RW83D*+5Z[U)@RLR!B7<JZW>'/ M$VJ28JL34O9U(QT,W#.GURL=;D4Y^3W/G#C_$XQ>W0)DM8^J*X>Y<17@6D[2 M'HGHQ@,J@I8RG0R*HX_,`8%Z`'3UKA W*NA^=(SN<+(>YPP<!"X!,&=^B>A. MIH_F/>>FZ.1X12K]B1%=!Z3Y?AB%&I+6N224`F+%J?H:IW0"& =H7Q%*_2E) MJC1)DO3/]VBS-D4P_E?U#^HM'1T;%6<WV@1!;B#M0A*RNX&2PDC1]A^Y^3&W M6CC?2<L$A9=7/Z-$F12Y=:E<0UQJ[).TXW%HX\8`S4AQU3<*XTR]!-W4RH_# MWBDX#;C.CE7:P;SL#MWQ13\AZS,6E,RLMT7UKFW"W=S,UY'GR2[=L&W9\IU$ MS'K5PP1SFBE'N(Z?B[R0(0?JPF!Q-+]T`2)U1/J^CLC7VZ&6BM%<0B D^F$V M<DV9+U"87(C)PITV0CMP``2EF&F?M*VD3ZH=/?39G9ZKF]&)=&IJR#R=/-)N M_T-A]7LIC%SY]4*@Q1NZ0+V0B:^4"=1$>N@9]M"%]W$WN[GM(R[/4N^$;JPN M\RQ!@UDO1$VEUXLWA$,J-PWX)4,9TM-,\327L8Y8!PT#E:LORYF^U3X"3PBG MP>V1O*?-L(7"/["#CYZHR>RFJ-</#;W(+^K36P[@K_L(J3FP]'6FODNQ=)W& M\&]N/$=Z:J8#74!K,%-S"OC9.R R>1IGV<7LM05HA#7CM8_XVL4=B^M(W*C= M\/SM,@)JS])8(8US^\1PG\#Y7N4F"'@'G$Z+I;CLD#8!,S<-G%!?,S>Y$5_O M/-J@PI>LP7=@VLAE^JX?`'GH8,"RPMM^G:W5(=WM/1$4#^0UR\TV*$0]W]J[ M:*P=R<#QF:_H5@6"8NCZ/PD+[\M1<M,M>+":1\JPS*E/4A;Q!&VRE3_>Y7'& M,[.+@@D")GU_.1V![7TCV]D>#I#Z$FOQN8N,]D"@]L6+HR*&Q*E-'B?.^>;H M`*E\F.4FYM7VT7$87B W-%_H]6<&RHQ@(153Q^J[QP__!;M2+C *96YD<W1R M96%M"F5N9&]B:@H*,C(@,"!O8FH*/#P*+U1Y<&4@+U!A9V4*+U!A<F5N=" T M(# @4@HO365D:6%";W@@6R P(# @-C$R(#<Y,B!="B]297-O=7)C97,@/#P* M+T9O;G0@-2 P(%(*+U!R;V-3970@6R]01$8@+U1E>'0@+TEM86=E0B O26UA M9V5#72 ^/@HO0V]N=&5N=',@,C,@,"!2"CX^"F5N9&]B:@H*,2 P(&]B:@H\ M/ HO0V]U;G0@, H^/@IE;F1O8FH*"C,@,"!O8FH*/#P*+U1Y<&4@+T-A=&%L M;V<*+U!A9V5S(#0@,"!2"B]/=71L:6YE<R Q(# @4@H^/@IE;F1O8FH*"C(U M(# @;V)J"CP\"B],96YG=&@@,S S-PHO1FEL=&5R("]&;&%T941E8V]D90H^ M/@IS=')E86T*>-JU65N/X[85?I]?P:="`M8J29&Z9(L"FS8I-@]IT4S1AYD^ M:&3ZDO5(CF3-[#38_]YS(77QV(O-(LTB8YLB#\_U.Q=]>WOSQ^^5%4K<;F[R MI-2J%!+^^:^E%"E^%;>/-W?1/]W3OM^W\2HU42-BK2/]1OPP'.*5,=$++TAX M*B-IXO^(VQ]NK$FDRBT0O%W?1%DL;G_&^TJ^3VFZ"SZ4+$0NRX0N^I.412JE M3/_LM]M7VW4V;;^+;G=.Q"L%7+U#'@YQFD=[_%/UM)Y%1^<^K*K50PO,PPY< M-67TM^HQ-FE$AXWE(W3"R*C?QR:+'D=21+3JWN#C3/-:@S]T&9V(Z*Z*M?'? M_05_I0U%5#W$.HW:#I[EM$/Q/5I&FSC5T=#A8AGM')+HB&E@I6Z/+)B7";D' MUCX,1W\QRD=ZEF*E$I66)>KY+NIQ)YB!&+32Z\%Z49@!7,GI_M1+L^YCH.G7 M*Q+4L@;<:=>N<:$H< $$.M6[/>JNV7I1O0X<"DI'R^BAPA^LR)K6LJBA-:+A M_-(SW%YZIH"H?:574HJ7I!ZZSC4G^E6PAA)ODO>XO8@6&K%!(^O6H0ZT`NKM MJ "M) M8G6 -N' =K:;1\PX]">3V*VK!3.?\MM%EM&25:9E%#Z0$OH1/C63O MHY9\H/-<@G/GY\Z=9@H<.RM4DJ%[1^YC59_B:Z&0%EEBIMUWT7WLY?2"U3MB MR\Q<M@#/:;Q2407M`&P:Q6RJ4K->WWH>84N2E:#(A8N-#@E:8X>T'#3^XB-M M>(G!7P7Y8M $/"5>"N\+K"?7HQE!,QC+0X_Z!:]O-Z(ZQ-J.T0SF(-7/@A4. M5[ST1/2V@]]!-H7K'02YBHYC8(Z.U3+3=07WQ>P0P.<!69M'VB5WF@B@GQX[ MM"HXN7,8)67A=7UJQT@[UW*9LI)1@L* 7X"-!Y1519/B"&S L<:H)?[1>@<4 MB?3<]B=2%3^H7<?ZK/:XHSG$$"7!"*5<Z$0'G1 /:BZ3A.#M(!0EQS?$,C// MGGP1<2C*M\T,`X<.I-NCM5D1P".SZ@-Z"F7ML0[E!0NR=#[>VF&[`RJF" KH M^7,"9?HCZI:,WIS@`7P,=$<O)J%2C[6L&;*RJ#QD>+Y&?]0018GW_E2L=*++ M("CG&AM<^ 0.V<.=VD/AA(1[5'U88UPDW\WUY+M>3#6[FMP%%(^I`X3N'9C* MAN#=+NP)N_B<)X5A@%#;/B)V<0"ZDSN@)EX08_E,>SQRV++-?%SRV:/K^J.K M48DR>@I@;GV:Z!B\R.\NQP7")C""1H54T39(-LL8[TF$[0Z?Y8I_,41M]^B, M#=WV#3\]0WXKF42[=H=X5-':;>C\,/.7F5;9[."[K*2GT2#7D=>F29X)6Q9) MP6#Z7]>A+MOQS&O\S4VB%F>8.3;8#DWE.O))Y@F!-X4X%11.`'!@BMP#Y[:9 M>2"&#V*B3<'G* #Z$9#3),O/`=E]Q+-'<FP?_2&?:XA\3FC!#32HI1_ VJOZ M@"Q6?>_UBD\XYQ-L/G"^(Z#-<L!*8#^D4#U2JC "@,$-'@GNJ:&*>(\!LB&? MJ!F6@4;;G#I&Z/K4OZ75[ SCD.IE@8KP>"'0)5]D&*$PI?J'*[F"741",/XR MD%TZ`FV;+IUFCG\0"RUC]U2@V=Q7,;XTRHK1F*^=MX="$SY\D)W715!ZCF51 M'C:=9Q K0WSWPP.J`2T'W)/E=+B'\W;5K"^C-,D_*MF4GW,:>^XS5@:P"K@` M!+[[" 9N4-6YW_/C5%2S&*#Q?@@)%H[,T<^7602,X=$<!7EOPC_^C=?.MNS8 M-! G"%ELDX4-SVI2N. P%GL4EV\X"HGPE'4P1=]KK?O+?G6.1%A.>3T"&U1I ME\9CGRJL)]GZ6JM'=,XBMT/O:)\_@T;:,K*8U!>"U6%?]5<+09WGB3'3]KO MVX,/UITOR[\'QTY9$^XO;;.&*!BS5I 8"E#^/Q/=%J\KKG6(:2X3F\VO[1PA M"OY9WT,B#4K$?TSL-8B6,BFS<]X!/_[PVQDR2B[4=A?5AQ8C!8L\&WTA1R9- M+V@SE[.@)TOGY3Q2=6A]EI[G4;M(,G6.VEQ%-''H/9354]]GTT6 +-NLL24* M[2[0&3[.X?#+=:93G4 ';G4Y]OI?845M=6*65$+_24EO_16,Y64"E.<DO\:: MJ03.+C%V9DU;(II /!@H+DCC672OI?7*YRBOW9'ZSRQ]U?3"GOX%HZDY51\# M/,!/R@PXA[CD%RJ?VBL[:Z\*K[;M4&V=N ^M[^$ESB1V>>N6L@T4V0W5*)RA M!*3U(TT:IHIYJ,F+1"4VCNNS`3>8"'KG=XS6U XF(][-*]Z_-S-).JBY=,GL M49V(<XWFC5?>LD?V& J"@P<<CU7'MS >^BZ'4PLV43_CPM"3:H$CFC^ A?OV M@!7'K#RH.CB6A6-]#51I-$.M1NOY7,0-;+L.\=";A5:*,'T$P4N8; H"*E,4 MX$^(R:SMTW58+J4P4"+FWN^J`8$B'<<H^YHB.81\2'"SPM',"D<#SO<6_5Y0 MO456.'B]==C,H%76XN$%6X99MP7.MB$?.4 #D4':V3=(?_O-;PY(%,?:1)H0 MC!4%8T^96+R;)\Q"&9KZ_4JZ^>[V1AF5%$88P%6=X[<5!#<B8N=N%%Q(X;LY MY^;;V\\RA*- DV:8@XBCIQC*J1:EVP/>H ,-W;';`UQ@<"!>B%\_^<@SB34F MY<!3BIC]1,Q2!*2ISCD"SJ3\5D"7`BZTD#808&F)LIFKX0)GZ_TV3A76R$B- MGOPT'/$[86_W$_2T&GNRV'K6KU^(Z@4M%)"/RR0K)@6G]G=0<)H#('B3"_B/ M`($5BU\9BXG#MY<\X-.9!Z26TLWOS*,Q26:^S G _6'Q)/9+E2X]5EYPC,^Y MS&?R#T2-+FT85_^+`'7-^1XB]*RJ1KBJVR?HQ-]<F8."$X8F/XQ!BF@D!UT= M=KPJ.O*,687A)R8@*C^YR2!T18@!M&V'<>X]#IU]/S(TVVF4@7.LY>R+6_@/ M=$3JQ1CWRG :<#=%4=UZRZ<4MH3K_83-)%3;P$9#&[)7XGH)I%U.CVE*Y:LP M^7HF#<PWI$3J^) N383\7-X?XJ3KMX\]I'^7D -X-CQ*<T]$:4Q&97AGX*<T MR&#A&R" <RKP9G,`8J%8SM<O=1OS@7DB+B;H]PUSU@^/XSL+R"R<EK-775O& M[R6R_#SKX9.S/*VCQ1@7N_(>B@F0V#VC/JSU$X+^M-I0PSP:("NOIC*2/;-7 MAH8H#,[**/.GT;#P"<_ELIZ\5%)3&^NOJ^@^!5G2A3$'$F$F@CO2A*L".:J' MMN,&T0_=T \GW5& K)G)\U8P*U_-\T)KSJ^ .(FOV\;WOS7Y7GK6].-<(M2* MM/0TFR7PVX7Y3,O[;\+6IF%1&1KLT&Q?<BT>46YW?J@XE6('/ZXKH@_NP".= MZ>$L_.$:YL:'9T"58'?R>4=H-\4ED("8-7(V)_6O)2Y$K)[>H9U7Q"OL^N&P MY2 F=NMJ49'J6>=!Y*<W? `Z6,JFOGV"4I8Q`8X\4(%]V;<6H41C?SC\P/%. M\[)>K/F2>J"Y3 ]D>:XB3F@8BSO:>G@DBS:GRR7W/PX8+*[JG5AWU;.@^&L' MCU/\;N^9JOYQ[ETC2Z2C@<,*?.Q\:GFAO[(&"EF59SYU1NKZ?,$6V-VI7&%' MAGL33HG*)!(5M,H2E0<)L$B@8NG_^8F#JE?K+#04&Y!TE918:"@LQ61B<BXS M-KZ<\")F():T)*;_"B>+,K'ZHD:P(56*MONOT! 4!ML"RN[O,9]N1-.B<Z'- MT:.;+59R`J*)7G:X-^/[$/""W;YGYM=4[]5H5W"0!NH3>KYV^%8#7S!M]HY? M:>31KG/4, #4T:EFU>+%#T_X8T_Y')N&OF]K>N%&KSHRA-Z:<AZ=6>\]R! @ MP9?G_<@Q=(L\IH1\Y@0DA0H<#ZZ#5I8$<^)0-1B)B)MC:@(U9S;/N9PRH8%T MXA$[NU\&1VC7DSB%9T+LVF>"MZJA7,JK3C3NF5_OG5IQHK<NL#[>">$AGEN$ MEN& D0L$-L DJ2S%:%NJEH:$1(W4&^(.W.1_.<*WB IE;F1S=')E86T*96YD M;V)J"@HR-" P(&]B:@H\/ HO5'EP92 O4&%G90HO4&%R96YT(#0@,"!2"B]- M961I84)O>"!;(# @," V,3(@-SDR(%T*+U)E<V]U<F-E<R \/ HO1F]N=" U M(# @4@HO4')O8U-E="!;+U!$1B O5&5X=" O26UA9V5"("]);6%G94-=(#X^ M"B]#;VYT96YT<R R-2 P(%(*/CX*96YD;V)J"@HT(# @;V)J"CP\"B]4>7!E M("]086=E<PHO2VED<R!;"C8@,"!2"C$V(# @4@HQ." P(%(*,C @,"!2"C(R M(# @4@HR-" P(%(*70HO0V]U;G0@-@H^/@IE;F1O8FH*"C@@,"!O8FH*/#P* M+U1Y<&4@+T9O;G1$97-C<FEP=&]R"B]!<V-E;G0@.#DQ"B]#87!(96EG:'0@ M-S@T"B]$97-C96YT("TR,38*+T9L86=S(#,T"B]&;VYT0D)O>"!;," M,C$V M(#(U-C@@.#DQ70HO271A;&EC06YG;&4@, HO4W1E;58@, HO1F]N=$YA;64@ M+U1I;65S3F5W4F]M86Y04TU4"CX^"F5N9&]B:@H*,3 @,"!O8FH*/#P*+U1Y M<&4@+T9O;G1$97-C<FEP=&]R"B]!<V-E;G0@.3 U"B]#87!(96EG:'0@-S@X M"B]$97-C96YT("TR,3(*+T9L86=S(#,R"B]&;VYT0D)O>"!;," M,C$R(#(V M,C@@.3 U70HO271A;&EC06YG;&4@, HO4W1E;58@, HO1F]N=$YA;64@+T%R M:6%L+4)O;&1-5 H^/@IE;F1O8FH*"C$R(# @;V)J"CP\"B]4>7!E("]&;VYT M1&5S8W)I<'1O<@HO07-C96YT(#@Y,0HO0V%P2&5I9VAT(#<X- HO1&5S8V5N M=" M,C$V"B]&;&%G<R Y. HO1F]N=$)";W@@6S @+3(Q-B Q-C$X(#@Y,5T* M+TET86QI8T%N9VQE(# *+U-T96U6(# *+T9O;G1.86UE("]4:6UE<TYE=U)O M;6%N4%,M271A;&EC350*/CX*96YD;V)J"@HQ-" P(&]B:@H\/ HO5'EP92 O M1F]N=$1E<V-R:7!T;W(*+T%S8V5N=" Y,#4*+T-A<$AE:6=H=" W.#@*+T1E M<V-E;G0@+3(Q,@HO1FQA9W,@,S(*+T9O;G1"0F]X(%LP("TR,3(@,C8V-2 Y M,#5="B])=&%L:6-!;F=L92 P"B]3=&5M5B P"B]&;VYT3F%M92 O07)I86Q- M5 H^/@IE;F1O8FH*"C(X(# @;V)J"CP\"B],96YG=&@Q(#4Q.# *+TQE;F=T M:" R-S@T"B]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IXVNU7?7!4 MU14_][[/; +9A"2D+,);GHE($D) )'P8EB0;\C'6A 3912V;+TPD2$2'@E F M%"BP"<Y:HJU6):AH0*)O"6I@L%(TF!FJEAFU6JRV-HZ.-8ZV(OT82'_OW21# M:+7^T3_:F;Z3W_N=>\YYY]YS[WTO=XD1D8MFD$3--U1FS\PYU1^&Y1!P8^VZ MNXRGLP\<(&(RD3)O9?.MJU_^<KY%I/J(Y!6W-FU8.>9/C2$DZ$#\IH;ZZKHO M?OKJ"T2Q$]&^M@&&Q'&N>]"N0OO*AM5WK2_)#^]">SV1M+-I36UU<E'R=*)X MN-FIU=7KFZ4;U6E$[CX8C.:U]<TWO'+5"K0_1GP5,6T2BY""OE^37X,E99BI M3C+B;,?77-=7&@;Y/C<^'U0SV..4H^4PJX7^:Z\S7^O)@=2R`-_"ET/[&=7@ M_B!0!SQ [=3.NT4,S0(L:*7TD=)',VFM8Y]%FW OI+^P3OJ18UE -?#7(+H7 MG =?+9@Y.=I9F\,_H&W(_07OYB?Y2<>[$'E+[0@AO%OI@]W.MY6>IO?8"<1L MI#WP':4S]E/(W$Y==)Y-A;2R#]D`+X>5V?TCSRI$MV.\/Z=WZ,\LB>6Q,#N. MF$2^Q1F+Z*T%,;V0,TX66ZYG36P-6\MV(6<_E_AL9%W#=_(.;O&34E#.4_K4 M1'6.UH0LC#AV>0(JM+-]ERK1<PW=,9)5R*\89Q6LBC6P^UD'QM#+!B!?\BR^ M$+-NRWU22(Z3/U96*8]"^M2EVL.ZBMP*J32!#$JC:U"5'WU48,QU=!O=[<A& MR";,Y0]I+W70/CI 43I&O[#[I+/T'IW'[,1#[+KFL+EL&20(6<LVLVV8C]9+ M9#=[B'6S8QC?:?8FGXRJA32A>C'*K?Q!?H2?YK_D[_-^_@G_0B(I1EHAU4AW M2ONE@]+KTNMRL=PA[Y/?E=]5F&(Y,Y6H)JFWJ*V0-BU&6Z5MT^[5'M:><TVG M\:@K$W65TC)4M0&5;**=%'96+0HY0L]"^N@3NP[(X% EMLQEA:R(+84$V7(6 M8JO9G6S]2$6/LR=8)SN"6MZ$O,W.LM^S/[+/'#G/59[",T;J*^>5?!E?Q>_G M#_"'^%/8D=W\.'^;OX<:^_DYU!@K)4K)TB3)+Q5!JJ2;I/725JE+.BF=E0:P M;G'R=7*>O%2^!;6?DOOEC[&27)&4-&6V,@_2H-RN;%9:E4>PHP>4`37.F95$ M=9PZ7]VA[E6[U7?4"UJREJ)-@4S7<K1*K4E;IQW4^K6/]$,QBV(:8]:Z,ND@ MOJG/7_;V/HO=_1*_1<VF">PL=L,=4CRB#/O=XW%:4TPC[[9'IU6RJ5BIW])Y M*8;*Y%.T3+J)FI0:*5;[E#K9G?(6]I14A&_T?FT=.RZ%I %IOY*FSA?SR1^4 M#FH;M)#V$4;ZI;1':="FLT5**^OD"_%&KV45]!4[1]]#SW?Q:72*=M%.MHYT M:M</L3%XUWKY9-:J/"H=ECLDO[*978T5]"A]TG::3<D41U-I"O:Z0DGV!]<W M)W?.-;-FYLS(GIZ5F3'MZJE7I:==:4[Q&I,G73'1,^$[J>-3DI/&)2:XX\>. MB8MUQ>B:JL@29Y3I-XM"AI4>LN1TL[@XRVZ;U3!47V((609,1:-C+"/DA!FC M(WV(7'E9I$]$^D8BF=M80 NR,@V_:5BO%II&#UM>$8"^N] ,&M: HU_OZ'*Z MTQB#AM>+)PQ_:D.A8;&0X;>*UC6$_:%"Y(O&N@K,@GI75B9%7;%08Z%9169S ME!7E,4?A1?YY44[Z&(S**C4+_5:)66@/P9+2_-5U5GE%P%_H\7J#69D6*Z@U M:RPR\ZWX#">$"IQN++7 TIQNC$:['&HUHIDGPFT];JH)9<35F775-P<LJ3IH M]Y&082TV"ZW%=_>G9F7VL">J`E9,00^CJL!1*AULB9:T%!8&[=X2"P([G/#Q M"!]_=[]'"OM3&PV[&0[O,*R.BL"E7J]]#P:1-"NS;$G BU&;_C;#+F-)P*D` M25EJ-@9IV^PR1<'UIM^VA&XSK!@SWVP(WQ;"8DT(6[1D@_?PA%+?T<'?4:G? M"%<%3*^UT&,&JPLG1I,HO&1#=XG/*!GMR<J,NA/$3$?'Q@\I<6,N5>I'?([F MA-L:1CT\U<P>D5F"+6(9M09&$C MGI9KW^IS*5R;BS!<0889;<3\A<+N>?9" M*&ENTPB?(VP$<^#3T9;J(8N:YCY'MFIOEY$M!_^P;F5D6-.FV3M%*\#28F1Y M3GMV5N8ZJ\QL=AM6&::,R@-X*#@O&U/N]=JKW-KCHQHTK):*@&@;5.,Y3+[L MC*#%0[;GQ+ G>:GM:1GVC#P>,K&=CY!]\$NV]/21OWAWRCA_PSR+I7R#NU[X M\?KXC:BLI(7+`^G5X59/>BC<%L32%.%5#(>+3*,H' I7]PRVU)B&VPQ'R\K" MS?[0<$D]@R=:/9:O+=C ,*G6+#$;UKB"@.3A0:%QCQ3,(OQ?Q4%-:L'I0B*- M3%^\]@:3WV"/X1 X2,J@=)1]2)1]<< ]0 L_PSUGQJP$;T*:-\';(M&%%DX7 M2>G[6VZ+C",EHRYVG%^0XY KZ05B? Z*E%@M$@S@+V?&.#S:Q<L15'[!(F<. M> M-3;BU<47\@G.Z1W<^X_N[]ERT.7I:>X/H8KGK?2T'S3@GWK[ 6L[%<IQS MVX@&7W>]/^(9OC[ @=HY@*J G57/H]*8J=3N:@1.4*F63NTQQZE+.DB]^B'J MTJ905TS\$%8(Q.X`VJA+[Z4NUXO4I?Q$P(Z5UP!GX,.I2[N/2O4.Y-P&W2O\ M#FQ],>R W$U=:@#/UPMHNP3D.@$[7GV1;AR&_@?$%<-V>\![\'B(7M&MBV M@).I72VA]N&^E+\.H0_ F-6;8$\>&L<T,988'W)AW!KRZ4?!J$_[/G OVK/ MMXM:]>UX_CKP2NIV9=!.&7-G8[@OS&?I9<@=A8V(V7C97/R'@7-KEW1 U.ST M<SGV"OR[.-F.Z[\TAKF'?&>@Q__+W Y8S66V'5\?^^V@UUP&_![1Q?[-^2:X M5.Q/5:RYL^ZC\_YZ1']K"$-M=?9HZ&&!$?_?1V/$OHEZ;=AK[.B+P)= .DNU M4C+5ZHMQ.B=*_[] \OZG17RK/V!QE$V[:2S^:[BAS87Y4WF%_=O/%T=%10A) M3-!]Q48/O_9P\4S05H?8(4%/"3H@J%/0DX(>$[1/T%Y!)8**!2T6E"_()RA/ MT )!<P6I@F1!DB#FNP'\+G 6^ WP%O 2\!SP+/ ,T 4<`CJ!)X&]P"/ PT ; ML!6H!58X.9\1J;L$'13TA*#]@AX7](B@0D&+!%TG*%>0)D@1Q 61SP=^!W@3 MZ ->`4X!O<#SP!&@&W@:Z !^#&P`ZHIG)L4DQ<R)]+!UOA(MLD^+[-$BN[7( M&BW2I$56:I%Z+7*S%EFN18):)*!=J4_1#7V2/E&?H*?J*7J2GJB[];%ZG.[2 M=5W599WK^!99XZ0R7E:9S\JL$[545F-87U6:/<Q5L=Q2S'QF)991655^JI6; M8?&=SJFXAPU&&;MGN\<^$!\EQ@:W[_8,<3!(*1G_?*6.:I65;SA.D]D<'% F MLUG=VN27-=M:"6O$L49L:\2QIK+#Y32SK+HU= 5E?-/%,K[MQ?R-=KGE@:A. M^<&"FP5W\U@7Z@EYO,'\%'=SGE/<?&_J9L\QF5@GQ>)<&(<?&F,`VY6U*&N1 M[<+)Q':-M7^##+E2-\_W>HZQSB&7&^8$3.4_`+$NG5X*96YD<W1R96%M"F5N M9&]B:@H*,C<@,"!O8FH*/#P*+U1Y<&4@+T9O;G1$97-C<FEP=&]R"B]!<V-E M;G0@.#DY"B]#87!(96EG:'0@-S@Y"B]$97-C96YT("TR,3$*+T9L86=S(#0* M+T9O;G1"0F]X(%LP("TR,3$@,3,U.2 X.3E="B])=&%L:6-!;F=L92 P"B]3 M=&5M5B P"B]&;VYT1FEL93(@,C@@,"!2"B]3='EL92 \/" O4&%N;W-E("A" M0TPI(#X^"B]&;VYT3F%M92 O5VEN9V1I;F=S+5)E9W5L87(*/CX*96YD;V)J M"@HR.2 P(&]B:@I;"C,@6S$P,#!="C$S,2!;-#4X70I="F5N9&]B:@H*,C8@ M,"!O8FH*/#P*+T)A<V5&;VYT("]!04%!050K5VEN9V1I;F=S+5)E9W5L87(* M+T-)1%-Y<W1E;4EN9F\@/#P@+T]R9&5R:6YG("A)9&5N=&ET>2D@+U)E9VES M=')Y("A!9&]B92D@+U-U<'!L96UE;G0@," ^/@HO1F]N=$1E<V-R:7!T;W(@ M,C<@,"!2"B]3=6)T>7!E("]#241&;VYT5'EP93(*+U1Y<&4@+T9O;G0*+U<@ M,CD@,"!2"CX^"F5N9&]B:@H*,S @,"!O8FH*/#P*+TQE;F=T:" R,3@*+T9I M;'1E<B O1FQA=&5$96-O9&4*/CX*<W1R96%M"GC:75#!;L,@#+WS%3YN)]+L MT!XB#FLU*=*V3LU^@(+)D!:#''+(WP](UTFSA*6'W[.?+8_]J2>?0'YP, ,F M<)XLXQP6-@A7'#V)70O6FW1#-9M)1R&S>%CGA%-/+HBN$_*2BW/B%1Z>CZ^/ M0I[9(GL:?_&PQ/B-$U*"1B@%%EUN\Z;CNYX09";]?7VN$:&M>+?--L'B'+5! MUC2BZ)H<"KJ7'$H@V7_U=E-=G?G27-E/F>V:ME$%'3:D]U5[8Y4N9;>[)[,P M9[OU`-56,>0)[S>*(195?3^;P6N>"F5N9'-T<F5A;0IE;F1O8FH*"C4@,"!O M8FH*/#P*+T8Q-0H\/ HO5'EP92 O1F]N= HO4W5B='EP92 O5')U951Y<&4* M+T)A<V5&;VYT("]4:6UE<TYE=U)O;6%N4%--5 HO16YC;V1I;F<@+U=I;D%N M<VE%;F-O9&EN9PHO1FER<W1#:&%R(# *+TQA<W1#:&%R(#(U-0HO1F]N=$1E M<V-R:7!T;W(@." P(%(*+U=I9'1H<R W(# @4@H^/@HO1C$V"CP\"B]4>7!E M("]&;VYT"B]3=6)T>7!E("]4<G5E5'EP90HO0F%S949O;G0@+T%R:6%L+4)O M;&1-5 HO16YC;V1I;F<@+U=I;D%N<VE%;F-O9&EN9PHO1FER<W1#:&%R(# * M+TQA<W1#:&%R(#(U-0HO1F]N=$1E<V-R:7!T;W(@,3 @,"!2"B]7:61T:',@ M.2 P(%(*/CX*+T8Q-PH\/ HO5'EP92 O1F]N= HO4W5B='EP92 O5')U951Y M<&4*+T)A<V5&;VYT("]4:6UE<TYE=U)O;6%N4%,M271A;&EC350*+T5N8V]D M:6YG("]7:6Y!;G-I16YC;V1I;F<*+T9I<G-T0VAA<B P"B],87-T0VAA<B R M-34*+T9O;G1$97-C<FEP=&]R(#$R(# @4@HO5VED=&AS(#$Q(# @4@H^/@HO M1C$X"CP\"B]4>7!E("]&;VYT"B]3=6)T>7!E("]4<G5E5'EP90HO0F%S949O M;G0@+T%R:6%L350*+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<*+T9I<G-T M0VAA<B P"B],87-T0VAA<B R-34*+T9O;G1$97-C<FEP=&]R(#$T(# @4@HO M5VED=&AS(#$S(# @4@H^/@HO1C$Y"CP\"B]4>7!E("]&;VYT"B]3=6)T>7!E M("]4>7!E, HO0F%S949O;G0@+T%!04%!5"M7:6YG9&EN9W,M4F5G=6QA<@HO M16YC;V1I;F<@+TED96YT:71Y+4@*+T1E<V-E;F1A;G1&;VYT<R!;(#(V(# @ M4B!="B]4;U5N:6-O9&4@,S @,"!2"CX^"CX^"F5N9&]B:@H*>')E9@HP(#,Q M"C P,# P,# P,# @-C4U,S4@9B *,# P,# Q.3$V,2 P,# P,"!N( HP,# P M,# P,#$U(# P,# P(&X@"C P,# P,3DQ.3(@,# P,# @;B *,# P,# R,C4R M.2 P,# P,"!N( HP,# P,#(V.34P(# P,# P(&X@"C P,# P,#<W,#@@,# P M,# @;B *,# P,# P,# V.2 P,# P,"!N( HP,# P,#(R-C(T(# P,# P(&X@ M"C P,# P,#$S-S(@,# P,# @;B *,# P,# R,C@P," P,# P,"!N( HP,# P M,# R-C<X(# P,# P(&X@"C P,# P,C(Y-S(@,# P,# @;B *,# P,# P,SDX M," P,# P,"!N( HP,# P,#(S,34V(# P,# P(&X@"C P,# P,#4R.#@@,# P M,# @;B *,# P,# Q,# W-R P,# P,"!N( HP,# P,# W.#8V(# P,# P(&X@ M"C P,# P,3,S,C0@,# P,# @;B *,# P,# Q,#(S-B P,# P,"!N( HP,# P M,#$U-34T(# P,# P(&X@"C P,# P,3,T.#,@,# P,# @;B *,# P,# Q.3 P M,B P,# P,"!N( HP,# P,#$U-S$S(# P,# P(&X@"C P,# P,C(S-S @,# P M,# @;B *,# P,# Q.3(U." P,# P,"!N( HP,# P,#(V-#4W(# P,# P(&X@ M"C P,# P,C8Q.38@,# P,# @;B *,# P,# R,S,R,R P,# P,"!N( HP,# P M,#(V-#$W(# P,# P(&X@"C P,# P,C8V-3@@,# P,# @;B *=')A:6QE<@H\ M/ HO4VEZ92 S,0HO4F]O=" S(# @4@HO26YF;R R(# @4@HO241;/&9D-C4S M9F%E8S<X,C1A83 U.65A,F%A9C<V,V,Q8V-A/CQF9#8U,V9A96,W.#(T86$P K-3EE83)A868W-C-C,6-C83Y="CX^"G-T87)T>')E9@HR-S<U-@HE)45/1@`` ` end |
July 25, 2004 Re: The Alias peek-a-boo Game | ||||
---|---|---|---|---|
| ||||
Posted in reply to Derek | I don't think anyone suggested that particular one was anything else, Derek. It's broken. Full Stop. With luck it'll get fixed. If you are feeling some animosity towards me, then please email directly outlining your issue. And thanks for not shouting this time! - Kris "Derek" <derek@psyc.ward> wrote in message news:i546196c2uti$.1stk2dxkftgx4.dlg@40tude.net... > On Sat, 24 Jul 2004 10:17:01 -0700, Kris wrote: > > > Also, please note that following doesn't even compile: > > > > class Writer > > { > > void put (bit x){} > > void put (int x){} > > } > > > > class MyWriter : Writer > > { > > alias Writer.put put; > > > > void put (bit x){} > > } > > > > "function put conflicts with MyWriter.put" > > This is just a bug. If the sub-class has a method with the same signature as the *first* method in the super class and the alias appears before the methods, then the alias will generate an error message. > > Try swapping the methods in the Writer class. Message goes away. > Change the signature in the sub-class to (int x). Message goes away. > Move the alias to be after the method in the sub-class. Message goes away. > > This is just a bug. > > -- > Derek > Melbourne, Australia |
July 25, 2004 Re: Satisfying Interface Requirements | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | On Sat, 24 Jul 2004 10:47:15 -0700, Kris wrote: > Okay, so I screwed up the example slightly. Please permit me to rectify that: > > interface IFoo > { > void foo (); > } > > > interface IBar > { > void bar (); > } > > class Foo > { > void foo (){} > } > > class Bar : Foo, IFoo, IBar > { > void bar() {} > } > > There have been reasons indicated as to why one would want to include super-class methods as part of a contract exposed by a sub-class. There hasn't yet been a single one to the contrary ... I don't think that anybody is disagreeing with this position. Even Walter ;-) > How about it Walter? I'd really, really, like to understand why super-class methods are explicitly denied from satisfying a sub-class contract. At least then there'd be something to discuss vis-a-vis pro & con ... <pedantic_mode> D does not *explicitly* deny super-clas methods from being exposed in a subclass. It *implicitly* denys them. To explicitly deny, one would have to add code to do that. However, it happens by *not* adding code, thus it is implicit. </pedantic_mode> But more to the point...D is not Java, is not C++, is not C#, is not SmallTalk, is not <insert your favorite OO lang here>. D allows the coder to satisfy a sub-class contract, but you have to do it explicitly. It is not done automatically for you. Why? Dunno. But that's the way of D ( and Walter). Okay so Java does it for you --- good on ya, Java! But this is D. class Bar : Foo, IFoo, IBar { void bar() {} } The way that I translate this definition is like this ... Bar is a class that is derived from Foo, and must implement the methods listed in IFoo, and must implement the methods listed in IBar. Because it is derived from Foo, any methods implemented in Bar that have the same signature as those in Foo, will override the Foo methods. If I wish users of Bar to access Foo methods, I must explicitly name those methods in Bar. In the code above, Bar implements all the IBar methods but does not implement any of the IFoo methods. Therefore it is in error. In D, one way of doing this is ... class Bar : Foo, IFoo, IBar { void bar() {} void foo() {Foo.foo();} } Yes, it is verbose having to write all this stuff. So maybe the approach to Walter should be along the lines of ... "Hey Walter, how can you get D to help us out here? We would like to avoid all this tedious and error-prone tasks, and thus make it easier for coders?" -- Derek Melbourne, Australia |
July 25, 2004 Re: The Alias peek-a-boo Game | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | On Sat, 24 Jul 2004 17:47:19 -0700, Kris wrote: > I don't think anyone suggested that particular one was anything else, Derek. It's broken. Full Stop. With luck it'll get fixed. Sorry, it seemed to me that you were implying that this current behaviour is designed that way. > If you are feeling some animosity towards me, then please email directly outlining your issue. And thanks for not shouting this time! What????? "animosity" ... "shouting" ... I don't get it. Why do you think that I'm angry or being nasty. Sorry if I come across that way, but it isn't (isnt/aint/isnot) so. -- Derek Melbourne, Australia |
July 25, 2004 Re: Satisfying Interface Requirements | ||||
---|---|---|---|---|
| ||||
Posted in reply to Derek | "Derek" wrote ... > <pedantic_mode> > D does not *explicitly* deny super-clas methods from being exposed in a > subclass. It *implicitly* denys them. To explicitly deny, one would have to > add code to do that. However, it happens by *not* adding code, thus it is > implicit. > </pedantic_mode> When I can't satisfy the Interface contract even with the mystical power of 'alias', I consider it an explicit denial. You are certainly welcome to your particular interpretation too :-) > Yes, it is verbose having to write all this stuff. So maybe the approach to > Walter should be along the lines of ... > > "Hey Walter, how can you get D to help us out here? We would like to avoid all this tedious and error-prone tasks, and thus make it easier for coders?" I tried that approach on April 8th. Perhaps he'll listen to you instead <g> |
July 25, 2004 Re: Three notable problems with method name resolution | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vathix | "Vathix" wrote > Satisfying Interface Contracts: > From class.html#interface it says "A reimplemented interface must implement > all the interface functions, it does not inherit them from a super class." I > don't see why you're specifying to (re)implement IFoo without reimplementing > it. You can't specify a base class twice, why are you doing it for an interface? It just so happens that specifying to implement an interface has > an added feature for reimplementing. In fact, when I tried it with a class, > the compiler crashed! Sorry ... there was a typo in the example. Fixed in the revision. > The Alias peek-a-boo Game: > I remember reading that it helps prevent the possibility of accidentally > calling the wrong function. Actually, I think there was a big long thread on > it, and I think people said they'd rather opt-into this danger using an alias. However, there is a problem when trying to both override and alias overload; I've been meaning to bug post it (wow I'm lazy ;). This is just the kind of sneaky issue that manifests once the compiler starts to special-case certain conditions. My position is that the compiler should treat inherited methods in effectively the same manner as if they were all declared within the subclass itself (sans override for the moment). It's simpler for the compiler and simpler for the user. If this were the case, you would not have the problem you ran into <g> |
July 25, 2004 Re: Satisfying Interface Requirements | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | Kris wrote:
> Okay, so I screwed up the example slightly. Please permit me to rectify
> that:
>
> interface IFoo
> {
> void foo ();
> }
>
> interface IBar
> {
> void bar ();
> }
>
> class Foo
> {
> void foo (){}
> }
>
> class Bar : Foo, IFoo, IBar
> {
> void bar() {}
> }
>
> There have been reasons indicated as to why one would want to include
> super-class methods as part of a contract exposed by a sub-class. There
> hasn't yet been a single one to the contrary ...
>
> How about it Walter? I'd really, really, like to understand why super-class
> methods are explicitly denied from satisfying a sub-class contract. At least
> then there'd be something to discuss vis-a-vis pro & con ...
The idea here, as I understand it, is that Bar is *re*implementing the IFoo interface, and so much explicitly define those methods declared in the interface.
What I don't understand is why it would be useful to do so.
Secondly, it leads me to think that, perhaps, Bar implements IFoo *twice*. But then I have to wonder why we would want to do this and how we are to state which IFoo we want to access.
This second reason is probably, I think, the most important reason the current behaviour should be changed: it doesn't mean what a stupid person (hello!) thinks it means at first glance.
Implementing an interface should just be a contractual obligation that the class define all the methods specified therein, wherever the definition. (abstract or what have you)
-- andy
|
July 25, 2004 Re: Revised: Three notable problems with method name resolution | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | Dagnabit. I apologize: made a glaring typo ... will link here instead http://svn.dsource.org/svn/projects/mango/trunk/doc/Names.pdf "Kris" <someidiot@earthlink.dot.dot.dot.net> wrote in message news:cduv7v$1e9u$1@digitaldaemon.com... > I'm somewhat loath to post this (for a number of reasons), but will anyway. > Here's a revised edition, with some additional clarification in the Interfaces section (the grayed sections), some minor example fixes per Derek's post, and an addendum that speculates as to what's really going on behind all this. > > JCC makes a very good point about trying to address each of these in individual threads. They may exist already, but I could be wrong. > > For those who may think I'm just having a go at Walter, please consider how > confusing it can be to have three individual non-obvious issues within just > one specific area of the language. > > - Kris > > > "some idiot" <fu@bar.org> wrote in message news:cdsd5t$u5$1@digitaldaemon.com... > > Attached is a small pdf noting three outstanding issues ~ each of which > has > > various bug reports stretching back into the old NG. Given that the v1.0 release is getting closer, it seemed appropriate to try getting some priority and/or traction. > > > > Such things might simply fall by the wayside otherwise. > > > > > > > > > |
Copyright © 1999-2021 by the D Language Foundation