Mail Archives: djgpp-workers/1999/08/09/13:22:40
--Message-Boundary-3817
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Mail message body
I tested DJGPP ports of gcc-2.7.2.1, gcc-2.8.1, egcs-1.1.2 and gcc-
2.95. The latest is ths only one which generates '.p2align 4,,7' (see
attachments). Unfortunatelly I cannot test it easy more as no full
example included (so no real benchmarking)
Andris
On 9 Aug 99, at 11:21, Eli Zaretskii wrote:
>
> Somebody posted the message below to the bug-gcc list. It seems like
> this platforms had ".p2align 4,,7" even in v2.7.2.3. Andris, is this
> something that is configured in a platform-dependent manner in GCC?
>
> ---------- Forwarded message ----------
> Date: Sun, 08 Aug 1999 17:55:40 -0700
> From: Zack Weinberg <zack AT bitmover DOT com>
> To: gcc-bugs AT gcc DOT gnu DOT org, amylaar AT cygnus DOT co DOT uk
> Cc: lm AT bitmover DOT com
> Subject: Performance regression of 2.95 vs. 2.7, x86, loop-related
>
>
> Consider this fragment:
>
> #include <stdio.h>
>
> typedef struct
> {
> unsigned short cksum;
> unsigned short encoding;
> } sccs;
>
> #define E_GZIP 0x4
>
> extern int zputs(void *, FILE *, unsigned char *, int, void (*)());
> extern void gzip_sum();
>
> unsigned short
> fpd(sccs *s, unsigned char *buf, FILE *out)
> {
> unsigned short sum = 0;
> unsigned char *p, *q, c;
> static unsigned char block[8192];
> static unsigned char *next = block;
>
> /* Checksum up to and including the first newline
> * or the end of the string.
> */
> p = buf;
> q = next;
> for (;;) {
> for (;;) {
> c = *p++;
> if (c == '\0') goto done;
> sum += c;
> *q++ = c;
> if (q == &block[8192]) break;
> if (c == '\n') goto done;
> }
> if (s->encoding & E_GZIP) {
> zputs((void *)s, out, block, 8192, gzip_sum);
> } else {
> fwrite(block, 8192, 1, out);
> }
> q = block;
> if (c == '\n') break;
> }
> done: next = q;
> if (!(s->encoding & E_GZIP)) s->cksum += sum;
> return (sum);
> }
>
> The structure of the loops is calculated to get near-optimal code
> generation out of gcc 2.7.x. gcc 2.95, however, does a transformation
> on it that nearly doubles the execution time of the function, which
> leads to a 30% slowdown of the program this is taken from. I'm not
> sure if it's loop or jump optimization. It is NOT global CSE, which
> was my first hypothesis.
>
> Here is a side-by-side diff of assembly output for the function
> (munged slightly to eliminate spurious differences). 2.7.2.3 is on
> the left, 2.95 on the right. -O2 -fomit-frame-pointer was used both
> times. The interesting bits are marked with stars at the left margin.
>
> fpd: fpd:
> > subl $12,%esp
> pushl %ebp pushl %ebp
> pushl %edi pushl %edi
> pushl %esi pushl %esi
> pushl %ebx pushl %ebx
> movl 20(%esp),%ebp | movl 32(%esp),%ebp
> xorl %edi,%edi xorl %edi,%edi
> movl 24(%esp),%esi | movl 36(%esp),%esi
> movl next.23,%edx movl next.23,%edx
> .p2align 4,,7 .p2align 4,,7
> .L20: .L20:
> movb (%esi),%bl movb (%esi),%bl
> incl %esi incl %esi
> testb %bl,%bl testb %bl,%bl
> je .L24 je .L24
> movzbw %bl,%ax movzbw %bl,%ax
> ! addw %ax,%di | addl %eax,%edi
> movb %bl,(%edx) movb %bl,(%edx)
> incl %edx incl %edx
> cmpl $block.22+8192,%edx cmpl $block.22+8192,%edx
> * je .L21 | jne .L35
> * cmpb $10,%bl <
> * je .L24 <
> * jmp .L20 <
> * .p2align 4,,7 <
> *.L21: <
> testb $4,2(%ebp) testb $4,2(%ebp)
> je .L27 je .L27
> > addl $-12,%esp
> pushl $gzip_sum pushl $gzip_sum
> pushl $8192 pushl $8192
> pushl $block.22 pushl $block.22
> movl 40(%esp),%ecx | movl 64(%esp),%eax
> pushl %ecx | pushl %eax
> pushl %ebp pushl %ebp
> call zputs call zputs
> addl $20,%esp | addl $32,%esp
> jmp .L28 jmp .L28
> .p2align 4,,7 .p2align 4,,7
> .L27: .L27:
> movl 28(%esp),%ecx | movl 40(%esp),%eax
> pushl %ecx | pushl %eax
> pushl $1 pushl $1
> pushl $8192 pushl $8192
> pushl $block.22 pushl $block.22
> call fwrite call fwrite
> addl $16,%esp addl $16,%esp
> .L28: .L28:
> movl $block.22,%edx movl $block.22,%edx
> * > .L35:
> cmpb $10,%bl cmpb $10,%bl
> jne .L20 jne .L20
> .L24: .L24:
> movl %edx,next.23 movl %edx,next.23
> testb $4,2(%ebp) testb $4,2(%ebp)
> jne .L30 jne .L30
> addw %di,(%ebp) addw %di,(%ebp)
> .L30: .L30:
> movzwl %di,%eax movzwl %di,%eax
> popl %ebx popl %ebx
> popl %esi popl %esi
> popl %edi popl %edi
> popl %ebp popl %ebp
> > addl $12,%esp
> ret ret
>
> The change looks trivial but it isn't. The two places where c is
> compared with '\n' have been merged into one, and that one is placed
> AFTER the big block of code that is executed only rarely. The inner
> loop therefore contains a jump to another cache line. It will almost
> always be taken, but (if I understand x86 branch prediction correctly)
> it will be mispredicted on the first few iterations - and the input
> data to this function is such that the inner loop may only execute a
> few times per call.
>
> It would be fine to merge the two comparisons if the sole instance
> were contiguous with the inner loop and the outer loop code jumped
> back up.
>
> It would be nice if I could get the code that gcc 2.7.x generated
> without having to structure the source that way; it's far more natural
> to write this with the "outer loop" in an if block inside the inner
> loop.
>
> I'd also like to point out the line marked with an exclamation point.
> Unless movzbw clears the high 16 bits of the destination register
> (does it?), we are adding garbage to edi.
>
> zw
>
>
--Message-Boundary-3817
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.
---- File information -----------
File: z1-gcc2721.S
Date: 9 Aug 1999, 13:13
Size: 1556 bytes.
Type: Text
--Message-Boundary-3817
Content-type: Application/Octet-stream; name="z1-gcc2721.S"; type=Text
Content-disposition: attachment; filename="z1-gcc2721.S"
Content-transfer-encoding: BASE64
CS5maWxlCSJ6MS5jIg0KZ2NjMl9jb21waWxlZC46DQpfX19nbnVfY29tcGlsZWRfYzoNCi5s
Y29tbSBfYmxvY2suMiw4MTkyDQouZGF0YQ0KCS5hbGlnbiAyDQpfbmV4dC4zOg0KCS5sb25n
IF9ibG9jay4yDQoudGV4dA0KCS5hbGlnbiAyDQouZ2xvYmwgX2ZwZA0KX2ZwZDoNCglwdXNo
bCAlZWJwDQoJbW92bCAlZXNwLCVlYnANCglzdWJsICQxNiwlZXNwDQoJbW92dyAkMCwtMigl
ZWJwKQ0KCW1vdmwgMTIoJWVicCksJWVheA0KCW1vdmwgJWVheCwtOCglZWJwKQ0KCW1vdmwg
X25leHQuMywlZWF4DQoJbW92bCAlZWF4LC0xMiglZWJwKQ0KTDI6DQpMNToNCgltb3ZsIC04
KCVlYnApLCVlYXgNCgltb3ZiICglZWF4KSwlZGwNCgltb3ZiICVkbCwtMTMoJWVicCkNCglp
bmNsIC04KCVlYnApDQoJY21wYiAkMCwtMTMoJWVicCkNCglqbmUgTDgNCglqbXAgTDkNCgku
YWxpZ24gMiwweDkwDQpMODoNCgltb3Z6YncgLTEzKCVlYnApLCVheA0KCWFkZHcgJWF4LC0y
KCVlYnApDQoJbW92bCAtMTIoJWVicCksJWVheA0KCW1vdmIgLTEzKCVlYnApLCVkbA0KCW1v
dmIgJWRsLCglZWF4KQ0KCWluY2wgLTEyKCVlYnApDQoJY21wbCAkX2Jsb2NrLjIrODE5Miwt
MTIoJWVicCkNCglqbmUgTDEwDQoJam1wIEw2DQoJLmFsaWduIDIsMHg5MA0KTDEwOg0KCWNt
cGIgJDEwLC0xMyglZWJwKQ0KCWpuZSBMMTENCglqbXAgTDkNCgkuYWxpZ24gMiwweDkwDQpM
MTE6DQpMNzoNCglqbXAgTDUNCgkuYWxpZ24gMiwweDkwDQpMNjoNCgltb3ZsIDgoJWVicCks
JWVheA0KCW1vdncgMiglZWF4KSwlZHgNCglhbmR3ICQ0LCVkeA0KCXRlc3R3ICVkeCwlZHgN
CglqZSBMMTINCglwdXNobCAkX2d6aXBfc3VtDQoJcHVzaGwgJDgxOTINCglwdXNobCAkX2Js
b2NrLjINCgltb3ZsIDE2KCVlYnApLCVlYXgNCglwdXNobCAlZWF4DQoJbW92bCA4KCVlYnAp
LCVlYXgNCglwdXNobCAlZWF4DQoJY2FsbCBfenB1dHMNCglhZGRsICQyMCwlZXNwDQoJam1w
IEwxMw0KCS5hbGlnbiAyLDB4OTANCkwxMjoNCgltb3ZsIDE2KCVlYnApLCVlYXgNCglwdXNo
bCAlZWF4DQoJcHVzaGwgJDENCglwdXNobCAkODE5Mg0KCXB1c2hsICRfYmxvY2suMg0KCWNh
bGwgX2Z3cml0ZQ0KCWFkZGwgJDE2LCVlc3ANCkwxMzoNCgltb3ZsICRfYmxvY2suMiwtMTIo
JWVicCkNCgljbXBiICQxMCwtMTMoJWVicCkNCglqbmUgTDE0DQoJam1wIEwzDQoJLmFsaWdu
IDIsMHg5MA0KTDE0Og0KTDQ6DQoJam1wIEwyDQoJLmFsaWduIDIsMHg5MA0KTDM6DQoJbm9w
DQpMOToNCgltb3ZsIC0xMiglZWJwKSwlZWF4DQoJbW92bCAlZWF4LF9uZXh0LjMNCgltb3Zs
IDgoJWVicCksJWVheA0KCW1vdncgMiglZWF4KSwlZHgNCglhbmR3ICQ0LCVkeA0KCXRlc3R3
ICVkeCwlZHgNCglqbmUgTDE1DQoJbW92bCA4KCVlYnApLCVlYXgNCgltb3ZsIDgoJWVicCks
JWVkeA0KCW1vdncgKCVlZHgpLCVjeA0KCWFkZHcgLTIoJWVicCksJWN4DQoJbW92dyAlY3gs
KCVlYXgpDQpMMTU6DQoJbW92endsIC0yKCVlYnApLCVlZHgNCgltb3ZsICVlZHgsJWVheA0K
CWptcCBMMQ0KCS5hbGlnbiAyLDB4OTANCkwxOg0KCWxlYXZlDQoJcmV0DQo=
--Message-Boundary-3817
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.
---- File information -----------
File: z1-gcc295.S
Date: 9 Aug 1999, 13:03
Size: 1133 bytes.
Type: Text
--Message-Boundary-3817
Content-type: Application/Octet-stream; name="z1-gcc295.S"; type=Text
Content-disposition: attachment; filename="z1-gcc295.S"
Content-transfer-encoding: BASE64
CS5maWxlCSJ6MS5jIg0KZ2NjMl9jb21waWxlZC46DQpfX19nbnVfY29tcGlsZWRfYzoNCi5s
Y29tbSBfYmxvY2suMyw4MTkyDQouZGF0YQ0KCS5wMmFsaWduIDINCl9uZXh0LjQ6DQoJLmxv
bmcgX2Jsb2NrLjMNCi50ZXh0DQoJLnAyYWxpZ24gMg0KLmdsb2JsIF9mcGQNCl9mcGQ6DQoJ
cHVzaGwgJWVicA0KCW1vdmwgJWVzcCwlZWJwDQoJc3VibCAkMTIsJWVzcA0KCXB1c2hsICVl
ZGkNCglwdXNobCAlZXNpDQoJcHVzaGwgJWVieA0KCW1vdmwgMTIoJWVicCksJWVzaQ0KCW1v
dmwgX25leHQuNCwlZWR4DQoJeG9ybCAlZWRpLCVlZGkNCgkucDJhbGlnbiA0LCw3DQpMMTk6
DQoJbW92YiAoJWVzaSksJWJsDQoJaW5jbCAlZXNpDQoJdGVzdGIgJWJsLCVibA0KCWplIEwx
MA0KCXhvcmwgJWVheCwlZWF4DQoJbW92YiAlYmwsJWFsDQoJYWRkbCAlZWF4LCVlZGkNCglt
b3ZiICVibCwoJWVkeCkNCglpbmNsICVlZHgNCgljbXBsICRfYmxvY2suMys4MTkyLCVlZHgN
CglqbmUgTDIwDQoJbW92bCA4KCVlYnApLCVlYXgNCgl0ZXN0YiAkNCwyKCVlYXgpDQoJamUg
TDE0DQoJYWRkbCAkLTEyLCVlc3ANCglwdXNobCAkX2d6aXBfc3VtDQoJcHVzaGwgJDgxOTIN
CglwdXNobCAkX2Jsb2NrLjMNCgltb3ZsIDE2KCVlYnApLCVlYXgNCglwdXNobCAlZWF4DQoJ
bW92bCA4KCVlYnApLCVlYXgNCglwdXNobCAlZWF4DQoJY2FsbCBfenB1dHMNCglhZGRsICQz
MiwlZXNwDQoJam1wIEwxNQ0KCS5wMmFsaWduIDQsLDcNCkwxNDoNCgltb3ZsIDE2KCVlYnAp
LCVlYXgNCglwdXNobCAlZWF4DQoJcHVzaGwgJDENCglwdXNobCAkODE5Mg0KCXB1c2hsICRf
YmxvY2suMw0KCWNhbGwgX2Z3cml0ZQ0KCWFkZGwgJDE2LCVlc3ANCkwxNToNCgltb3ZsICRf
YmxvY2suMywlZWR4DQpMMjA6DQoJY21wYiAkMTAsJWJsDQoJam5lIEwxOQ0KTDEwOg0KCW1v
dmwgJWVkeCxfbmV4dC40DQoJbW92bCA4KCVlYnApLCVlYXgNCgl0ZXN0YiAkNCwyKCVlYXgp
DQoJam5lIEwxNw0KCWFkZHcgJWRpLCglZWF4KQ0KTDE3Og0KCXhvcmwgJWVheCwlZWF4DQoJ
bGVhbCAtMjQoJWVicCksJWVzcA0KCW1vdncgJWRpLCVheA0KCXBvcGwgJWVieA0KCXBvcGwg
JWVzaQ0KCXBvcGwgJWVkaQ0KCW1vdmwgJWVicCwlZXNwDQoJcG9wbCAlZWJwDQoJcmV0DQo=
--Message-Boundary-3817
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.
---- File information -----------
File: z1-egcs.S
Date: 9 Aug 1999, 13:02
Size: 1092 bytes.
Type: Text
--Message-Boundary-3817
Content-type: Application/Octet-stream; name="z1-egcs.S"; type=Text
Content-disposition: attachment; filename="z1-egcs.S"
Content-transfer-encoding: BASE64
CS5maWxlCSJ6MS5jIg0KZ2NjMl9jb21waWxlZC46DQpfX19nbnVfY29tcGlsZWRfYzoNCi5s
Y29tbSBfYmxvY2suMiw4MTkyDQouZGF0YQ0KCS5wMmFsaWduIDINCl9uZXh0LjM6DQoJLmxv
bmcgX2Jsb2NrLjINCi50ZXh0DQoJLnAyYWxpZ24gMg0KLmdsb2JsIF9mcGQNCl9mcGQ6DQoJ
cHVzaGwgJWVicA0KCW1vdmwgJWVzcCwlZWJwDQoJcHVzaGwgJWVkaQ0KCXhvcmwgJWVkaSwl
ZWRpDQoJcHVzaGwgJWVzaQ0KCXB1c2hsICVlYngNCgltb3ZsIDEyKCVlYnApLCVlc2kNCglt
b3ZsIF9uZXh0LjMsJWVkeA0KCS5wMmFsaWduIDINCkwxOToNCgltb3ZiICglZXNpKSwlYmwN
CglpbmNsICVlc2kNCgl0ZXN0YiAlYmwsJWJsDQoJamUgTDkNCgl4b3JsICVlYXgsJWVheA0K
CW1vdmIgJWJsLCVhbA0KCW1vdmIgJWJsLCglZWR4KQ0KCWFkZGwgJWVheCwlZWRpDQoJaW5j
bCAlZWR4DQoJY21wbCAkX2Jsb2NrLjIrODE5MiwlZWR4DQoJam5lIEwyMA0KCW1vdmwgOCgl
ZWJwKSwlZWN4DQoJdGVzdGIgJDQsMiglZWN4KQ0KCWplIEwxMw0KCXB1c2hsICRfZ3ppcF9z
dW0NCglwdXNobCAkODE5Mg0KCXB1c2hsICRfYmxvY2suMg0KCW1vdmwgMTYoJWVicCksJWVj
eA0KCXB1c2hsICVlY3gNCgltb3ZsIDgoJWVicCksJWVjeA0KCXB1c2hsICVlY3gNCgljYWxs
IF96cHV0cw0KCWFkZGwgJDIwLCVlc3ANCglqbXAgTDE0DQoJLnAyYWxpZ24gMg0KTDEzOg0K
CW1vdmwgMTYoJWVicCksJWVjeA0KCXB1c2hsICVlY3gNCglwdXNobCAkMQ0KCXB1c2hsICQ4
MTkyDQoJcHVzaGwgJF9ibG9jay4yDQoJY2FsbCBfZndyaXRlDQoJYWRkbCAkMTYsJWVzcA0K
TDE0Og0KCW1vdmwgJF9ibG9jay4yLCVlZHgNCkwyMDoNCgljbXBiICQxMCwlYmwNCglqbmUg
TDE5DQpMOToNCgltb3ZsICVlZHgsX25leHQuMw0KCW1vdmwgOCglZWJwKSwlZWN4DQoJdGVz
dGIgJDQsMiglZWN4KQ0KCWpuZSBMMTcNCglhZGR3ICVkaSwoJWVjeCkNCkwxNzoNCglsZWFs
IC0xMiglZWJwKSwlZXNwDQoJeG9ybCAlZWF4LCVlYXgNCgltb3Z3ICVkaSwlYXgNCglwb3Bs
ICVlYngNCglwb3BsICVlc2kNCglwb3BsICVlZGkNCgltb3ZsICVlYnAsJWVzcA0KCXBvcGwg
JWVicA0KCXJldA0K
--Message-Boundary-3817
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.
---- File information -----------
File: z1-gcc281.S
Date: 9 Aug 1999, 13:28
Size: 1629 bytes.
Type: Text
--Message-Boundary-3817
Content-type: Application/Octet-stream; name="z1-gcc281.S"; type=Text
Content-disposition: attachment; filename="z1-gcc281.S"
Content-transfer-encoding: BASE64
CS5maWxlCSJ6MS5jIg0KZ2NjMl9jb21waWxlZC46DQpfX19nbnVfY29tcGlsZWRfYzoNCi5s
Y29tbSBfYmxvY2suMiw4MTkyDQouZGF0YQ0KCS5wMmFsaWduIDINCl9uZXh0LjM6DQoJLmxv
bmcgX2Jsb2NrLjINCi50ZXh0DQoJLnAyYWxpZ24gMg0KLmdsb2JsIF9mcGQNCl9mcGQ6DQoJ
cHVzaGwgJWVicA0KCW1vdmwgJWVzcCwlZWJwDQoJc3VibCAkMTYsJWVzcA0KCXB1c2hsICVl
YngNCgltb3Z3ICQwLC0yKCVlYnApDQoJbW92bCAxMiglZWJwKSwlZWF4DQoJbW92bCAlZWF4
LC04KCVlYnApDQoJbW92bCBfbmV4dC4zLCVlYXgNCgltb3ZsICVlYXgsLTEyKCVlYnApDQpM
MjoNCkw1Og0KCW1vdmwgLTgoJWVicCksJWVheA0KCW1vdmIgKCVlYXgpLCVkbA0KCW1vdmIg
JWRsLC0xMyglZWJwKQ0KCWluY2wgLTgoJWVicCkNCgljbXBiICQwLC0xMyglZWJwKQ0KCWpu
ZSBMOA0KCWptcCBMOQ0KCS5hbGlnbiAyLDB4OTANCkw4Og0KCW1vdnpidyAtMTMoJWVicCks
JWF4DQoJYWRkdyAlYXgsLTIoJWVicCkNCgltb3ZsIC0xMiglZWJwKSwlZWF4DQoJbW92YiAt
MTMoJWVicCksJWRsDQoJbW92YiAlZGwsKCVlYXgpDQoJaW5jbCAtMTIoJWVicCkNCgljbXBs
ICRfYmxvY2suMis4MTkyLC0xMiglZWJwKQ0KCWpuZSBMMTANCglqbXAgTDYNCgkuYWxpZ24g
MiwweDkwDQpMMTA6DQoJY21wYiAkMTAsLTEzKCVlYnApDQoJam5lIEw3DQoJam1wIEw5DQoJ
LmFsaWduIDIsMHg5MA0KTDExOg0KTDc6DQoJam1wIEw1DQoJLmFsaWduIDIsMHg5MA0KTDY6
DQoJbW92bCA4KCVlYnApLCVlYXgNCgltb3Z3IDIoJWVheCksJWR4DQoJYW5kbCAkNCwlZWR4
DQoJdGVzdHcgJWR4LCVkeA0KCWplIEwxMg0KCXB1c2hsICRfZ3ppcF9zdW0NCglwdXNobCAk
ODE5Mg0KCXB1c2hsICRfYmxvY2suMg0KCW1vdmwgMTYoJWVicCksJWVheA0KCXB1c2hsICVl
YXgNCgltb3ZsIDgoJWVicCksJWVheA0KCXB1c2hsICVlYXgNCgljYWxsIF96cHV0cw0KCWFk
ZGwgJDIwLCVlc3ANCglqbXAgTDEzDQoJLmFsaWduIDIsMHg5MA0KTDEyOg0KCW1vdmwgMTYo
JWVicCksJWVheA0KCXB1c2hsICVlYXgNCglwdXNobCAkMQ0KCXB1c2hsICQ4MTkyDQoJcHVz
aGwgJF9ibG9jay4yDQoJY2FsbCBfZndyaXRlDQoJYWRkbCAkMTYsJWVzcA0KTDEzOg0KCW1v
dmwgJF9ibG9jay4yLC0xMiglZWJwKQ0KCWNtcGIgJDEwLC0xMyglZWJwKQ0KCWpuZSBMNA0K
CWptcCBMMw0KCS5hbGlnbiAyLDB4OTANCkwxNDoNCkw0Og0KCWptcCBMMg0KCS5hbGlnbiAy
LDB4OTANCkwzOg0KCW5vcA0KTDk6DQoJbW92bCAtMTIoJWVicCksJWVheA0KCW1vdmwgJWVh
eCxfbmV4dC4zDQoJbW92bCA4KCVlYnApLCVlYXgNCgltb3Z3IDIoJWVheCksJWR4DQoJYW5k
bCAkNCwlZWR4DQoJdGVzdHcgJWR4LCVkeA0KCWpuZSBMMTUNCgltb3ZsIDgoJWVicCksJWVh
eA0KCW1vdmwgOCglZWJwKSwlZWR4DQoJbW92dyAoJWVkeCksJWN4DQoJbW92dyAtMiglZWJw
KSwlZHgNCgltb3ZsICVlY3gsJWVieA0KCWFkZGwgJWVkeCwlZWJ4DQoJbW92dyAlYngsKCVl
YXgpDQpMMTU6DQoJbW92endsIC0yKCVlYnApLCVlZHgNCgltb3ZsICVlZHgsJWVheA0KCWpt
cCBMMQ0KCS5hbGlnbiAyLDB4OTANCkwxOg0KCW1vdmwgLTIwKCVlYnApLCVlYngNCglsZWF2
ZQ0KCXJldA0K
--Message-Boundary-3817--
- Raw text -