[BusyBox] new dd compile problem!
Matt Kraai
kraai at alumni.carnegiemellon.edu
Sun Dec 17 19:50:44 UTC 2000
On Sun, Dec 17, 2000 at 10:31:37AM -0800, kent robotti wrote:
> Matt Kraai kraai at alumni.carnegiemellon.edu
> Sun, 17 Dec 2000 07:55:41 -0800
>
> Thanks for testing it. It compiled for me, so either the patch
> was wrong or things have changed under me. Anyway, attached is a
> new patch that should work.
>
> The other patch didn't have this that's why it failed.
>
> --- busybox.h 2000/12/15 22:34:34 1.17
> +++ busybox.h 2000/12/15 22:39:35
> @@ -190,6 +190,13 @@
> #endif
> extern char *xstrndup (const char *s, int n);
>
> +struct suffix_mult {
> + char *suffix;
> + int mult;
> +};
> +
> +extern unsigned long parse_number(const char *numstr, struct suffix_mult *suffixes);
> +
>
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: attachment; filename=patch
> Content-Transfer-Encoding: quoted-printable
>
> I don't know what quoted printable is, i can't
> apply the patch.
>
> Uu or base64 encode it.
I think that certain constructs are escaped with equal signs.
Used by default in mutt. I've attached this and a uuencoded
new version.
> These could use \n in utility.c.
>
> + error_msg_and_die("invalid number `%s'\n", numstr);
> + error_msg_and_die("invalid number `%s'\n", numstr);
Fixed. Thanks for the suggestion.
> These are a couple of breaks in tail.c that are
> probably not needed.
>
> } else
> usage(tail_usage);
> --> break;
> case 'f':
> follow = 1;
> break;
> case 'h':
> usage(tail_usage);
> --> break;
> default:
> error_msg("\nUnknown arg: %c.\n\n",optopt);
> usage(tail_usage);
The first break is necessary since usage is not always called. It
could be moved inside the if, but that just makes things less
clear. I simplified the second case to merge the default and 'h'
cases, as getopt already prints out a message about improper
arguments.
Thanks again for the testing.
Matt
-------------- next part --------------
Index: busybox.h
===================================================================
RCS file: /var/cvs/busybox/busybox.h,v
retrieving revision 1.17
diff -u -r1.17 busybox.h
--- busybox.h 2000/12/15 22:34:34 1.17
+++ busybox.h 2000/12/17 19:49:17
@@ -190,6 +190,13 @@
#endif
extern char *xstrndup (const char *s, int n);
+struct suffix_mult {
+ char *suffix;
+ int mult;
+};
+
+extern unsigned long parse_number(const char *numstr, struct suffix_mult *suffixes);
+
/* These parse entries in /etc/passwd and /etc/group. This is desirable
* for BusyBox since we want to avoid using the glibc NSS stuff, which
Index: dd.c
===================================================================
RCS file: /var/cvs/busybox/dd.c,v
retrieving revision 1.36
diff -u -r1.36 dd.c
--- dd.c 2000/12/07 19:56:48 1.36
+++ dd.c 2000/12/17 19:49:20
@@ -2,16 +2,9 @@
/*
* Mini dd implementation for busybox
*
- * Copyright (C) 1999, 2000 by Lineo, inc.
- * Written by Erik Andersen <andersen at lineo.com>, <andersee at debian.org>
*
- * Based in part on code taken from sash.
- * Copyright (c) 1999 by David I. Bell
- * Permission is granted to use, distribute, or modify this source,
- * provided that this copyright notice remains intact.
+ * Copyright (C) 2000 by Matt Kraai <kraai at alumni.carnegiemellon.edu>
*
- * Permission to distribute this code under the GPL has been granted.
- *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -28,154 +21,128 @@
*
*/
-
#include "busybox.h"
-#include <features.h>
-#include <stdio.h>
+
+#include <sys/types.h>
#include <fcntl.h>
-#include <errno.h>
-#if (__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 1)
-#include <inttypes.h>
-#else
-typedef unsigned long long int uintmax_t;
-#endif
-extern int dd_main(int argc, char **argv)
+static struct suffix_mult dd_suffixes[] = {
+ { "c", 1 },
+ { "w", 2 },
+ { "b", 512 },
+ { "kD", 1000 },
+ { "k", 1024 },
+ { "MD", 1000000 },
+ { "M", 1048576 },
+ { "GD", 1000000000 },
+ { "G", 1073741824 },
+ { NULL, 0 }
+};
+
+int dd_main(int argc, char **argv)
{
- char *inFile = NULL;
- char *outFile = NULL;
- int inFd;
- int outFd;
- int inCc = 0;
- int outCc;
- int trunc=TRUE;
- int sync=FALSE;
- long blockSize = 512,ibs;
- uintmax_t skipBlocks = 0;
- uintmax_t seekBlocks = 0;
- uintmax_t count = (uintmax_t) - 1;
- uintmax_t inTotal = 0;
- uintmax_t outTotal = 0;
- uintmax_t totalSize;
-
- unsigned char buf[BUFSIZ];
- char *keyword = NULL;
-
- argc--;
- argv++;
-
- /* Parse any options */
- while (argc) {
- if (inFile == NULL && (strncmp(*argv, "if", 2) == 0))
- inFile = ((strchr(*argv, '=')) + 1);
- else if (outFile == NULL && (strncmp(*argv, "of", 2) == 0))
- outFile = ((strchr(*argv, '=')) + 1);
- else if (strncmp("count", *argv, 5) == 0) {
- count = atoi_w_units((strchr(*argv, '=')) + 1);
- if (count < 0) {
- error_msg("Bad count value %s\n", *argv);
- goto usage;
- }
- } else if (strncmp(*argv, "bs", 2) == 0) {
- blockSize = atoi_w_units((strchr(*argv, '=')) + 1);
- if (blockSize <= 0) {
- error_msg("Bad block size value %s\n", *argv);
- goto usage;
- }
- } else if (strncmp(*argv, "skip", 4) == 0) {
- skipBlocks = atoi_w_units((strchr(*argv, '=')) + 1);
- if (skipBlocks <= 0) {
- error_msg("Bad skip value %s\n", *argv);
- goto usage;
+ int i, ifd, ofd, sync = FALSE, trunc = TRUE;
+ size_t in_full = 0, in_part = 0, out_full = 0, out_part = 0;
+ size_t bs = 512, count = -1;
+ ssize_t n;
+ off_t seek = 0, skip = 0;
+ FILE *statusfp;
+ char *infile = NULL, *outfile = NULL, *buf;
+
+ for (i = 1; i < argc; i++) {
+ if (strncmp("bs=", argv[i], 3) == 0)
+ bs = parse_number(argv[i]+3, dd_suffixes);
+ else if (strncmp("count=", argv[i], 6) == 0)
+ count = parse_number(argv[i]+6, dd_suffixes);
+ else if (strncmp("seek=", argv[i], 5) == 0)
+ seek = parse_number(argv[i]+5, dd_suffixes);
+ else if (strncmp("skip=", argv[i], 5) == 0)
+ skip = parse_number(argv[i]+5, dd_suffixes);
+ else if (strncmp("if=", argv[i], 3) == 0)
+ infile = argv[i]+3;
+ else if (strncmp("of=", argv[i], 3) == 0)
+ outfile = argv[i]+3;
+ else if (strncmp("conv=", argv[i], 5) == 0) {
+ buf = argv[i]+5;
+ while (1) {
+ if (strncmp("notrunc", buf, 7) == 0) {
+ trunc = FALSE;
+ buf += 7;
+ } else if (strncmp("sync", buf, 4) == 0) {
+ sync = TRUE;
+ buf += 4;
+ } else {
+ error_msg_and_die("invalid conversion `%s'", argv[i]+5);
+ }
+ if (buf[0] == '\0')
+ break;
+ if (buf[0] == ',')
+ buf++;
}
+ } else
+ usage(dd_usage);
+ }
- } else if (strncmp(*argv, "seek", 4) == 0) {
- seekBlocks = atoi_w_units((strchr(*argv, '=')) + 1);
- if (seekBlocks <= 0) {
- error_msg("Bad seek value %s\n", *argv);
- goto usage;
- }
- } else if (strncmp(*argv, "conv", 4) == 0) {
- keyword = (strchr(*argv, '=') + 1);
- if (strcmp(keyword, "notrunc") == 0)
- trunc=FALSE;
- if (strcmp(keyword, "sync") == 0)
- sync=TRUE;
- } else {
- goto usage;
- }
- argc--;
- argv++;
+ buf = xmalloc(bs);
+
+ if (infile != NULL) {
+ if ((ifd = open(infile, O_RDONLY)) < 0)
+ perror_msg_and_die("%s", infile);
+ } else {
+ ifd = STDIN_FILENO;
+ infile = "standard input";
}
- if (inFile == NULL)
- inFd = fileno(stdin);
- else
- inFd = open(inFile, 0);
-
- if (inFd < 0) {
- /* Note that we are not freeing buf or closing
- * files here to save a few bytes. This exits
- * here anyways... */
-
- /* free(buf); */
- perror_msg_and_die("%s", inFile);
- }
-
- if (outFile == NULL)
- outFd = fileno(stdout);
- else
- outFd = open(outFile, O_WRONLY | O_CREAT, 0666);
-
- if (outFd < 0) {
- /* Note that we are not freeing buf or closing
- * files here to save a few bytes. This exits
- * here anyways... */
-
- /* close(inFd);
- free(buf); */
- perror_msg_and_die("%s", outFile);
- }
-
- lseek(inFd, (off_t) (skipBlocks * blockSize), SEEK_SET);
- lseek(outFd, (off_t) (seekBlocks * blockSize), SEEK_SET);
- totalSize=count*blockSize;
-
- ibs=blockSize;
- if (ibs > BUFSIZ)
- ibs=BUFSIZ;
-
- while (totalSize > outTotal) {
- inCc = full_read(inFd, buf, ibs);
- inTotal += inCc;
- if ( (sync==TRUE) && (inCc>0) )
- while (inCc<ibs)
- buf[inCc++]='\0';
-
- if ((outCc = full_write(outFd, buf, inCc)) < 1){
- if (outCc < 0 ){
- perror("Error during write");
- }
+ if (outfile != NULL) {
+ if ((ofd = open(outfile, O_WRONLY | O_CREAT, 0666)) < 0)
+ perror_msg_and_die("%s", outfile);
+ statusfp = stdout;
+ } else {
+ ofd = STDOUT_FILENO;
+ outfile = "standard output";
+ statusfp = stderr;
+ }
+
+ if (skip) {
+ if (lseek(ifd, skip * bs, SEEK_CUR) < 0)
+ perror_msg_and_die("%s", infile);
+ }
+
+ if (seek) {
+ if (lseek(ofd, seek * bs, SEEK_CUR) < 0)
+ perror_msg_and_die("%s", outfile);
+ }
+
+ if (trunc) {
+ if (ftruncate(ofd, seek * bs) < 0)
+ perror_msg_and_die("%s", outfile);
+ }
+
+ while (in_full + in_part != count) {
+ n = safe_read(ifd, buf, bs);
+ if (n < 0)
+ perror_msg_and_die("%s", infile);
+ if (n == 0)
break;
+ if (n == bs)
+ in_full++;
+ else
+ in_part++;
+ if (sync) {
+ memset(buf + n, '\0', bs - n);
+ n = bs;
}
- outTotal += outCc;
- }
- if (trunc == TRUE) {
- ftruncate(outFd, lseek(outFd, 0, SEEK_CUR));
- }
- /* Note that we are not freeing memory or closing
- * files here, to save a few bytes. */
-#ifdef BB_FEATURE_CLEAN_UP
- close(inFd);
- close(outFd);
-#endif
-
- printf("%ld+%d records in\n", (long) (inTotal / blockSize),
- (inTotal % blockSize) != 0);
- printf("%ld+%d records out\n", (long) (outTotal / blockSize),
- (outTotal % blockSize) != 0);
- return EXIT_SUCCESS;
- usage:
+ n = full_write(ofd, buf, n);
+ if (n < 0)
+ perror_msg_and_die("%s", outfile);
+ if (n == bs)
+ out_full++;
+ else
+ out_part++;
+ }
- usage(dd_usage);
+ fprintf(statusfp, "%d+%d records in\n", in_full, in_part);
+ fprintf(statusfp, "%d+%d records out\n", out_full, out_part);
+
+ return EXIT_SUCCESS;
}
Index: tail.c
===================================================================
RCS file: /var/cvs/busybox/tail.c,v
retrieving revision 1.27
diff -u -r1.27 tail.c
--- tail.c 2000/12/07 19:56:48 1.27
+++ tail.c 2000/12/17 19:49:22
@@ -61,6 +61,13 @@
static off_t units=0;
+static struct suffix_mult tail_suffixes[] = {
+ { "b", 512 },
+ { "k", 1024 },
+ { "m", 1048576 },
+ { NULL, 0 }
+};
+
static int tail_stream(int fd)
{
ssize_t startpoint;
@@ -170,32 +177,6 @@
switch (opt) {
#ifndef BB_FEATURE_SIMPLE_TAIL
- case 'c':
- unit_type = BYTES;
- test = atoi(optarg);
- if(test==0)
- usage(tail_usage);
- if(optarg[strlen(optarg)-1]>'9') {
- switch (optarg[strlen(optarg)-1]) {
- case 'b':
- test *= 512;
- break;
- case 'k':
- test *= 1024;
- break;
- case 'm':
- test *= (1024 * 1024);
- break;
- default:
- fprintf(stderr,"Size must be b,k, or m.");
- usage(tail_usage);
- }
- }
- if(optarg[0]=='+')
- units=test+1;
- else
- units=-(test+1);
- break;
case 'q':
show_headers = 0;
break;
@@ -207,15 +188,12 @@
case 'v':
verbose = 1;
break;
+ case 'c':
+ unit_type = BYTES;
+ /* FALLS THROUGH */
#endif
- case 'f':
- follow = 1;
- break;
- case 'h':
- usage(tail_usage);
- break;
case 'n':
- test = atoi(optarg);
+ test = parse_number(optarg, tail_suffixes);
if (test) {
if (optarg[0] == '+')
units = test;
@@ -224,8 +202,10 @@
} else
usage(tail_usage);
break;
+ case 'f':
+ follow = 1;
+ break;
default:
- error_msg("\nUnknown arg: %c.\n\n",optopt);
usage(tail_usage);
}
}
Index: utility.c
===================================================================
RCS file: /var/cvs/busybox/utility.c,v
retrieving revision 1.175
diff -u -r1.175 utility.c
--- utility.c 2000/12/15 22:34:34 1.175
+++ utility.c 2000/12/17 19:49:47
@@ -536,7 +536,7 @@
}
#endif /* BB_TAR || BB_AR */
-#if defined BB_AR || defined BB_CP_MV || defined BB_DD || defined BB_NC || defined BB_TAR
+#if defined BB_TAR || defined BB_CP_MV || defined BB_AR || defined BB_DD
/*
* Write all of the supplied buffer out to a file.
* This does multiple writes as necessary.
@@ -565,7 +565,7 @@
#endif /* BB_TAR || BB_CP_MV || BB_AR */
-#if defined BB_TAR || defined BB_TAIL || defined BB_AR || defined BB_SH || defined BB_CP_MV || defined BB_DD
+#if defined BB_AR || defined BB_CP_MV || defined BB_SH || defined BB_TAIL || defined BB_TAR
/*
* Read all of the supplied buffer from a file.
* This does multiple reads as necessary.
@@ -1215,58 +1215,6 @@
}
#endif /* BB_DF || BB_MTAB */
-
-
-#if defined BB_DD || defined BB_TAIL
-/*
- * Read a number with a possible multiplier.
- * Returns -1 if the number format is illegal.
- */
-extern long atoi_w_units(const char *cp)
-{
- long value;
-
- if (!is_decimal(*cp))
- return -1;
-
- value = 0;
-
- while (is_decimal(*cp))
- value = value * 10 + *cp++ - '0';
-
- switch (*cp++) {
- case 'M':
- case 'm': /* `tail' uses it traditionally */
- value *= 1048576;
- break;
-
- case 'k':
- value *= 1024;
- break;
-
- case 'b':
- value *= 512;
- break;
-
- case 'w':
- value *= 2;
- break;
-
- case '\0':
- return value;
-
- default:
- return -1;
- }
-
- if (*cp)
- return -1;
-
- return value;
-}
-#endif /* BB_DD || BB_TAIL */
-
-
#if defined BB_INIT || defined BB_SYSLOGD
/* try to open up the specified device */
extern int device_open(char *device, int mode)
@@ -1790,8 +1738,35 @@
return strcmp(applet1->name, applet2->name);
}
+
+#if defined BB_DD || defined BB_TAIL
+unsigned long parse_number(const char *numstr, struct suffix_mult *suffixes)
+{
+ struct suffix_mult *sm;
+ unsigned long int ret;
+ int len;
+ char *end;
+
+ ret = strtoul(numstr, &end, 10);
+ if (numstr == end)
+ error_msg_and_die("invalid number `%s'\n", numstr);
+ while (end[0] != '\0') {
+ for (sm = suffixes; sm->suffix != NULL; sm++) {
+ len = strlen(sm->suffix);
+ if (strncmp(sm->suffix, end, len) == 0) {
+ ret *= sm->mult;
+ end += len;
+ break;
+ }
+ }
+ if (sm->suffix == NULL)
+ error_msg_and_die("invalid number `%s'\n", numstr);
+ }
+ return ret;
+}
+#endif
-#if defined BB_NC
+#if defined BB_DD || defined BB_NC
ssize_t safe_read(int fd, void *buf, size_t count)
{
ssize_t n;
-------------- next part --------------
begin 644 ../patch.uu
M26YD97 at Z(&)U<WEB;W at N:`H]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F
M:6QE.B`O=F%R+V-V<R]B=7-Y8F]X+V)U<WEB;W at N:"QV"G)E=')I979I;F<@
M<F5V:7-I;VX@,2XQ-PID:69F("UU("UR,2XQ-R!B=7-Y8F]X+F@*+2TM(&)U
M<WEB;W at N:`DR,#`P+S$R+S$U(#(R.C,T.C,T"3$N,3<**RLK(&)U<WEB;W at N
M:`DR,#`P+S$R+S$W(#$Y.C0Y.C$W"D!`("TQ.3`L-B`K,3DP+#$S($!`"B`C
M96YD:68*(&5X=&5R;B!C:&%R("IX<W1R;F1U<"`H8V]N<W0 at 8VAA<B`J<RP@
M:6YT(&XI.PH@"BMS=')U8W0@<W5F9FEX7VUU;'0@>PHK"6-H87(@*G-U9F9I
M>#L**PEI;G0@;75L=#L**WT["BL**V5X=&5R;B!U;G-I9VYE9"!L;VYG('!A
M<G-E7VYU;6)E<BAC;VYS="!C:&%R("IN=6US='(L('-T<G5C="!S=69F:7A?
M;75L="`J<W5F9FEX97,I.PHK"B`*("\J(%1H97-E('!A<G-E(&5N=')I97,@
M:6X at +V5T8R]P87-S=V0 at 86YD("]E=&,O9W)O=7`N("!4:&ES(&ES(&1E<VER
M86)L90H@("H at 9F]R($)U<WE";W@@<VEN8V4@=V4@=V%N="!T;R!A=F]I9"!U
M<VEN9R!T:&4 at 9VQI8F, at 3E-3('-T=69F+"!W:&EC:`I);F1E>#H at 9&0N8PH]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F:6QE.B`O=F%R+V-V<R]B=7-Y
M8F]X+V1D+F,L=@IR971R:65V:6YG(')E=FES:6]N(#$N,S8*9&EF9B`M=2`M
M<C$N,S8 at 9&0N8PHM+2T at 9&0N8PDR,#`P+S$R+S`W(#$Y.C4V.C0X"3$N,S8*
M*RLK(&1D+F,),C`P,"\Q,B\Q-R`Q.3HT.3HR,`I`0"`M,BPQ-B`K,BPY($!`
M"B`O*@H@("H at 36EN:2!D9"!I;7!L96UE;G1A=&EO;B!F;W(@8G5S>6)O>`H@
M("H*+2`J($-O<'ER:6=H="`H0RD@,3DY.2P@,C`P,"!B>2!,:6YE;RP@:6YC
M+ at HM("H at 5W)I='1E;B!B>2!%<FEK($%N9&5R<V5N(#QA;F1E<G-E;D!L:6YE
M;RYC;VT^+"`\86YD97)S965`9&5B:6%N+F]R9SX*("`J"BT@*B!"87-E9"!I
M;B!P87)T(&]N(&-O9&4@=&%K96X at 9G)O;2!S87-H+B`*+2`J("`@0V]P>7)I
M9VAT("AC*2`Q.3DY(&)Y($1A=FED($DN($)E;&P*+2`J("`@4&5R;6ES<VEO
M;B!I<R!G<F%N=&5D('1O('5S92P at 9&ES=')I8G5T92P@;W(@;6]D:69Y('1H
M:7,@<V]U<F-E+`HM("H@("!P<F]V:61E9"!T:&%T('1H:7, at 8V]P>7)I9VAT
M(&YO=&EC92!R96UA:6YS(&EN=&%C="X**R`J($-O<'ER:6=H="`H0RD@,C`P
M,"!B>2!-871T($MR86%I(#QK<F%A:4!A;'5M;FDN8V%R;F5G:65M96QL;VXN
M961U/@H@("H*+2`J(%!E<FUI<W-I;VX@=&\@9&ES=')I8G5T92!T:&ES(&-O
M9&4@=6YD97(@=&AE($=03"!H87, at 8F5E;B!G<F%N=&5D+ at HM("H*("`J(%1H
M:7,@<')O9W)A;2!I<R!F<F5E('-O9G1W87)E.R!Y;W4 at 8V%N(')E9&ES=')I
M8G5T92!I="!A;F0O;W(@;6]D:69Y"B`@*B!I="!U;F1E<B!T:&4@=&5R;7,@
M;V8@=&AE($=.52!'96YE<F%L(%!U8FQI8R!,:6-E;G-E(&%S('!U8FQI<VAE
M9"!B>0H@("H@=&AE($9R964 at 4V]F='=A<F4 at 1F]U;F1A=&EO;CL at 96ET:&5R
M('9E<G-I;VX@,B!O9B!T:&4 at 3&EC96YS92P@;W(*0$`@+3(X+#$U-"`K,C$L
M,3(X($!`"B`@*@H@("HO"B`*+0H@(VEN8VQU9&4@(F)U<WEB;W at N:"(*+2-I
M;F-L=61E(#QF96%T=7)E<RYH/@HM(VEN8VQU9&4@/'-T9&EO+F@^"BL**R-I
M;F-L=61E(#QS>7,O='EP97,N:#X*("-I;F-L=61E(#QF8VYT;"YH/@HM(VEN
M8VQU9&4@/&5R<FYO+F@^"BTC:68@*%]?1TQ)0D-?7R`^/2`R*2`F)B`H7U]'
M3$E"0U]-24Y/4E]?(#X](#$I"BTC:6YC;'5D92`\:6YT='EP97,N:#X*+2-E
M;'-E"BUT>7!E9&5F('5N<VEG;F5D(&QO;F<@;&]N9R!I;G0@=6EN=&UA>%]T
M.PHM(V5N9&EF"B`*+65X=&5R;B!I;G0 at 9&1?;6%I;BAI;G0 at 87)G8RP at 8VAA
M<B`J*F%R9W8I"BMS=&%T:6,@<W1R=6-T('-U9F9I>%]M=6QT(&1D7W-U9F9I
M>&5S6UT@/2!["BL)>R`B8R(L(#$@?2P**PE[(")W(BP@,B!]+`HK"7L@(F(B
M+"`U,3(@?2P**PE[(")K1"(L(#$P,#`@?2P**PE[(")K(BP@,3`R-"!]+`HK
M"7L@(DU$(BP@,3`P,#`P,"!]+`HK"7L@(DTB+"`Q,#0X-3<V('TL"BL)>R`B
M1T0B+"`Q,#`P,#`P,#`P('TL"BL)>R`B1R(L(#$P-S,W-#$X,C0@?2P**PE[
M($Y53$PL(#`@?0HK?3L**PHK:6YT(&1D7VUA:6XH:6YT(&%R9V,L(&-H87(@
M*BIA<F=V*0H@>PHM"6-H87(@*FEN1FEL92`]($Y53$P["BT)8VAA<B`J;W5T
M1FEL92`]($Y53$P["BT):6YT(&EN1F0["BT):6YT(&]U=$9D.PHM"6EN="!I
M;D-C(#T@,#L*+0EI;G0@;W5T0V,["BT):6YT('1R=6YC/512544["BT):6YT
M('-Y;F,]1D%,4T4["BT);&]N9R!B;&]C:U-I>F4@/2`U,3(L:6)S.PHM"75I
M;G1M87A?="!S:VEP0FQO8VMS(#T@,#L*+0EU:6YT;6%X7W0@<V5E:T)L;V-K
M<R`](#`["BT)=6EN=&UA>%]T(&-O=6YT(#T@*'5I;G1M87A?="D at +2`Q.PHM
M"75I;G1M87A?="!I;E1O=&%L(#T@,#L*+0EU:6YT;6%X7W0@;W5T5&]T86P@
M/2`P.PHM"75I;G1M87A?="!T;W1A;%-I>F4["BT*+0EU;G-I9VYE9"!C:&%R
M(&)U9EM"549325I=.PHM"6-H87(@*FME>7=O<F0@/2!.54Q,.PHM"BT)87)G
M8RTM.PHM"6%R9W8K*SL*+0HM"2\J(%!A<G-E(&%N>2!O<'1I;VYS("HO"BT)
M=VAI;&4@*&%R9V,I('L*+0D):68@*&EN1FEL92`]/2!.54Q,("8F("AS=')N
M8VUP*"IA<F=V+"`B:68B+"`R*2`]/2`P*2D*+0D)"6EN1FEL92`]("@H<W1R
M8VAR*"IA<F=V+"`G/2<I*2`K(#$I.PHM"0EE;'-E(&EF("AO=71&:6QE(#T]
M($Y53$P@)B8@*'-T<FYC;7`H*F%R9W8L(")O9B(L(#(I(#T](#`I*0HM"0D)
M;W5T1FEL92`]("@H<W1R8VAR*"IA<F=V+"`G/2<I*2`K(#$I.PHM"0EE;'-E
M(&EF("AS=')N8VUP*")C;W5N="(L("IA<F=V+"`U*2`]/2`P*2!["BT)"0EC
M;W5N="`](&%T;VE?=U]U;FET<R at H<W1R8VAR*"IA<F=V+"`G/2<I*2`K(#$I
M.PHM"0D):68@*&-O=6YT(#P@,"D@>PHM"0D)"65R<F]R7VUS9R at B0F%D(&-O
M=6YT('9A;'5E("5S7&XB+"`J87)G=BD["BT)"0D)9V]T;R!U<V%G93L*+0D)
M"7T*+0D)?2!E;'-E(&EF("AS=')N8VUP*"IA<F=V+"`B8G,B+"`R*2`]/2`P
M*2!["BT)"0EB;&]C:U-I>F4@/2!A=&]I7W=?=6YI=',H*'-T<F-H<B at J87)G
M=BP@)STG*2D@*R`Q*3L*+0D)"6EF("AB;&]C:U-I>F4@/#T@,"D@>PHM"0D)
M"65R<F]R7VUS9R at B0F%D(&)L;V-K('-I>F4@=F%L=64@)7-<;B(L("IA<F=V
M*3L*+0D)"0EG;W1O('5S86=E.PHM"0D)?0HM"0E](&5L<V4@:68@*'-T<FYC
M;7`H*F%R9W8L(")S:VEP(BP at -"D@/3T@,"D@>PHM"0D)<VMI<$)L;V-K<R`]
M(&%T;VE?=U]U;FET<R at H<W1R8VAR*"IA<F=V+"`G/2<I*2`K(#$I.PHM"0D)
M:68@*'-K:7!";&]C:W,@/#T@,"D@>PHM"0D)"65R<F]R7VUS9R at B0F%D('-K
M:7`@=F%L=64@)7-<;B(L("IA<F=V*3L*+0D)"0EG;W1O('5S86=E.PHK"6EN
M="!I+"!I9F0L(&]F9"P@<WEN8R`]($9!3%-%+"!T<G5N8R`](%12544["BL)
M<VEZ95]T(&EN7V9U;&P@/2`P+"!I;E]P87)T(#T@,"P@;W5T7V9U;&P@/2`P
M+"!O=71?<&%R="`](#`["BL)<VEZ95]T(&)S(#T at -3$R+"!C;W5N="`]("TQ
M.PHK"7-S:7IE7W0@;CL**PEO9F9?="!S965K(#T@,"P@<VMI<"`](#`["BL)
M1DE,12`J<W1A='5S9G`["BL)8VAA<B`J:6YF:6QE(#T at 3E5,3"P@*F]U=&9I
M;&4@/2!.54Q,+"`J8G5F.PHK"BL)9F]R("AI(#T@,3L@:2`\(&%R9V,[(&DK
M*RD@>PHK"0EI9B`H<W1R;F-M<"@B8G,](BP at 87)G=EMI72P@,RD@/3T@,"D*
M*PD)"6)S(#T@<&%R<V5?;G5M8F5R*&%R9W9;:5TK,RP at 9&1?<W5F9FEX97,I
M.PHK"0EE;'-E(&EF("AS=')N8VUP*")C;W5N=#TB+"!A<F=V6VE=+"`V*2`]
M/2`P*0HK"0D)8V]U;G0@/2!P87)S95]N=6UB97(H87)G=EMI72LV+"!D9%]S
M=69F:7AE<RD["BL)"65L<V4@:68@*'-T<FYC;7`H(G-E96L](BP at 87)G=EMI
M72P at -2D@/3T@,"D**PD)"7-E96L@/2!P87)S95]N=6UB97(H87)G=EMI72LU
M+"!D9%]S=69F:7AE<RD["BL)"65L<V4@:68@*'-T<FYC;7`H(G-K:7`](BP@
M87)G=EMI72P at -2D@/3T@,"D**PD)"7-K:7`@/2!P87)S95]N=6UB97(H87)G
M=EMI72LU+"!D9%]S=69F:7AE<RD["BL)"65L<V4@:68@*'-T<FYC;7`H(FEF
M/2(L(&%R9W9;:5TL(#,I(#T](#`I"BL)"0EI;F9I;&4@/2!A<F=V6VE=*S,[
M"BL)"65L<V4@:68@*'-T<FYC;7`H(F]F/2(L(&%R9W9;:5TL(#,I(#T](#`I
M"BL)"0EO=71F:6QE(#T at 87)G=EMI72LS.PHK"0EE;'-E(&EF("AS=')N8VUP
M*")C;VYV/2(L(&%R9W9;:5TL(#4I(#T](#`I('L**PD)"6)U9B`](&%R9W9;
M:5TK-3L**PD)"7=H:6QE("@Q*2!["BL)"0D):68@*'-T<FYC;7`H(FYO=')U
M;F,B+"!B=68L(#<I(#T](#`I('L**PD)"0D)=')U;F,@/2!&04Q313L**PD)
M"0D)8G5F("L](#<["BL)"0D)?2!E;'-E(&EF("AS=')N8VUP*")S>6YC(BP@
M8G5F+"`T*2`]/2`P*2!["BL)"0D)"7-Y;F,@/2!44E5%.PHK"0D)"0EB=68@
M*ST at -#L**PD)"0E](&5L<V4@>PHK"0D)"0EE<G)O<E]M<V=?86YD7V1I92 at B
M:6YV86QI9"!C;VYV97)S:6]N(&`E<R<B+"!A<F=V6VE=*S4I.PHK"0D)"7T*
M*PD)"0EI9B`H8G5F6S!=(#T]("=<,"<I"BL)"0D)"6)R96%K.PHK"0D)"6EF
M("AB=69;,%T@/3T@)RPG*0HK"0D)"0EB=68K*SL*(`D)"7T**PD)?2!E;'-E
M"BL)"0EU<V%G92AD9%]U<V%G92D["BL)?0H@"BT)"7T at 96QS92!I9B`H<W1R
M;F-M<"@J87)G=BP@(G-E96LB+"`T*2`]/2`P*2!["BT)"0ES965K0FQO8VMS
M(#T at 871O:5]W7W5N:71S*"AS=')C:'(H*F%R9W8L("<])RDI("L@,2D["BT)
M"0EI9B`H<V5E:T)L;V-K<R`\/2`P*2!["BT)"0D)97)R;W)?;7-G*")"860@
M<V5E:R!V86QU92`E<UQN(BP@*F%R9W8I.PHM"0D)"6=O=&\@=7-A9V4["BT)
M"0E]"BT)"7T at 96QS92!I9B`H<W1R;F-M<"@J87)G=BP@(F-O;G8B+"`T*2`]
M/2`P*2!["BT)"0EK97EW;W)D(#T@*'-T<F-H<B at J87)G=BP@)STG*2`K(#$I
M.PHM("`@("`@("`@("`@("`@(`EI9B`H<W1R8VUP*&ME>7=O<F0L(")N;W1R
M=6YC(BD@/3T@,"D@"BT)"0D)=')U;F,]1D%,4T4["BT)"0EI9B`H<W1R8VUP
M*&ME>7=O<F0L(")S>6YC(BD@/3T@,"D@"BT)"0D)<WEN8SU44E5%.PHM"0E]
M(&5L<V4@>PHM"0D)9V]T;R!U<V%G93L*+0D)?0HM"0EA<F=C+2T["BT)"6%R
M9W8K*SL**PEB=68@/2!X;6%L;&]C*&)S*3L**PHK"6EF("AI;F9I;&4@(3T@
M3E5,3"D@>PHK"0EI9B`H*&EF9"`](&]P96XH:6YF:6QE+"!/7U)$3TY,62DI
M(#P@,"D**PD)"7!E<G)O<E]M<V=?86YD7V1I92 at B)7,B+"!I;F9I;&4I.PHK
M"7T at 96QS92!["BL)"6EF9"`](%-41$E.7T9)3$5.3SL**PD):6YF:6QE(#T@
M(G-T86YD87)D(&EN<'5T(CL*(`E]"B`*+0EI9B`H:6Y&:6QE(#T]($Y53$PI
M"BT)"6EN1F0@/2!F:6QE;F\H<W1D:6XI.PHM"65L<V4*+0D):6Y&9"`](&]P
M96XH:6Y&:6QE+"`P*3L*+0HM"6EF("AI;D9D(#P@,"D@>PHM"0DO*B!.;W1E
M('1H870@=V4 at 87)E(&YO="!F<F5E:6YG(&)U9B!O<B!C;&]S:6YG"BT)"2`J
M(&9I;&5S(&AE<F4@=&\@<V%V92!A(&9E=R!B>71E<RX at 5&AI<R!E>&ET<PHM
M"0D@*B!H97)E(&%N>7=A>7,N+BX@*B\*+0HM"0DO*B!F<F5E*&)U9BD[("HO
M"BT)"7!E<G)O<E]M<V=?86YD7V1I92 at B)7,B+"!I;D9I;&4I.PHM"7T*+0HM
M"6EF("AO=71&:6QE(#T]($Y53$PI"BT)"6]U=$9D(#T at 9FEL96YO*'-T9&]U
M="D["BT)96QS90HM"0EO=71&9"`](&]P96XH;W5T1FEL92P at 3U]74D].3%D@
M?"!/7T-214%4+"`P-C8V*3L*+0HM"6EF("AO=71&9"`\(#`I('L*+0D)+RH@
M3F]T92!T:&%T('=E(&%R92!N;W0 at 9G)E96EN9R!B=68@;W(@8VQO<VEN9PHM
M"0D@*B!F:6QE<R!H97)E('1O('-A=F4 at 82!F97<@8GET97,N(%1H:7, at 97AI
M=',*+0D)("H@:&5R92!A;GEW87ES+BXN("HO"BT*+0D)+RH at 8VQO<V4H:6Y&
M9"D["BT)"2`@(&9R964H8G5F*3L@*B\*+0D)<&5R<F]R7VUS9U]A;F1?9&EE
M*"(E<R(L(&]U=$9I;&4I.PHM"7T*+0HM"6QS965K*&EN1F0L("AO9F9?="D@
M*'-K:7!";&]C:W,@*B!B;&]C:U-I>F4I+"!3145+7U-%5"D["BT);'-E96LH
M;W5T1F0L("AO9F9?="D@*'-E96M";&]C:W,@*B!B;&]C:U-I>F4I+"!3145+
M7U-%5"D["BT)=&]T86Q3:7IE/6-O=6YT*F)L;V-K4VEZ93L*+0HM"6EB<SUB
M;&]C:U-I>F4["BT):68@*&EB<R`^($)51E-)6BD*+0D):6)S/4)51E-)6CL*
M+0D)"0HM"7=H:6QE("AT;W1A;%-I>F4@/B!O=714;W1A;"D@>PHM"0EI;D-C
M(#T at 9G5L;%]R96%D*&EN1F0L(&)U9BP@:6)S*3L*+0D):6Y4;W1A;"`K/2!I
M;D-C.PHM"0EI9B`H("AS>6YC/3U44E5%*2`F)B`H:6Y#8SXP*2`I"BT)"0EW
M:&EL92`H:6Y#8SQI8G,I"BT)"0D)8G5F6VEN0V,K*UT])UPP)SL*+0HM"0EI
M9B`H*&]U=$-C(#T at 9G5L;%]W<FET92AO=71&9"P at 8G5F+"!I;D-C*2D@/"`Q
M*7L*+0D)"6EF("AO=71#8R`\(#`@*7L*+0D)"0EP97)R;W(H(D5R<F]R(&1U
M<FEN9R!W<FET92(I.PHM"0D)?0HK"6EF("AO=71F:6QE("$]($Y53$PI('L*
M*PD):68@*"AO9F0@/2!O<&5N*&]U=&9I;&4L($]?5U)/3DQ9('P at 3U]#4D5!
M5"P@,#8V-BDI(#P@,"D**PD)"7!E<G)O<E]M<V=?86YD7V1I92 at B)7,B+"!O
M=71F:6QE*3L**PD)<W1A='5S9G`@/2!S=&1O=70["BL)?2!E;'-E('L**PD)
M;V9D(#T at 4U1$3U547T9)3$5.3SL**PD);W5T9FEL92`](")S=&%N9&%R9"!O
M=71P=70B.PHK"0ES=&%T=7-F<"`]('-T9&5R<CL**PE]"BL**PEI9B`H<VMI
M<"D@>PHK"0EI9B`H;'-E96LH:69D+"!S:VEP("H at 8G,L(%-%14M?0U52*2`\
M(#`I"BL)"0EP97)R;W)?;7-G7V%N9%]D:64H(B5S(BP@:6YF:6QE*3L**PE]
M"BL**PEI9B`H<V5E:RD@>PHK"0EI9B`H;'-E96LH;V9D+"!S965K("H at 8G,L
M(%-%14M?0U52*2`\(#`I"BL)"0EP97)R;W)?;7-G7V%N9%]D:64H(B5S(BP@
M;W5T9FEL92D["BL)?0HK"BL):68@*'1R=6YC*2!["BL)"6EF("AF=')U;F-A
M=&4H;V9D+"!S965K("H at 8G,I(#P@,"D**PD)"7!E<G)O<E]M<V=?86YD7V1I
M92 at B)7,B+"!O=71F:6QE*3L**PE]"BL**PEW:&EL92`H:6Y?9G5L;"`K(&EN
M7W!A<G0@(3T at 8V]U;G0I('L**PD);B`]('-A9F5?<F5A9"AI9F0L(&)U9BP@
M8G,I.PHK"0EI9B`H;B`\(#`I"BL)"0EP97)R;W)?;7-G7V%N9%]D:64H(B5S
M(BP@:6YF:6QE*3L**PD):68@*&X@/3T@,"D*(`D)"6)R96%K.PHK"0EI9B`H
M;B`]/2!B<RD**PD)"6EN7V9U;&PK*SL**PD)96QS90HK"0D):6Y?<&%R="LK
M.PHK"0EI9B`H<WEN8RD@>PHK"0D);65M<V5T*&)U9B`K(&XL("=<,"<L(&)S
M("T@;BD["BL)"0EN(#T at 8G,["B`)"7T*+0D);W5T5&]T86P@*ST@;W5T0V,[
M"BT@("`@("`@('T*+0EI9B`H=')U;F,@/3T at 5%)512D@>PHM"0EF=')U;F-A
M=&4H;W5T1F0L(&QS965K*&]U=$9D+"`P+"!3145+7T-54BDI.PHM"7T*+0DO
M*B!.;W1E('1H870@=V4 at 87)E(&YO="!F<F5E:6YG(&UE;6]R>2!O<B!C;&]S
M:6YG"BT)("H at 9FEL97,@:&5R92P@=&\@<V%V92!A(&9E=R!B>71E<RX@*B\*
M+2-I9F1E9B!"0E]&14%455)%7T-,14%.7U50"BT)8VQO<V4H:6Y&9"D["BT)
M8VQO<V4H;W5T1F0I.PHM(V5N9&EF"BT*+0EP<FEN=&8H(B5L9"LE9"!R96-O
M<F1S(&EN7&XB+"`H;&]N9RD@*&EN5&]T86P at +R!B;&]C:U-I>F4I+`HM"0D@
M("`H:6Y4;W1A;"`E(&)L;V-K4VEZ92D@(3T@,"D["BT)<')I;G1F*"(E;&0K
M)60@<F5C;W)D<R!O=71<;B(L("AL;VYG*2`H;W5T5&]T86P at +R!B;&]C:U-I
M>F4I+`HM"0D@("`H;W5T5&]T86P@)2!B;&]C:U-I>F4I("$](#`I.PHM"7)E
M='5R;B!%6$E47U-50T-%4U,["BT@('5S86=E. at HK"0EN(#T at 9G5L;%]W<FET
M92AO9F0L(&)U9BP@;BD["BL)"6EF("AN(#P@,"D**PD)"7!E<G)O<E]M<V=?
M86YD7V1I92 at B)7,B+"!O=71F:6QE*3L**PD):68@*&X@/3T at 8G,I"BL)"0EO
M=71?9G5L;"LK.PHK"0EE;'-E"BL)"0EO=71?<&%R="LK.PHK"7T*(`HM"75S
M86=E*&1D7W5S86=E*3L**PEF<')I;G1F*'-T871U<V9P+"`B)60K)60@<F5C
M;W)D<R!I;EQN(BP@:6Y?9G5L;"P@:6Y?<&%R="D["BL)9G!R:6YT9BAS=&%T
M=7-F<"P@(B5D*R5D(')E8V]R9',@;W5T7&XB+"!O=71?9G5L;"P@;W5T7W!A
M<G0I.PHK"BL)<F5T=7)N($58251?4U5#0T534SL*('T*26YD97 at Z('1A:6PN
M8PH]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F:6QE.B`O=F%R+V-V<R]B
M=7-Y8F]X+W1A:6PN8RQV"G)E=')I979I;F<@<F5V:7-I;VX@,2XR-PID:69F
M("UU("UR,2XR-R!T86EL+F,*+2TM('1A:6PN8PDR,#`P+S$R+S`W(#$Y.C4V
M.C0X"3$N,C<**RLK('1A:6PN8PDR,#`P+S$R+S$W(#$Y.C0Y.C(R"D!`("TV
M,2PV("LV,2PQ,R!`0`H@"B!S=&%T:6,@;V9F7W0@=6YI=',],#L*(`HK<W1A
M=&EC('-T<G5C="!S=69F:7A?;75L="!T86EL7W-U9F9I>&5S6UT@/2!["BL)
M>R`B8B(L(#4Q,B!]+`HK"7L@(FLB+"`Q,#(T('TL"BL)>R`B;2(L(#$P-#@U
M-S8@?2P**PE[($Y53$PL(#`@?0HK?3L**PH@<W1A=&EC(&EN="!T86EL7W-T
M<F5A;2AI;G0 at 9F0I"B!["B`)<W-I>F5?="!S=&%R='!O:6YT.PI`0"`M,3<P
M+#,R("LQ-S<L-B!`0`H@"B`)"7-W:71C:"`H;W!T*2!["B`C:69N9&5F($)"
M7T9%05154D5?4TE-4$Q%7U1!24P*+0D)8V%S92`G8R<Z"BT)"0EU;FET7W1Y
M<&4@/2!"651%4SL*+0D)"71E<W0@/2!A=&]I*&]P=&%R9RD["BT)"0EI9BAT
M97-T/3TP*0HM"0D)"75S86=E*'1A:6Q?=7-A9V4I.PHM"0D):68H;W!T87)G
M6W-T<FQE;BAO<'1A<F<I+3%=/B<Y)RD@>PHM"0D)"7-W:71C:"`H;W!T87)G
M6W-T<FQE;BAO<'1A<F<I+3%=*2!["BT)"0D)8V%S92`G8B<Z"BT)"0D)"71E
M<W0@*CT at -3$R.PHM"0D)"0EB<F5A:SL*+0D)"0EC87-E("=K)SH*+0D)"0D)
M=&5S="`J/2`Q,#(T.PHM"0D)"0EB<F5A:SL*+0D)"0EC87-E("=M)SH*+0D)
M"0D)=&5S="`J/2`H,3`R-"`J(#$P,C0I.PHM"0D)"0EB<F5A:SL*+0D)"0ED
M969A=6QT. at HM"0D)"0EF<')I;G1F*'-T9&5R<BPB4VEZ92!M=7-T(&)E(&(L
M:RP@;W(@;2XB*3L*+0D)"0D)=7-A9V4H=&%I;%]U<V%G92D["BT)"0D)?0HM
M"0D)?0HM"0D):68H;W!T87)G6S!=/3TG*R<I"BT)"0D)=6YI=',]=&5S="LQ
M.PHM"0D)96QS90HM"0D)"75N:71S/2TH=&5S="LQ*3L*+0D)"6)R96%K.PH@
M"0EC87-E("=Q)SH*(`D)"7-H;W=?:&5A9&5R<R`](#`["B`)"0EB<F5A:SL*
M0$`@+3(P-RPQ-2`K,3 at X+#$R($!`"B`)"6-A<V4@)W8G. at H@"0D)=F5R8F]S
M92`](#$["B`)"0EB<F5A:SL**PD)8V%S92`G8R<Z"BL)"0EU;FET7W1Y<&4@
M/2!"651%4SL**PD)"2\J($9!3$Q3(%1(4D]51T@@*B\*("-E;F1I9 at HM"0EC
M87-E("=F)SH*+0D)"69O;&QO=R`](#$["BT)"0EB<F5A:SL*+0D)8V%S92`G
M:"<Z"BT)"0EU<V%G92AT86EL7W5S86=E*3L*+0D)"6)R96%K.PH@"0EC87-E
M("=N)SH*+0D)"71E<W0@/2!A=&]I*&]P=&%R9RD["BL)"0ET97-T(#T@<&%R
M<V5?;G5M8F5R*&]P=&%R9RP@=&%I;%]S=69F:7AE<RD["B`)"0EI9B`H=&5S
M="D@>PH@"0D)"6EF("AO<'1A<F=;,%T@/3T@)RLG*0H@"0D)"0EU;FET<R`]
M('1E<W0["D!`("TR,C0L."`K,C`R+#$P($!`"B`)"0E](&5L<V4*(`D)"0EU
M<V%G92AT86EL7W5S86=E*3L*(`D)"6)R96%K.PHK"0EC87-E("=F)SH**PD)
M"69O;&QO=R`](#$["BL)"0EB<F5A:SL*(`D)9&5F875L=#H*+0D)"65R<F]R
M7VUS9R at B7&Y5;FMN;W=N(&%R9SH@)6,N7&Y<;B(L;W!T;W!T*3L*(`D)"75S
M86=E*'1A:6Q?=7-A9V4I.PH@"0E]"B`)?0I);F1E>#H@=71I;&ET>2YC"CT]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I;&4Z("]V87(O8W9S+V)U<WEB
M;W at O=71I;&ET>2YC+'8*<F5T<FEE=FEN9R!R979I<VEO;B`Q+C$W-0ID:69F
M("UU("UR,2XQ-S4@=71I;&ET>2YC"BTM+2!U=&EL:71Y+F,),C`P,"\Q,B\Q
M-2`R,CHS-#HS-`DQ+C$W-0HK*RL@=71I;&ET>2YC"3(P,#`O,3(O,3<@,3DZ
M-#DZ-#<*0$`@+34S-BPW("LU,S8L-R!`0`H@?0H@(V5N9&EF("\J($)"7U1!
M4B!\?"!"0E]!4B`J+PH@"BTC:68 at 9&5F:6YE9"!"0E]!4B!\?"!D969I;F5D
M($)"7T-07TU6('Q\(&1E9FEN960 at 0D)?1$0@?'P at 9&5F:6YE9"!"0E].0R!\
M?"!D969I;F5D($)"7U1!4 at HK(VEF(&1E9FEN960 at 0D)?5$%2('Q\(&1E9FEN
M960 at 0D)?0U!?358@?'P at 9&5F:6YE9"!"0E]!4B!\?"!D969I;F5D($)"7T1$
M"B`O*@H@("H at 5W)I=&4 at 86QL(&]F('1H92!S=7!P;&EE9"!B=69F97(@;W5T
M('1O(&$@9FEL92X*("`J(%1H:7, at 9&]E<R!M=6QT:7!L92!W<FET97, at 87,@
M;F5C97-S87)Y+ at I`0"`M-38U+#<@*S4V-2PW($!`"B`C96YD:68 at +RH@0D)?
M5$%2('Q\($)"7T-07TU6('Q\($)"7T%2("HO"B`*(`HM(VEF(&1E9FEN960@
M0D)?5$%2('Q\(&1E9FEN960 at 0D)?5$%)3"!\?"!D969I;F5D($)"7T%2('Q\
M(&1E9FEN960 at 0D)?4T@@?'P at 9&5F:6YE9"!"0E]#4%]-5B!\?"!D969I;F5D
M($)"7T1$"BLC:68 at 9&5F:6YE9"!"0E]!4B!\?"!D969I;F5D($)"7T-07TU6
M('Q\(&1E9FEN960 at 0D)?4T@@?'P at 9&5F:6YE9"!"0E]404E,('Q\(&1E9FEN
M960 at 0D)?5$%2"B`O*@H@("H at 4F5A9"!A;&P@;V8@=&AE('-U<'!L:65D(&)U
M9F9E<B!F<F]M(&$@9FEL92X*("`J(%1H:7, at 9&]E<R!M=6QT:7!L92!R96%D
M<R!A<R!N96-E<W-A<GDN"D!`("TQ,C$U+#4X("LQ,C$U+#8 at 0$`*('T*("-E
M;F1I9 at D)"0D)"0DO*B!"0E]$1B!\?"!"0E]-5$%"("HO"B`*+0HM"BTC:68@
M9&5F:6YE9"!"0E]$1"!\?"!D969I;F5D($)"7U1!24P*+2\J"BT@*B!296%D
M(&$@;G5M8F5R('=I=&@@82!P;W-S:6)L92!M=6QT:7!L:65R+ at HM("H at 4F5T
M=7)N<R`M,2!I9B!T:&4@;G5M8F5R(&9O<FUA="!I<R!I;&QE9V%L+ at HM("HO
M"BUE>'1E<FX@;&]N9R!A=&]I7W=?=6YI=',H8V]N<W0 at 8VAA<B`J8W`I"BU[
M"BT);&]N9R!V86QU93L*+0HM"6EF("@A:7-?9&5C:6UA;"@J8W`I*0HM"0ER
M971U<FX at +3$["BT*+0EV86QU92`](#`["BT*+0EW:&EL92`H:7-?9&5C:6UA
M;"@J8W`I*0HM"0EV86QU92`]('9A;'5E("H@,3`@*R`J8W`K*R`M("<P)SL*
M+0HM"7-W:71C:"`H*F-P*RLI('L*+0EC87-E("=-)SH*+0EC87-E("=M)SH)
M"0D)"2\J(&!T86EL)R!U<V5S(&ET('1R861I=&EO;F%L;'D@*B\*+0D)=F%L
M=64@*CT@,3`T.#4W-CL*+0D)8G)E86L["BT*+0EC87-E("=K)SH*+0D)=F%L
M=64@*CT@,3`R-#L*+0D)8G)E86L["BT*+0EC87-E("=B)SH*+0D)=F%L=64@
M*CT at -3$R.PHM"0EB<F5A:SL*+0HM"6-A<V4@)W<G. at HM"0EV86QU92`J/2`R
M.PHM"0EB<F5A:SL*+0HM"6-A<V4@)UPP)SH*+0D)<F5T=7)N('9A;'5E.PHM
M"BT)9&5F875L=#H*+0D)<F5T=7)N("TQ.PHM"7T*+0HM"6EF("@J8W`I"BT)
M"7)E='5R;B`M,3L*+0HM"7)E='5R;B!V86QU93L*+7T*+2-E;F1I9 at D)"0D)
M"0DO*B!"0E]$1"!\?"!"0E]404E,("HO"BT*+0H@(VEF(&1E9FEN960 at 0D)?
M24Y)5"!\?"!D969I;F5D($)"7U-94TQ/1T0@"B`O*B!T<GD@=&\@;W!E;B!U
M<"!T:&4@<W!E8VEF:65D(&1E=FEC92`J+PH at 97AT97)N(&EN="!D979I8V5?
M;W!E;BAC:&%R("ID979I8V4L(&EN="!M;V1E*0I`0"`M,3<Y,"PX("LQ-S,X
M+#,U($!`"B`*(`ER971U<FX@<W1R8VUP*&%P<&QE=#$M/FYA;64L(&%P<&QE
M=#(M/FYA;64I.PH@?0HK"BLC:68 at 9&5F:6YE9"!"0E]$1"!\?"!D969I;F5D
M($)"7U1!24P**W5N<VEG;F5D(&QO;F<@<&%R<V5?;G5M8F5R*&-O;G-T(&-H
M87(@*FYU;7-T<BP@<W1R=6-T('-U9F9I>%]M=6QT("IS=69F:7AE<RD**WL*
M*PES=')U8W0@<W5F9FEX7VUU;'0@*G-M.PHK"75N<VEG;F5D(&QO;F<@:6YT
M(')E=#L**PEI;G0@;&5N.PHK"6-H87(@*F5N9#L**PD**PER970@/2!S=')T
M;W5L*&YU;7-T<BP@)F5N9"P@,3`I.PHK"6EF("AN=6US='(@/3T at 96YD*0HK
M"0EE<G)O<E]M<V=?86YD7V1I92 at B:6YV86QI9"!N=6UB97(@8"5S)UQN(BP@
M;G5M<W1R*3L**PEW:&EL92`H96YD6S!=("$]("=<,"<I('L**PD)9F]R("AS
M;2`]('-U9F9I>&5S.R!S;2T^<W5F9FEX("$]($Y53$P[('-M*RLI('L**PD)
M"6QE;B`]('-T<FQE;BAS;2T^<W5F9FEX*3L**PD)"6EF("AS=')N8VUP*'-M
M+3YS=69F:7 at L(&5N9"P@;&5N*2`]/2`P*2!["BL)"0D)<F5T("H]('-M+3YM
M=6QT.PHK"0D)"65N9"`K/2!L96X["BL)"0D)8G)E86L["BL)"0E]"BL)"7T*
M*PD):68@*'-M+3YS=69F:7@@/3T at 3E5,3"D**PD)"65R<F]R7VUS9U]A;F1?
M9&EE*")I;G9A;&ED(&YU;6)E<B!@)7,G7&XB+"!N=6US='(I.PHK"7T**PER
M971U<FX@<F5T.PHK?0HK(V5N9&EF"B`*+2-I9B!D969I;F5D($)"7TY#"BLC
M:68 at 9&5F:6YE9"!"0E]$1"!\?"!D969I;F5D($)"7TY#"B!S<VEZ95]T('-A
M9F5?<F5A9"AI;G0 at 9F0L('9O:60@*F)U9BP@<VEZ95]T(&-O=6YT*0H@>PH@
,"7-S:7IE7W0@;CL*
`
end
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
Url : http://lists.busybox.net/pipermail/busybox/attachments/20001217/73a1745d/attachment.pgp
More information about the busybox
mailing list