Re: [BLACKBOX] GdkGC *fg_gc[5] in CP?

From: [at]} <Wojtek>
Date: Sat, 19 Mar 2011 23:40:02 -0400

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

Let me make a guess.

When I look at the program, I am not sure I quite understand the construct
  StyleP* = POINTER TO Style;
  Style* = EXTENSIBLE RECORD [noalign] (G.Object)

Is the intent to map C (or C++) structures to the CP RECORD? If so, then
the RECORD should not have the CP-specific hidden tag, because C
structures do not have it. I am not sure about C++, but I would be
surprised if CP and C++ internal binary representation were the same.

The SYSTEM flag [noalign] may or may not strip the CP tag. Perhaps
[untagged] is needed. However, I am not sure how the [untagged] would play
with EXTENSIBLE? I vaguely recall that the intent of the hidden tag is to
dispatch run-time method calls. If you mark the RECORD as EXTENSIBLE, then
the compiler should add the tag, I think, because the extensions may need
it. If the tag is present, then the mapping from CP to C/C++ will be
corrupted.

If you are mapping the C/C++ strctures to CP RECORDS, then the mapping
needs to be compatible on the word-by-word basis. Perhaps you need to
disassemble the memory to make sure.

It is a wild guess of mine. Not sure whether it makes sense or not.

W.


> I am still struggling with my simple test program which shall implement
> a gtk expose signal handler.
>
> Following earlier recommendations to experiment, my expose signal
> handler now starts as:
>
> -----------------------------------------------------------------------
> PROCEDURE [ccall] Expose (widget: Gtk.WidgetP; event: Gdk.EventExposeP;
> data: G.pointer): G.boolean;
> VAR gc: Gdk.GCP;
> style: Gtk.StyleP;
> BEGIN
> Out.String("widget.state="); Out.Int(ORD(widget.state),0); Out.Ln;
> Out.String("allocation: "); Out.Int (widget.allocation.width, 0);
> Out.String(", "); Out.Int (widget.allocation.height, 0); Out.Ln;
> style:= widget.style;
> gc:= style.fg_gc[0];
> ...
> -----------------------------------------------------------------------
>
> When I call my program, widget.state and allocation width and height are
> written correctly to the log and a trap "illegal memory read" is
> generated (see below). Clicking on the diamond marks last shown line of
> "Expose" above.
>
> The original declaration of GtkStyle in gtkstyle.h is
> -----------------------------------------------------------------------
> struct _GtkStyle
> {
> GObject parent_instance;
>
> /*< public >*/
>
> GdkColor fg[5];
> GdkColor bg[5];
> GdkColor light[5];
> GdkColor dark[5];
> GdkColor mid[5];
> GdkColor text[5];
> GdkColor base[5];
> GdkColor text_aa[5]; /* Halfway between text/base */
>
> GdkColor black;
> GdkColor white;
> PangoFontDescription *font_desc;
>
> gint xthickness;
> gint ythickness;
>
> GdkGC *fg_gc[5];
> GdkGC *bg_gc[5];
> GdkGC *light_gc[5];
> GdkGC *dark_gc[5];
> GdkGC *mid_gc[5];
> GdkGC *text_gc[5];
> GdkGC *base_gc[5];
> GdkGC *text_aa_gc[5];
> GdkGC *black_gc;
> GdkGC *white_gc;
>
> GdkPixmap *bg_pixmap[5];
>
> /*< private >*/
>
> gint attach_count;
>
> gint depth;
> GdkColormap *colormap;
> GdkFont *private_font;
> PangoFontDescription *private_font_desc; /* Font description for
> style->private_font or %NULL */
>
> /* the RcStyle from which this style was created */
> GtkRcStyle *rc_style;
>
> GSList *styles; /* of type GtkStyle* */
> GArray *property_cache;
> GSList *icon_factories; /* of type GtkIconFactory* */
> };
> ----------------------------------------------------------------------
>
> which I translated to
>
> -----------------------------------------------------------------------
> StyleP* = POINTER TO Style;
> Style* = EXTENSIBLE RECORD [noalign] (G.Object)
> fg*, bg*, light*, dark*, mid*, text*, base*, text_aa*:
> POINTER TO ARRAY [untagged] 5 OF Gdk.Color;
> black*, white*: Gdk.Color;
> font_desc*: Pango.FontDescriptionP;
> xthickness*, ythickness*: G.int;
> fg_gc*, bg_gc*, light_gc*, dark_gc*, mid_gc*, text_gc*, base_gc*,
> text_aa_gc*: POINTER TO ARRAY [untagged] 5 OF Gdk.GCP;
> black_gc*, white_gc*: Gdk.GCP;
> bg_pixmap*: POINTER TO ARRAY [untagged] 5 OF Gdk.PixmapP;
> attach_count*, depth*: G.int;
> colormap*: Gdk.ColormapP;
> private_font*: Gdk.FontP;
>
> private_font_desc*: Pango.FontDescriptionP;
> rc_style*: RcStyleP;
> styles*: G.SListP;
>
> property_cache*: G.ArrayGP;
>
> icon_factories*: G.SListP;
> END;
> ---------------------------------------------------------------------------
>
> So I guess:
>
> As the line "gc:= style.fg_gc[0];" is marked, the error is in my
> translation of
> "GdkGC *fg_gc[5];"
> to
> "POINTER TO ARRAY [untagged] 5 OF Gdk.GCP;"
> where Gdk.GCP is declares pointer to Gdk.GC.
>
> Is that correct? What else can I do to track down the error?

>
>
>
>
>
> --
> Frank Hrebabetzky +55 / 48 / 3235 1106
> Florianopolis, Brazil
>
>
> ----
> To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to
> LISTSERV{([at]})nowhere.xy
>
>


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-1238258574_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIExldCBtZSBtYWtlIGEgZ3Vlc3MuXHBhcg0KXHBh
cg0KV2hlbiBJIGxvb2sgYXQgdGhlIHByb2dyYW0sIEkgYW0gbm90IHN1cmUgSSBxdWl0ZSB1bmRl
cnN0YW5kIHRoZSBjb25zdHJ1Y3RccGFyDQogIFN0eWxlUCogPSBQT0lOVEVSIFRPIFN0eWxlO1xw
YXINCiAgU3R5bGUqID0gIEVYVEVOU0lCTEUgUkVDT1JEIFtub2FsaWduXSAoRy5PYmplY3QpXHBh
cg0KXHBhcg0KSXMgdGhlIGludGVudCB0byBtYXAgQyAob3IgQysrKSBzdHJ1Y3R1cmVzIHRvIHRo
ZSBDUCBSRUNPUkQ/IElmIHNvLCB0aGVuXHBhcg0KdGhlIFJFQ09SRCBzaG91bGQgbm90IGhhdmUg
dGhlIENQLXNwZWNpZmljIGhpZGRlbiB0YWcsIGJlY2F1c2UgQ1xwYXINCnN0cnVjdHVyZXMgZG8g
bm90IGhhdmUgaXQuIEkgYW0gbm90IHN1cmUgYWJvdXQgQysrLCBidXQgSSB3b3VsZCBiZVxwYXIN
CnN1cnByaXNlZCBpZiBDUCBhbmQgQysrIGludGVybmFsIGJpbmFyeSByZXByZXNlbnRhdGlvbiB3
ZXJlIHRoZSBzYW1lLlxwYXINClxwYXINClRoZSBTWVNURU0gZmxhZyBbbm9hbGlnbl0gbWF5IG9y
IG1heSBub3Qgc3RyaXAgdGhlIENQIHRhZy4gUGVyaGFwc1xwYXINClt1bnRhZ2dlZF0gaXMgbmVl
ZGVkLiBIb3dldmVyLCBJIGFtIG5vdCBzdXJlIGhvdyB0aGUgW3VudGFnZ2VkXSB3b3VsZCBwbGF5
XHBhcg0Kd2l0aCBFWFRFTlNJQkxFPyBJIHZhZ3VlbHkgcmVjYWxsIHRoYXQgdGhlIGludGVudCBv
ZiB0aGUgaGlkZGVuIHRhZyBpcyB0b1xwYXINCmRpc3BhdGNoIHJ1bi10aW1lIG1ldGhvZCBjYWxs
cy4gSWYgeW91IG1hcmsgdGhlIFJFQ09SRCBhcyBFWFRFTlNJQkxFLCB0aGVuXHBhcg0KdGhlIGNv
bXBpbGVyIHNob3VsZCBhZGQgdGhlIHRhZywgSSB0aGluaywgYmVjYXVzZSB0aGUgZXh0ZW5zaW9u
cyBtYXkgbmVlZFxwYXINCml0LiBJZiB0aGUgdGFnIGlzIHByZXNlbnQsIHRoZW4gdGhlIG1hcHBp
bmcgZnJvbSBDUCB0byBDL0MrKyB3aWxsIGJlXHBhcg0KY29ycnVwdGVkLlxwYXINClxwYXINCklm
IHlvdSBhcmUgbWFwcGluZyB0aGUgQy9DKysgc3RyY3R1cmVzIHRvIENQIFJFQ09SRFMsIHRoZW4g
dGhlIG1hcHBpbmdccGFyDQpuZWVkcyB0byBiZSBjb21wYXRpYmxlIG9uIHRoZSB3b3JkLWJ5LXdv
cmQgYmFzaXMuIFBlcmhhcHMgeW91IG5lZWQgdG9ccGFyDQpkaXNhc3NlbWJsZSB0aGUgbWVtb3J5
IHRvIG1ha2Ugc3VyZS5ccGFyDQpccGFyDQpJdCBpcyBhIHdpbGQgZ3Vlc3Mgb2YgbWluZS4gTm90
IHN1cmUgd2hldGhlciBpdCBtYWtlcyBzZW5zZSBvciBub3QuXHBhcg0KXHBhcg0KVy5ccGFyDQpc
cGFyDQpccGFyDQo+IEkgYW0gc3RpbGwgc3RydWdnbGluZyB3aXRoIG15IHNpbXBsZSB0ZXN0IHBy
b2dyYW0gd2hpY2ggc2hhbGwgaW1wbGVtZW50XHBhcg0KPiBhIGd0ayBleHBvc2Ugc2lnbmFsIGhh
bmRsZXIuXHBhcg0KPlxwYXINCj4gRm9sbG93aW5nIGVhcmxpZXIgcmVjb21tZW5kYXRpb25zIHRv
IGV4cGVyaW1lbnQsIG15IGV4cG9zZSBzaWduYWxccGFyDQo+IGhhbmRsZXIgbm93IHN0YXJ0cyBh
czpccGFyDQo+XHBhcg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINCj4gUFJPQ0VEVVJFIFtjY2FsbF0g
RXhwb3NlICh3aWRnZXQ6IEd0ay5XaWRnZXRQOyBldmVudDogR2RrLkV2ZW50RXhwb3NlUDtccGFy
DQo+IFx0YWIgZGF0YTogRy5wb2ludGVyKTogRy5ib29sZWFuO1xwYXINCj4gVkFSIGdjOlx0YWIg
XHRhYiBHZGsuR0NQO1xwYXINCj4gICAgICBzdHlsZTpcdGFiIEd0ay5TdHlsZVA7XHBhcg0KPiBC
RUdJTlxwYXINCj4gICAgT3V0LlN0cmluZygid2lkZ2V0LnN0YXRlPSIpOyAgT3V0LkludChPUkQo
d2lkZ2V0LnN0YXRlKSwwKTsgIE91dC5MbjtccGFyDQo+ICAgIE91dC5TdHJpbmcoImFsbG9jYXRp
b246ICIpOyAgT3V0LkludCAod2lkZ2V0LmFsbG9jYXRpb24ud2lkdGgsIDApO1xwYXINCj4gICAg
T3V0LlN0cmluZygiLCAiKTsgIE91dC5JbnQgKHdpZGdldC5hbGxvY2F0aW9uLmhlaWdodCwgMCk7
ICBPdXQuTG47XHBhcg0KPiAgICBzdHlsZTo9IHdpZGdldC5zdHlsZTtccGFyDQo+ICAgIGdjOj0g
c3R5bGUuZmdfZ2NbMF07XHBhcg0KPiAgICAuLi5ccGFyDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0K
PlxwYXINCj4gV2hlbiBJIGNhbGwgbXkgcHJvZ3JhbSwgd2lkZ2V0LnN0YXRlIGFuZCBhbGxvY2F0
aW9uIHdpZHRoIGFuZCBoZWlnaHQgYXJlXHBhcg0KPiB3cml0dGVuIGNvcnJlY3RseSB0byB0aGUg
bG9nIGFuZCBhIHRyYXAgImlsbGVnYWwgbWVtb3J5IHJlYWQiIGlzXHBhcg0KPiBnZW5lcmF0ZWQg
KHNlZSBiZWxvdykuIENsaWNraW5nIG9uIHRoZSBkaWFtb25kIG1hcmtzIGxhc3Qgc2hvd24gbGlu
ZSBvZlxwYXINCj4gIkV4cG9zZSIgYWJvdmUuXHBhcg0KPlxwYXINCj4gVGhlIG9yaWdpbmFsIGRl
Y2xhcmF0aW9uIG9mIEd0a1N0eWxlIGluIGd0a3N0eWxlLmggaXNccGFyDQo+IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tXHBhcg0KPiBzdHJ1Y3QgX0d0a1N0eWxlXHBhcg0KPiBce1xwYXINCj4gICAgR09iamVjdCBw
YXJlbnRfaW5zdGFuY2U7XHBhcg0KPlxwYXINCj4gICAgLyo8IHB1YmxpYyA+Ki9ccGFyDQo+XHBh
cg0KPiAgICBHZGtDb2xvciBmZ1s1XTtccGFyDQo+ICAgIEdka0NvbG9yIGJnWzVdO1xwYXINCj4g
ICAgR2RrQ29sb3IgbGlnaHRbNV07XHBhcg0KPiAgICBHZGtDb2xvciBkYXJrWzVdO1xwYXINCj4g
ICAgR2RrQ29sb3IgbWlkWzVdO1xwYXINCj4gICAgR2RrQ29sb3IgdGV4dFs1XTtccGFyDQo+ICAg
IEdka0NvbG9yIGJhc2VbNV07XHBhcg0KPiAgICBHZGtDb2xvciB0ZXh0X2FhWzVdO1x0YWIgXHRh
YiAvKiBIYWxmd2F5IGJldHdlZW4gdGV4dC9iYXNlICovXHBhcg0KPlxwYXINCj4gICAgR2RrQ29s
b3IgYmxhY2s7XHBhcg0KPiAgICBHZGtDb2xvciB3aGl0ZTtccGFyDQo+ICAgIFBhbmdvRm9udERl
c2NyaXB0aW9uICpmb250X2Rlc2M7XHBhcg0KPlxwYXINCj4gICAgZ2ludCB4dGhpY2tuZXNzO1xw
YXINCj4gICAgZ2ludCB5dGhpY2tuZXNzO1xwYXINCj5ccGFyDQo+ICAgIEdka0dDICpmZ19nY1s1
XTtccGFyDQo+ICAgIEdka0dDICpiZ19nY1s1XTtccGFyDQo+ICAgIEdka0dDICpsaWdodF9nY1s1
XTtccGFyDQo+ICAgIEdka0dDICpkYXJrX2djWzVdO1xwYXINCj4gICAgR2RrR0MgKm1pZF9nY1s1
XTtccGFyDQo+ICAgIEdka0dDICp0ZXh0X2djWzVdO1xwYXINCj4gICAgR2RrR0MgKmJhc2VfZ2Nb
NV07XHBhcg0KPiAgICBHZGtHQyAqdGV4dF9hYV9nY1s1XTtccGFyDQo+ICAgIEdka0dDICpibGFj
a19nYztccGFyDQo+ICAgIEdka0dDICp3aGl0ZV9nYztccGFyDQo+XHBhcg0KPiAgICBHZGtQaXht
YXAgKmJnX3BpeG1hcFs1XTtccGFyDQo+XHBhcg0KPiAgICAvKjwgcHJpdmF0ZSA+Ki9ccGFyDQo+
XHBhcg0KPiAgICBnaW50IGF0dGFjaF9jb3VudDtccGFyDQo+XHBhcg0KPiAgICBnaW50IGRlcHRo
O1xwYXINCj4gICAgR2RrQ29sb3JtYXAgKmNvbG9ybWFwO1xwYXINCj4gICAgR2RrRm9udCAqcHJp
dmF0ZV9mb250O1xwYXINCj4gICAgUGFuZ29Gb250RGVzY3JpcHRpb24gKnByaXZhdGVfZm9udF9k
ZXNjOyAvKiBGb250IGRlc2NyaXB0aW9uIGZvclxwYXINCj4gc3R5bGUtPnByaXZhdGVfZm9udCBv
ciAlTlVMTCAqL1xwYXINCj5ccGFyDQo+ICAgIC8qIHRoZSBSY1N0eWxlIGZyb20gd2hpY2ggdGhp
cyBzdHlsZSB3YXMgY3JlYXRlZCAqL1xwYXINCj4gICAgR3RrUmNTdHlsZVx0YWIgICpyY19zdHls
ZTtccGFyDQo+XHBhcg0KPiAgICBHU0xpc3RcdGFiICAqc3R5bGVzO1x0YWIgICAvKiBvZiB0eXBl
IEd0a1N0eWxlKiAqL1xwYXINCj4gICAgR0FycmF5XHRhYiAgKnByb3BlcnR5X2NhY2hlO1xwYXIN
Cj4gICAgR1NMaXN0ICAgICAgICAgKmljb25fZmFjdG9yaWVzOyAvKiBvZiB0eXBlIEd0a0ljb25G
YWN0b3J5KiAqL1xwYXINCj4gXH07XHBhcg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KPlxwYXINCj4g
d2hpY2ggSSB0cmFuc2xhdGVkIHRvXHBhcg0KPlxwYXINCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1ccGFyDQo+
ICAgIFN0eWxlUCogPSBQT0lOVEVSIFRPIFN0eWxlO1xwYXINCj4gICAgU3R5bGUqID0gIEVYVEVO
U0lCTEUgUkVDT1JEIFtub2FsaWduXSAoRy5PYmplY3QpXHBhcg0KPiAgICAgIGZnKiwgYmcqLCBs
aWdodCosIGRhcmsqLCBtaWQqLCB0ZXh0KiwgYmFzZSosIHRleHRfYWEqOlxwYXINCj4gXHRhYiBc
dGFiIFBPSU5URVIgVE8gQVJSQVkgW3VudGFnZ2VkXSA1IE9GIEdkay5Db2xvcjtccGFyDQo+ICAg
ICAgYmxhY2sqLCB3aGl0ZSo6XHRhYiBcdGFiIEdkay5Db2xvcjtccGFyDQo+ICAgICAgZm9udF9k
ZXNjKjpcdGFiIFx0YWIgXHRhYiBQYW5nby5Gb250RGVzY3JpcHRpb25QO1xwYXINCj4gICAgICB4
dGhpY2tuZXNzKiwgeXRoaWNrbmVzcyo6XHRhYiBHLmludDtccGFyDQo+ICAgICAgZmdfZ2MqLCBi
Z19nYyosIGxpZ2h0X2djKiwgZGFya19nYyosIG1pZF9nYyosIHRleHRfZ2MqLCBiYXNlX2djKixc
cGFyDQo+ICAgICAgdGV4dF9hYV9nYyo6XHRhYiBQT0lOVEVSIFRPIEFSUkFZIFt1bnRhZ2dlZF0g
NSBPRiBHZGsuR0NQO1xwYXINCj4gICAgICBibGFja19nYyosIHdoaXRlX2djKjpcdGFiIEdkay5H
Q1A7XHBhcg0KPiAgICAgIGJnX3BpeG1hcCo6XHRhYiBcdGFiIFBPSU5URVIgVE8gQVJSQVkgW3Vu
dGFnZ2VkXSA1IE9GIEdkay5QaXhtYXBQO1xwYXINCj4gICAgICBhdHRhY2hfY291bnQqLCBkZXB0
aCo6ICBHLmludDtccGFyDQo+ICAgICAgY29sb3JtYXAqOlx0YWIgXHRhYiBcdGFiIEdkay5Db2xv
cm1hcFA7XHBhcg0KPiAgICAgIHByaXZhdGVfZm9udCo6XHRhYiBcdGFiIEdkay5Gb250UDtccGFy
DQo+XHBhcg0KPiAgICAgIHByaXZhdGVfZm9udF9kZXNjKjpcdGFiIFx0YWIgUGFuZ28uRm9udERl
c2NyaXB0aW9uUDtccGFyDQo+ICAgICAgcmNfc3R5bGUqOlx0YWIgXHRhYiBcdGFiIFJjU3R5bGVQ
O1xwYXINCj4gICAgICBzdHlsZXMqOlx0YWIgXHRhYiBcdGFiIEcuU0xpc3RQO1xwYXINCj5ccGFy
DQo+ICAgICAgcHJvcGVydHlfY2FjaGUqOlx0YWIgXHRhYiBHLkFycmF5R1A7XHBhcg0KPlxwYXIN
Cj4gICAgICBpY29uX2ZhY3Rvcmllcyo6XHRhYiBcdGFiIEcuU0xpc3RQO1xwYXINCj4gICAgRU5E
O1xwYXINCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KPlxwYXINCj4gU28gSSBndWVzczpccGFy
DQo+XHBhcg0KPiBBcyB0aGUgbGluZSAiZ2M6PSBzdHlsZS5mZ19nY1swXTsiIGlzIG1hcmtlZCwg
dGhlIGVycm9yIGlzIGluIG15XHBhcg0KPiB0cmFuc2xhdGlvbiBvZlxwYXINCj4gXHRhYiAiR2Rr
R0MgKmZnX2djWzVdOyJccGFyDQo+IHRvXHBhcg0KPiBcdGFiICJQT0lOVEVSIFRPIEFSUkFZIFt1
bnRhZ2dlZF0gNSBPRiBHZGsuR0NQOyJccGFyDQo+IHdoZXJlIEdkay5HQ1AgaXMgZGVjbGFyZXMg
cG9pbnRlciB0byBHZGsuR0MuXHBhcg0KPlxwYXINCj4gSXMgdGhhdCBjb3JyZWN0PyBXaGF0IGVs
c2UgY2FuIEkgZG8gdG8gdHJhY2sgZG93biB0aGUgZXJyb3I/XHBhcg0KPlxwYXINCj5ccGFyDQo+
XHBhcg0KPlxwYXINCj5ccGFyDQo+IC0tXHBhcg0KPiBGcmFuayBIcmViYWJldHpreVx0YWIgXHRh
YiArNTUgLyA0OCAvIDMyMzUgMTEwNlxwYXINCj4gRmxvcmlhbm9wb2xpcywgQnJhemlsXHBhcg0K
PlxwYXINCj5ccGFyDQo+IC0tLS1ccGFyDQo+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2Fn
ZSB3aXRoIGJvZHkgIlNJR05PRkYgQkxBQ0tCT1giIHRvXHBhcg0KPiBMSVNUU0VSVkBMSVNUUy5P
QkVST04uQ0hccGFyDQo+XHBhcg0KPlxwYXINClxwYXINClxwYXINCi0tLS1ccGFyDQpUbyB1bnN1
YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byBM
SVNUU0VSVkBMSVNUUy5PfX0APSJPdmVydmlld19T
----boundary-LibPST-iamunique-1238258574_-_---
Received on Sun Mar 20 2011 - 04:40:02 UTC

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