RE: eliminate EXTENSIBLE types?

From: [at]} <support{>
Date: Mon, 4 Oct 2004 08:55:37 +0200

----boundary-LibPST-iamunique-1885060255_-_-
Content-type: text/plain

Harro,

what do you think about the following solution?

Cheers
Marc
Oberon microsystems, Inc.


MODULE PrivA;

  IMPORT StdLog;

  TYPE A* = POINTER TO ABSTRACT RECORD END;

  PROCEDURE (a: A) Init2-, NEW, ABSTRACT;

  PROCEDURE (a: A) Init*, NEW;
  BEGIN
    StdLog.String("A.Init"); StdLog.Ln;
    a.Init2
  END Init;

END PrivA.

MODULE PrivB;

  IMPORT StdLog, PrivA;

  TYPE B* = POINTER TO RECORD (PrivA.A) END;

  PROCEDURE (b: B) Init2-;
  BEGIN
    StdLog.String("B.Init2"); StdLog.Ln
  END Init2;

END PrivB.

MODULE PrivC;

  IMPORT PrivB;

  PROCEDURE Do*;
    VAR b: PrivB.B;
  BEGIN
    NEW(b); b.Init
  END Do;

END PrivC.



> -----Original Message-----
> From: H. v. L. [mailto:hvl{([at]})nowhere.xy
> Sent: Sonntag, 3. Oktober 2004 12:57
> To: Fyodor Tkachov
> Cc: BlackBox mailing list
> Subject: Re: eliminate EXTENSIBLE types?
>
>
> On Sat, 02 Oct 2004 12:46:34 +0400, Fyodor Tkachov
> <fyodor.tkachov{([at]})nowhere.xy
>

> > I would like to discuss the following simplification of our
> language:
> > would it not be good to banish EXTENSIBLE types altogether?
> Especially
> > that supercalls are to be eliminated.
>
> EXTENSIBLE types or supercalls?
>
> If I understand the proposal right it's concern is not about
> the type
> attribute EXTENSIBLE but about EXTENSIBLE methods and supercalls.
>
> With respect to EXTENSIBLE types (like TYPE E = POINTER TO
> EXTENSIBLE
> RECORD ... END) I think it's a matter of choice. If a
> programmer wants to
> use this kind of class declaration, why not, it's up to him.
>
> Another question is EXTENSIBLE methods which always are
> delicate matter
> because they enable supercalls. But to me this possibility is
> exactly the
> reason for their existence. Imagine the following scenario
>
> TYPE
> A* = POINTER TO ABSTRACT RECORD
> <attributes>
> PROCEDURE (a: A) Init, NEW, EXTENSIBLE;
> <other methods>
> END;
>
> B* = POINTER TO ABSTRACT RECORD (A)
> <more attributes>
> PROCEDURE (b: B) Init, EXTENSIBLE;
> <more methods>
> END;
>
> C = POINTER TO LIMITED RECORD (B)
> <more attributes>
> PROCEDURE (c: C) Init;
> <more methods>
> END;
>
> Let each of these types be contained in a separate module.
> Evidently only
> Type C may be instantiated. Nevertheless each of the base
> types has and
> needs it's own Init method
>
> PROCEDURE (a: A) Init, NEW, EXTENSIBLE;
> BEGIN
> ...
> END;
>
> PROCEDURE (b: B) Init, EXTENSIBLE;
> BEGIN
> Init^;
> ...
> END;
>
> and
>
> PROCEDURE (c: C) Init;
> BEGIN
> Init^;
> ...
> END;
>
> This scenario depends on supercalls, initialization can be
> and is done in
> a clear cut fashion, the Init methods of the base types can't
> be called
> directly.
>
> If you eliminate EXTENSIBLE methods from the language the
> same situation
> looks like this
>
> TYPE
> A* = POINTER TO ABSTRACT RECORD
> <attributes>
> PROCEDURE (a: A) InitA, NEW;
> <more methods>
> END;
>
> B* = POINTER TO ABSTRACT RECORD (A)
> <more attributes>
> PROCEDURE (b: B) InitB; NEW;
> <more methods>
> END;
>
> C = POINTER TO LIMITED RECORD (B)
> <more attributes>
> PROCEDURE (c: C) InitC; NEW;
> <more methods>
> END;
>
> So what does InitC has to do? In one possible scenario the abstract
> classes define their Init methods like above but InitB does
> not call InitA
>
> PROCEDURE (a: A) InitC, NEW;
> BEGIN
> ...
> END;
>
> PROCEDURE (b: B) InitC, NEW;
> BEGIN
> ...
> END;
>
> and InitC has to do all the initializations, probably in a
> specific order
>
> PROCEDURE (c: C) InitC, NEW;
> BEGIN
> InitA;
> InitB;
> ...
> END;
>
> The other scenario looks like this
>
> PROCEDURE (a: A) InitC, NEW;
> BEGIN
> ...
> END;
>
> PROCEDURE (b: B) InitC, NEW;
> BEGIN
> InitA;
> ...
> END;
>
> PROCEDURE (c: C) InitC, NEW;
> BEGIN
> InitB;
> ...
> END;
>
> In this case InitC has to call InitB only because InitA is
> called by InitB
> already.
>
> Now imagine the author of InitC does not know about the
> details, that is
> about initializations, and his version of InitC is
>
> PROCEDURE (c: C) InitC, NEW;
> BEGIN
> InitA;
> InitB;
> ...
> END;
>
> The least harmful situation might be that the second call of
> InitA does
> not change anything, it's only superfluous. But can you be
> shure of this?
> There may be situations where the second call destroys some
> initialization
> having been done by InitB and then ... up, up and away!
> Of course a behaviour like this ought to be documented, but
> you can't be
> certain everybody will always know the documentation or have
> it available
> and again the ambiguity is there.
> So my conclusion is, we need EXTENSIBLE methods and
> supercalls. Or is

> there another way of doing the job I do not see?
>
> Harro von Lavergne
>
> www.lahini.de
> --------------------------------------------
>
> To unsubscribe from this mailing list, send a message
> containing the word "unsubscribe" to:
> blackbox-request{([at]})nowhere.xy
>
> To get a list of valid e-mail commands and instructions on
> their usage, send a message containing the word "help" to the
> above address.
>
> Send any problem reports or questions related to this email
> list to the list owner at
> owner-blackbox{([at]})nowhere.xy
>
> Current posting policy:
>
> a) To post you should use the same address by which you are
> subscribed to the mailing list. That way, the list server
> will recognize you as subscriber and forward your posting
> immediately, without creating any overhead.
>
> b) If, for some reason, you cannot post from the address, by
> which you are subscribed, your message will be moderated to
> avoid spam. Please understand that moderation will often
> cause some delay, in particular over weekends or holydays.
>


--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-1885060255_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEhhcnJvLFxwYXINClxwYXINCndoYXQgZG8geW91
IHRoaW5rIGFib3V0IHRoZSBmb2xsb3dpbmcgc29sdXRpb24/XHBhcg0KXHBhcg0KQ2hlZXJzXHBh
cg0KTWFyY1xwYXINCk9iZXJvbiBtaWNyb3N5c3RlbXMsIEluYy5ccGFyDQpccGFyDQpccGFyDQpN
T0RVTEUgUHJpdkE7XHBhcg0KXHBhcg0KICBJTVBPUlQgU3RkTG9nO1xwYXINClxwYXINCiAgVFlQ
RSBBKiA9IFBPSU5URVIgVE8gQUJTVFJBQ1QgUkVDT1JEIEVORDtccGFyDQpccGFyDQogIFBST0NF
RFVSRSAoYTogQSkgSW5pdDItLCBORVcsIEFCU1RSQUNUO1xwYXINClxwYXINCiAgUFJPQ0VEVVJF
IChhOiBBKSBJbml0KiwgTkVXO1xwYXINCiAgQkVHSU5ccGFyDQogICAgU3RkTG9nLlN0cmluZygi
QS5Jbml0Iik7IFN0ZExvZy5MbjtccGFyDQogICAgYS5Jbml0MlxwYXINCiAgRU5EIEluaXQ7XHBh
cg0KXHBhcg0KRU5EIFByaXZBLlxwYXINClxwYXINCk1PRFVMRSBQcml2QjtccGFyDQpccGFyDQog
IElNUE9SVCBTdGRMb2csIFByaXZBO1xwYXINClxwYXINCiAgVFlQRSBCKiA9IFBPSU5URVIgVE8g
UkVDT1JEIChQcml2QS5BKSBFTkQ7XHBhcg0KXHBhcg0KICBQUk9DRURVUkUgKGI6IEIpIEluaXQy
LTtccGFyDQogIEJFR0lOXHBhcg0KICAgIFN0ZExvZy5TdHJpbmcoIkIuSW5pdDIiKTsgU3RkTG9n
LkxuXHBhcg0KICBFTkQgSW5pdDI7XHBhcg0KXHBhcg0KRU5EIFByaXZCLlxwYXINClxwYXINCk1P
RFVMRSBQcml2QztccGFyDQpccGFyDQogIElNUE9SVCBQcml2QjtccGFyDQpccGFyDQogIFBST0NF
RFVSRSBEbyo7XHBhcg0KICAgIFZBUiBiOiBQcml2Qi5CO1xwYXINCiAgQkVHSU5ccGFyDQogICAg
TkVXKGIpOyBiLkluaXRccGFyDQogIEVORCBEbztccGFyDQpccGFyDQpFTkQgUHJpdkMuXHBhcg0K
XHBhcg0KXHBhcg0KXHBhcg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLVxwYXINCj4gRnJv
bTogSC4gdi4gTC4gW21haWx0bzpodmxAbGFoaW5pLmRlXSBccGFyDQo+IFNlbnQ6IFNvbm50YWcs
IDMuIE9rdG9iZXIgMjAwNCAxMjo1N1xwYXINCj4gVG86IEZ5b2RvciBUa2FjaG92XHBhcg0KPiBD
YzogQmxhY2tCb3ggbWFpbGluZyBsaXN0XHBhcg0KPiBTdWJqZWN0OiBSZTogZWxpbWluYXRlIEVY
VEVOU0lCTEUgdHlwZXM/XHBhcg0KPiBccGFyDQo+IFxwYXINCj4gT24gU2F0LCAwMiBPY3QgMjAw
NCAxMjo0NjozNCArMDQwMCwgRnlvZG9yIFRrYWNob3YgIFxwYXINCj4gPGZ5b2Rvci50a2FjaG92
QGNlcm4uY2g+IHdyb3RlOlxwYXINCj4gXHBhcg0KPiA+IEkgd291bGQgbGlrZSB0byBkaXNjdXNz
IHRoZSBmb2xsb3dpbmcgc2ltcGxpZmljYXRpb24gb2Ygb3VyIFxwYXINCj4gbGFuZ3VhZ2U6IFxw
YXINCj4gPiB3b3VsZCBpdCBub3QgYmUgZ29vZCB0byBiYW5pc2ggRVhURU5TSUJMRSB0eXBlcyBh
bHRvZ2V0aGVyPyBccGFyDQo+IEVzcGVjaWFsbHkgXHBhcg0KPiA+IHRoYXQgc3VwZXJjYWxscyBh
cmUgdG8gYmUgZWxpbWluYXRlZC5ccGFyDQo+IFxwYXINCj4gRVhURU5TSUJMRSB0eXBlcyBvciBz
dXBlcmNhbGxzP1xwYXINCj4gXHBhcg0KPiBJZiBJIHVuZGVyc3RhbmQgdGhlIHByb3Bvc2FsIHJp
Z2h0IGl0J3MgY29uY2VybiBpcyBub3QgYWJvdXQgXHBhcg0KPiB0aGUgdHlwZSAgXHBhcg0KPiBh
dHRyaWJ1dGUgRVhURU5TSUJMRSBidXQgYWJvdXQgRVhURU5TSUJMRSBtZXRob2RzIGFuZCBzdXBl
cmNhbGxzLlxwYXINCj4gXHBhcg0KPiBXaXRoIHJlc3BlY3QgdG8gRVhURU5TSUJMRSB0eXBlcyAo
bGlrZSBUWVBFIEUgPSBQT0lOVEVSIFRPIFxwYXINCj4gRVhURU5TSUJMRSAgXHBhcg0KPiBSRUNP
UkQgLi4uIEVORCkgSSB0aGluayBpdCdzIGEgbWF0dGVyIG9mIGNob2ljZS4gSWYgYSBccGFyDQo+
IHByb2dyYW1tZXIgd2FudHMgdG8gIFxwYXINCj4gdXNlIHRoaXMga2luZCBvZiBjbGFzcyBkZWNs
YXJhdGlvbiwgd2h5IG5vdCwgaXQncyB1cCB0byBoaW0uXHBhcg0KPiBccGFyDQo+IEFub3RoZXIg
cXVlc3Rpb24gaXMgRVhURU5TSUJMRSBtZXRob2RzIHdoaWNoIGFsd2F5cyBhcmUgXHBhcg0KPiBk
ZWxpY2F0ZSBtYXR0ZXIgIFxwYXINCj4gYmVjYXVzZSB0aGV5IGVuYWJsZSBzdXBlcmNhbGxzLiBC
dXQgdG8gbWUgdGhpcyBwb3NzaWJpbGl0eSBpcyBccGFyDQo+IGV4YWN0bHkgdGhlICBccGFyDQo+
IHJlYXNvbiBmb3IgdGhlaXIgZXhpc3RlbmNlLiBJbWFnaW5lIHRoZSBmb2xsb3dpbmcgc2NlbmFy
aW9ccGFyDQo+IFxwYXINCj4gVFlQRVxwYXINCj4gXHRhYiBBKiA9IFBPSU5URVIgVE8gQUJTVFJB
Q1QgUkVDT1JEXHBhcg0KPiBcdGFiIFx0YWIgPGF0dHJpYnV0ZXM+XHBhcg0KPiBcdGFiIFx0YWIg
UFJPQ0VEVVJFIChhOiBBKSBJbml0LCBORVcsIEVYVEVOU0lCTEU7XHBhcg0KPiBcdGFiIFx0YWIg
PG90aGVyIG1ldGhvZHM+XHBhcg0KPiBcdGFiIEVORDtccGFyDQo+IFx0YWIgXHBhcg0KPiBcdGFi
IEIqID0gUE9JTlRFUiBUTyBBQlNUUkFDVCBSRUNPUkQgKEEpXHBhcg0KPiBcdGFiIFx0YWIgPG1v
cmUgYXR0cmlidXRlcz5ccGFyDQo+IFx0YWIgXHRhYiBQUk9DRURVUkUgKGI6IEIpIEluaXQsIEVY
VEVOU0lCTEU7XHBhcg0KPiBcdGFiIFx0YWIgPG1vcmUgbWV0aG9kcz5ccGFyDQo+IFx0YWIgRU5E
O1xwYXINCj4gXHRhYiBccGFyDQo+IFx0YWIgQyA9IFBPSU5URVIgVE8gTElNSVRFRCBSRUNPUkQg
KEIpXHBhcg0KPiBcdGFiIFx0YWIgPG1vcmUgYXR0cmlidXRlcz5ccGFyDQo+IFx0YWIgXHRhYiBQ
Uk9DRURVUkUgKGM6IEMpIEluaXQ7XHBhcg0KPiBcdGFiIFx0YWIgPG1vcmUgbWV0aG9kcz5ccGFy
DQo+IFx0YWIgRU5EO1xwYXINCj4gXHBhcg0KPiBMZXQgZWFjaCBvZiB0aGVzZSB0eXBlcyBiZSBj
b250YWluZWQgaW4gYSBzZXBhcmF0ZSBtb2R1bGUuIFxwYXINCj4gRXZpZGVudGx5IG9ubHkgIFxw
YXINCj4gVHlwZSBDIG1heSBiZSBpbnN0YW50aWF0ZWQuIE5ldmVydGhlbGVzcyBlYWNoIG9mIHRo
ZSBiYXNlIFxwYXINCj4gdHlwZXMgaGFzIGFuZCAgXHBhcg0KPiBuZWVkcyBpdCdzIG93biBJbml0
IG1ldGhvZFxwYXINCj4gXHBhcg0KPiBcdGFiIFBST0NFRFVSRSAoYTogQSkgSW5pdCwgTkVXLCBF
WFRFTlNJQkxFO1xwYXINCj4gXHRhYiBCRUdJTlxwYXINCj4gXHRhYiBcdGFiIC4uLlxwYXINCj4g
XHRhYiBFTkQ7XHBhcg0KPiBccGFyDQo+IFx0YWIgUFJPQ0VEVVJFIChiOiBCKSBJbml0LCBFWFRF
TlNJQkxFO1xwYXINCj4gXHRhYiBCRUdJTlxwYXINCj4gXHRhYiBcdGFiIEluaXReO1xwYXINCj4g
XHRhYiBcdGFiIC4uLlxwYXINCj4gXHRhYiBFTkQ7XHBhcg0KPiBccGFyDQo+IGFuZFxwYXINCj4g
XHBhcg0KPiBcdGFiIFBST0NFRFVSRSAoYzogQykgSW5pdDtccGFyDQo+IFx0YWIgQkVHSU5ccGFy
DQo+IFx0YWIgXHRhYiBJbml0XjtccGFyDQo+IFx0YWIgXHRhYiAuLi5ccGFyDQo+IFx0YWIgRU5E
O1xwYXINCj4gXHBhcg0KPiBUaGlzIHNjZW5hcmlvIGRlcGVuZHMgb24gc3VwZXJjYWxscywgaW5p
dGlhbGl6YXRpb24gY2FuIGJlIFxwYXINCj4gYW5kIGlzIGRvbmUgaW4gIFxwYXINCj4gYSBjbGVh
ciBjdXQgZmFzaGlvbiwgdGhlIEluaXQgbWV0aG9kcyBvZiB0aGUgYmFzZSB0eXBlcyBjYW4ndCBc
cGFyDQo+IGJlIGNhbGxlZCAgXHBhcg0KPiBkaXJlY3RseS5ccGFyDQo+IFxwYXINCj4gSWYgeW91
IGVsaW1pbmF0ZSBFWFRFTlNJQkxFIG1ldGhvZHMgZnJvbSB0aGUgbGFuZ3VhZ2UgdGhlIFxwYXIN
Cj4gc2FtZSBzaXR1YXRpb24gIFxwYXINCj4gbG9va3MgbGlrZSB0aGlzXHBhcg0KPiBccGFyDQo+
IFRZUEVccGFyDQo+IFx0YWIgQSogPSBQT0lOVEVSIFRPIEFCU1RSQUNUIFJFQ09SRFxwYXINCj4g
XHRhYiBcdGFiIDxhdHRyaWJ1dGVzPlxwYXINCj4gXHRhYiBcdGFiIFBST0NFRFVSRSAoYTogQSkg
SW5pdEEsIE5FVztccGFyDQo+IFx0YWIgXHRhYiA8bW9yZSBtZXRob2RzPlxwYXINCj4gXHRhYiBF
TkQ7XHBhcg0KPiBcdGFiIFxwYXINCj4gXHRhYiBCKiA9IFBPSU5URVIgVE8gQUJTVFJBQ1QgUkVD
T1JEIChBKVxwYXINCj4gXHRhYiBcdGFiIDxtb3JlIGF0dHJpYnV0ZXM+XHBhcg0KPiBcdGFiIFx0
YWIgUFJPQ0VEVVJFIChiOiBCKSBJbml0QjsgTkVXO1xwYXINCj4gXHRhYiBcdGFiIDxtb3JlIG1l
dGhvZHM+XHBhcg0KPiBcdGFiIEVORDtccGFyDQo+IFx0YWIgXHBhcg0KPiBcdGFiIEMgPSBQT0lO
VEVSIFRPIExJTUlURUQgUkVDT1JEIChCKVxwYXINCj4gXHRhYiBcdGFiIDxtb3JlIGF0dHJpYnV0
ZXM+XHBhcg0KPiBcdGFiIFx0YWIgUFJPQ0VEVVJFIChjOiBDKSBJbml0QzsgTkVXO1xwYXINCj4g
XHRhYiBcdGFiIDxtb3JlIG1ldGhvZHM+XHBhcg0KPiBcdGFiIEVORDtccGFyDQo+IFxwYXINCj4g
U28gd2hhdCBkb2VzIEluaXRDIGhhcyB0byBkbz8gSW4gb25lIHBvc3NpYmxlIHNjZW5hcmlvIHRo
ZSBhYnN0cmFjdCAgXHBhcg0KPiBjbGFzc2VzIGRlZmluZSB0aGVpciBJbml0IG1ldGhvZHMgbGlr
ZSBhYm92ZSBidXQgSW5pdEIgZG9lcyBccGFyDQo+IG5vdCBjYWxsIEluaXRBXHBhcg0KPiBccGFy
DQo+IFx0YWIgUFJPQ0VEVVJFIChhOiBBKSBJbml0QywgTkVXO1xwYXINCj4gXHRhYiBCRUdJTlxw
YXINCj4gXHRhYiBcdGFiIC4uLlxwYXINCj4gXHRhYiBFTkQ7XHBhcg0KPiBccGFyDQo+IFx0YWIg
UFJPQ0VEVVJFIChiOiBCKSBJbml0QywgTkVXO1xwYXINCj4gXHRhYiBCRUdJTlxwYXINCj4gXHRh
YiBcdGFiIC4uLlxwYXINCj4gXHRhYiBFTkQ7XHBhcg0KPiBccGFyDQo+IGFuZCBJbml0QyBoYXMg
dG8gZG8gYWxsIHRoZSBpbml0aWFsaXphdGlvbnMsIHByb2JhYmx5IGluIGEgXHBhcg0KPiBzcGVj
aWZpYyBvcmRlclxwYXINCj4gXHBhcg0KPiBcdGFiIFBST0NFRFVSRSAoYzogQykgSW5pdEMsIE5F
VztccGFyDQo+IFx0YWIgQkVHSU5ccGFyDQo+IFx0YWIgXHRhYiBJbml0QTtccGFyDQo+IFx0YWIg
XHRhYiBJbml0QjtccGFyDQo+IFx0YWIgXHRhYiAuLi5ccGFyDQo+IFx0YWIgRU5EO1xwYXINCj4g
XHBhcg0KPiBUaGUgb3RoZXIgc2NlbmFyaW8gbG9va3MgbGlrZSB0aGlzXHBhcg0KPiBccGFyDQo+
IFx0YWIgUFJPQ0VEVVJFIChhOiBBKSBJbml0QywgTkVXO1xwYXINCj4gXHRhYiBCRUdJTlxwYXIN
Cj4gXHRhYiBcdGFiIC4uLlxwYXINCj4gXHRhYiBFTkQ7XHBhcg0KPiBccGFyDQo+IFx0YWIgUFJP
Q0VEVVJFIChiOiBCKSBJbml0QywgTkVXO1xwYXINCj4gXHRhYiBCRUdJTlxwYXINCj4gXHRhYiBc
dGFiIEluaXRBO1xwYXINCj4gXHRhYiBcdGFiIC4uLlxwYXINCj4gXHRhYiBFTkQ7XHBhcg0KPiBc
cGFyDQo+IFx0YWIgUFJPQ0VEVVJFIChjOiBDKSBJbml0QywgTkVXO1xwYXINCj4gXHRhYiBCRUdJ
TlxwYXINCj4gXHRhYiBcdGFiIEluaXRCO1xwYXINCj4gXHRhYiBcdGFiIC4uLlxwYXINCj4gXHRh
YiBFTkQ7XHBhcg0KPiBccGFyDQo+IEluIHRoaXMgY2FzZSBJbml0QyBoYXMgdG8gY2FsbCBJbml0
QiBvbmx5IGJlY2F1c2UgSW5pdEEgaXMgXHBhcg0KPiBjYWxsZWQgYnkgSW5pdEIgIFxwYXINCj4g
YWxyZWFkeS5ccGFyDQo+IFxwYXINCj4gTm93IGltYWdpbmUgdGhlIGF1dGhvciBvZiBJbml0QyBk
b2VzIG5vdCBrbm93IGFib3V0IHRoZSBccGFyDQo+IGRldGFpbHMsIHRoYXQgaXMgIFxwYXINCj4g
YWJvdXQgaW5pdGlhbGl6YXRpb25zLCBhbmQgaGlzIHZlcnNpb24gb2YgSW5pdEMgaXNccGFyDQo+
IFxwYXINCj4gXHRhYiBQUk9DRURVUkUgKGM6IEMpIEluaXRDLCBORVc7XHBhcg0KPiBcdGFiIEJF
R0lOXHBhcg0KPiBcdGFiIFx0YWIgSW5pdEE7XHBhcg0KPiBcdGFiIFx0YWIgSW5pdEI7XHBhcg0K
PiBcdGFiIFx0YWIgLi4uXHBhcg0KPiBcdGFiIEVORDtccGFyDQo+IFxwYXINCj4gVGhlIGxlYXN0
IGhhcm1mdWwgc2l0dWF0aW9uIG1pZ2h0IGJlIHRoYXQgdGhlIHNlY29uZCBjYWxsIG9mIFxwYXIN
Cj4gSW5pdEEgZG9lcyAgXHBhcg0KPiBub3QgY2hhbmdlIGFueXRoaW5nLCBpdCdzIG9ubHkgc3Vw
ZXJmbHVvdXMuIEJ1dCBjYW4geW91IGJlIFxwYXINCj4gc2h1cmUgb2YgdGhpcz8gIFxwYXINCj4g
VGhlcmUgbWF5IGJlIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHNlY29uZCBjYWxsIGRlc3Ryb3lzIHNv
bWUgXHBhcg0KPiBpbml0aWFsaXphdGlvbiAgXHBhcg0KPiBoYXZpbmcgYmVlbiBkb25lIGJ5IElu
aXRCIGFuZCB0aGVuIC4uLiB1cCwgdXAgYW5kIGF3YXkhXHBhcg0KPiBPZiBjb3Vyc2UgYSBiZWhh
dmlvdXIgbGlrZSB0aGlzIG91Z2h0IHRvIGJlIGRvY3VtZW50ZWQsIGJ1dCBccGFyDQo+IHlvdSBj
YW4ndCBiZSAgXHBhcg0KPiBjZXJ0YWluIGV2ZXJ5Ym9keSB3aWxsIGFsd2F5cyBrbm93IHRoZSBk
b2N1bWVudGF0aW9uIG9yIGhhdmUgXHBhcg0KPiBpdCBhdmFpbGFibGUgIFxwYXINCj4gYW5kIGFn
YWluIHRoZSBhbWJpZ3VpdHkgaXMgdGhlcmUuXHBhcg0KPiBTbyBteSBjb25jbHVzaW9uIGlzLCB3
ZSBuZWVkIEVYVEVOU0lCTEUgbWV0aG9kcyBhbmQgXHBhcg0KPiBzdXBlcmNhbGxzLiBPciBpcyAg
XHBhcg0KPiB0aGVyZSBhbm90aGVyIHdheSBvZiBkb2luZyB0aGUgam9iIEkgZG8gbm90IHNlZT9c
cGFyDQo+IFxwYXINCj4gSGFycm8gdm9uIExhdmVyZ25lXHBhcg0KPiBccGFyDQo+IHd3dy5sYWhp
bmkuZGVccGFyDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
XHBhcg0KPiBccGFyDQo+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNl
bmQgYSBtZXNzYWdlIFxwYXINCj4gY29udGFpbmluZyB0aGUgd29yZCAidW5zdWJzY3JpYmUiIHRv
OlxwYXINCj4gICAgYmxhY2tib3gtcmVxdWVzdEBvYmVyb24uY2hccGFyDQo+IFxwYXINCj4gVG8g
Z2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3RydWN0aW9ucyBvbiBc
cGFyDQo+IHRoZWlyIHVzYWdlLCBzZW5kIGEgbWVzc2FnZSBjb250YWluaW5nIHRoZSB3b3JkICJo
ZWxwIiB0byB0aGUgXHBhcg0KPiBhYm92ZSBhZGRyZXNzLlxwYXINCj4gXHBhcg0KPiBTZW5kIGFu
eSBwcm9ibGVtIHJlcG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhpcyBlbWFpbCBccGFy
DQo+IGxpc3QgdG8gdGhlIGxpc3Qgb3duZXIgYXRccGFyDQo+ICAgIG93bmVyLWJsYWNrYm94QG9i
ZXJvbi5jaFxwYXINCj4gXHBhcg0KPiBDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINCj4gXHBh
cg0KPiBhKSBUbyBwb3N0IHlvdSBzaG91bGQgdXNlIHRoZSBzYW1lIGFkZHJlc3MgYnkgd2hpY2gg
eW91IGFyZSBccGFyDQo+IHN1YnNjcmliZWQgdG8gdGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3YXks
IHRoZSBsaXN0IHNlcnZlciBccGFyDQo+IHdpbGwgcmVjb2duaXplIHlvdSBhcyBzdWJzY3JpYmVy
IGFuZCBmb3J3YXJkIHlvdXIgcG9zdGluZyBccGFyDQo+IGltbWVkaWF0ZWx5LCB3aXRob3V0IGNy
ZWF0aW5nIGFueSBvdmVyaGVhZC5ccGFyDQo+IFxwYXINCj4gYikgSWYsIGZvciBzb21lIHJlYXNv
biwgeW91IGNhbm5vdCBwb3N0IGZyb20gdGhlIGFkZHJlc3MsIGJ5IFxwYXINCj4gd2hpY2ggeW91
IGFyZSBzdWJzY3JpYmVkLCB5b3VyIG1lc3NhZ2Ugd2lsbCBiZSBtb2RlcmF0ZWQgdG8gXHBhcg0K
PiBhdm9pZCBzcGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRl
biBccGFyDQo+IGNhdXNlIHNvbWUgZGVsYXksIGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBv
ciBob2x5ZGF5cy5ccGFyDQo+IFxwYXINClxwYXINClxwYXINCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0
aGlzIG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAidW5z
dWJzY3JpYmUiIHRvOlxwYXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNoXHBhcg0KXHBh
cg0KVG8gZ2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3RydWN0aW9u
cyBvbiB0aGVpciB1c2FnZSwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiaGVs
cCIgdG8gdGhlIGFib3ZlIGFkZHJlc3MuXHBhcg0KXHBhcg0KU2VuZCBhbnkgcHJvYmxlbSByZXBv
cnRzIG9yIHF1ZXN0aW9ucyByZWxhdGVkIHRvIHRoaXMgZW1haWwgbGlzdCB0byB0aGUgbGlzdCBv
d25lciBhdFxwYXINCiAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCkN1cnJl
bnQgcG9zdGluZyBwb2xpY3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0
aGUgc2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgbWFpbGlu
ZyBsaXN0LiBUaGF0IHdheSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlvdSBhcyBz
dWJzY3JpYmVyIGFuZCBmb3J3YXJkIHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwgd2l0aG91dCBj
cmVhdGluZyBhbnkgb3ZlcmhlYWQuXHBhcg0KXHBhcg0KYikgSWYsIGZvciBzb21lIHJlYXNvbiwg
eW91IGNhbm5vdCBwb3N0IGZyb20gdGhlIGFkZHJlc3MsIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2Ny
aWJlZCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNwYW0uIFBsZWFz
ZSB1bmRlcnN0YW5kIHRoYXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNvbWUgZGVsYXks
IGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvciBob319AHksIHdpdGhvdXQg


----boundary-LibPST-iamunique-1885060255_-_---
Received on Mon Oct 04 2004 - 08:55:37 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:34 UTC