----boundary-LibPST-iamunique-173058980_-_-
Content-type: text/plain
Stan:
I want to chime in my observation. I work with engineers and I
noticed their reluctance to accept abstract prescriptions, unless
very solidly motivated. I would ask what are you trying to avoid
by eliminating procedure types? Is there any serious safety concern
raised by such types? Will programs crash less often if the procedural
types are eliminated?
In case procedure types are a security hole then yes, one should consider
eliminating such a hole. However, my understanding is that you are trying
to clean the language or to improve its "expressive power". I think this
is highly subjective. My collegaues have enough difficulty with OOP.
They would welcome anything that resembles Fortran, and procedural
types definitely have this flavor. They make it easier to make a
connection with Press&Teukolsky, for example.
W.
On Thu, 18 Nov 2004, Stan Warford wrote:
> Robert,
> Thanks for your note. But someone please help me understand this.
> I proposed to define the function
>
> TYPE
> Function* = POINTER TO ABSTRACT RECORD END;
>
> PROCEDURE (f: Function) ValueOf* (x: REAL): REAL, NEW, ABSTRACT;
>
> and use it as
>
> TYPE
> MyFunction = POINTER TO RECORD (NumericalProcessor.Function) END;
>
> I am trying to understand why this is so different from procedure
> types. The above literally defines a procedure type and allows
> you to pass a procedure as a parameter.
>
> (1) Is the problem one of requiring all the math functions in the
> library
> to be this type if you are going to be able to pass them as parameters?
> Would it be a major complication to have to wrap the functions this way?
>
> (2) Is it a convenience problem of having to write
>
> f.ValueOf (min)
>
> instead of
>
> f (min)
>
> I can understand your point if the answer is yes to either of these
> questions, although it seems that (1) would be the most problematic.
> Are these two points why you say that procedure types are simple
> and direct? Or are there some other complications?
>
> Thanks for everybody's feedback.
> Cheers,
> Stan
>
> >>> Stan:
> >>>
> >
> >>>> With object-orientation, procedure types are redundant and should
> >>>> be eliminated, IMHO. You should design your numerical processing ...
> >
> >>> I do not disagree with your example, but who would ever use this
> >>> approach?
> >>> Your book on OOP is not among those that define numerical analysis.
> >>> "Numerical Recipes" are the foundation. It goes back to Fortran-IV.
> >>> If
> >>> anyone wants to calculate some integral or a special function, they
> >>> will
> >>> read Press & Teukolsky, not S.Warford.
> >
> >>> Along the lines of realism: one of our treasures is the
> >
> >>> huge collection of
> >>> numerical software published and maintained by R.Campbell.
> >
> >>> Please keep the
> >>> compiler compatible with his collection, not the other way around.
> >>>
> >
> >>> Wojtek
> >
> > By one of those ironies that make life interesting
> > Wojtek has chosen a bad example. In my Subsystem Lib
> > almost all the numerical stuff is procedural EXCEPT
> > the integrators and root finders.
> >
> > In contrast ALL the mathematical stuff in Subsystem Algebra
> > is o-o.
> >
> > However I firmly believe that procedure type are sometimes the
> > simple and direct solution to a problem and should be kept.
> > Just ignore people who call them obsolete, they are not.
> >
> > This reminds me of discussions about the merits of recursion
> > verses iteration. Some problems require recursion, most in my
> > area of work are simpler with iteration. I would not want
> > to work in an environment (FORTRAN IV or Lisp) that mandated one
> > or the other.
> >
> > Robert
>
> --------------------------------------------
>
> 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-173058980_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIFN0YW46XHBhcg0KXHBhcg0KSSB3YW50IHRvIGNo
aW1lIGluIG15IG9ic2VydmF0aW9uLiBJIHdvcmsgd2l0aCBlbmdpbmVlcnMgYW5kIElccGFyDQpu
b3RpY2VkIHRoZWlyIHJlbHVjdGFuY2UgdG8gYWNjZXB0IGFic3RyYWN0IHByZXNjcmlwdGlvbnMs
IHVubGVzc1xwYXINCnZlcnkgc29saWRseSBtb3RpdmF0ZWQuIEkgd291bGQgYXNrIHdoYXQgYXJl
IHlvdSB0cnlpbmcgdG8gYXZvaWRccGFyDQpieSBlbGltaW5hdGluZyBwcm9jZWR1cmUgdHlwZXM/
IElzIHRoZXJlIGFueSBzZXJpb3VzIHNhZmV0eSBjb25jZXJuXHBhcg0KcmFpc2VkIGJ5IHN1Y2gg
dHlwZXM/IFdpbGwgcHJvZ3JhbXMgY3Jhc2ggbGVzcyBvZnRlbiBpZiB0aGUgcHJvY2VkdXJhbFxw
YXINCnR5cGVzIGFyZSBlbGltaW5hdGVkP1xwYXINClxwYXINCkluIGNhc2UgcHJvY2VkdXJlIHR5
cGVzIGFyZSBhIHNlY3VyaXR5IGhvbGUgdGhlbiB5ZXMsIG9uZSBzaG91bGQgY29uc2lkZXJccGFy
DQplbGltaW5hdGluZyBzdWNoIGEgaG9sZS4gSG93ZXZlciwgbXkgdW5kZXJzdGFuZGluZyBpcyB0
aGF0IHlvdSBhcmUgdHJ5aW5nXHBhcg0KdG8gY2xlYW4gdGhlIGxhbmd1YWdlIG9yIHRvIGltcHJv
dmUgaXRzICJleHByZXNzaXZlIHBvd2VyIi4gSSB0aGluayB0aGlzXHBhcg0KaXMgaGlnaGx5IHN1
YmplY3RpdmUuIE15IGNvbGxlZ2F1ZXMgaGF2ZSBlbm91Z2ggZGlmZmljdWx0eSB3aXRoIE9PUC5c
cGFyDQpUaGV5IHdvdWxkIHdlbGNvbWUgYW55dGhpbmcgdGhhdCByZXNlbWJsZXMgRm9ydHJhbiwg
YW5kIHByb2NlZHVyYWxccGFyDQp0eXBlcyBkZWZpbml0ZWx5IGhhdmUgdGhpcyBmbGF2b3IuIFRo
ZXkgbWFrZSBpdCBlYXNpZXIgdG8gbWFrZSBhXHBhcg0KY29ubmVjdGlvbiB3aXRoIFByZXNzJlRl
dWtvbHNreSwgZm9yIGV4YW1wbGUuXHBhcg0KXHBhcg0KVy5ccGFyDQpccGFyDQpPbiBUaHUsIDE4
IE5vdiAyMDA0LCBTdGFuIFdhcmZvcmQgd3JvdGU6XHBhcg0KXHBhcg0KPiBSb2JlcnQsXHBhcg0K
PiBUaGFua3MgZm9yIHlvdXIgbm90ZS4gQnV0IHNvbWVvbmUgcGxlYXNlIGhlbHAgbWUgdW5kZXJz
dGFuZCB0aGlzLlxwYXINCj4gSSBwcm9wb3NlZCB0byBkZWZpbmUgdGhlIGZ1bmN0aW9uXHBhcg0K
PlxwYXINCj4gXHRhYiBUWVBFXHBhcg0KPiBcdGFiIFx0YWIgRnVuY3Rpb24qID0gUE9JTlRFUiBU
TyBBQlNUUkFDVCBSRUNPUkQgRU5EO1xwYXINCj5ccGFyDQo+IFx0YWIgUFJPQ0VEVVJFIChmOiBG
dW5jdGlvbikgVmFsdWVPZiogKHg6IFJFQUwpOiBSRUFMLCBORVcsIEFCU1RSQUNUO1xwYXINCj5c
cGFyDQo+IGFuZCB1c2UgaXQgYXNccGFyDQo+XHBhcg0KPiBcdGFiIFRZUEVccGFyDQo+IFx0YWIg
XHRhYiBNeUZ1bmN0aW9uID0gUE9JTlRFUiBUTyBSRUNPUkQgKE51bWVyaWNhbFByb2Nlc3Nvci5G
dW5jdGlvbikgRU5EO1xwYXINCj5ccGFyDQo+IEkgYW0gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgd2h5
IHRoaXMgaXMgc28gZGlmZmVyZW50IGZyb20gcHJvY2VkdXJlXHBhcg0KPiB0eXBlcy4gVGhlIGFi
b3ZlIGxpdGVyYWxseSBkZWZpbmVzIGEgcHJvY2VkdXJlIHR5cGUgYW5kIGFsbG93c1xwYXINCj4g
eW91IHRvIHBhc3MgYSBwcm9jZWR1cmUgYXMgYSBwYXJhbWV0ZXIuXHBhcg0KPlxwYXINCj4gKDEp
IElzIHRoZSBwcm9ibGVtIG9uZSBvZiByZXF1aXJpbmcgYWxsIHRoZSBtYXRoIGZ1bmN0aW9ucyBp
biB0aGVccGFyDQo+IGxpYnJhcnlccGFyDQo+IHRvIGJlIHRoaXMgdHlwZSBpZiB5b3UgYXJlIGdv
aW5nIHRvIGJlIGFibGUgdG8gcGFzcyB0aGVtIGFzIHBhcmFtZXRlcnM/XHBhcg0KPiBXb3VsZCBp
dCBiZSBhIG1ham9yIGNvbXBsaWNhdGlvbiB0byBoYXZlIHRvIHdyYXAgdGhlIGZ1bmN0aW9ucyB0
aGlzIHdheT9ccGFyDQo+XHBhcg0KPiAoMikgSXMgaXQgYSBjb252ZW5pZW5jZSBwcm9ibGVtIG9m
IGhhdmluZyB0byB3cml0ZVxwYXINCj5ccGFyDQo+ICAgZi5WYWx1ZU9mIChtaW4pXHBhcg0KPlxw
YXINCj4gaW5zdGVhZCBvZlxwYXINCj5ccGFyDQo+IGYgKG1pbilccGFyDQo+XHBhcg0KPiBJIGNh
biB1bmRlcnN0YW5kIHlvdXIgcG9pbnQgaWYgdGhlIGFuc3dlciBpcyB5ZXMgdG8gZWl0aGVyIG9m
IHRoZXNlXHBhcg0KPiBxdWVzdGlvbnMsIGFsdGhvdWdoIGl0IHNlZW1zIHRoYXQgKDEpIHdvdWxk
IGJlIHRoZSBtb3N0IHByb2JsZW1hdGljLlxwYXINCj4gQXJlIHRoZXNlIHR3byBwb2ludHMgd2h5
IHlvdSBzYXkgdGhhdCBwcm9jZWR1cmUgdHlwZXMgYXJlIHNpbXBsZVxwYXINCj4gYW5kIGRpcmVj
dD8gT3IgYXJlIHRoZXJlIHNvbWUgb3RoZXIgY29tcGxpY2F0aW9ucz9ccGFyDQo+XHBhcg0KPiBU
aGFua3MgZm9yIGV2ZXJ5Ym9keSdzIGZlZWRiYWNrLlxwYXINCj4gQ2hlZXJzLFxwYXINCj4gU3Rh
blxwYXINCj5ccGFyDQo+ID4+PiAgU3RhbjpccGFyDQo+ID4+PlxwYXINCj4gPlxwYXINCj4gPj4+
PiBXaXRoIG9iamVjdC1vcmllbnRhdGlvbiwgcHJvY2VkdXJlIHR5cGVzIGFyZSByZWR1bmRhbnQg
YW5kIHNob3VsZFxwYXINCj4gPj4+PiBiZSBlbGltaW5hdGVkLCBJTUhPLiBZb3Ugc2hvdWxkIGRl
c2lnbiB5b3VyIG51bWVyaWNhbCBwcm9jZXNzaW5nIC4uLlxwYXINCj4gPlxwYXINCj4gPj4+ICBJ
IGRvIG5vdCBkaXNhZ3JlZSB3aXRoIHlvdXIgZXhhbXBsZSwgYnV0IHdobyB3b3VsZCBldmVyIHVz
ZSB0aGlzXHBhcg0KPiA+Pj4gYXBwcm9hY2g/XHBhcg0KPiA+Pj4gIFlvdXIgYm9vayBvbiBPT1Ag
aXMgbm90IGFtb25nIHRob3NlIHRoYXQgZGVmaW5lIG51bWVyaWNhbCBhbmFseXNpcy5ccGFyDQo+
ID4+PiAgIk51bWVyaWNhbCBSZWNpcGVzIiBhcmUgdGhlIGZvdW5kYXRpb24uIEl0IGdvZXMgYmFj
ayB0byBGb3J0cmFuLUlWLlxwYXINCj4gPj4+IElmXHBhcg0KPiA+Pj4gIGFueW9uZSB3YW50cyB0
byBjYWxjdWxhdGUgc29tZSBpbnRlZ3JhbCBvciBhIHNwZWNpYWwgZnVuY3Rpb24sIHRoZXlccGFy
DQo+ID4+PiB3aWxsXHBhcg0KPiA+Pj4gIHJlYWQgUHJlc3MgJiBUZXVrb2xza3ksIG5vdCBTLldh
cmZvcmQuXHBhcg0KPiA+XHBhcg0KPiA+Pj4gIEFsb25nIHRoZSBsaW5lcyBvZiByZWFsaXNtOiBv
bmUgb2Ygb3VyIHRyZWFzdXJlcyBpcyB0aGVccGFyDQo+ID5ccGFyDQo+ID4+PiAgaHVnZSBjb2xs
ZWN0aW9uIG9mXHBhcg0KPiA+Pj4gIG51bWVyaWNhbCBzb2Z0d2FyZSBwdWJsaXNoZWQgYW5kIG1h
aW50YWluZWQgYnkgUi5DYW1wYmVsbC5ccGFyDQo+ID5ccGFyDQo+ID4+PiAgUGxlYXNlIGtlZXAg
dGhlXHBhcg0KPiA+Pj4gIGNvbXBpbGVyIGNvbXBhdGlibGUgd2l0aCBoaXMgY29sbGVjdGlvbiwg
bm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLlxwYXINCj4gPj4+XHBhcg0KPiA+XHBhcg0KPiA+Pj4g
IFdvanRla1xwYXINCj4gPlxwYXINCj4gPiBCeSBvbmUgb2YgdGhvc2UgaXJvbmllcyB0aGF0IG1h
a2UgbGlmZSBpbnRlcmVzdGluZ1xwYXINCj4gPiBXb2p0ZWsgaGFzIGNob3NlbiBhIGJhZCBleGFt
cGxlLiBJbiBteSBTdWJzeXN0ZW0gTGliXHBhcg0KPiA+IGFsbW9zdCBhbGwgdGhlIG51bWVyaWNh
bCBzdHVmZiBpcyBwcm9jZWR1cmFsIEVYQ0VQVFxwYXINCj4gPiB0aGUgaW50ZWdyYXRvcnMgYW5k
IHJvb3QgZmluZGVycy5ccGFyDQo+ID5ccGFyDQo+ID4gSW4gY29udHJhc3QgQUxMIHRoZSBtYXRo
ZW1hdGljYWwgc3R1ZmYgaW4gU3Vic3lzdGVtIEFsZ2VicmFccGFyDQo+ID4gaXMgby1vLlxwYXIN
Cj4gPlxwYXINCj4gPiBIb3dldmVyIEkgZmlybWx5IGJlbGlldmUgdGhhdCBwcm9jZWR1cmUgdHlw
ZSBhcmUgc29tZXRpbWVzIHRoZVxwYXINCj4gPiBzaW1wbGUgYW5kIGRpcmVjdCBzb2x1dGlvbiB0
byBhIHByb2JsZW0gYW5kIHNob3VsZCBiZSBrZXB0LlxwYXINCj4gPiBKdXN0IGlnbm9yZSBwZW9w
bGUgd2hvIGNhbGwgdGhlbSBvYnNvbGV0ZSwgdGhleSBhcmUgbm90LlxwYXINCj4gPlxwYXINCj4g
PiBUaGlzIHJlbWluZHMgbWUgb2YgZGlzY3Vzc2lvbnMgYWJvdXQgdGhlIG1lcml0cyBvZiByZWN1
cnNpb25ccGFyDQo+ID4gdmVyc2VzIGl0ZXJhdGlvbi4gU29tZSBwcm9ibGVtcyByZXF1aXJlIHJl
Y3Vyc2lvbiwgbW9zdCBpbiBteVxwYXINCj4gPiBhcmVhIG9mIHdvcmsgYXJlIHNpbXBsZXIgd2l0
aCBpdGVyYXRpb24uIEkgd291bGQgbm90IHdhbnRccGFyDQo+ID4gdG8gd29yayBpbiBhbiBlbnZp
cm9ubWVudCAoRk9SVFJBTiBJViBvciBMaXNwKSB0aGF0IG1hbmRhdGVkIG9uZVxwYXINCj4gPiBv
ciB0aGUgb3RoZXIuXHBhcg0KPiA+XHBhcg0KPiA+IFJvYmVydFxwYXINCj5ccGFyDQo+IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KPlxwYXINCj4gVG8g
dW5zdWJzY3JpYmUgZnJvbSB0aGlzIG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29udGFp
bmluZyB0aGUgd29yZCAidW5zdWJzY3JpYmUiIHRvOlxwYXINCj4gICAgYmxhY2tib3gtcmVxdWVz
dEBvYmVyb24uY2hccGFyDQo+XHBhcg0KPiBUbyBnZXQgYSBsaXN0IG9mIHZhbGlkIGUtbWFpbCBj
b21tYW5kcyBhbmQgaW5zdHJ1Y3Rpb25zIG9uIHRoZWlyIHVzYWdlLCBzZW5kIGEgbWVzc2FnZSBj
b250YWluaW5nIHRoZSB3b3JkICJoZWxwIiB0byB0aGUgYWJvdmUgYWRkcmVzcy5ccGFyDQo+XHBh
cg0KPiBTZW5kIGFueSBwcm9ibGVtIHJlcG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhp
cyBlbWFpbCBsaXN0IHRvIHRoZSBsaXN0IG93bmVyIGF0XHBhcg0KPiAgICBvd25lci1ibGFja2Jv
eEBvYmVyb24uY2hccGFyDQo+XHBhcg0KPiBDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINCj5c
cGFyDQo+IGEpIFRvIHBvc3QgeW91IHNob3VsZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGlj
aCB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBs
aXN0IHNlcnZlciB3aWxsIHJlY29nbml6ZSB5b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5
b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdpdGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxw
YXINCj5ccGFyDQo+IGIpIElmLCBmb3Igc29tZSByZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9t
IHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3
aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBzcGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1v
ZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBzb21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIg
d2Vla2VuZHMgb3IgaG9seWRheXMuXHBhcg0KPlxwYXINCj5ccGFyDQpccGFyDQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2Ny
aWJlIGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhl
IHdvcmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5j
aFxwYXINClxwYXINClRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBp
bnN0cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhl
IHdvcmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHBy
b2JsZW0gcmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8g
dGhlIGxpc3Qgb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpc
cGFyDQpDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNo
b3VsZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG8g
dGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29nbml6
ZSB5b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHks
IHdpdGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29t
ZSByZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3Ug
YXJlIHN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBz
cGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBz
b21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHB9fQCW
OA==
----boundary-LibPST-iamunique-173058980_-_---
Received on Thu Nov 18 2004 - 17:56:35 UTC