Re: [BLACKBOX] limiting integer values in interactor field

From: Rene A. Krywult <"Rene>
Date: Tue, 12 Jan 2010 10:57:06 +0100

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

You could also do a Wrapper view that has the following in the HandleCtrlMsg:

IF msg IS Controllers.MarkMsg THEN
   WITH msg:Controllers.MarkMsg DO
      IF msg.show=FALSE THEN
         StdLog.String("Lost focus");StdLog.Ln();
      ELSE
         StdLog.String("Got focus");StdLog.Ln();
      END;
   END;
END;

Where

StdLog.String("Lost focus");StdLog.Ln();

would do the checking.

Lastly, you could probably change Controls.Field.HandleCtrlMsg2, so that a new op is given for MarkMsg.show=FALSE, or that the op:=Dialog.changed is used for a change, when msg.show=FALSE.

Rene

-------- Original-Nachricht --------
> Datum: Tue, 12 Jan 2010 10:09:52 +0100
> Von: "Rene A. Krywult" <rene.krywult{([at]})nowhere.xy
> An: BLACKBOX{([at]})nowhere.xy
> Betreff: Re: [BLACKBOX] limiting integer values in interactor field

> What about a solution like this?
>
> Rene
>
> MODULE PrivTestLeave;
> IMPORT Dialog,StdLog;
>
> VAR
> dialog*:RECORD;
> a*,b*,c*:INTEGER;
> END;
>
> oldDialog*:RECORD;
> a*,b*,c*:INTEGER;
> END;
>
> aChanged,bChanged,cChanged:BOOLEAN;
>
> PROCEDURE IsValid(i:INTEGER):BOOLEAN;
> BEGIN
> IF ((i > 6) & (i < 15)) THEN
> RETURN TRUE;
> ELSE
> RETURN FALSE;
> END
> END IsValid;
>
> PROCEDURE NotifierA* (op, from, to: INTEGER);
> BEGIN
> IF op=Dialog.changed THEN
> IF ~aChanged THEN
> IF bChanged THEN
> IF ~IsValid(dialog.b) THEN
> dialog.a:=oldDialog.a;
> ELSE
> bChanged:=FALSE;
> aChanged:=TRUE;
> oldDialog.b:=dialog.b;
> END;
> ELSIF cChanged THEN
> IF ~IsValid(dialog.c) THEN
> dialog.a:=oldDialog.a;
> ELSE
> cChanged:=FALSE;
> aChanged:=TRUE;
> oldDialog.c:=dialog.c;
> END;
> ELSE aChanged:=TRUE
> END;
> ELSE
> aChanged:=TRUE;
> END;
> END;
> Dialog.Update(dialog);
> END NotifierA;
>
> PROCEDURE NotifierB* (op, from, to: INTEGER);
> BEGIN
> IF op=Dialog.changed THEN
> IF ~bChanged THEN
> IF aChanged THEN
> IF ~IsValid(dialog.a) THEN
> dialog.b:=oldDialog.b;
> ELSE
> aChanged:=FALSE;
> bChanged:=TRUE;
> oldDialog.a:=dialog.a;
> END;
> ELSIF cChanged THEN
> IF ~IsValid(dialog.c) THEN
> dialog.b:=oldDialog.b;
> ELSE
> cChanged:=FALSE;
> bChanged:=TRUE;
> oldDialog.c:=dialog.c;
> END;
> ELSE bChanged:=TRUE
> END;
> END;
> END;
> Dialog.Update(dialog);
> END NotifierB;
>
> PROCEDURE NotifierC* (op, from, to: INTEGER);
> BEGIN
> IF op=Dialog.changed THEN
> IF ~cChanged THEN
> IF aChanged THEN
> IF ~IsValid(dialog.a) THEN
> dialog.c:=oldDialog.c;
> ELSE
> aChanged:=FALSE;
> cChanged:=TRUE;
> oldDialog.a:=dialog.a;
> END;
> ELSIF bChanged THEN
> IF ~IsValid(dialog.b) THEN
> dialog.c:=oldDialog.c;
> ELSE
> cChanged:=FALSE;
> cChanged:=TRUE;
> oldDialog.b:=dialog.b;
> END;
> ELSE cChanged:=TRUE
> END;
> END;
> END;
> Dialog.Update(dialog);
> END NotifierC;
> END PrivTestLeave.
>
> -------- Original-Nachricht --------
> > Datum: Tue, 12 Jan 2010 08:10:03 +0100
> > Von: Gunnar Bernhardt <bernhardt.gunnar{([at]})nowhere.xy
> > An: BLACKBOX{([at]})nowhere.xy
> > Betreff: Re: [BLACKBOX] limiting integer values in interactor field
>
> > Folks,

> >
> > hello again - and a happy new year to you! If Germans tend to be
> > impolite then I'm a text book example of a German. My apologies...
> >
> > I changed my mail adress to another account, so please don't be confused
> > or alarmed!
> >
> >
> > {([at]})nowhere.xy
> >
> > frustrating is just the word. :-|
> >
> > I already used the technique you recommend for another problem. In the
> > first screenshot you may enter data for a customer like number, name and
> > place. If any of those is not sane, you may not save the record. In this
> > case using a seperate button and guard procedures works perfectly.
> >
> > Unfortunately you can't alway do it this way. In the 2nd screenshot
> > three values are derived from one you may enter (IN in this case). The
> > calculation is done in the notifier procedure, which is called after
> > <each key press> in the interactor field. In this case a seperate button
> > to display derived values would be anything but user friendly.
> >
> > To me this looks like the notifier is called as early as possible in
> > order to prevent transfer and processing of incorrect data as you
> > mentioned. My point is that you can not postbone it until later.
> > Consider data entry in HTML forms: you have an onChange event which is
> > called on leaving the field by placing the focus else where (as late as
> > possible).
> >
> > Sorry the screen shots are not in English, but I hope they illustrate my
> > problem nonetheless.
> >
> > greetings
> > gunnar
> >
> > Bob Walkden schrieb:
> > > It can be frustrating that the Dialog module does not send a lostfocus
> > > opcode to notifiers. However, one purpose of validating the field is
> > > to prevent the operator from sending invalid data to whatever the next
> > > step in the process is. In that situation I generally use guards to
> > > check the value of the field, and disable the guarded controls (eg an
> > > OK button) until the field is valid.
> > > Bob
> > >
> > >
> > >
> > ------------------------------------------------------------------------
> > > *From:* BlackBox [mailto:BLACKBOX{([at]})nowhere.xy
> > > *Bernhardt, Gunnar
> > > *Sent:* 11 January 2010 17:53
> > > *To:* BLACKBOX{([at]})nowhere.xy
> > > *Subject:* [BLACKBOX] limiting integer values in interactor field
> > >
> > > Hello all,
> > >
> > > there is an problem which came up recently: I wrote a little
> > > character sheet checker for a role playing game. The basic
> > > attributes are integer values, some of them between 3 and 18 (3W6
> > > in short).
> > >
> > > What I did: I had the Notifier procedure for this field check, if
> > > the entered value is in the valid interval and setting it to the
> > > upper respectively lower boundary value. Safe.
> > >
> > > The problem: If you want to enter a value > 10, you first have to
> > > type the letter <1>. Right now the notifier kicks in and changes
> > > it to 6 which is obviously undesired.
> > >
> > > Is there an elegant way to check the content of a field AFTER the
> > > input has been completed?
> > >
> > > I mean another way than putting a button there and having the user
> > > clock on it after each number he has entered. I could not for
> > > instance find an event like “onLeave” (moving the focus).
> > >
> > > regards
> > >
> > > gunnar
> > >
> >
> >
> >
> > ----
> > To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to
> > LISTSERV{([at]})nowhere.xy
>
> --
> Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5
> -
> sicherer, schneller und einfacher!
http://portal.gmx.net/de/go/atbrowser
>
>
> ----
> To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to
> LISTSERV{([at]})nowhere.xy

-- 
Preisknaller: GMX DSL Flatrate für nur 16,99 Euro/mtl.!
http://portal.gmx.net/de/go/dsl02
----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-2109123645_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzc1xmY2hhcnNldDAgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJc
Zm5pbFxmY2hhcnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBO
ZXc7fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7
fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyMCBZb3UgY291bGQgYWxzbyBkbyBh
IFdyYXBwZXIgdmlldyB0aGF0IGhhcyB0aGUgZm9sbG93aW5nIGluIHRoZSBIYW5kbGVDdHJsTXNn
OlxwYXINClxwYXINCklGIG1zZyBJUyBDb250cm9sbGVycy5NYXJrTXNnIFRIRU5ccGFyDQogICBX
SVRIIG1zZzpDb250cm9sbGVycy5NYXJrTXNnIERPXHBhcg0KICAgICAgSUYgbXNnLnNob3c9RkFM
U0UgVEhFTlxwYXINCiAgICAgICAgIFN0ZExvZy5TdHJpbmcoIkxvc3QgZm9jdXMiKTtTdGRMb2cu
TG4oKTtccGFyDQogICAgICBFTFNFXHRhYiBccGFyDQogICAgICAgICBTdGRMb2cuU3RyaW5nKCJH
b3QgZm9jdXMiKTtTdGRMb2cuTG4oKTtccGFyDQogICAgICBFTkQ7XHBhcg0KICAgRU5EO1xwYXIN
CkVORDtccGFyDQpccGFyDQpXaGVyZSBccGFyDQpccGFyDQpTdGRMb2cuU3RyaW5nKCJMb3N0IGZv
Y3VzIik7U3RkTG9nLkxuKCk7XHBhcg0KXHBhcg0Kd291bGQgZG8gdGhlIGNoZWNraW5nLlxwYXIN
ClxwYXINCkxhc3RseSwgeW91IGNvdWxkIHByb2JhYmx5IGNoYW5nZSBDb250cm9scy5GaWVsZC5I
YW5kbGVDdHJsTXNnMiwgc28gdGhhdCBhIG5ldyBvcCBpcyBnaXZlbiBmb3IgTWFya01zZy5zaG93
PUZBTFNFLCBvciB0aGF0IHRoZSBvcDo9RGlhbG9nLmNoYW5nZWQgaXMgdXNlZCBmb3IgYSBjaGFu
Z2UsIHdoZW4gbXNnLnNob3c9RkFMU0UuXHBhcg0KXHBhcg0KUmVuZSBccGFyDQpccGFyDQotLS0t
LS0tLSBPcmlnaW5hbC1OYWNocmljaHQgLS0tLS0tLS1ccGFyDQo+IERhdHVtOiBUdWUsIDEyIEph
biAyMDEwIDEwOjA5OjUyICswMTAwXHBhcg0KPiBWb246ICJSZW5lIEEuIEtyeXd1bHQiIDxyZW5l
LmtyeXd1bHRAR01YLkFUPlxwYXINCj4gQW46IEJMQUNLQk9YQExJU1RTLk9CRVJPTi5DSFxwYXIN
Cj4gQmV0cmVmZjogUmU6IFtCTEFDS0JPWF0gbGltaXRpbmcgaW50ZWdlciB2YWx1ZXMgaW4gaW50
ZXJhY3RvciBmaWVsZFxwYXINClxwYXINCj4gV2hhdCBhYm91dCBhIHNvbHV0aW9uIGxpa2UgdGhp
cz9ccGFyDQo+IFxwYXINCj4gUmVuZVxwYXINCj4gXHBhcg0KPiBNT0RVTEUgUHJpdlRlc3RMZWF2
ZTtccGFyDQo+IElNUE9SVCBEaWFsb2csU3RkTG9nO1xwYXINCj4gXHBhcg0KPiBWQVIgXHBhcg0K
PiBkaWFsb2cqOlJFQ09SRDtccGFyDQo+IFx0YWIgYSosYiosYyo6SU5URUdFUjtccGFyDQo+IEVO
RDtccGFyDQo+IFxwYXINCj4gb2xkRGlhbG9nKjpSRUNPUkQ7XHBhcg0KPiBcdGFiIGEqLGIqLGMq
OklOVEVHRVI7XHBhcg0KPiBFTkQ7XHBhcg0KPiBccGFyDQo+IGFDaGFuZ2VkLGJDaGFuZ2VkLGND
aGFuZ2VkOkJPT0xFQU47XHBhcg0KPiBccGFyDQo+IFBST0NFRFVSRSBJc1ZhbGlkKGk6SU5URUdF
Uik6Qk9PTEVBTjtccGFyDQo+IEJFR0lOXHBhcg0KPiBcdGFiIElGICgoaSA+IDYpICYgKGkgPCAx
NSkpIFRIRU5ccGFyDQo+IFx0YWIgXHRhYiBSRVRVUk4gVFJVRTtccGFyDQo+IFx0YWIgRUxTRVxw
YXINCj4gXHRhYiBcdGFiIFJFVFVSTiBGQUxTRTtccGFyDQo+IFx0YWIgRU5EXHBhcg0KPiBFTkQg
SXNWYWxpZDtccGFyDQo+IFxwYXINCj4gUFJPQ0VEVVJFIE5vdGlmaWVyQSogKG9wLCBmcm9tLCB0
bzogSU5URUdFUik7XHBhcg0KPiBCRUdJTlxwYXINCj4gXHRhYiBJRiBvcD1EaWFsb2cuY2hhbmdl
ZCBUSEVOIFxwYXINCj4gXHRhYiBcdGFiIElGIH5hQ2hhbmdlZCBUSEVOXHBhcg0KPiBcdGFiIFx0
YWIgICBJRiBiQ2hhbmdlZCBUSEVOXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgSUYgfklzVmFsaWQo
ZGlhbG9nLmIpIFRIRU5ccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIGRpYWxvZy5hOj1vbGRE
aWFsb2cuYTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTFNFXHBhcg0KPiBcdGFiIFx0YWIgXHRh
YiBcdGFiICBiQ2hhbmdlZDo9RkFMU0U7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBhQ2hh
bmdlZDo9VFJVRTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIG9sZERpYWxvZy5iOj1kaWFs
b2cuYjtccGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTkQ7XHBhcg0KPiBcdGFiIFx0YWIgICBFTFNJ
RiBjQ2hhbmdlZCBUSEVOXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgSUYgfklzVmFsaWQoZGlhbG9n
LmMpIFRIRU5ccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIGRpYWxvZy5hOj1vbGREaWFsb2cu
YTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTFNFXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFi
ICBjQ2hhbmdlZDo9RkFMU0U7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBhQ2hhbmdlZDo9
VFJVRTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIG9sZERpYWxvZy5jOj1kaWFsb2cuYztc
cGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTkQ7XHBhcg0KPiBcdGFiIFx0YWIgICBFTFNFIGFDaGFu
Z2VkOj1UUlVFXHBhcg0KPiBcdGFiIFx0YWIgICBFTkQ7XHBhcg0KPiBcdGFiIEVMU0VccGFyDQo+
IFx0YWIgXHRhYiBhQ2hhbmdlZDo9VFJVRTtccGFyDQo+IFx0YWIgXHRhYiBFTkQ7XHBhcg0KPiBc
dGFiIEVORDtccGFyDQo+IFx0YWIgRGlhbG9nLlVwZGF0ZShkaWFsb2cpO1xwYXINCj4gRU5EIE5v
dGlmaWVyQTtccGFyDQo+IFxwYXINCj4gUFJPQ0VEVVJFIE5vdGlmaWVyQiogKG9wLCBmcm9tLCB0
bzogSU5URUdFUik7XHBhcg0KPiBCRUdJTlxwYXINCj4gXHRhYiBJRiBvcD1EaWFsb2cuY2hhbmdl
ZCBUSEVOIFxwYXINCj4gXHRhYiBcdGFiIElGIH5iQ2hhbmdlZCBUSEVOXHBhcg0KPiBcdGFiIFx0
YWIgICBJRiBhQ2hhbmdlZCBUSEVOXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgSUYgfklzVmFsaWQo
ZGlhbG9nLmEpIFRIRU5ccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIGRpYWxvZy5iOj1vbGRE
aWFsb2cuYjtccGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTFNFXHBhcg0KPiBcdGFiIFx0YWIgXHRh
YiBcdGFiICBhQ2hhbmdlZDo9RkFMU0U7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBiQ2hh
bmdlZDo9VFJVRTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIG9sZERpYWxvZy5hOj1kaWFs
b2cuYTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTkQ7XHBhcg0KPiBcdGFiIFx0YWIgICBFTFNJ
RiBjQ2hhbmdlZCBUSEVOXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgSUYgfklzVmFsaWQoZGlhbG9n
LmMpIFRIRU5ccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIGRpYWxvZy5iOj1vbGREaWFsb2cu
YjtccGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTFNFXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFi
ICBjQ2hhbmdlZDo9RkFMU0U7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBiQ2hhbmdlZDo9
VFJVRTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgIG9sZERpYWxvZy5jOj1kaWFsb2cuYztc
cGFyDQo+IFx0YWIgXHRhYiBcdGFiICBFTkQ7XHBhcg0KPiBcdGFiIFx0YWIgICBFTFNFIGJDaGFu
Z2VkOj1UUlVFXHBhcg0KPiBcdGFiIFx0YWIgICBFTkQ7XHBhcg0KPiBcdGFiIFx0YWIgRU5EO1xw
YXINCj4gXHRhYiBFTkQ7XHBhcg0KPiBcdGFiIERpYWxvZy5VcGRhdGUoZGlhbG9nKTtccGFyDQo+
IEVORCBOb3RpZmllckI7XHBhcg0KPiBccGFyDQo+IFBST0NFRFVSRSBOb3RpZmllckMqIChvcCwg
ZnJvbSwgdG86IElOVEVHRVIpO1xwYXINCj4gQkVHSU5ccGFyDQo+IFx0YWIgSUYgb3A9RGlhbG9n
LmNoYW5nZWQgVEhFTiBccGFyDQo+IFx0YWIgXHRhYiBJRiB+Y0NoYW5nZWQgVEhFTlxwYXINCj4g
XHRhYiBcdGFiICAgSUYgYUNoYW5nZWQgVEhFTlxwYXINCj4gXHRhYiBcdGFiIFx0YWIgIElGIH5J
c1ZhbGlkKGRpYWxvZy5hKSBUSEVOXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBkaWFsb2cu
Yzo9b2xkRGlhbG9nLmM7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgRUxTRVxwYXINCj4gXHRhYiBc
dGFiIFx0YWIgXHRhYiAgYUNoYW5nZWQ6PUZBTFNFO1xwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRh
YiAgY0NoYW5nZWQ6PVRSVUU7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBvbGREaWFsb2cu
YTo9ZGlhbG9nLmE7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgRU5EO1xwYXINCj4gXHRhYiBcdGFi
ICAgRUxTSUYgYkNoYW5nZWQgVEhFTlxwYXINCj4gXHRhYiBcdGFiIFx0YWIgIElGIH5Jc1ZhbGlk
KGRpYWxvZy5iKSBUSEVOXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBkaWFsb2cuYzo9b2xk
RGlhbG9nLmM7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgRUxTRVxwYXINCj4gXHRhYiBcdGFiIFx0
YWIgXHRhYiAgY0NoYW5nZWQ6PUZBTFNFO1xwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiAgY0No
YW5nZWQ6PVRSVUU7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICBvbGREaWFsb2cuYjo9ZGlh
bG9nLmI7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgRU5EO1xwYXINCj4gXHRhYiBcdGFiICAgRUxT
RSBjQ2hhbmdlZDo9VFJVRVxwYXINCj4gXHRhYiBcdGFiICAgRU5EO1xwYXINCj4gXHRhYiBcdGFi
IEVORDtccGFyDQo+IFx0YWIgRU5EO1xwYXINCj4gXHRhYiBEaWFsb2cuVXBkYXRlKGRpYWxvZyk7
XHBhcg0KPiBFTkQgTm90aWZpZXJDO1xwYXINCj4gRU5EIFByaXZUZXN0TGVhdmUuXHBhcg0KPiBc
cGFyDQo+IC0tLS0tLS0tIE9yaWdpbmFsLU5hY2hyaWNodCAtLS0tLS0tLVxwYXINCj4gPiBEYXR1
bTogVHVlLCAxMiBKYW4gMjAxMCAwODoxMDowMyArMDEwMFxwYXINCj4gPiBWb246IEd1bm5hciBC
ZXJuaGFyZHQgPGJlcm5oYXJkdC5ndW5uYXJAVkRJLkRFPlxwYXINCj4gPiBBbjogQkxBQ0tCT1hA
TElTVFMuT0JFUk9OLkNIXHBhcg0KPiA+IEJldHJlZmY6IFJlOiBbQkxBQ0tCT1hdIGxpbWl0aW5n
IGludGVnZXIgdmFsdWVzIGluIGludGVyYWN0b3IgZmllbGRccGFyDQo+IFxwYXINCj4gPiBGb2xr
cyxccGFyDQo+ID4gXHBhcg0KPiA+IGhlbGxvIGFnYWluIC0gYW5kIGEgaGFwcHkgbmV3IHllYXIg
dG8geW91ISBJZiBHZXJtYW5zIHRlbmQgdG8gYmUgXHBhcg0KPiA+IGltcG9saXRlIHRoZW4gSSdt
IGEgdGV4dCBib29rIGV4YW1wbGUgb2YgYSBHZXJtYW4uIE15IGFwb2xvZ2llcy4uLlxwYXINCj4g
PiBccGFyDQo+ID4gSSBjaGFuZ2VkIG15IG1haWwgYWRyZXNzIHRvIGFub3RoZXIgYWNjb3VudCwg
c28gcGxlYXNlIGRvbid0IGJlIGNvbmZ1c2VkXHBhcg0KPiA+IG9yIGFsYXJtZWQhXHBhcg0KPiA+
IFxwYXINCj4gPiBccGFyDQo+ID4gQEJvYjpccGFyDQo+ID4gXHBhcg0KPiA+IGZydXN0cmF0aW5n
IGlzIGp1c3QgdGhlIHdvcmQuIDotfFxwYXINCj4gPiBccGFyDQo+ID4gSSBhbHJlYWR5IHVzZWQg
dGhlIHRlY2huaXF1ZSB5b3UgcmVjb21tZW5kIGZvciBhbm90aGVyIHByb2JsZW0uIEluIHRoZSBc
cGFyDQo+ID4gZmlyc3Qgc2NyZWVuc2hvdCB5b3UgbWF5IGVudGVyIGRhdGEgZm9yIGEgY3VzdG9t
ZXIgbGlrZSBudW1iZXIsIG5hbWUgYW5kXHBhcg0KPiA+IHBsYWNlLiBJZiBhbnkgb2YgdGhvc2Ug
aXMgbm90IHNhbmUsIHlvdSBtYXkgbm90IHNhdmUgdGhlIHJlY29yZC4gSW4gdGhpc1xwYXINCj4g
PiBjYXNlIHVzaW5nIGEgc2VwZXJhdGUgYnV0dG9uIGFuZCBndWFyZCBwcm9jZWR1cmVzIHdvcmtz
IHBlcmZlY3RseS5ccGFyDQo+ID4gXHBhcg0KPiA+IFVuZm9ydHVuYXRlbHkgeW91IGNhbid0IGFs
d2F5IGRvIGl0IHRoaXMgd2F5LiBJbiB0aGUgMm5kIHNjcmVlbnNob3QgXHBhcg0KPiA+IHRocmVl
IHZhbHVlcyBhcmUgZGVyaXZlZCBmcm9tIG9uZSB5b3UgbWF5IGVudGVyIChJTiBpbiB0aGlzIGNh
c2UpLiBUaGUgXHBhcg0KPiA+IGNhbGN1bGF0aW9uIGlzIGRvbmUgaW4gdGhlIG5vdGlmaWVyIHBy
b2NlZHVyZSwgd2hpY2ggaXMgY2FsbGVkIGFmdGVyIFxwYXINCj4gPiA8ZWFjaCBrZXkgcHJlc3M+
IGluIHRoZSBpbnRlcmFjdG9yIGZpZWxkLiBJbiB0aGlzIGNhc2UgYSBzZXBlcmF0ZSBidXR0b25c
cGFyDQo+ID4gdG8gZGlzcGxheSBkZXJpdmVkIHZhbHVlcyB3b3VsZCBiZSBhbnl0aGluZyBidXQg
dXNlciBmcmllbmRseS5ccGFyDQo+ID4gXHBhcg0KPiA+IFRvIG1lIHRoaXMgbG9va3MgbGlrZSB0
aGUgbm90aWZpZXIgaXMgY2FsbGVkIGFzIGVhcmx5IGFzIHBvc3NpYmxlIGluIFxwYXINCj4gPiBv
cmRlciB0byBwcmV2ZW50IHRyYW5zZmVyIGFuZCBwcm9jZXNzaW5nIG9mIGluY29ycmVjdCBkYXRh
IGFzIHlvdSBccGFyDQo+ID4gbWVudGlvbmVkLiBNeSBwb2ludCBpcyB0aGF0IHlvdSBjYW4gbm90
IHBvc3Rib25lIGl0IHVudGlsIGxhdGVyLiBccGFyDQo+ID4gQ29uc2lkZXIgZGF0YSBlbnRyeSBp
biBIVE1MIGZvcm1zOiB5b3UgaGF2ZSBhbiBvbkNoYW5nZSBldmVudCB3aGljaCBpcyBccGFyDQo+
ID4gY2FsbGVkIG9uIGxlYXZpbmcgdGhlIGZpZWxkIGJ5IHBsYWNpbmcgdGhlIGZvY3VzIGVsc2Ug
d2hlcmUgKGFzIGxhdGUgYXMgXHBhcg0KPiA+IHBvc3NpYmxlKS5ccGFyDQo+ID4gXHBhcg0KPiA+
IFNvcnJ5IHRoZSBzY3JlZW4gc2hvdHMgYXJlIG5vdCBpbiBFbmdsaXNoLCBidXQgSSBob3BlIHRo
ZXkgaWxsdXN0cmF0ZSBteVxwYXINCj4gPiBwcm9ibGVtIG5vbmV0aGVsZXNzLlxwYXINCj4gPiBc
cGFyDQo+ID4gZ3JlZXRpbmdzXHBhcg0KPiA+IGd1bm5hclxwYXINCj4gPiBccGFyDQo+ID4gQm9i
IFdhbGtkZW4gc2NocmllYjpccGFyDQo+ID4gPiBJdCBjYW4gYmUgZnJ1c3RyYXRpbmcgdGhhdCB0
aGUgRGlhbG9nIG1vZHVsZSBkb2VzIG5vdCBzZW5kIGEgbG9zdGZvY3VzXHBhcg0KPiA+ID4gb3Bj
b2RlIHRvIG5vdGlmaWVycy4gSG93ZXZlciwgb25lIHB1cnBvc2Ugb2YgdmFsaWRhdGluZyB0aGUg
ZmllbGQgaXMgXHBhcg0KPiA+ID4gdG8gcHJldmVudCB0aGUgb3BlcmF0b3IgZnJvbSBzZW5kaW5n
IGludmFsaWQgZGF0YSB0byB3aGF0ZXZlciB0aGUgbmV4dFxwYXINCj4gPiA+IHN0ZXAgaW4gdGhl
IHByb2Nlc3MgaXMuIEluIHRoYXQgc2l0dWF0aW9uIEkgZ2VuZXJhbGx5IHVzZSBndWFyZHMgdG8g
XHBhcg0KPiA+ID4gY2hlY2sgdGhlIHZhbHVlIG9mIHRoZSBmaWVsZCwgYW5kIGRpc2FibGUgdGhl
IGd1YXJkZWQgY29udHJvbHMgKGVnIGFuIFxwYXINCj4gPiA+IE9LIGJ1dHRvbikgdW50aWwgdGhl
IGZpZWxkIGlzIHZhbGlkLlxwYXINCj4gPiA+IEJvYlxwYXINCj4gPiA+XHBhcg0KPiA+ID5ccGFy
DQo+ID4gPiAgICBccGFyDQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KPiA+ID4gICAgICpGcm9t
OiogQmxhY2tCb3ggW21haWx0bzpCTEFDS0JPWEBMSVNUUy5PQkVST04uQ0hdICpPbiBCZWhhbGYg
T2ZccGFyDQo+ID4gPiAgICAgKkJlcm5oYXJkdCwgR3VubmFyXHBhcg0KPiA+ID4gICAgICpTZW50
OiogMTEgSmFudWFyeSAyMDEwIDE3OjUzXHBhcg0KPiA+ID4gICAgICpUbzoqIEJMQUNLQk9YQExJ
U1RTLk9CRVJPTi5DSFxwYXINCj4gPiA+ICAgICAqU3ViamVjdDoqIFtCTEFDS0JPWF0gbGltaXRp
bmcgaW50ZWdlciB2YWx1ZXMgaW4gaW50ZXJhY3RvciBmaWVsZFxwYXINCj4gPiA+XHBhcg0KPiA+
ID4gICAgIEhlbGxvIGFsbCxccGFyDQo+ID4gPlxwYXINCj4gPiA+ICAgICB0aGVyZSBpcyBhbiBw
cm9ibGVtIHdoaWNoIGNhbWUgdXAgcmVjZW50bHk6IEkgd3JvdGUgYSBsaXR0bGVccGFyDQo+ID4g
PiAgICAgY2hhcmFjdGVyIHNoZWV0IGNoZWNrZXIgZm9yIGEgcm9sZSBwbGF5aW5nIGdhbWUuIFRo
ZSBiYXNpY1xwYXINCj4gPiA+ICAgICBhdHRyaWJ1dGVzIGFyZSBpbnRlZ2VyIHZhbHVlcywgc29t
ZSBvZiB0aGVtIGJldHdlZW4gMyBhbmQgMTggKDNXNlxwYXINCj4gPiA+ICAgICBpbiBzaG9ydCku
XHBhcg0KPiA+ID5ccGFyDQo+ID4gPiAgICAgV2hhdCBJIGRpZDogSSBoYWQgdGhlIE5vdGlmaWVy
IHByb2NlZHVyZSBmb3IgdGhpcyBmaWVsZCBjaGVjaywgaWZccGFyDQo+ID4gPiAgICAgdGhlIGVu
dGVyZWQgdmFsdWUgaXMgaW4gdGhlIHZhbGlkIGludGVydmFsIGFuZCBzZXR0aW5nIGl0IHRvIHRo
ZVxwYXINCj4gPiA+ICAgICB1cHBlciByZXNwZWN0aXZlbHkgbG93ZXIgYm91bmRhcnkgdmFsdWUu
IFNhZmUuXHBhcg0KPiA+ID5ccGFyDQo+ID4gPiAgICAgVGhlIHByb2JsZW06IElmIHlvdSB3YW50
IHRvIGVudGVyIGEgdmFsdWUgPiAxMCwgeW91IGZpcnN0IGhhdmUgdG9ccGFyDQo+ID4gPiAgICAg
dHlwZSB0aGUgbGV0dGVyIDwxPi4gUmlnaHQgbm93IHRoZSBub3RpZmllciBraWNrcyBpbiBhbmQg
Y2hhbmdlc1xwYXINCj4gPiA+ICAgICBpdCB0byA2IHdoaWNoIGlzIG9idmlvdXNseSB1bmRlc2ly
ZWQuXHBhcg0KPiA+ID5ccGFyDQo+ID4gPiAgICAgSXMgdGhlcmUgYW4gZWxlZ2FudCB3YXkgdG8g
Y2hlY2sgdGhlIGNvbnRlbnQgb2YgYSBmaWVsZCBBRlRFUiB0aGVccGFyDQo+ID4gPiAgICAgaW5w
dXQgaGFzIGJlZW4gY29tcGxldGVkP1xwYXINCj4gPiA+XHBhcg0KPiA+ID4gICAgIEkgbWVhbiBh
bm90aGVyIHdheSB0aGFuIHB1dHRpbmcgYSBidXR0b24gdGhlcmUgYW5kIGhhdmluZyB0aGUgdXNl
clxwYXINCj4gPiA+ICAgICBjbG9jayBvbiBpdCBhZnRlciBlYWNoIG51bWJlciBoZSBoYXMgZW50
ZXJlZC4gSSBjb3VsZCBub3QgZm9yXHBhcg0KPiA+ID4gICAgIGluc3RhbmNlIGZpbmQgYW4gZXZl
bnQgbGlrZSBcJzkzb25MZWF2ZVwnOTQgKG1vdmluZyB0aGUgZm9jdXMpLlxwYXINCj4gPiA+XHBh
cg0KPiA+ID4gICAgIHJlZ2FyZHNccGFyDQo+ID4gPlxwYXINCj4gPiA+ICAgICBndW5uYXJccGFy
DQo+ID4gPlxwYXINCj4gPiBccGFyDQo+ID4gXHBhcg0KPiA+IFxwYXINCj4gPiAtLS0tXHBhcg0K
PiA+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJR05PRkYgQkxB
Q0tCT1giIHRvXHBhcg0KPiA+IExJU1RTRVJWQExJU1RTLk9CRVJPTi5DSFxwYXINCj4gXHBhcg0K
PiAtLSBccGFyDQo+IEpldHp0IGtvc3RlbmxvcyBoZXJ1bnRlcmxhZGVuOiBJbnRlcm5ldCBFeHBs
b3JlciA4IHVuZCBNb3ppbGxhIEZpcmVmb3ggMy41XHBhcg0KPiAtXHBhcg0KPiBzaWNoZXJlciwg
c2NobmVsbGVyIHVuZCBlaW5mYWNoZXIhIGh0dHA6Ly9wb3J0YWwuZ214Lm5ldC9kZS9nby9hdGJy
b3dzZXJccGFyDQo+IFxwYXINCj4gXHBhcg0KPiAtLS0tXHBhcg0KPiBUbyB1bnN1YnNjcmliZSwg
c2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0b1xwYXINCj4gTElT
VFNFUlZATElTVFMuT0JFUk9OLkNIXHBhcg0KXHBhcg0KLS0gXHBhcg0KUHJlaXNrbmFsbGVyOiBH
TVggRFNMIEZsYXRyYXRlIGZcJ2ZjciBudXIgMTYsOTkgRXVyby9tdGwuIVxwYXINCmh0dHA6Ly9w
b3J0YWwuZ214Lm5ldC9kZS9nby9kc2wwMlxwYXINClxwYXINClxwYXINCi0tLS1ccGFyDQpUbyB1
bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0
byBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0hccGFyDQp9
----boundary-LibPST-iamunique-2109123645_-_---
Received on Tue Jan 12 2010 - 10:57:06 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:37 UTC