I like Flipper but in its current state it has caused me more grief than
benefit. There is no easier way to crash the session than to have an error in a printOn in an object which is, say is being displayed in a list. Or trying to inspect some com objects such as an Excel application. Thats often fatal. This often lead to lots cursing, knowing I'm going to have to spend 20 mintes recovering my image and packages. Maybe it can be made more robust by catching exceptions from the printOn (as in a regular inspector). -alan |
One other side effect of Flipper is that the aspects are instantiated when
pointing to a generated Active/X object. I wrapped FileSystemObject, and if you inspect a Drive of any size, it takes a real long time to inspect as it runs through executing some expensive aspects (collections for example). jlo "Alan Reider" <[hidden email]> wrote in message news:[hidden email]... > I like Flipper but in its current state it has caused me more grief than > benefit. There is no easier way to crash the session than to have an error in > a printOn in an object which is, say is being displayed in a list. Or trying > to inspect some com objects such as an Excel application. Thats often fatal. > > This often lead to lots cursing, knowing I'm going to have to spend 20 mintes > recovering my image and packages. > > Maybe it can be made more robust by catching exceptions from the printOn (as > in a regular inspector). > > -alan > > |
Since one is usually using an inspector to see what the state of an object is,
it rather lessens the utility if bringing up the inspector causes a change to the field of observation. I would really like it if the inspector would be more conservative and not come up with self selected. It may seem trivial unless one is using printOn a lot (often one of the first things i write in a class), AND one is using lazy vars which are ref'd by the printOn. Also, i think CTRL-left click should select/deselect in the treeview of the inspector. -Alan On Fri, 5 Apr 2002 21:30:32 -0500, "Jeffrey Odell" <[hidden email]> wrote: >One other side effect of Flipper is that the aspects are instantiated when >pointing to a generated Active/X object. I wrapped FileSystemObject, and if >you inspect a Drive of any size, it takes a real long time to inspect as it >runs through executing some expensive aspects (collections for example). > >jlo > >"Alan Reider" <[hidden email]> wrote in message >news:[hidden email]... >> I like Flipper but in its current state it has caused me more grief than >> benefit. There is no easier way to crash the session than to have an error >in >> a printOn in an object which is, say is being displayed in a list. Or >trying >> to inspect some com objects such as an Excel application. Thats often >fatal. >> >> This often lead to lots cursing, knowing I'm going to have to spend 20 >mintes >> recovering my image and packages. >> >> Maybe it can be made more robust by catching exceptions from the printOn >(as >> in a regular inspector). >> >> -alan >> >> > |
In reply to this post by Jeffrey Odell-2
To clarify, Flipper, in it's list pane, displays the "=xxxxxx" on each list
item. So, even before you select an aspect, it is instantiated. This causes you to instantiate very expensive aspects even if you don't want to look at their values. Worse, I think it is recalculating it every time the window gets focus. Of course, I can remove it from the aspects list by pverriding #publishedAspects (I think, I haven't tried it), but that makes it unavailable when I really do want to look for that aspect by clicking on the list item. BTW - I like Flipper, and I like the idea of being able to inspect (passive) or use aspects (active) - I just think it needs a little fine tuning. Perhaps some Flipper options to turn off the printOn: value of the aspect in the list is a good starting point. In the case of looking at IFolder, generated from the ActiveX Scripting objects, I think it is the folder #size aspect that is the culprit. The list fills pauses, when it gets to that aspect, a bunch of disk access ensues, then the window finishes displaying. It largely freezes the Dolphin as a whole, so yuo have to wait until the aspect is finished instantiating. jlo |
In reply to this post by Alan Reider
"Alan Reider" <[hidden email]> wrote in message
news:[hidden email]... > I like Flipper but in its current state it has caused me more grief than > benefit. There is no easier way to crash the session than to have an error in > a printOn in an object which is, say is being displayed in a list. Or trying > to inspect some com objects such as an Excel application. Thats often fatal. > > This often lead to lots cursing, knowing I'm going to have to spend 20 mintes > recovering my image and packages. > > Maybe it can be made more robust by catching exceptions from the printOn (as > in a regular inspector). Actually the inspector itself (in beta 3) does do this, but the ValueWorkspace presenter it uses as a standard presentation/editing component does not (#823). I'd be surprised if an error occurring during its #printOn: would actually be "fatal", whereas such an error in the display of the tree could cause a meltdown due to it firing as a result of paint-related callbacks from the tree view control. It is worth bearing in mind (I'm commenting here on other posts in this thread) that the Flipper inspector's rich presentation of an object may not always be appropriate/desirable/fast enough, in which case one has other options: 1) Hold down the Shift key when ever performing an "inspect" command (e.g. Crl+Shift+I) to open the alternate, more basic, inspector 2) Override #inspectorClass (e.g. to answer BasicInspector) 3) Swap the system #alternateInspectorClass and #defaultInspectorClass options so that a more basic inspector is used by default and Shift is needed to get Flipper. 4) Rearrange the order of the renderers in Flipper class>>defaultRenderers so that the PublishedAspectInspector appears after the InstVarInspector. The former goes through accessor methods to get values, and so may change the state of the object if the accessors in question do that. Since it accesses the values of aspects just to build and display the tree, any lazily initialized instance variables will inevitably get initialized as a result. The InstVarInspector, on the other hand, uses #instVarAt:, and so may be less intrusive. Regarding the last point it would be interesting to get some feedback as to the preferred order of renderers in the inspector as shipped. Would you prefer to see the "basic" instance variables pane first, or the published aspects? What does everyone else think? Regards Blair |
Hi Blair,
My flipper "horror story" (greatly overstated) has to do with proxies. The flipper sometimes assumes too much. The flipper is great for many kinds of objects, but, I think that Squeak has it right offering inspect and explore commands; it's not that much clutter in the menus and is more clear IMHO. I'm actually more bothered (not ready to make picket signs or anything<g>) by the changes in the collection inspectors, mostly the behavior in inspecting ordered collections. The implementation details are important, but, are secondary to most of my debugging. My preference would be to keep the D4 inspectors pretty much as they are and add the flipper as a new command and tool that can be used to good effect on many kinds of objects. On the subject of speed, there's a distinction between the IDE and apps for end users. For end users, I care about raw speed; e.g. how long it takes to open a window. In the IDE, a tool that's slow to open but does something "worth the wait" is perfectly ok. My new browser filtering goodie is an example: CHBs take longer than ever to open, but, are more useful to me because they show (more or less) only what I want to see. With that said, opening an inspector is very common, so it should be fast unless the user explicitly requests the more complex view. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by Blair McGlashan
Thanks for the insights on how it works - I had not yet looked at
alternatives so you've saved me some time. I think #4 would be a good idea - essentially you get the inspector you always had, but the additional tab to explore the object via aspects. And, if you made that default order a Dolphin Option setting, folks could then change it to their preference. This would be a natural progression from the "old" inspector to the new. jlo |
Oops - this doesn't solve the problem I pointed out about the aspects
getting instantiated via the printOn: string being shown in the list. I swapped the order of the renderers as in #4, but the list pane on the Published Aspect Browser card is still instantiating behind the scene, and I still have the problem of a long delay on open. Then, when I flip to the Published Aspects tab, I get the delay again. Can that list be deferred somehow? jlo "Jeffrey Odell" <[hidden email]> wrote in message news:[hidden email]... > Thanks for the insights on how it works - I had not yet looked at > alternatives so you've saved me some time. > > I think #4 would be a good idea - essentially you get the inspector you > always had, but the additional tab to explore the object via aspects. And, > if you made that default order a Dolphin Option setting, folks could then > change it to their preference. This would be a natural progression from the > "old" inspector to the new. > > jlo > > |
In reply to this post by Bill Schwab
"Bill Schwab" <[hidden email]> wrote in message
news:[hidden email]... > Hi Blair, > > My flipper "horror story" (greatly overstated) has to do with proxies. The > flipper sometimes assumes too much. Try: <your subclass of ProtoObject> new "Ctrl+I" If you get a Flipper inspector then it will not be due to the system as shipped. > > The flipper is great for many kinds of objects, but, I think that Squeak has > it right offering inspect and explore commands; it's not that much clutter > in the menus and is more clear IMHO. I'm actually more bothered (not ready > to make picket signs or anything<g>) by the changes in the collection > inspectors, mostly the behavior in inspecting ordered collections. The > implementation details are important, but, are secondary to most of my > debugging. My preference would be to keep the D4 inspectors pretty much as > they are and add the flipper as a new command and tool that can be used to > good effect on many kinds of objects. > Bill have you actually tried the alternate inspectors in beta 3 yet? > On the subject of speed, there's a distinction between the IDE and apps for > end users. For end users, I care about raw speed; e.g. how long it takes to > open a window. In the IDE, a tool that's slow to open but does something > "worth the wait" is perfectly ok. My new browser filtering goodie is an > example: CHBs take longer than ever to open, but, are more useful to me > because they show (more or less) only what I want to see. With that said, > opening an inspector is very common, so it should be fast unless the user > explicitly requests the more complex view. Then you will probably want to reconfigure the system options to make flipper the alternate inspector. Personally I wouldn't, but each to his own :-). Regards Blair |
Blair,
> Bill have you actually tried the alternate inspectors in beta 3 yet? Probably not. Inability to move the image between machines and the complexity of building a beta 3 image from my D4 packages have had me nearly shut down. > Then you will probably want to reconfigure the system options to make > flipper the alternate inspector. Personally I wouldn't, but each to his own > :-). That's what I've arranged for Migrate to do. Have a good one, Bill --- Wilhelm K. Schwab, Ph.D. [hidden email] |
Blair,
> > Bill have you actually tried the alternate inspectors in beta 3 yet? > > Probably not. Inability to move the image between machines and the > complexity of building a beta 3 image from my D4 packages have had me nearly > shut down. I'm starting to suspect that the basic inspector is happier as the alternate than as the default inspector. Rather than try to explain it, try setting both your default and alternate inspectors to BasicInspector - then inspect OrderedCollection new add:'Try'; add:'this'; add:'again'; yourself. with and w/o shift, and you'll (if it reproduces) see what I mean. Caveat: it could be something about the way my image gets built - maybe a package clash is causing this, but, I see things like the attached, where items 4 and 5 are nil, and it's happening in beta 3. Have a good one, Bill --- Wilhelm K. Schwab, Ph.D. [hidden email] begin 666 inspector.jpg M_]C_X `02D9)1@`!`0$!+ $L``#_VP!#``@&!@<&!0@'!P<)"0@*#!0-# L+ M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_ MVP!#`0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P `1" #M`?(#`2(``A$!`Q$!_\0` M'P```04!`0$!`0$```````````$"`P0%!@<("0H+_\0`M1 ``@$#`P($`P4% M! 0```%]`0(#``01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0`'P$``P$!`0$! M`0$!`0````````$"`P0%!@<("0H+_\0`M1$``@$"! 0#! <%! 0``0)W``$" M`Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*[hidden email]-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H`# ,!``(1`Q$`/P#K_'7CIO!; M:>JZ;%=BZ0GEE3;M5#W0YSNKB_\`A?2_] &+_O\`+_\`&JE^./\`K="_ZYR? M^@Q5T>A:A9W'@'1(].\-1WEO_9BV]WJBQJ!!,MH7)'RDMADVLQ*@,P`+-D#K M@J,*493A=N_6W4SO)R:3V,.?XQZA:AFN?",L"J^QC+\@#9=<$F+KF.08]48= MC5?_`(7E)_T+T7_?]?\`XW4WQ>U30-2\/PVVC6ENDMM?Q2F:)8E\Z%HI1O4* M=_EY*?,RA6W(5+!@3<\:>'M/OO\`A*=-TC2[,WEG<Z=';Q1V<5K]G,V%^21. M9=Y8`B3:%SD$X%:PA0DDW"U_-^7^9,W-.R9F_P#"\I/^A>B_[_K_`/&Z/^%Y M2?\`0O1?]_U_^-U2N/A]X:A%G<3ZT]E;)K+:5?L9C.L;!"W#M#%M.5VD[64; M@V<`BK2?#JV6WU>R5OLZR?V7]FN%FAO4D2XN"GF))Y2,%]EVYVG)92*OV6&_ ME_,CFJ=Q_P#PO*3_`*%Z+_O^O_QJC_A>4G_0NQ?]_P!?_C54?">F:%#\88M M@TUY[:*>[M;@:DT5RLPC5BK*OE+L.4SW/.,XSEFB>"-'U^U\-/<R7D>H^(_M MS&6%XTAMWA+$$1"/E3@?*&7';'9NCAUO'\7Y^?D"G4?4T/\`A><G_0NQ?]_U M_P#C5'_"\Y/^A=B_[_K_`/&JR],\`Z+J>@Z/?65Z]_Y\]I#J+PWJ1O9M--L( M,!C)P/NAM_)^8+MJ]:?#+1=7U.*&SNK^UABUZXTB<32),TBQ1-+O4A%"$A", M$-C<#SC!'2PJO>.WK_F'-4[DW_"])/\`H78O^_Z__&J/^%Z2?]"[%_W_`%_^ M-5AVGA/PEJ<\TVG:O<W,-EI5U?WEK$S%MT1&Q5F>%!A@P/\`JSC:1SD$,>WT M`_".YU!-)F#MKA@MY&GC,\?^C @/)Y0WINR=@"]1SQDU]7P_\K_'_,.>?<W_ M`/A>DG_0NQ?]_P!?_C5)_P`+TD_Z%V+_`+_K_P#&JAE^&.BC5M1TM+K4!-I5 MYIL%S.9$*W*W+*K%$V9C(+9&6?ICWKD=3\.Z5_PG\'AK2;J\$9OOL,T]W&N5 MD,[)E0IY4+MZX)()PN0`X4,++:/Y_P"8.=1=3M/^%Z2?]"[%_P!_U_\`C5'_ M``O23_H78O\`O^O_`,:IFG?#+0-5U>.&&?4X+>+7+K2)U>>-WD\N%Y%D5A& MO*8*D-UZC%<5XDT'3['P[X?US33<QPZLMP#;7,BRM&T4FW.]54$$$<;1C'4Y MX(T,+)\JC^?GY^0.=1:W.X_X7K)_T+L7_?\`7_XU1_PO63_H78O^_P"O_P`: MJI;?"_37A:WN[F:VU2RN=.AU"WCN?.P+EU4CF%51OF!&UI1P0>QK#\5^$=*T MS0KS4],>]3[%KDVCR1W,JR^;L7<)`51=O0_+ANHYXY<:&$D[*/Y_YC<ZBZG3 M?\+UD_Z%V+_O^O\`\:H_X7K)_P!"[%_W_7_XU5C2=*TP^+?!7AUM+T]]-U/0 M%N;M7M(VEDD>*9F;SB/,4Y QAAC QBL:U^'OA^[UOPIHZWVII>:S8P7\Q*QF M-(S%*\@5N#N)10N00HR26S@3['"]8^>[\_\`(?-4[FC_`,+VD_Z%R+_O^O\` M\:H_X7M)_P!"Y%_W_7_XU4Z>'M(\3^"/"N][FQTNQT_5KYDDF#R$),@P9%CX M&6SD1L<#&">:Y^#PGX)GT[6]6BUC4[G3M-BLI'^RH"Z/+(R21YD2/?\`=&U\ M+C=RIQ@M4<*]X/\`'O8.:?<V?^%[2?\`0N1?]_U_^-4G_"]Y/^A<B_[_`*__ M`!JL#4_"'A;1_#=G)?ZU-#JUYHZ:C N&97D?)6/RQ$0%(!7>9<YYVXKM=*\* M:1H\7BGPJ$NKE$O-$AO9II@%N!),A.U54&,?,P^\QZ<C%$J.%2NH/\>Z7Z@I M3[F3_P`+WD_Z%R+_`+_K_P#&J/\`A>\G_0N1?]_U_P#C58QTU?%GQ7F\(R+9 M6.G+J=RJFST^"*18XO,(4.J G*KCDD9P2#BMGPQH&GV/AR_UW33=1PZMX6U4 M-;7,BRM$T4B)G>JJ""".-HQCJ<\.5##12O'7U?7_`(9@IS?4/^%[R?\`0N1? M]_U_^-4?\+XD_P"A<B_\"%_^-5I>.O"OAZZ\4:YXA\1:E-;6QU.VL (V*;1] MEC=FXBD+-@\+A1\IRW(KS[6?#NA:'X5T[4_.O=3DU26\6UGBD6WC1(7"(S(R M,S;OO$;EP#CWITZ&%FE[CU]>U^X.4UU.N_X7Q)_T+D7_`($+_P#&J/\`A?$G M_0N1?^!"_P#QJG^(_#^AR^/_`!G965C]A_L_0IKHK&D#0LPBA*[(VB_=?>.2 MIW$G(*\YJR_"_1!JVHZ4EUJ FTF\TR"YG:1"MRMTRJQ1-F8R"V1EGZ8]Z2I8 M2R;CY[OR\_-!S3[D_P#POB3_`*%R+_P(7_XU1_POF3_H7(O_``(7_P"-5R_B MSPAI.F:#>:IICWJ?8M=FT>2.YE67S=B[A("J)MZ$;<-U'/'/"UT4\%A9JZC^ M+_S$ZDUU/8?^%\R?]"Y%_P"!"_\`QJC_`(7S)_T+D7_@0O\`\:KQVBK_`+/P MW\OXO_,7M9=SV+_A?,G_`$+<7_@0O_QJC_A?4G_0MQ?^!"__`!JO'324_P"S ML-_+^+_S#VLNY['_`,+ZD_Z%N+_P(7_XU1_POJ3_`*%N+_P(7_XU7CE(:/[. MPW\OXO\`S'[27<]C_P"%]2?]"W%_X$+_`/&J/^%]R?\`0MQ?^!"__&J\<I*? M]G8;^7\7_F'M)=SV3_A?<G_0MQ?^!"__`!JC_A?<G_0MQ?\`@0O_`,:KQNBC M^SL-_+^+_P`P]I+N>Q_\+[D_Z%N+_P`"%_\`C5'_``ON3_H6XO\`P(7_`.-5 MXW13_LW#?R_B_P#,/:2/9/\`A?DG_0MQ?^!"_P#QJC_A?DG_`$+<7_@0O_QJ MO&J*?]FX7^7\7_F'M)'LG_"_9/\`H6HO_ A?_C5'_"_9/^A:B_\``A?_`(U7 MC5%']FX7^7\7_F/VDCV7_A?LG_0M1?\`@0O_`,:H_P"%^R?]"U%_X$+_`/&J M\:I*?]F87^7\7_F'M)'LW_"_9/\`H6HO_ A?_C5'_"_9/^A:B_\``A?_`(U7 MC-%/^S,+_+^+_P`P]I(]E_X7])_T+47_`($+_P#&J/\`A?TG_0M1?^!"_P#Q MJO&:0T?V9A?Y?Q?^8>TD>S_\+^D_Z%J+_P`"%_\`C5=5I/CCQ=KFE0:GIW@B MWELY]QCD;4[9-VUBIX90>JD=.U?-U?2/P^O+6P^%.B75Y<PVUND<V^69PB+F MYE R3P.2!^-<./PN'PU)3A#6]M6_/S+A)R=KEW_A(O'7_0AVO_@WM/\`"H;7 MQ9XTO;<3V_@:U>(LZAO[6M0"58J<9'(RI&>AQQ6[I^L:9JWF?V;J-G>>5CS/ MLTZR;,YQG:3C.#^5<?<Z38ZYX9\):;J4'GVDVIW/F1[V7.!>,.5(/4#O7D^V MA_S[7_DW_P`D:6?<V?\`A(O'7_0AVO\`X-[3_"LO2_B'XGUJ[O[73_!EM-+8 M.L=S_P`3*W4(S;L88J V=K<J3TIJ^!_#OAKQ)X>O-(T[[-</>R1,_GR/E3;3 MDC#,1U4?E5/X6?\`(7\9?]?-K_*:M*<Z<HS;IK17^UW2_F\Q._<Z+_A(O'7_ M`$(=K_X-[3_"JMGX^UC_`(3"Q\.ZMX;M[">[1W#I=PW&T*K-R$7'\/0D'G-< MQ_:UU]N\C^U]1_X0C[;M_M?<?,WY_P!3]HW[_L^_CSL9S\F['S59U'_DNVC_ M`/7*3_T0U*G*G4;BX):/^;HF^XW==3A-19GU.[=V+,TSDDG))W&BDO\`_D(W M/_75_P"9HKG ]1^)_A[5-;U#0IM.TY;^.T(DGA>5$5UQ$=IW'HP4CH?I7(3> M&_&UW]OAO-%DN].GBFCM-.GU)'@L"W$;1*6(!C4E5P%X[@<5[9<_ZU?^N:?^ M@BN2?Q;M\33Z1G2(O)N8X,7.I^5/)O1'RD7EG=]_`&[D@]*N-=J/+9:$2HQD M^9GGVH^$_&&IZ-!:7&CR27"7,UP\[7D1+LXC&3EB3]QL^Y'XUK_PK\1]5@6# M43?WD*MO$=QJ2R*&P1G#2$9P3S[UZ5IGC"WNH9YKGD&2,6\=G!+.[HUO#*6V MJN\J#+C<54#*@@$\])#-%<01SP2)+#(H=)$8,K*1D$$=015TL4Z45"$4EJ^O M5MOKW9=9.M-U*CNWO\E8\8DT+XI2O$\EUJKM$V^-FU4$HV"N1^\X.&89]"?6 MJL_@[XA77VO[1'>2_;-GVGS-01O/V?<WY?YMO;/3M7L/B#5_[#T:2_V0OMDB MC_?S>5&-\BIN9\':HW9)P>!56U\2PG3XKJ\-LYG9O(72I)+\2(N S#9&#@,< M$XP"0"<D"K6.J+:*^[_@F?L(]V>9'0?BDTZ3FZU4S(K(LAU4;E5B"0#YF0"5 M7(]AZ5!_PBOQ($\,X-_YT#2/#)_:2[HVD),A4^9D%B3DCKGFO1-$\:B_;2H+ MFWS/>6RR.UK'+((Y/+MWPRA#M7_2/O%BH &6R2!UM'U^HOLK[O\`@A["/=GB MEKX=^)%M/IKO#<W,.G3Q3VUM<7ZO"C1GY1M\S `''&.#BC5_#OQ(UO5O[1O( M;DS).T\"B_7;;,S;L19D)0`@8P>P]*];O=6BT_4+>"YV16TL$TC74D@5$:/: M=ISQDJ7;KTC8] 2,^U\5P2PV4L\/DB6R-S<@,7:VDWH@A*@9+LYD0# ):)@` M3D ^O3O?E7]?,/8Q[L\PE\-?$Z>ZM[J:74Y+BWW>1,^J*7BW##;29,C(X..M M1MX4^)#/>.QORUZH2Z8ZDN9U`V@/^\^88)&#G@XKUR/Q-I$D]M;BY=;BY9DB M@>"1)2RE-P*%0RD"1&Y ^4[ON@FJVE^*K2XT"QO;N3_29;:"26*VADD_>21[ M]B*H8LP&6VC)"X8\$&G]?J?RK[O^"'L8]SRQ_"GQ)D@M8'.H-#:,CVT9U)2L M+(,*4'F84@=".E49OAUXTN9Y)Y]->6:5B\DDEW$S.Q.222^22>]>U1^)M+EO M/LHDN5DW(C-)9S(B.ZJRHSLH56(=/E)!RP&,G%2/X@TV.2XCEEFA>#.5EMI$ M,GS!?W891YOS%1\F[)91_$,M9C56T5_7S#V$>YY%+X:^)T]W;W4LNIR7%MN\ MB9]44O%N&&VDR9&1P<=:HR^ /',]I;VLME-);V^[R(7O8RD6XY;:"^!D\G'6 MO9W\3:7$D32R7,8==[;[.93"F2-\H*_NERK89]H(4G. 36O0LQJ+:*^[_@A[ M"/<\/'AKXG"UBM1+J8MX=GEPC5%V)L(*8'F8&T@$8Z8&.E5)_ WC^Y@D@GMK MF6&6<W,D<E]&RO,1@R$%\%B/XNM>T>(=2NM'T2ZU*UM(;K[+&\TL<LYB^15+ M':0C9;C@$ <]14;Z]#8)%'JVRWNBN^5+827$<*9(#O($&Q2 ?F<*/E;D[2:% MF-1;17W?\$?L8]SR*+PG\2K?33IL)U".P*LAM4U)1$5;.X;!)C!R<C'.35=_ M`WC^2>UG>VN6FM%1+:0W\9:%4.5"'?E0#T Z5ZYK/BJTL=-U1K63?=VMM/)$ M9(9/)DDC1F*"3 5V&TY56R-K=-IQIVVJVEW?2VD!F=XL[I!!)Y60<$"3;L+ M\$ D@@CL</\`M&K_`"K[O^"'L8]SQJ7PS\3Y[NWNII=3DN;;=Y$SZHI>+<,- MM)DRN1P<=:9=^$_B5?I,EX=0N$G5$E6;4E<2*I+*&S)R`22 >A)->ZUS&I^- M],TI=<2ZN+..[TW/E6LMVJ27/[E)1M!Y&2^T8!Y'X4+,:G\J^[_@A[&/<\QA M\)_$JWTTZ;"=0CL"K(;5-241%6SN&P28P<G(QSDTDWA/XE7&FC39CJ$E@%5! M:OJ2F(*N-HV&3&!@8&.,"O5M9\56ECINJ-:R;[NUMIY(C)#)Y,DD:,Q028"N MPVG*JV1M;IM.+MKX@TV\OFM(99O-$DD(:2VD2-W0D,J.RA78;6X4DX5CT!H_ MM&IORK[O^"'L8]SQ^Z\,_%"]\G[5+J<_D2K-%YNJ*WER+T=<R<,,G!'-1S^$ MOB7<SR3SG4)9I8#;222:DK,\).3&29,E"?X>E>[T4+,JB^RON_X(>Q7<\,B\ M,_%""[N+J&74X[FYV^?,FJ*'EVC"[B),M@<#/2HU\)?$N."Z@0Z@L-VSO<QK MJ:A9F<88N/,PQ(ZD]:]WHH_M*I_*ON_X(>Q7<\(;PE\2VMTMR=0,*0-;+&=3 M7:L+`!HP/,P$(5<KT.T>E#>$OB7);VMNYU!H;1D>VC;4U*PL@PI0>9A2!T(Z M5[O13_M.I_*ON_X(>Q7<\ G\"?$&Y@D@GMKJ6&6<W,D<E_&RO,1@R$%\%R/X MNM5/^%8>,?\`H#_^3,/_`,77T5136:UELE^/^8>QB?.G_"L/&/\`T!__`"9A M_P#BZ/\`A6'C'_H#_P#DS#_\77T713_M:MV7X_YA[&)\Z?\`"L/&/_0'_P#) MF'_XND_X5AXQ_P"@/_Y,P_\`Q=?1E%']K5NR_'_,/8Q/G/\`X5AXQ_Z _P#Y M,P__`!='_"K_`!C_`- ?_P`F8?\`XNOHRBG_`&O7[+\?\P]C$^<_^%7^,?\` MH#_^3,/_`,72?\*O\9?]`?\`\F8?_BZ^C:*/[7K]E^/^8>QB?.7_``J_QE_T M!_\`R9A_^+H_X5?XR_Z _P#Y,P__`!=?1M%']KU^R_'_`##V,3YQ_P"%7>,O M^@/_`.3,/_Q='_"KO&7_`$!__)F'_P"+KZ.HI_VO7[+\?\Q^QB?./_"KO&7_ M`$!__)J'_P"+I/\`A5WC+_H#_P#DU#_\77T?11_;%?LOQ_S#V,3YP_X5;XR_ MZ W_`)-0_P#Q='_"K?&7_0&_\FH?_BZ^CZ*/[8K]E^/^8>QB?.'_``JWQE_T M!O\`R:A_^+I/^%6^,_\`H#?^34/_`,77TA13_MFOV7X_YA[*)\W_`/"K?&?_ M`$!O_)J'_P"+H_X5;XS_`.@-_P"34/\`\77TA11_;-?LOQ_S#V43YN_X5;XS M_P"@-_Y-0_\`Q='_``JSQG_T!O\`R:A_^+KZ1HH_MFOV7X_YA[)'S;_PJSQG M_P! ;_R:A_\`BZ[*PL/B%9>&;70&\,V5Q80*R^7/+ XDS(TF6#,0<%OT%>P4 M5E6S*I6CRU(IKY_YC5-+8\FT^#X@Z3YG]F^$M,L_-QYGV8VT>_&<9VD9QD_G M39;;Q_<:7;Z;<>$M.N+2!F=([B2WE&YG=BV&8\_.P^GXUZW17-[>'_/M?^3? M_)%<OF>/VFF>-["Z2ZL_!.CVUPF=DL*6J.N1@X(.1P2/QINB:?\`$70+C5)K M+P_"#J,D<DFZYA)4H' `^?H=Y_(5[%15+$I)I4UK_B]>XN7S/,_[1^*G_0#@ M_P"_\'_Q50Z-HWC"]^(>F:YKFDI;QP+(LDJSQ,,&-E'"MGJ0.!7J5%)8A*_+ M!+1KKU5NX^7S/G>__P"0C<_]=7_F:*+_`/Y"-S_UU?\`F:*R$?1US_K5_P"N M:?\`H(KF4EO-*U756BT74;U+NY6<20M;J@_<QQX&^8,?]7U('7\3TEY&))5S M+/'B-/\`5%!GY1UW*W]*K_9T_P"?N^_[[B_^-UF4<9%\.XH;:W4SV-W-`JHO MV_3Q/%M\B"(G9O'S9MU(.[@,PP>M=C9VR65C;VD9RD$:QJ=JKPHP.% 4=.@` M'H!3OLZ?\_=]_P!]Q?\`QND,$:E0;N^RSJ@^>+DL0 /]7ZD4P,WQ-:W-WH;I M9H[W,<\$\:HBN2T<J..&= 1\O/S#C..>*S+.W\0:A/'?7(2PU&V5X8WN+-#% M)%(4+#9'<N=P:)?F+ 8.-IZCIOLZ?\_=]_WW%_\`&ZJ_:M-_Z#$O_@1!_P#& MZ ,/1?!\NAR6LUOJ*/-"JPL9+<E6B\FWC< !QAB;92&R0-Q!5NM=55:#[-=1 M"6WU&ZFC)*AXY86&02",B/L00?<5+]G3_G[OO^^XO_C=(##\6V1U&Q@MO[,O M+T>9N8VS1#:I!213OD3[\;R)D9QNSP0*R[;29;BXOH_[&U&Q-W<QW$=Q.8&C M@,<GGJK!9V9U,QD8X .)=N0`".P^SI_S]WW_`'W%_P#&Z/LZ?\_=]_WW%_\` M&Z8&-IWAZ6UUK^UKF\2:ZD683".$QHS.(%!4%F*@+;KP2<EB<CI6?'X+>TT2 MRTNSN[/R;>- PNK-I LRKM\Z';(C0N>22&/)R,,6+=),;6WV^?J-U%NZ;Y85 MS^<=1?:M-_Z#$O\`X$0?_&Z ,"Q\,ZBEW>6\][G3/MMM.IF3S+FX,,4&',N_ M`R\7S IDX;D;@1!%X!\J\%P+NS5XX]L<L=CMFE=9HI4DN'W_`+YMT(W<*6W- M@KGCJX3:W&[R-1NI=O79+"V/RCI)GL[=PDVIW,;$9 >:$''XQT <_J/@]M6N MX[R_DTNXNF@6WGDETP2!45G93"'=O+;#G);>"0IV\$'JJH_:M-_Z#$O_`($0 M?_&ZFA%O<(7AU"[D4'!*2PD9_".@"AXGAFNO#M]8P6ES<->026Q^S^7NC#H1 MOQ(Z`@>F<_S&?=:3=Z]]ME*3:6E];"QO(+N..61X1OPT31RE4;][(,MNY ^7 MCYN@"P-.\ O[LS(JNT8DAW*I) )'E\ E6Q]#Z43+!;P23SW]W%#&I=Y'DA55 M4#)))CX`%(#G-0\'RW]I<V+:BB63-=30*+<F2.6=958LV_#*//D(4*I^[\W! MSH:=H3V.MW>HF>%$FWXM[2%H8V+,&,DJ[V5Y> -X"D@G.>-NM]G3_G[OO^^X MO_C=,E6"! \U_=QJ65 SR0@%F(51S'U)( ]210!/7):M:7AA\2:?%I6HW":M MNQ<0_9]B;K=(N \RLV-F>0OI[GHK:2SO/-^RZG<3^3(89?*FA;8XZJV(^&&> M0>:G^SI_S]WW_?<7_P`;H X]_ L-W'?.%L[4WT=PV]M/C:[C>=7W!Y@Q#*ID M; 7:<*HW$ [KNCZ%J*7$<NH3PK;VVHWEW;6\<.),R23!2\F\AE*2L<!5()7) MX(/0.L$3Q))?W:-*VR-6DA!=L%L#]WR<*3] ?2H[:2SO/-^RZG<3^3(89?*F MA;8XZJV(^&&>0>:8%NBH_LZ?\_=]_P!]Q?\`QNC[.G_/W??]]Q?_`!ND!)15 M&:ZTZWN5MI]8EBN&"D1/<0*QW-M7@QYY;@>IXJU]G3_G[OO^^XO_`(W0/4DH MJC]JTW_H,2_^!$'_`,;J6#[-=1"6WU&ZFC)*AXY86&02",B/L00?<46$6:*C M^SI_S]WW_?<7_P`;JEJ&H:3I/E_VEKCV?FY\O[3=01[\8SC=&,XR/SHL!HT5 M4M)+._M4NK/4[BYMWSLEAFA=&P<'!$>#R"/PJ801F3R_M=]NV%\;XN@(!/\` MJ_5A^=%@):*C^SI_S]WW_?<7_P`;H^SI_P`_=]_WW%_\;H DHJ/[.G_/W??] M]Q?_`!NC[.G_`#]WW_?<7_QN@"2BH_LZ?\_=]_WW%_\`&Z/LZ?\`/W??]]Q? M_&Z )**C^SI_S]WW_?<7_P`;H^SI_P`_=]_WW%_\;H DHJ/[.G_/W??]]Q?_ M`!NC[.G_`#]WW_?<7_QN@"2BH_LZ?\_=]_WW%_\`&Z/LZ?\`/W??]]Q?_&Z M)**C^SI_S]WW_?<7_P`;H^SI_P`_=]_WW%_\;H DHJ"6.*&)Y9+R^"(I9CNB MX Z_\LJD>T".R-=7P93@C?%U_P"_=%@'T5']G3_G[OO^^XO_`(W1]G3_`)^[ M[_ON+_XW0!)14?V=/^?N^_[[B_\`C='V=/\`G[OO^^XO_C= $E%1_9T_Y^[[ M_ON+_P"-T?9T_P"?N^_[[B_^-T 245FW^I:/I3HFHZ\;-I 2@N+JWC+#VW1C M-75AC= Z7EZRL,@AXB"/^_=%@):*B$$9D\O[7?;MA?&^+H" 3_J_5A^=+]G3 M_G[OO^^XO_C=%@)**C^SI_S]WW_?<7_QNE6%4;<+B[<C^&1HRI^N$!_6@#YZ MO_\`D(W/_75_YFBB_P#^0C<_]=7_`)FBM"3Z.N?]:O\`US3_`-!%>'ZMXN\2 M/:69MM5MM1$ED-6O8FB:Q6W1\*L"R),KR;6/\.&/'+ D#W"Y_P!:O_7-/_01 M7E^L?!VQOUB:RUJ]MI8E6)/.1)46(9P@4!3QGJ23ZYK3"N@JR>(OR=;;A-2< M?=W(? OBS5M6.CR7FM),\D\FGW%@;':<K"\HG$P8[B0J*1@#D_+QN/IDO^LM M?^ON#_T:M<GX<^'6F^&[J"X@OK^X:)VE5)F38)&0H6X4'[I(QG'-=9+_`*RU M_P"ON#_T:M15=-U&Z7PWTOO;I<:O;4DK?T+_`)%[3/\`KTB_] %8%4I?%=BO MA!]+A;5;?418&W21=*O,1R^7M!#I$>C=USZBHAN.UW8IRZ#'X;\<*MG>W3V^ MKPWM[/;RB/8LHFB8,NU <_OW&6))`09PJXLZS?2Z?IWFP*AFDGAMXRX)56EE M6,,0,$@%\XR,XQD9S7"_#^QD&N1W+:/=6!@TUH)GN+-H?.D:<MP2!NPH4?\` MZJ[3Q+8W^H:(\.F-;+?)/!/";K=Y>Z.9),-M&<?+VJ9W:TT?Y?==>?\`P="Y MQ4*DH)W2;5^]NOS,?6]4N+)6TO6KGPQ()%#G[3JC61F3.>8BC_+P5(WL& .> M#MJMX.GL+_4(;[3-9L8K26P$@\/VC*1:N_EEV.&Z@C& B@%B<!F8ME2>#?%4 M_GM*VFM/<$M+<-?2%V8C&X_N1R.,`8 ``& `!I^#?#E_I>IQ7-Q8+9*E@8)@ M&0F>5IF8-\A.=J #)YYP.E<^%]M9^V_3MY=]M+^=EJ4X1]GSIZW2MY-/7Y6M M\S>\06?]H1_9?M]S8;X'_P!)MI%CD3$D1X9F4#.,=1P37-P^&$BL9F?QMJLL MC17$BB746WH8]R*HV28RVX..O,8QN7<&Z[4)-;M;ZTN]$@T^:2-)$D%[,\8` M;;C&U6ST/I^-9FOWGCS6M"N].DM-#A29,,UK>3>8P!!*C<@'S8VG) P3FNZG M5E%<J=C.$%.:3=D^O8K>'+*/3_&GB&VAU!K^-;>T9;AI#)D,\[;0Q9B0N=HR M2<*,FM#6=&37+B6VD\03Z&%6&3[3!-Y;-@RC9G(X.<X_V:H^#=$N]*GOY9[1 M;.&:.V1(`5Y=(L2284D?,Q/N<9-:]S<>([#5FN=$M=*FCD@6-S>W$B$$,QX" MH>.1SG\*A3:DIK=I/[U>W75;"DK-I=&_SW^9S^F^%+4)8K/XYOI#+$9Y&GU& M0%#NB/E-ME7MO'8X9^^TI9\$6XL_[?M1=O>"'5#&+EVW--BWA&\GN3C.?>H_ M%A\<>)-%^PW-GI"0B59&CLKN0O+C(VD.JJ0"0W)ZJ.]:/A72Y]+M=0$MNMK% M<7\T]O;*5_<Q$@*N%RHZ9P.!NJYU'/XG_7;]=K>=RG",81DGJ[Z=K6M]]W]Q MR^J7>NP_$J9=$ADNKLQQ@61./M404$CYB B*2Q$IX#':-Q9UJW?>);S4I;6_ MM=(=M,TN0W-ZD\]NV6QB`L$E;;&<M*KLNPE(VW!,R+UNJ:7'JD,(,TUO-!)Y ML%Q#MWQ/M*[EW KG:S#D'&<C! (Y?6]"U^]N]*>\:RU2R@NO-GM+:U%LK98, M[E'D*.6.\D\',AZ@_+E4E>-TM4NF[MZZ7)PN'7.XRG9-MW?3K8Z?1=376=(M M]10RLEP#(K2QE"RDG#8(R 1R.O!')ZG#UC6;:XM+Z&:U6_EM+Q3:V,:,DS.H M0+(K#)WB0R* F"5?)& V=+PI87FF>%[&SOS_`*3&AW+OW; 6)5,_[((7CCCC MBN:UWPWJ4-S<WL2B[A=WE80J1(@)=L;.2V %'RDEB?N@5RX[VE-WI+F2;^:U M7S_$JE+9M"> KB2UL=%M;C[7%<RVA22VFFF?"JSB-BLN?+_=QJ0J$!A(254+ M'GOZ\OU'PYJNH:]?W@T9[JT874<22F-<N0X5PKD8&XKAO]G(R-I/HVF6\]II M-G;W4QFN(H$CEE+$[W"@%LGDY.3S5X>$HP?,WO=7UT?2][Z>:6ZML:5E%./* M[W5].CNU;\+_`#*VE>'+'Q-?Z_/J1F:XM+M;6QF1]K6:^1#+NBXP&+N22<[@ M`IRO%8-EHE]I6NZ?X>O)TT^PTR#S;2&QW1+J3 G,A;.=J@J6BR3O8EBR[2VM MHK^(]%L4T;3X-,MXK<L[ZE<(\[7C,<[FC#J1)U+L6()P0.2$Y+7?#GBC4-7U M&[NV34[J>)!9WL02$6C>:C (K-N38H?!4DG.2<L:Z59M)]U^+M?IMN_(B$%) M2;=K)M>;[?,](K+U;5A9*T$#)]IVAF9U+K K':K,J\L2WRI&OS2-\HP`S+HS M.T4$DB1/,RJ6$:$!G('09(&3[D#WKG?#FE:N+JZU/7FA,TTQFM;5`I^R[EVG M<RJH>0+B/<=Q"J0&PS"N6O[5PM1W?5]//S?]:[-)+=C].\,6AN5U/4+16O=R MNOF[6D!'(:5UXDDS@X^Y'M58P NYNBKSX>&=8_X2J:[:V!9M5BN4O_-4E;=? M,+)G.\9!1-N,<>@KT&KHT8T8<B;?KK?SW>_GKW7?2MI/E4KI)?BKM?)MKU,; M2?$GB >/M(\-V]M8MIB^'XKQM\[*[ NB%R?+/S+A@$& <Y+=`I+H,?AOQPJV M=[=/;ZO#>WL]O*(]BRB:)@R[4!S^_<98DD!!G"KC/U$Z'<Q07T5QX@L=?M]( M.F^9;:?>*CXPRAF2(G"R`-E",\@[E.*R? ^C7MEJL<\NFO8QQZ>89RRA?.E, MQ8'C[V$P,GUQ71IU\_Z[Z[:7\]-3/D7L^>^MTK>33U^5OQ._KE/!&HW<VI^* MOM<[B^BU9X@I^61;8*/(&.#LP7*]B68\DDG0\576KVFBDZ+ 7NI)!&95C\QH M%(.76/\`C;. `2%RP+$*&-<II_@*Z73;C4[F\U%M:-NZ6PCO&B95Y98V9-F< MM\S'`+,6=N6.(2%N[&CIS+:?%K4[#3V"6,VFK=WL,9R@NS)@,1_ [)@D#&[@ MG/6NQ7_D(?\`;I)_Z,BKB_ ]M?07'-K+:6[6IDO%GMV1YKII6PQ=AER(U&3N M/W@3DDFNT7_D(?\`;I)_Z,BI*[2;5O+KU7_!]&ASCR3E"][-K3;3MY$E9ZD? MVREF[Q".29+LDA=Q5 ,KRP)R8TQQ_$WI6A5*&Q;RQ+-%%*^8LI<OO61U256; M'S;5S("!@?=Z#K31++M4KL1?:-\L=N^RW<KY\:.JDR1#.'('0GJ1UJXL8BCC MB$ADV(JESGYR``6Y]3DTTQ1M*LC*Y900"LKQD9(/52#U4?E26X&9:B9+6\EL MW!19)3%#';>:IP!)]Y'*K]\+@<<=,YK1@E,R,6CDC='*.KHRX8 '^( XP01P M.".!4+V3322%Q;LAE9U\Z3S&Y2->3)%)_<]>_M5F&+R8&4F++2[@L711Y<:C M^!!_`>@`INP(Y#6[^1-<FAFDN&M54*8HI?+R"N>N".I[@^E0RK>V=K'=6%GJ MEI;#$C22N7C;.-IX11^><Y%:VI^&KC4=1EN8KJWC5PO$NX'(&.P/I^M:45G< MM;PAX'4K%"O,BG!14Y&+E0.5SP`:I6L(TYT$5Q)&N<*Q49]C6-J]C"RG4/M# M6US GR2Y^7KT(P<]2./7OTK2M[<6MI%%LV8WX0N'*KO;:,@MT7;W-5IM-6]U M.VFNIB;.#YS;;0?,<'@'/&#WSV! ZU/497TVX.IE6U!##MC#I9X9?M 88\PG MC,?L"<GKQUU2=S$G&3SP,5'<K]HG6YD&^>,EE8D`\C!&<' (XZ<=1R!4A&&( M!! [CO28&>-3634I=/C51<(1M\Q]JLNW<3G!/'H`3T]\6?WL4\43RI/YI8 I M$8]I"EN['(PI]#P.#GAXA@$OFFUMFER&\QX$9LCIR1GM3U"K+YH4>9L*!NX! M()Q]=HHT`JZG_P`@J\_ZX/\`^@FM"[_X_)_^NC?SK/U/_D%7G_7!_P#T$UH7 M?_'Y/_UT;^='0#F=4U!;G0+F=@!!,42U$BE6D;JY'/(7CG&,\<][6D:?8B[6 M^BM?**VB-L*2*H>0#!7>26X$O/W>%QD\TM[H<-P+?R4B`AW8AF:0QMN/^RWR M`<GY1R:FLK"_AO5EN;NP:!83$L<8D)0<;0NX<?<1>3TR>2236EA%^L;4;#3C M-<SW=N[M+$&5XPS,@7.\[01SMVX)^48Y]]FLRYL=3EO)IK6[M(%950;VD#$# M)Y"@@_,<_@.Q(*0V:$%JMA:6]FJ*I@C5'VDG+]7.3_M$T^H[:%[>RMX97A>2 M.,(QA!"\<#K@DX )]R:R?%$NO)I'E^'+>&34)Y%B$LSA4ME.<RD'[V..!GKG M!Q@KJ!Q>FVVE6^G77B#7-6NK66_LX;DW0OI8`UP&?SX#Y1&XQ\!(S\_WE!(0 M[=SP)92Z.+C1R6"0VMM/);[PZVMQ('\R%2.B@*C8))^?<2=V3BP>&-7T47=A M;0ZS=QR1>7+>*]I,+O>-\K,MPQ*!G*@JH&1'EBY(*]EX5LI+'0(4N+)K6[=F M:X$DOFO(^<>8S;FR6 4XW-M&%R=M7*]C&'+SNU[^=[?*^GW&LO\`R$/^W23_ M`-&15)4:_P#(0_[=)/\`T9%4E0;!1110,^=[_P#Y"-S_`-=7_F:*+_\`Y"-S M_P!=7_F:*T(/>];NM075]+T_38[5I[T%0;EF51MBW]5!/0'M5))M;DV[-2\) MMOQMVZ@YW9V8Q\O?S(\?[Z^HK0O/^1[\+_67_P!)C7SM>:5?7]UJ>H01^; E MQ*2_FJ6DP=S%`78R;5(9BK/M!!)P<G7#T%5O=V(J5' ]Y2;6Y-NS4O";;\;= MNH.=V=F,?+W\R/'^^OJ*$FUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZBO#[/P MG=BX<:A'Y<2VUS(WDSQN\4L<$DJI*H),;$QD;7 ;Y6'4'%+Q)I2:'XCOM+C? MS!:2F'?YBOO*\%OEX&3D[>2N=I)()KI6!BW92_#_`()G[=VO8]]2;6Y-NS4O M";;\;=NH.=V=F,?+W\R/'^^OJ*$FUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZ MBOFVBK_LY?S?A_P1?6/(^DDFUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZBA)M M;DV[-2\)MOQMVZ@YW9V8Q\O?S(\?[Z^HKYMHH_LY?S?A_P`$/K'D?223:W)M MV:EX3;?C;MU!SNSLQCY>_F1X_P!]?44)-K<FW9J7A-M^-NW4'.[.S&/E[^9' MC_?7U%?-M%']G+^;\/\`@A]8\CZ22;6Y-NS4O";;\;=NH.=V=F,?+W\R/'^^ MOJ*$FUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZBOFVBC^SE_-^'_!#ZQY'TDD MVMR;=FI>$VWXV[=0<[L[,8^7OYD>/]]?44)-K<FW9J7A-M^-NW4'.[.S&/E[ M^9'C_?7U%?-M%']G+^;\/^"'UCR/I))M;DV[-2\)MOQMVZ@YW9V8Q\O?S(\? M[Z^HH2;6Y-NS4O";;\;=NH.=V=F,?+W\R/'^^OJ*^;:*/[.7\WX?\$/K'D?2 M23:W)MV:EX3;?C;MU!SNSLQCY>_F1X_WU]10DVMR;=FI>$VWXV[=0<[L[,8^ M7OYD>/\`?7U%?-M%']G+^;\/^"'UCR/I))M;DV[-2\)MOQMVZ@YW9V8Q\O?S M(\?[Z^HH2;6Y-NS4O";;\;=NH.=V=F,?+W\R/'^^OJ*^;:*/[.7\WX?\$/K' MD?4.E"^GCGFN[K2)XU13&=.G:7D[3\Q(&/E=2/4$'IUO6&G7NH6OVE+RWB4R M2($-NS$!7*]=X]/2O-_@JF-"UM]F,R(-VWKC;QG;SC/3<<9Z+G+=#J'BN[\/ M7.F#[?:6EA]I42K=R)$LRRWCQR%2RDR&-?F(5H_+RK,9`VU?-KP=.;BNAT1E MS1N=A_8-_P#]!&V_\!&_^.5GZF+;1?*_M7Q-I%AYV?+^U((M^,9QNE&<9'YB ML3P_XQGDN-(FOO%>FWW]H:Q>:;Y$*Q1Q;$,Q1UP2Y<D0`?,1LE08+$.W01ZM MIOA_Q%KDFO:A::>]W<1-9RWLRQB6W6",;49C@A9?.)0'*E]Q`\P%L+R*+?\` M8-__`-!&V_\``1O_`(Y49TBY6X2W;5K,3NC.D9MCN95(#$#S,D LH)[;AZUS MFC7VHVGB30]!_M>#3[2XBO[J/3GA47!A6Z#6Z .<QJ83M"; 51)!@$ QY%MK M]X=<M]7AD_M+7W\-7KM:IIY8VUVOD2?9&>,#Y48$"-SYBEL,Q,B47D!WW]@W M_P#T$;;_`,!&_P#CE']@W_\`T$;;_P`!&_\`CE<A%XDUETT"UD\5Z5&M_JLM MH+F(I</<1?9RP*2E(HV82G8"D94,T:G<5=7N6_B3Q,;WQ.R_9+B2SM[Q[;3E M#22H\3E;?=&L:E!*HW8:1C)D-'M4, 7D!MS:>]O]H\_7-/B^S1">??!M\J,[ ML.V9/E7Y&Y/'RGT-1V%NFJIOT[Q#IEXA0/NMXO,&TLR@_+*>-R.,^JL.QKC; M:ZL_^$_FNDU/^U=,C^Q7=[J(M0(WC1;Q5>62-1%)LE:##@`*(P3_`*AV'5WN MI::+75M?\/K&'N7LX+O6( K1/&)=CR*V2K&&-W8R$%!@`EO+95+L"_)I%S"\ M22ZM9H\S[(E:V(+MM+87]YR=JL<#L">U$&D7-U;Q7%OJUG-!*@>.2.V+*ZD9 M!!$F"".<UR%[K&C7%]HDFMZKIM]8PZQ<6]KJ5ZT`%U:MI[^:2P"HR>:XC.T! M<JJG+#)C\.>(=4%GX+LM.O;%=/.E6 VO)DW3DF.X156-VD:)4!.UH_++9D)7 M@%Y =O\`V#?_`/01MO\`P$;_`..5&-(N6N'MUU:S,Z(KO&+8[E5B0I(\S(!* ML >^T^E<IXAO;W5/#GC!)M>GBFAT_44FTJ.WC(@1'(A<L4+)YD2YPY.\2LR; M0O%A_&,IOM7M++Q#!=PP6FG-'+Y:++#$\[1W-RW&&PFV7?M$85HVVE3ER\@. MG_L&_P#^@C;?^ C?_'*KWNGOIEG)>7^N:?:6L>-\T\'EHN2 ,L9,#)('XUSD MGB;4'O-)L;7Q9:"SN]8>RAU"2*%Y;V'[*'WQL-L9*S,8@50C?Y8()#*YH%U; M?$*;6M/O=1CO[:ULGM(YK=T)4R37<#3?*-OFO#'$<XP`[;0JN02\@+\^JZ+: MW$MO<>-O#T,\3E)(Y'161@<$$&;((/&*W/[!O_\`H(VW_@(W_P`<JA?_`-CK M\0M*TB3["/M.E:COLVV?O?-EMV;*?Q;]LI/'.USS@UCS:GKVJ3^*SI_B?>VC M:@H2STNVA>4P;(FD0AQ(6DP)43[N9%;)QA4+L#HSI%RMPENVK68G=&=(S;'< MRJ0&('F9(!903VW#UHATBYN4+P:M9RH'9"R6Q8!E8JPXDZA@01V((J#PU9SZ MEJ4GB>ZU.[N$9[JWT^W=8A%';-*N&5E0%P_DJZL21L<#YOOMCZK9Z5X?\9Z4 MNH:G(FF7-EJK2VURL;Q2F:XBDD5ALSL_>,S<X5(020HD+',P-O\`L]_[/_M# M^W-/^Q>5Y_VGR/W?EXW;]WF8VXYSTQ4D^D7-K;RW%QJUG#!$A>222V*JB@9) M),F `.<UYS:^,9_#_P`/],CM_%>FBXG\,/<VZRK%BWEA$21QQKD%G;,JG>6R M\9(4!62NCO\`5#XI\67/AY-;\W2KR)K=H-,,,G^CR6A8R2[UWIEI$*2QEXS\ MJ$*QRSO(#HSI%RMPENVK68G=&=(S;'<RJ0&('F9(!903VW#UJ3^P;_\`Z"-M M_P" C?\`QRK&M6WD>;KT"SR7MAI]S'!%%%YN_?L<_NP5+MF%0%#+G)&>01P$ M/CZ9= N8[GQ%8O+;ZJMH]W97MM+*\36_G*4ED2.#=O#+ET1=L;J,R $I.3 [ M?^P;_P#Z"-M_X"-_\<J./2+F9Y4BU:S=X7V2JML24;:&PW[S@[64X/8@]ZXS M5?%6M:-X,M=5C\0P7;2?:[Q+BXEMA$ZQG]U;&6)"CR%>#&@#.RR;94"?-(?& M\^H>)$TVR\9Z,L4^NM:H8$B=S;-9AT\O+D9$N5W$,#(5XP#&3W@.K_L]_P"T M/[/_`+<T_P"V^5Y_V;R/WGEYV[]OF9VYXSTS5C^P;_\`Z"-M_P" C?\`QRN4 M^U6VJ>"/$'BRWU&.\U.PM[B&"[A=#L>S>Y,$OR# =TDRP^ZROC;L8@^ETG)H M#G_[!O\`_H(VW_@(W_QRC^P;_P#Z"-M_X"-_\<KH**7.P.?_`+!O_P#H(VW_ M`("-_P#'*/[!O_\`H(VW_@(W_P`<KH**.=@<_P#V#?\`_01MO_ 1O_CE']@W M_P#T$;;_`,!&_P#CE=!11SL#G_[!O_\`H(VW_@(W_P`<H_L&_P#^@C;?^ C? M_'*Z"BCG8'/_`-@W_P#T$;;_`,!&_P#CE']@W_\`T$;;_P`!&_\`CE=!11SL M#G_[!O\`_H(VW_@(W_QRC^P;_P#Z"-M_X"-_\<KH**.=@<__`&#?_P#01MO_ M``$;_P".4CZ3<6L,DT]W%*J@85("ASD=RQ]ZZ&JFI?\`(.E_#^8JE)M@?*U_ M_P`A&Y_ZZO\`S-%%_P#\A&Y_ZZO_`#-%=!)[]>?\CWX7^LO_`*3&O")7ND&L M6AT6ZNWO;AFCE#.R,69=K$9?<P\Q"C*^?WV"TBO@^[WG_(]^%_K+_P"DQK=N M_$<-OXC.BJ;19TMX;AS<W0BW++/Y2A!@ECD-Z?,T2_QY76A6=/6UR9PYCY_O M?%>LZI*TKZ9K,[72S;XYKN66%7FA:(>1'M 1?])4@'><-& PR2W,ZO%J.MZ[ M?:FFEW2?;KE[A8UC9\>8RL #CG_6QX..=Z_WA7UE;Z[H]W]C^S:K8S?;M_V3 MR[A&^T;/O[,'YMO?&<=ZR]#\::;KQ66W>..S>RM+J.>29>6N))8Q$0,@.&BV MXR?F;;U'/1'&<NT3-T;[L^4TTK49-NRPNFWXV[86.[.S&.._F1X_WU]10FE: MC)MV6%TV_&W;"QW9V8QQW\R/'^^OJ*^O)/$N@PZ7#JDNMZ:FGS/LBNVND$3M MSPKYP3\K< ]CZ57T;Q3INJV6CM+=6EKJ&J645Y%I[7*F7:Z;OE7@L!AN0/X3 M5?7Y=A>P7<^2TTK49-NRPNFWXV[86.[.S&.._F1X_P!]?44)I6HR;=EA=-OQ MMVPL=V=F,<=_,CQ_OKZBOLBVO[.\V_9;N"?=$DX\J0-F-\['X_A;:V#T.#CI M5BCZ_+L'L%W/B]-*U&3;LL+IM^-NV%CNSLQCCOYD>/\`?7U%":5J,FW9873; M\;=L+'=G9C''?S(\?[Z^HK[0HH^OR[![!=SXO32M1DV[+"Z;?C;MA8[L[,8X M[^9'C_?7U%":5J,FW9873;\;=L+'=G9C''?S(\?[Z^HK[0HH^OR[![!=SXO3 M2M1DV[+"Z;?C;MA8[L[,8X[^9'C_`'U]10FE:C)MV6%TV_&W;"QW9V8QQW\R M/'^^OJ*^T**/K\NP>P7<^+TTK49-NRPNFWXV[86.[.S&.._F1X_WU]10FE:C M)MV6%TV_&W;"QW9V8QQW\R/'^^OJ*^T**/K\NP>P7<^+TTK49-NRPNFWXV[8 M6.[.S&.._F1X_P!]?44)I6HR;=EA=-OQMVPL=V=F,<=_,CQ_OKZBOM"BCZ_+ ML'L%W/B]-*U&3;LL+IM^-NV%CNSLQCCOYD>/]]?44)I6HR;=EA=-OQMVPL=V M=F,<=_,CQ_OKZBOM"BCZ_+L'L%W/#O@U;R0:)K1E@>-F:,@M'M+ A6'.T9&& M!'S'ALX7.6]9\._\@9?^N\__`*->IM6_U1_ZYG_T)*A\._\`(&7_`*[S_P#H MUZ\W$3YY.7<WBK*QJT445S%!1110`4444 %%%% !1110`4444 %4[S38;RXM M;DM)%<VSYCFB(#;21O0Y!!1@`"#Z`C#*K"Y13 *S]9TR75M/>SBU2^TW?D-- M8E%D*D$$!G5MO7.5PP(&"*T** (X((;6WBM[>*.&") D<<:A510,``#@`#C% M2444@"BBB@`K/U;24U6*#_2)[6XMI?.M[F#;OB?:R$@.K*<H[K\RG[V1@@$: M%%,#/TG24TJ*?_2)[JXN9?.N+F?;OE?:J D(JJ,(B+\JC[N3DDDZ%%% %.\T MV&_N+62X:1X[=_,6#(\MI 05=AC)*D949P"=V-RJ5N444 %%%%(`HHHH`*** M* "BBB@`HHHH`**** "JFI?\@Z7\/YBK=5-2_P"0=+^'\Q51W ^5K_\`Y"-S M_P!=7_F:*+__`)"-S_UU?^9HKJ)/?KS_`)'OPO\`67_TF-:.L>&[S4-8NKR* M2!8Y?[+VAV((^S7;SR9X[JP`]3UP.:SKS_D>_"_UE_\`28UUL>I0RZS<Z6JR M>?;V\-P[$#:5D:15`YSG,39X[CKV2V!G+Z?X4U*RM_#5N1IK"QLK6VO)#N._ MR0#C:1B4;@&1CL:)@6!8.R&G'X"O#I2:==&QGMTM-)LBKDLLT=G=.[EE*X&^ M,K\O(#$J20-Q] K+TS7['6+CRK)I)$-E;WR2E=JO%.9-A&><_NR2"!C(]\,# M#?P]K%CXJO=?L$L;F2:64);3W#PCRY(;12Q<1OA@UJ?EVD$/G<",''T7X>WV MFMI\5P8+B-/L,L\@U*Y1(Y+>*%,+;+B.7)@#!W((W#*L$ ;TBJ>DZE#K.C6. MJ6ZR+!>V\=Q&L@`8*ZA@#@D9P?4T`8?A#PW>>'OM/VJ2"7[3%"YV,6\B0;]\ M$60-MLF5\I.J[GSUKJ*** "BBB@`HHHH`**** "BBB@`HHHH`**** ,W5O\` M5'_KF?\`T)*A\._\@9?^N\__`*->IM6_U1_ZYG_T)*A\._\`(&7_`*[S_P#H MUZQJC1JT445B,**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH M`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH`*J:E_R#I?P_ MF*MU4U+_`)!TOX?S%5'<#Y6O_P#D(W/_`%U?^9HHO_\`D(W/_75_YFBNHD]^ MO/\`D>_"_P!9?_28TOBC0]2O]6U.2.P^U:==6EE#,B);R2R".2Y<B-)\Q[@S MP$^8,;2VWY@,)>?\CWX7^LO_`*3&NIN-<TNTUBTTB>_@34KO)@M=^9' 5F+; M1R%PC?,>,C&<X%);`SA]$\.:M;OH+7>DSN]K+,J27-S%NM8/M$C(/W9Q"PC\ ML 0[D==T3JJ!&6O9>"=1M]#CTS^S_(1+31K60V\RQ;VM[V1[B1&1@PRK>8&X M8[^SY ]0HI@>=S^%I+75K@2>&H]3\.Q7$OV72(E@,:;X;7;*D4C+&H#I= \A MLRD@$.QK+T'P1J]I?:++?VU]]JMHK 1S0R6@CM8XH8EDA:1E:<99)LI$=CB3 M!(WN1ZQ10!Q_@?1-1T?S_P"T;?9YEI;+;_.I^RPKYFVRX)W^3D_O3R_F?[-= MA110`4444 %%%% !1110`4444 %%%% !1110!FZM_JC_`-<S_P"A)4/AW_D# M+_UWG_\`1KU-JW^J/_7,_P#H25#X=_Y R_\`7>?_`-&O6-4:-6BBBL1A1110 M`4444 %%%% !1110`4444 %%%% !1110`4444 %%%% !1110`4444 %%%% ! M1110`4444 %%%% !1110`4444 %%%% !534O^0=+^'\Q5NJFI?\`(.E_#^8J MH[@?*U__`,A&Y_ZZO_,T47__`"$;G_KJ_P#,T5U$GOUY_P`CWX7^LO\`Z3&M MW78)IM8\,/%%(Z0ZF[RLJDA%^R7"Y;T&YE&3W('>L*\_Y'OPO]9?_28UUMYJ MVFZ?<6MO>ZA:6T]V^RVCFF5&F;(&$!.6.6 P/4>M); RY1113 **** "BBB@ M`HHHH **** "BBB@`HHHH **** "BBB@#-U;_5'_`*YG_P!"2H?#O_(&7_KO M/_Z->IM6_P!4?^N9_P#0DJ'P[_R!E_Z[S_\`HUZQJC1JT445B,**** "BBB@ M`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **** " MBBB@`HHHH **** "BBB@`HHHH *J:E_R#I?P_F*MU4U+_D'2_A_,54=P/E:_ M_P"0C<_]=7_F:*+_`/Y"-S_UU?\`F:*ZB3WZ\_Y'OPO]9?\`TF-2^,=6T$7% MSX>OM0TW3I]2LME[=W<R0LMJQ=0$+$%W),H4<JF69OX4DBO/^1[\+_67_P!) MC7<TEL#"BBBF`4444 %%%% !1110`4444 %%%% !1110`4444 %%%% &;JW^ MJ/\`US/_`*$E0^'?^0,O_7>?_P!&O4VK?ZH_]<S_`.A)4/AW_D#+_P!=Y_\` MT:]8U1HU:***Q&%%%% !1110`4444 %%%% !1110`4444 %%%% !1110`444 M4 %%%% !1110`4444 %%%% !1110`4444 %%%% !1110`4444 %5-2_Y!TOX M?S%6ZJ:E_P`@Z7\/YBJCN!\K7_\`R$;G_KJ_\S11?_\`(1N?^NK_`,S1742> M_7G_`"/?A?ZR_P#I,:E^(%G8S:-J5\+>TGU"QLFE,TDN9]/BVR$7$"8.)=RD MK@Q[S& 7&P8BO/\`D>_"_P!9?_28UUMYI.FZA<6MQ>Z?:7,]H^^VDFA5VA;( M.4)&5.5!R/0>E); RY1113 **** "BBB@ HHHH **** "BBB@ HHHH **** M"BBB@#-U;_5'_KF?_0DJ'P[_`,@9?^N\_P#Z->IM6_U1_P"N9_\`0DJ'P[_R M!E_Z[S_^C7K&J-&K1116(PHHHH **** "BBB@ HHHH **** "BBB@ HHHH * M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ JI MJ7_(.E_#^8JW534O^0=+^'\Q51W ^5K_`/Y"-S_UU?\`F:*+_P#Y"-S_`-=7 M_F:*ZB3WZ\_Y'OPO]9?_`$F-0?$'Q6FEZII&F1ZU!IK)=VEW>&2=8VD@-RD? MEC<02I'FNS*3M6$AAB2I[S_D>_"_UE_])C78WMC;ZA L-U'YD:RQS ;B,/&Z MR(>/1E4^^.>*2V!EBBBBF 4444 %%%% !1110 4444 %%%% !1110 4444 % M%%% &;JW^J/_`%S/_H25#X=_Y R_]=Y__1KU-JW^J/\`US/_`*$E0^'?^0,O M_7>?_P!&O6-4:-6BBBL1A1110 4444 %%%% !1110 4444 %%%% !1110 44 M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !534 MO^0=+^'\Q5NJFI?\@Z7\/YBJCN!\K7__`"$;G_KJ_P#,T47_`/R$;G_KJ_\` M,T5U$GOUY_R/?A?ZR_\`I,:7Q/J&KVGB&ZD-SKEGH5KI\4\MUI\-H8XCOF\U MG,ZEFVHJ';&&(';+#*7G_(]^%_K+_P"DQKH=9\/IK>^.74+Z&UFB,%U:PNOE MW,1SE6#*2N0S`M&48@\GY5VI; S8HHHI@%%%% !1110`4444`%%%% !1110` M4444`%%%% !1110!FZM_JC_US/\`Z$E0^'?^0,O_`%WG_P#1KU-JW^J/_7,_ M^A)4/AW_`) R_P#7>?\`]&O6-4:-6BBBL1A1110`4444`%%%% !1110`4444 M`%%%% !1110`4444`%%%% !1110`4444`%%%% !1110`4444`%%%% !1110` M4444`%%%% !534O^0=+^'\Q5NJFI?\@Z7\/YBJCN!\K7_P#R$;G_`*ZO_,T4 M7_\`R$;G_KJ_\S1742>_7G_(]^%_K+_Z3&NYKAKS_D>_"_UE_P#28UW-); P MHHHI@%%%% !1110`4444`%%%% !1110`4444`%%%% !1110!FZM_JC_US/\` MZ$E0^'?^0,O_`%WG_P#1KU-JW^J/_7,_^A)4/AW_`) R_P#7>?\`]&O6-4:- M6BBBL1A1110`4444`%%%% !1110`4444`%%%% !1110`4444`%%%% !1110` M4444`%%%% !1110`4444`%%%% !1110`4444`%%%% !534O^0=+^'\Q5NJFI M?\@Z7\/YBJCN!\K7_P#R$;G_`*ZO_,T47_\`R$;G_KJ_\S1742>_7@/_``F_ MAN3!V1^8SMV4?9R,D]AD@?4BNS^UVW_/Q%_WV*\*;XN:GYK-%80QJ0``)6S@ M# R>]'_"WM8_Y]H_^_K_`.-)7&>Z_:[;_GXB_P"^Q1]KMO\`GXB_[[%>%?\` M"WM8_P"?:/\`[^O_`(T?\+>UC_GVC_[^O_C1J![K]KMO^?B+_OL4?:[;_GXB M_P"^Q7A7_"WM8_Y]H_\`OZ_^-'_"WM8_Y]H_^_K_`.-&H'NOVNV_Y^(O^^Q1 M]KMO^?B+_OL5X5_PM[6/^?:/_OZ_^-'_``M[6/\`GVC_`._K_P"-&H'NOVNV M_P"?B+_OL4?:[;_GXB_[[%>%?\+>UC_GVC_[^O\`XT?\+>UC_GVC_P"_K_XT M:@>Z_:[;_GXB_P"^Q1]KMO\`GXB_[[%>%?\`"WM8_P"?:/\`[^O_`(T?\+>U MC_GVC_[^O_C1J![K]KMO^?B+_OL4?:[;_GXB_P"^Q7A7_"WM8_Y]H_\`OZ_^ M-'_"WM8_Y]H_^_K_`.-&H'NOVNV_Y^(O^^Q1]KMO^?B+_OL5X5_PM[6/^?:/ M_OZ_^-'_``M[6/\`GVC_`._K_P"-&H'NOVNV_P"?B+_OL4?:[;_GXB_[[%>% M?\+>UC_GVC_[^O\`XT?\+>UC_GVC_P"_K_XT:@>Z_:[;_GXB_P"^Q1]KMO\` MGXB_[[%>%?\`"WM8_P"?:/\`[^O_`(T?\+>UC_GVC_[^O_C1J![-J<L<L3>7 M(CXC.=K X^9*9X=_Y R_]=Y__1KUXT_Q;U9U*O:1,IZ@RL12CXNZNJA5M8P! MP )7X_6IE%R ]YHKP?\`X6]K'_/M'_W]?_&C_A;VL?\`/M'_`-_7_P`:CV07 M/>**\'_X6]K'_/M'_P!_7_QH_P"%O:Q_S[1_]_7_`,:/9!<]XHKP?_A;VL?\ M^T?_`']?_&C_`(6]K'_/M'_W]?\`QH]D%SWBBO!_^%O:Q_S[1_\`?U_\:/\` MA;VL?\^T?_?U_P#&CV07/>**\'_X6]K'_/M'_P!_7_QH_P"%O:Q_S[1_]_7_ M`,:/9!<]XHKP?_A;VL?\^T?_`']?_&C_`(6]K'_/M'_W]?\`QH]D%SWBBO!_ M^%O:Q_S[1_\`?U_\:/\`A;VL?\^T?_?U_P#&CV07/>**\'_X6]K'_/M'_P!_ M7_QH_P"%O:Q_S[1_]_7_`,:/9!<]XHKP?_A;VL?\^T?_`']?_&C_`(6]K'_/ MM'_W]?\`QH]D%SWBBO!_^%O:Q_S[1_\`?U_\:/\`A;VL?\^T?_?U_P#&CV07 M/>**\'_X6]K'_/M'_P!_7_QH_P"%O:Q_S[1_]_7_`,:/9!<]XHKP?_A;VL?\ M^T?_`']?_&C_`(6]K'_/M'_W]?\`QH]D%SWBBO!_^%O:Q_S[1_\`?U_\:/\` MA;VL?\^T?_?U_P#&CV07/>**\'_X6]K'_/M'_P!_7_QH_P"%O:Q_S[1_]_7_ M`,:/9!<]XHKP?_A;VL?\^T?_`']?_&C_`(6]K'_/M'_W]?\`QH]D%SWBBO!_ M^%O:Q_S[1_\`?U_\:/\`A;VL?\^T?_?U_P#&CV07/>**\'_X6]K'_/M'_P!_ M7_QH_P"%O:Q_S[1_]_7_`,:/9!<]XHKP?_A;VL?\^T?_`']?_&C_`(6]K'_/ MM'_W]?\`QH]D%SWBBO!_^%O:Q_S[1_\`?U_\:/\`A;VL?\^T?_?U_P#&CV07 M/>*J:E_R#I?P_F*\2_X6]K'_`#[1_P#?U_\`&FO\6]6=2KVD3*>H,K$4*G9A A<X6__P"0C<_]=7_F:*CGE\^XEEQMWN6QG.,G-%;"/__9 ` end |
In reply to this post by Blair McGlashan
On Mon, 8 Apr 2002 09:38:53 +0100, "Blair McGlashan" <[hidden email]>
wrote: >4) Rearrange the order of the renderers in Flipper class>>defaultRenderers >so that the PublishedAspectInspector appears after the InstVarInspector. The >former goes through accessor methods to get values, and so may change the >state of the object if the accessors in question do that. Since it accesses >the values of aspects just to build and display the tree, any lazily >initialized instance variables will inevitably get initialized as a result. >The InstVarInspector, on the other hand, uses #instVarAt:, and so may be >less intrusive. > >Regarding the last point it would be interesting to get some feedback IMHO this would be much, much better, assuming that the aspect inspector would not do its thing until it was tabbed to. I tried to hack this at one point but didnt finish it. This would be the best of both worlds. In combination with the following, this would make the inspector completely unobtrusive. How would you and everyone else feel about not selecting self in the inst pane when the inspector comes up? This is the way other smalltalks work (at least VSE). Then the inspector comes up completely safely, (and quickly I might add) and I can choose just to look at one inst var if I want. Even more important, I would like to see this in the debugger (not to select self when stepping thru or whenever a stack frame is selected). This definitely causes me pain because it changes the order of execution of things (by going into printOns) or executes things I dont want executed at all. These side effects are detrimental to debugging. I actually have hacks to not select self in D4, which I would prefer not to have to port to D5. -Alan |
Alan,
> How would you and everyone else feel about not selecting self in the inst pane > when the inspector comes up? This is the way other smalltalks work (at least > VSE). Then the inspector comes up completely safely, (and quickly I might add) > and I can choose just to look at one inst var if I want. > > Even more important, I would like to see this in the debugger (not to select > self when stepping thru or whenever a stack frame is selected). This > definitely causes me pain because it changes the order of execution of things > (by going into printOns) or executes things I dont want executed at all. These > side effects are detrimental to debugging. > > I actually have hacks to not select self in D4, which I would prefer not to > have to port to D5. 99% of the time, having to select self is is just one more thing to do, though you are correct to point out that it's impossible to undo in the few situations where it matters. How about an option so we can each have it our way? Have a good one, Bill --- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by Alan Reider
Alan Reider wrote
> How would you and everyone else feel about not selecting self in the inst pane > when the inspector comes up? This is the way other smalltalks work (at least > VSE). Then the inspector comes up completely safely, (and quickly I might add) > and I can choose just to look at one inst var if I want. I've been given grief by this too, and it's a major pain when it happens (though, it only rarely has, to me, so far). Actually the real problem is the way it reverts to 'self' on every F11 too. That's a nuisance in both the exceptional case, where there's some slow error in the #printString (or #debugPrintString which is what I think the debugger actually calls), and in the normal case where nothing is going very wrong, but I just want to keep an eye on some variable as I step through. I don't know how difficult it would be, but if: - the debugger came up with nothing selected. - entering a new method reverted the selection to nil (as it were). - stepping through a method preserved the current selection. then I think that'd be both more convenient (on balance) *and* safer. -- chris |
In reply to this post by Blair McGlashan
Blair,
> Regarding the last point it would be interesting to get some feedback as to > the preferred order of renderers in the inspector as shipped. Would you > prefer to see the "basic" instance variables pane first, or the published > aspects? What does everyone else think? Changing the order to put the PAI second is already part of my standard config script for D5... > Blair -- chris |
In reply to this post by Bill Schwab-2
"Bill Schwab" <[hidden email]> wrote in message
news:[hidden email]... > ... > I'm starting to suspect that the basic inspector is happier as the alternate > than as the default inspector. ... Yes, it is less than ideal. You are always getting the basic BasicInspector. I remember being vaguely concerned about this when the suggestion of normal and alternate inspector classes was originally made, and though it seemed to me that a better solution would be to make the selector sent to the class be the configurable option (since otherwise it is difficult to see how one can sensibly permit different classes to have different classes of inspector) I didn't think through the details enough to implement it that way. I think I'll just make it a toggle, so that one can choose to use to invert the order of normal/alternate inspectors. Regards Blair |
In reply to this post by Chris Uppal-3
Alan, Chris
"Chris Uppal" <[hidden email]> wrote in message news:[hidden email]... > Alan Reider wrote > > > How would you and everyone else feel about not selecting self in the inst > pane > > when the inspector comes up? This is the way other smalltalks work (at > least > > VSE). Then the inspector comes up completely safely, (and quickly I might > add) > > and I can choose just to look at one inst var if I want. > > I've been given grief by this too, and it's a major pain when it happens > (though, it only rarely has, to me, so far). This is the purpose of #debugPrintString. It should be overridden where #printOn: is doing rather more than > > Actually the real problem is the way it reverts to 'self' on every F11 too. > That's a nuisance in both the exceptional case, where there's some slow > error in the #printString (or #debugPrintString which is what I think the > debugger actually calls), and in the normal case where nothing is going very > wrong, but I just want to keep an eye on some variable as I step through. I'm confused. Selection is already maintained as one steps, at least as far as that makes sense. When the method changes, then obviously it may not be possible to maintain the selection. Personally I think it would be a right royal pain if 'self' were not selected in the majority of cases (we tried the Flipper inspector without this for a while, and it was). In special cases you always have the option of defining an appropriate #printOn: (or #debugPrintString:), remembering that for application display purposes #displayOn: is provided. A possible improvement in the debugger would be to maintain 'no selection' if the user deselected self. However we'd really like to get D5 shipped before next Christmas, so we (and I mean that collectively) need to start getting realistic about what is important to the majority of people the majority of the time, and what is not (you may judge, correctly, that I'm getting a bit pissed off with this). Regards Blair |
On Tue, 9 Apr 2002 09:25:43 +0100, "Blair McGlashan" <[hidden email]>
wrote: >Alan, Chris >>This is the purpose of #debugPrintString. It should be overridden where >#printOn: is doing rather more than I do want the full #printOn: in the debugger, I'd just rather it wasn't executed on open and every time that a stack frame is selected. >A possible improvement in the debugger would be to maintain 'no selection' >if the user deselected self. However we'd really like to get D5 shipped >before next Christmas, so we (and I mean that collectively) need to start >getting realistic about what is important to the majority of people the >majority of the time, and what is not (you may judge, correctly, that I'm >getting a bit pissed off with this). Sorry, I dont want that. Afaic, forget about it. I was just curious whether the self-selection issue was something bothering everyone or just me. Seems mostly just me, so I will adapt. re the original Flipper issue; it can cause instabilities and I feel I did my duty reporting that. Again, afaic, not an issue worth holding up D5 for. -Alan |
In reply to this post by Blair McGlashan
Blair,
> I'm confused. No, it's me who was confused. I'm sorry about that. Please disregard my post entirely. (Things have turned a rather ugly around here, and I was more distracted than I knew). -- chris |
Free forum by Nabble | Edit this page |