Commit Diff


commit - 77a0a5b5194d4441c86de097f2aae297cb75e2c2
commit + fa325e9b42b0bdfb48857d1958d9fb7ceac55151
blob - 9cae9582985a9610dd9fdbaa8ecb05be5d46a90b
blob + c7d72848441a5c38887e384d79783b756f193c14
--- src/cmd/9660/boot.c
+++ src/cmd/9660/boot.c
@@ -42,7 +42,7 @@ g% cdsector 3149 | xd -b	# 0x0c4d
                                                     55 aa - magic
 
 0000020  88    - 88 = bootable
-            03   - 3 = 2.88MB diskette 
+            03   - 3 = 2.88MB diskette
                00 00 - load segment 0 means default 0x7C0
                      00  - system type (byte 5 of boot image)
                         00 - unused (0)
@@ -58,13 +58,13 @@ g% cdsector `{h2d 0c4e} | xd -b
 1+0 records out
 0000000  eb 3c 00 00 00 00 00 00 00 00 00 00 02 00 00 00
 0000010  00 00 00 00 00 00 00 00 12 00 02 00 00 00 00 00
-0000020  00 00 00 00 00 16 1f 66 6a 00 51 50 06 53 
+0000020  00 00 00 00 00 16 1f 66 6a 00 51 50 06 53
                                           31 c0
 
 FREEBSD
 0000000  eb 3c 00 00 00 00 00 00 00 00 00 00 02 00 00 00
 0000010  00 00 00 00 00 00 00 00 12 00 02 00 00 00 00 00
-0000020  00 00 00 00 00 16 1f 66 6a 00 51 50 06 53 
+0000020  00 00 00 00 00 16 1f 66 6a 00 51 50 06 53
                                           31 c0
 
 DOS 5
@@ -171,7 +171,7 @@ Cupdatebootcat(Cdimg *cd)
 	Cputc(cd, 0);	/* unused */
 	Cputnl(cd, 1, 2);	/* 512-byte sector count for load */
 	Cputnl(cd, cd->bootdirec->block, 4);	/* ptr to disk image */
-	Cwseek(cd, o);	
+	Cwseek(cd, o);
 }
 
 void
blob - 757bfcd930cc65189251c9f3562597f243f96b0b
blob + 786b798f21994b13de14be4d7a7aaa3ea38406d3
--- src/cmd/9660/cdrdwr.c
+++ src/cmd/9660/cdrdwr.c
@@ -125,7 +125,7 @@ opencd(char *file, Cdinfo info)
 	}
 
 	/* lowercase because of isostring */
-	if(strstr(cd->iso.systemid, "iso9660") == nil 
+	if(strstr(cd->iso.systemid, "iso9660") == nil
 	&& strstr(cd->iso.systemid, "utf8") == nil) {
 		werrstr("unknown systemid %s", cd->iso.systemid);
 		free(cd);
@@ -133,7 +133,7 @@ opencd(char *file, Cdinfo info)
 		close(xfd);
 		return nil;
 	}
-	
+
 	if(strstr(cd->iso.systemid, "plan 9"))
 		cd->flags |= CDplan9;
 	if(strstr(cd->iso.systemid, "iso9660"))
@@ -307,7 +307,7 @@ parsedesc(Voldesc *v, Cvoldesc *cv, char *(*string)(uc
 	v->biblio = string(cv->biblio, sizeof cv->biblio);
 	v->notice = string(cv->notice, sizeof cv->notice);
 }
-	
+
 static int
 readisodesc(Cdimg *cd, Voldesc *v)
 {
@@ -629,4 +629,3 @@ Clinelen(Cdimg *cd)
 {
 	return Blinelen(&cd->brd);
 }
-
blob - 8185f680611259cea5531245bb7f16dfb9e5e21e
blob + e67f0cb766e86396a43d044f4d64d9ef9398e06e
--- src/cmd/9660/direc.c
+++ src/cmd/9660/direc.c
@@ -86,9 +86,9 @@ walkdirec(Direc *d, char *name)
  * Add the file ``name'' with attributes d to the
  * directory ``root''.  Name may contain multiple
  * elements; all but the last must exist already.
- * 
+ *
  * The child lists are kept sorted by utfname.
- */	
+ */
 Direc*
 adddirec(Direc *root, char *name, XDir *d)
 {
@@ -130,7 +130,7 @@ adddirec(Direc *root, char *name, XDir *d)
 	return nd;
 }
 
-/* 
+/*
  * Copy the tree src into dst.
  */
 void
@@ -219,4 +219,3 @@ dsort(Direc *d, int (*cmp)(const void*, const void*))
 	for(i=0; i<n; i++)
 		dsort(&d->child[i], cmp);
 }
-
blob - d3504ff946585bf8d1bc893856fcc60d8afc00c1
blob + ad762f2175f6dcbff6568956fa634866de15238d
--- src/cmd/9660/dump.c
+++ src/cmd/9660/dump.c
@@ -348,7 +348,7 @@ adddumpdir(Direc *root, ulong now, XDir *dir)
 	Tm tm;
 
 	tm = *localtime(now);
-	
+
 	sprint(buf, "%d", tm.year+1900);
 	if((dyear = walkdirec(root, buf)) == nil) {
 		dyear = adddirec(root, buf, dir);
@@ -406,7 +406,7 @@ hasdump(Cdimg *cd)
 	}
 	return 0;
 }
-	
+
 Direc
 readdumpdirs(Cdimg *cd, XDir *dir, char *(*cvt)(uchar*, int))
 {
@@ -500,7 +500,7 @@ readdumpconform(Cdimg *cd)
 			if(tokenize(p, f, 2) != 2 || (f[0][0] != 'D' && f[0][0] != 'F')
 			|| strlen(f[0]) != 7 || !isalldigit(f[0]+1))
 				break;
-	
+
 			addtx(atom(f[1]), atom(f[0]));
 		}
 	}
blob - 4e66bd78a91d2166848dcc0a6926cb0365f7ff03
blob + 59ee31c0e52af37e39ae792b881e9b90829f1aa3
--- src/cmd/9660/dump9660.c
+++ src/cmd/9660/dump9660.c
@@ -168,7 +168,7 @@ main(int argc, char **argv)
 			Cwseek(cd, cd->nextblock*Blocksize);
 			goto Dofix;
 		}
-	
+
 		dumpname = adddumpdir(&idumproot, now, &dir);
 		/* note that we assume all names are conforming and thus sorted */
 		if(cd->flags & CDjoliet) {
@@ -192,7 +192,7 @@ main(int argc, char **argv)
 		findbootimage(cd, &iroot);
 		Cupdatebootcat(cd);
 	}
-		
+
 	/* create Joliet tree */
 	if(cd->flags & CDjoliet)
 		copydirec(&jroot, &iroot);
@@ -235,14 +235,14 @@ main(int argc, char **argv)
 		 * Write incremental _conform.map block.
 		 */
 		wrconform(cd, cd->nconform, &cblock, &clength);
-	
+
 		/* jump here if we're just fixing up the cd */
 Dofix:
 		/*
-		 * Write null dump header block; everything after this will be 
+		 * Write null dump header block; everything after this will be
 		 * overwritten at the next dump.  Because of this, it needs to be
 		 * reconstructable.  We reconstruct the _conform.map and dump trees
-		 * from the header blocks in dump.c, and we reconstruct the path 
+		 * from the header blocks in dump.c, and we reconstruct the path
 		 * tables by walking the cd.
 		 */
 		newnull = Cputdumpblock(cd);
@@ -254,12 +254,12 @@ Dofix:
 	dir.mode = 0444;
 	if(cd->flags & (CDconform|CDjoliet)) {
 		if(!mk9660 && cd->nconform == 0){
-			block = cblock;	
+			block = cblock;
 			length = clength;
 		}else
 			wrconform(cd, 0, &block, &length);
 
-		if(mk9660) 
+		if(mk9660)
 {
 			idumproot = iroot;
 			jdumproot = jroot;
@@ -315,11 +315,11 @@ Dofix:
 				copybutname(r, &jroot);
 			}
 		}
-	
+
 		writedumpdirs(cd, &idumproot, Cputisodir);
 		if(cd->flags & CDjoliet)
 			writedumpdirs(cd, &jdumproot, Cputjolietdir);
-	
+
 		/*
 		 * Patch in new root directory entry.
 		 */
@@ -330,7 +330,7 @@ Dofix:
 			setvolsize(cd, cd->jolietsvd, cd->nextblock*Blocksize);
 		}
 	}
-	writepathtables(cd);	
+	writepathtables(cd);
 
 	if(!mk9660){
 		/*
@@ -341,16 +341,16 @@ Dofix:
 		if(cd->nulldump && maxsize && Cwoffset(cd) > maxsize){
 			fprint(2, "too big; writing old tree back\n");
 			status = "cd too big; aborted";
-	
+
 			rmdumpdir(&idumproot, dumpname);
 			rmdumpdir(&jdumproot, dumpname);
-	
+
 			cd->nextblock = cd->nulldump+1;
 			cd->nulldump = 0;
 			Cwseek(cd, cd->nextblock*Blocksize);
 			goto Dofix;
 		}
-	
+
 		/*
 		 * Write old null header block; this commits all our changes.
 		 */
@@ -399,4 +399,3 @@ addprotofile(char *new, char *old, Dir *d, void *a)
 		free(name);
 
 }
-
blob - 3b2b5367faa608b691c1937cbec7fd02507291aa
blob + ef2944ce687473dbe2e363ecb2ab44d08ef552e3
--- src/cmd/9660/ichar.c
+++ src/cmd/9660/ichar.c
@@ -31,7 +31,7 @@ isostring(uchar *buf, int len)
 	return q;
 }
 
-int 
+int
 isisofrog(char c)
 {
 	if(c >= '0' && c <= '9')
@@ -85,7 +85,7 @@ isbadiso9660(char *s)
 
 /*
  * ISO9660 name comparison
- * 
+ *
  * The standard algorithm is as follows:
  *   Take the filenames without extensions, pad the shorter with 0x20s (spaces),
  *   and do strcmp.  If they are equal, go on.
@@ -169,7 +169,7 @@ Cputisopvd(Cdimg *cd, Cdinfo info)
 		strcat(buf, "iso9660");
 	else
 		strcat(buf, "utf8");
-	
+
 	struprcpy(buf, buf);
 	Cputs(cd, buf, 32);
 
blob - b5131a27c1cb2e566b7ebcce97f705c17cc27639
blob + c08b2caa7052e9d456536d08c69fa93507eeed39
--- src/cmd/9660/iso9660.h
+++ src/cmd/9660/iso9660.h
@@ -89,7 +89,7 @@ struct Voldesc {
 	ulong mpathloc;
 
 	/* root of file tree */
-	Direc root;	
+	Direc root;
 };
 
 /*
@@ -116,7 +116,7 @@ struct Cdimg {
 	ulong bootimageptr;
 	Direc *bootdirec;
 	char *bootimage;
-	
+
 	Biobuf brd;
 	Biobuf bwr;
 
@@ -406,7 +406,7 @@ int Cputisodir(Cdimg*, Direc*, int, int, int);
 int Cputjolietdir(Cdimg*, Direc*, int, int, int);
 void Cputendvd(Cdimg*);
 
-enum { 
+enum {
 	Blocksize = 2048,
 	Ndirblock = 16,		/* directory blocks allocated at once */
 
blob - ccd3b6db72f93b08ce6412bc5e834ceacf4786b5
blob + fbabf26d2575153ff464b77259694c684e6b3074
--- src/cmd/9660/jchar.c
+++ src/cmd/9660/jchar.c
@@ -26,15 +26,15 @@ jolietstring(uchar *buf, int len)
 }
 
 /*
- * Joliet name validity check 
- * 
+ * Joliet name validity check
+ *
  * Joliet names have length at most 128 bytes (64 runes),
  * and cannot contain '*', '/', ':', ';', '?', or '\'.
  */
 int
 isjolietfrog(Rune r)
 {
-	return r=='*' || r=='/' || r==':' 
+	return r=='*' || r=='/' || r==':'
 		|| r==';' || r=='?' || r=='\\';
 }
 
@@ -58,7 +58,7 @@ isbadjoliet(char *s)
  * The standard algorithm is the ISO9660 algorithm but
  * on the encoded Runes.  Runes are encoded in big endian
  * format, so we can just use runecmp.
- * 
+ *
  * Padding is with zeros, but that still doesn't affect us.
  */
 
@@ -135,4 +135,3 @@ Cputjolietsvd(Cdimg *cd, Cdinfo info)
 	Cputc(cd, 1);				/* file structure version */
 	Cpadblock(cd);
 }
-
blob - f2757dba93f6ec5f6f325d0491b8cb64ce546434
blob + effc44b189296e327c7664541ac18fc92e03b7fa
--- src/cmd/9660/path.c
+++ src/cmd/9660/path.c
@@ -9,7 +9,7 @@
  * Add the requisite path tables to the CD image.
  * They get put on the end once everything else is done.
  * We use the path table itself as a queue in the breadth-first
- * traversal of the tree.  
+ * traversal of the tree.
  *
  * The only problem with this is that the path table does not
  * store the lengths of the directories.  So we keep an explicit
blob - 3a436f4a320ad05a22b0a584832ab7d95f79d4f5
blob + 8b03f28232c96e989fcd42e3f9b4553ba95f3e93
--- src/cmd/9660/rune.c
+++ src/cmd/9660/rune.c
@@ -36,4 +36,3 @@ runecmp(Rune *s, Rune *t)
 		s++, t++;
 	return *s - *t;
 }
-
blob - 78716524380f573a5f74436130ab7948f33d30ec
blob + 3039b3607fcf2bc99d3399a764d6923fecf4d2d7
--- src/cmd/9660/sysuse.c
+++ src/cmd/9660/sysuse.c
@@ -43,11 +43,11 @@ setcelen(Cdimg *cd, ulong woffset, ulong len)
  * Rock Ridge data is put into little blockettes, which can be
  * at most 256 bytes including a one-byte length.  Some number
  * of blockettes get packed together into a normal 2048-byte block.
- * Blockettes cannot cross block boundaries. 
+ * Blockettes cannot cross block boundaries.
  *
- * A Cbuf is a blockette buffer.  Len contains 
+ * A Cbuf is a blockette buffer.  Len contains
  * the length of the buffer written so far, and we can
- * write up to 254-28.  
+ * write up to 254-28.
  *
  * We only have one active Cbuf at a time; cdimg.rrcontin is the byte
  * offset of the beginning of that Cbuf.
@@ -94,7 +94,7 @@ ensurespace(Cdimg *cd, int n, Cbuf *co, Cbuf *cn, int 
 
 	/*
 	 * the current blockette is full; update cd->rrcontin and then
- 	 * write a CE record to finish it.  Unfortunately we need to 
+ 	 * write a CE record to finish it.  Unfortunately we need to
 	 * figure out which block will be next before we write the CE.
 	 */
 	end = Cwoffset(cd)+28;
@@ -134,13 +134,13 @@ ensurespace(Cdimg *cd, int n, Cbuf *co, Cbuf *cn, int 
 
 	return cn;
 }
-	
+
 /*
  * Put down the name, but we might need to break it
  * into chunks so that each chunk fits in 254-28-5 bytes.
  * What a crock.
  *
- * The new Plan 9 format uses strings of this form too, 
+ * The new Plan 9 format uses strings of this form too,
  * since they're already there.
  */
 Cbuf*
@@ -211,7 +211,7 @@ Cputsysuse(Cdimg *cd, Direc *d, int dot, int dowrite, 
 		what |= RR_SL;
 
 	m = CputsuspRR(cd, what, 0);
-	cp = ensurespace(cd, m, cp, &cn, dowrite);	
+	cp = ensurespace(cd, m, cp, &cn, dowrite);
 	CputsuspRR(cd, what, dowrite);
 
 	if(what & RR_PX) {
@@ -235,7 +235,7 @@ Cputsysuse(Cdimg *cd, Direc *d, int dot, int dowrite, 
 
 	/*
 	 * Put down the symbolic link.  This is even more of a crock.
-	 * Not only are the individual elements potentially split, 
+	 * Not only are the individual elements potentially split,
 	 * but the whole path itself can be split across SL blocks.
 	 * To keep the code simple as possible (really), we write
 	 * only one element per SL block, wasting 6 bytes per element.
@@ -382,7 +382,7 @@ CputsuspSP(Cdimg *cd, int dowrite)
 {
 	assert(cd!=0);
 
-	if(dowrite) { 
+	if(dowrite) {
 chat("writing SUSP SP record\n");
 		Cputc(cd, 'S');           /* SP field marker */
 		Cputc(cd, 'P');
@@ -406,7 +406,7 @@ CputsuspST(Cdimg *cd, int dowrite)
 		Cputc(cd, 'S');           /* ST field marker */
 		Cputc(cd, 'T');
 		Cputc(cd, 4);             /* Length          */
-		Cputc(cd, 1);             /* Version         */	
+		Cputc(cd, 1);             /* Version         */
 	}
 	return 4;
 }
@@ -484,7 +484,7 @@ CputrripPX(Cdimg *cd, Direc *d, int dot, int dowrite)
 		Cputc(cd, 'X');
 		Cputc(cd, 36);              /* Length          */
 		Cputc(cd, 1);               /* Version         */
-	
+
 		Cputn(cd, mode(d, dot), 4); /* POSIX File mode */
 		Cputn(cd, nlink(d), 4);     /* POSIX st_nlink  */
 		Cputn(cd, d?d->uidno:0, 4);  /* POSIX st_uid    */
@@ -514,7 +514,7 @@ CputrripTF(Cdimg *cd, Direc *d, int type, int dowrite)
 		Cputc(cd, 5+7*length);		/* Length		 */
 		Cputc(cd, 1);				/* Version		 */
 		Cputc(cd, type);					/* Flags (types)	 */
-	
+
 		if (type & TFcreation)
 			Cputdate(cd, d?d->ctime:0);
 		if (type & TFmodify)
@@ -523,7 +523,7 @@ CputrripTF(Cdimg *cd, Direc *d, int type, int dowrite)
 			Cputdate(cd, d?d->atime:0);
 		if (type & TFattributes)
 			Cputdate(cd, d?d->ctime:0);
-	
+
 	/*	if (type & TFbackup) */
 	/*		Cputdate(cd, 0); */
 	/*	if (type & TFexpiration) */
@@ -566,7 +566,7 @@ static long
 mode(Direc *d, int dot)
 {
 	long mode;
-	
+
 	if (!d)
 		return 0;
 
@@ -582,13 +582,13 @@ mode(Direc *d, int dot)
 		mode = S_IFDIR | (0755);
 
 	mode &= POSIXMODEMASK;
-		
+
 	/* Botch: not all POSIX types supported yet */
 	assert(mode & (S_IFDIR|S_IFREG));
 
-chat("writing PX record mode field %ulo with dot %d and name \"%s\"\n", mode, dot, d->name); 
+chat("writing PX record mode field %ulo with dot %d and name \"%s\"\n", mode, dot, d->name);
 
-	return mode;		
+	return mode;
 }
 
 static long
@@ -610,4 +610,3 @@ nlink(Direc *d)   /* Trump up the nlink field for POSI
 
 	return n;
 }
-
blob - ebf944e2041452864aec725c656783aff39f4c6c
blob + d3182775ea6090516cdbc231e5dc196f9b868fa7
--- src/cmd/9660/util.c
+++ src/cmd/9660/util.c
@@ -39,7 +39,7 @@ atom(char *str)
 {
 	uint h;
 	Stringtab *tab;
-	
+
 	h = hash(str) % nelem(stab);
 	for(tab=stab[h]; tab; tab=tab->link)
 		if(strcmp(str, tab->str) == 0)
blob - 94405317625ff4d8cbad8d229e65a4ad469218d8
blob + 652927ca8accb26f599c9bdc2d481315d2f52493
--- src/cmd/9660/write.c
+++ src/cmd/9660/write.c
@@ -90,7 +90,7 @@ writefiles(Dump *d, Cdimg *cd, Direc *direc)
 	assert(start != 0);
 
 	Cwseek(cd, start*Blocksize);
-	
+
 	s = md5(nil, 0, nil, nil);
 	length = 0;
 	while((n = Bread(b, buf, sizeof buf)) > 0) {
@@ -123,7 +123,7 @@ writefiles(Dump *d, Cdimg *cd, Direc *direc)
 }
 
 /*
- * Write a directory tree.  We work from the leaves, 
+ * Write a directory tree.  We work from the leaves,
  * and patch the dotdot pointers afterward.
  */
 static void
blob - 01acd06aaaad92d47edeb889a6c393d956d8c5f1
blob + a0b934c091bc96765765245f1e39fbe181906602
--- src/cmd/9660srv/iobuf.c
+++ src/cmd/9660srv/iobuf.c
@@ -14,7 +14,7 @@
  * tarring up a Plan 9 distribution CD, we now use 16 128kb
  * buffers.  This works for ISO9660 because data is required
  * to be laid out contiguously; effectively we're doing agressive
- * readahead.  Because the buffers are so big and the typical 
+ * readahead.  Because the buffers are so big and the typical
  * disk accesses so concentrated, it's okay that we have so few
  * of them.
  *
blob - 44fdc5124c09996755f9d75d15955d01abc629e5
blob + d4c32b8f3c0ace5a37f1b97c8c4f1a015cfc3b51
--- src/cmd/9660srv/main.c
+++ src/cmd/9660srv/main.c
@@ -138,13 +138,13 @@ main(int argc, char **argv)
 		open("/dev/null", OWRITE);
 		if(pipe(pipefd) < 0)
 			panic(1, "pipe");
-		
+
 		if(post9pservice(pipefd[0], srvname, mtpt) < 0)
 			sysfatal("post9pservice: %r");
 		close(pipefd[0]);
 	}
 	srvfd = pipefd[1];
-	
+
 	switch(rfork(RFNOWAIT|RFNOTEG|RFFDG|RFPROC)){
 	case -1:
 		panic(1, "fork");
blob - c46adf21e82877b3c95176b611856bba830429d0
blob + bebf0986d65eec6d65abdd628e8d833d53d03468
--- src/cmd/9660srv/xfile.c
+++ src/cmd/9660srv/xfile.c
@@ -167,4 +167,3 @@ clean(Xfile *f)
 	f->qid = (Qid){0,0,0};
 	return f;
 }
-
blob - c8d4c4448dbdb2df59da335d267332641fe4c9b0
blob + 75511a1947480ad5cb0c2c0a626749e683fe5ea6
--- src/cmd/9p.c
+++ src/cmd/9p.c
@@ -94,7 +94,7 @@ threadmain(int argc, char **argv)
 			threadexitsall(0);
 		}
 	}
-	usage();	
+	usage();
 }
 
 CFsys*
@@ -168,7 +168,7 @@ xread(int argc, char **argv)
 	fsclose(fid);
 	if(n < 0)
 		sysfatal("read error: %r");
-	threadexitsall(0);	
+	threadexitsall(0);
 }
 
 void
@@ -192,7 +192,7 @@ xreadfd(int argc, char **argv)
 			sysfatal("write error: %r");
 	if(n < 0)
 		sysfatal("read error: %r");
-	threadexitsall(0);	
+	threadexitsall(0);
 }
 
 void
@@ -246,7 +246,7 @@ xwrite(int argc, char **argv)
 	if(n < 0)
 		sysfatal("read error: %r");
 	fsclose(fid);
-	threadexitsall(0);	
+	threadexitsall(0);
 }
 
 void
@@ -270,7 +270,7 @@ xwritefd(int argc, char **argv)
 			sysfatal("write error: %r");
 	if(n < 0)
 		sysfatal("read error: %r");
-	threadexitsall(0);	
+	threadexitsall(0);
 }
 
 void
@@ -331,7 +331,7 @@ xrdwr(int argc, char **argv)
 			fprint(2, "write: %r\n");
 	}
 	fsclose(fid);
-	threadexitsall(0);	
+	threadexitsall(0);
 }
 
 void
@@ -346,10 +346,10 @@ xcreate(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc == 0)
 		usage();
-	
+
 	for(i=0; i<argc; i++){
 		fs = xparse(argv[i], &p);
 		if((fid=fscreate(fs, p, OREAD, 0666)) == nil)
@@ -371,10 +371,10 @@ xrm(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc == 0)
 		usage();
-	
+
 	for(i=0; i<argc; i++){
 		fs = xparse(argv[i], &p);
 		if(fsremove(fs, p) < 0)
@@ -389,7 +389,7 @@ rdcon(void *v)
 	int n;
 	char buf[4096];
 	CFid *fid;
-	
+
 	fid = v;
 	for(;;){
 		n = read(0, buf, sizeof buf);
@@ -408,7 +408,7 @@ xcon(int argc, char **argv)
 	char buf[4096], *r, *w, *e;
 	int n, nocr;
 	CFid *fid;
-	
+
 	nocr = 1;
 
 	ARGBEGIN{
@@ -438,12 +438,12 @@ xcon(int argc, char **argv)
 			threadexitsall(0);
 	}
 	fsclose(fid);
-	threadexitsall(0);	
+	threadexitsall(0);
 }
 
-static char *mon[] = 
+static char *mon[] =
 {
-	"Jan", "Feb", "Mar", "Apr", "May", "Jun", 
+	"Jan", "Feb", "Mar", "Apr", "May", "Jun",
 	"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
 };
 
@@ -454,7 +454,7 @@ timefmt(Fmt *fmt)
 	ulong u;
 	static ulong time0;
 	Tm *tm;
-	
+
 	if(time0 == 0)
 		time0 = time(0);
 	u = va_arg(fmt->args, ulong);
@@ -470,7 +470,7 @@ static int
 dircmp(const void *va, const void *vb)
 {
 	Dir *a, *b;
-	
+
 	a = (Dir*)va;
 	b = (Dir*)vb;
 	return strcmp(a->name, b->name);
@@ -480,7 +480,7 @@ static int
 timecmp(const void *va, const void *vb)
 {
 	Dir *a, *b;
-	
+
 	a = (Dir*)va;
 	b = (Dir*)vb;
 	if(a->mtime < b->mtime)
@@ -520,12 +520,12 @@ xls(int argc, char **argv)
 		tflag = 1;
 		break;
 	}ARGEND
-	
+
 	fmtinstall('D', dirfmt);
 	fmtinstall('M', dirmodefmt);
 	quotefmtinstall();
 	fmtinstall('T', timefmt);
-	
+
 	if(argc == 0){
 		argv = dot;
 		argc = 1;
@@ -600,4 +600,3 @@ xls(int argc, char **argv)
 	}
 	threadexitsall(err);
 }
-
blob - e03d9589a0d30491dc0a506a38c9deff23641278
blob + e3a122e4cb8d42586a0f714f1ecc543badd7af4c
--- src/cmd/9pfuse/errstr.c
+++ src/cmd/9pfuse/errstr.c
@@ -55,7 +55,7 @@ errstr2errno(void)
 {
 	char e[ERRMAX];
 	int i, len;
-	
+
 	if(errno != EPLAN9)
 		return errno;
 
@@ -70,4 +70,3 @@ errstr2errno(void)
 			return errortab[i].err;
 	return ERANGE;	/* who knows - be blatantly wrong */
 }
-
blob - 66f66065dfabd0fff17977956736d28e70684ba7
blob + 4c9aac9bf9b6d7711ce4862f94cd1fb4363366be
--- src/cmd/9pfuse/fuse.c
+++ src/cmd/9pfuse/fuse.c
@@ -15,7 +15,7 @@ allocfusemsg(void)
 {
 	FuseMsg *m;
 	void *vbuf;
-	
+
 	lock(&fusemsglock);
 	if((m = fusemsglist) != nil){
 		fusemsglist = m->next;
@@ -46,7 +46,7 @@ readfusemsg(void)
 {
 	FuseMsg *m;
 	int n, nn;
-	
+
 	m = allocfusemsg();
 	/*
 	 * The FUSE kernel device apparently guarantees
@@ -84,7 +84,7 @@ readfusemsg(void)
 		sysfatal("readfusemsg: got %d wanted %d",
 			n, m->hdr->len);
 	m->hdr->len -= sizeof(*m->hdr);
-	
+
 	/*
 	 * Paranoia.
 	 * Make sure lengths are long enough.
@@ -125,7 +125,7 @@ readfusemsg(void)
 		if(((char*)m->tx)[m->hdr->len-1] != 0
 		|| memchr(m->tx, 0, m->hdr->len-1) == 0)
 			goto bad;
-		break;	
+		break;
 	case FUSE_MKNOD:
 		if(m->hdr->len <= sizeof(struct fuse_mknod_in)
 		|| ((char*)m->tx)[m->hdr->len-1] != 0)
@@ -219,7 +219,7 @@ readfusemsg(void)
 }
 
 /*
- * Reply to FUSE request m using additonal 
+ * Reply to FUSE request m using additonal
  * argument buffer arg of size narg bytes.
  * Perhaps should free the FuseMsg here?
  */
@@ -229,7 +229,7 @@ replyfuse(FuseMsg *m, void *arg, int narg)
 	struct iovec vec[2];
 	struct fuse_out_header hdr;
 	int nvec;
-	
+
 	hdr.len = sizeof hdr + narg;
 	hdr.error = 0;
 	hdr.unique = m->hdr->unique;
@@ -255,7 +255,7 @@ void
 replyfuseerrno(FuseMsg *m, int e)
 {
 	struct fuse_out_header hdr;
-	
+
 	hdr.len = sizeof hdr;
 	hdr.error = -e;	/* FUSE sends negative errnos. */
 	hdr.unique = m->hdr->unique;
@@ -307,12 +307,12 @@ initfuse(char *mtpt)
 	/*
 	 * Complain if the kernel is too new.
 	 * We could forge ahead, but at least the one time I tried,
-	 * the kernel rejected the newer version by making the 
+	 * the kernel rejected the newer version by making the
 	 * writev fail in replyfuse, which is a much more confusing
-	 * error message.  In the future, might be nice to try to 
+	 * error message.  In the future, might be nice to try to
 	 * support older versions that differ only slightly.
 	 */
-	if(tx->major < FUSE_KERNEL_VERSION 
+	if(tx->major < FUSE_KERNEL_VERSION
 	|| (tx->major == FUSE_KERNEL_VERSION && tx->minor < FUSE_KERNEL_MINOR_VERSION))
 		sysfatal("fuse: too kernel version %d.%d older than program version %d.%d",
 			tx->major, tx->minor, FUSE_KERNEL_VERSION, FUSE_KERNEL_MINOR_VERSION);
@@ -386,7 +386,7 @@ fusefmt(Fmt *fmt)
 			}
 			case FUSE_SYMLINK: {
 				char *old, *new;
-				
+
 				old = a;
 				new = a + strlen(a) + 1;
 				fmtprint(fmt, "Symlink nodeid %#llux old %#q new %#q",
@@ -455,7 +455,7 @@ fusefmt(Fmt *fmt)
 			case FUSE_RELEASE: {
 				struct fuse_release_in *tx = a;
 				fmtprint(fmt, "Release nodeid %#llux fh %#llux flags %#ux",
-					hdr->nodeid, tx->fh, tx->flags); 
+					hdr->nodeid, tx->fh, tx->flags);
 				break;
 			}
 			case FUSE_FSYNC: {
@@ -516,7 +516,7 @@ fusefmt(Fmt *fmt)
 			case FUSE_RELEASEDIR: {
 				struct fuse_release_in *tx = a;
 				fmtprint(fmt, "Releasedir nodeid %#llux fh %#llux flags %#ux",
-					hdr->nodeid, tx->fh, tx->flags); 
+					hdr->nodeid, tx->fh, tx->flags);
 				break;
 			}
 			case FUSE_FSYNCDIR: {
@@ -554,7 +554,7 @@ fusefmt(Fmt *fmt)
 			case FUSE_LOOKUP: {
 				/*
 				 * For a negative entry, can send back ENOENT
-				 * or rx->ino == 0.  
+				 * or rx->ino == 0.
 				 * In protocol version 7.4 and before, can only use
 				 * the ENOENT method.
 				 * Presumably the benefit of sending rx->ino == 0
@@ -571,7 +571,7 @@ fusefmt(Fmt *fmt)
 					rx->attr_valid+rx->attr_valid_nsec*1e-9);
 				fmtprint(fmt, " ino %#llux size %lld blocks %lld atime %.20g mtime %.20g ctime %.20g mode %#uo nlink %d uid %d gid %d rdev %#ux",
 					rx->attr.ino, rx->attr.size, rx->attr.blocks,
-					rx->attr.atime+rx->attr.atimensec*1e-9, 
+					rx->attr.atime+rx->attr.atimensec*1e-9,
 					rx->attr.mtime+rx->attr.mtimensec*1e-9,
 					rx->attr.ctime+rx->attr.ctimensec*1e-9,
 					rx->attr.mode, rx->attr.nlink, rx->attr.uid,
@@ -592,7 +592,7 @@ fusefmt(Fmt *fmt)
 					rx->attr_valid+rx->attr_valid_nsec*1e-9);
 				fmtprint(fmt, " ino %#llux size %lld blocks %lld atime %.20g mtime %.20g ctime %.20g mode %#uo nlink %d uid %d gid %d rdev %#ux",
 					rx->attr.ino, rx->attr.size, rx->attr.blocks,
-					rx->attr.atime+rx->attr.atimensec*1e-9, 
+					rx->attr.atime+rx->attr.atimensec*1e-9,
 					rx->attr.mtime+rx->attr.mtimensec*1e-9,
 					rx->attr.ctime+rx->attr.ctimensec*1e-9,
 					rx->attr.mode, rx->attr.nlink, rx->attr.uid,
@@ -733,7 +733,7 @@ fusefmt(Fmt *fmt)
 					rx->e.attr_valid+rx->e.attr_valid_nsec*1e-9);
 				fmtprint(fmt, " ino %#llux size %lld blocks %lld atime %.20g mtime %.20g ctime %.20g mode %#uo nlink %d uid %d gid %d rdev %#ux",
 					rx->e.attr.ino, rx->e.attr.size, rx->e.attr.blocks,
-					rx->e.attr.atime+rx->e.attr.atimensec*1e-9, 
+					rx->e.attr.atime+rx->e.attr.atimensec*1e-9,
 					rx->e.attr.mtime+rx->e.attr.mtimensec*1e-9,
 					rx->e.attr.ctime+rx->e.attr.ctimensec*1e-9,
 					rx->e.attr.mode, rx->e.attr.nlink, rx->e.attr.uid,
@@ -753,7 +753,7 @@ fusefmt(Fmt *fmt)
 
 /*
  * Mounts a fuse file system on mtpt and returns
- * a file descriptor for the corresponding fuse 
+ * a file descriptor for the corresponding fuse
  * message conversation.
  */
 int
@@ -762,7 +762,7 @@ mountfuse(char *mtpt)
 #if defined(__linux__)
 	int p[2], pid, fd;
 	char buf[20];
-	
+
 	if(socketpair(AF_UNIX, SOCK_STREAM, 0, p) < 0)
 		return -1;
 	pid = fork();
@@ -783,11 +783,11 @@ mountfuse(char *mtpt)
 #elif defined(__FreeBSD__) && !defined(__APPLE__)
 	int pid, fd;
 	char buf[20];
-	
+
 	if((fd = open("/dev/fuse", ORDWR)) < 0)
 		return -1;
 	snprint(buf, sizeof buf, "%d", fd);
-	
+
 	pid = fork();
 	if(pid < 0)
 		return -1;
@@ -903,7 +903,7 @@ mountfuse(char *mtpt)
 		_exit(1);
 	}
 	return fd;
-	
+
 #else
 	werrstr("cannot mount fuse on this system");
 	return -1;
blob - a36628988b52998c727ffaa5a181715baf6dc827
blob + 0d4adb08cc1f059f2b85ba81e32a2c35439f7b7b
--- src/cmd/9pfuse/main.c
+++ src/cmd/9pfuse/main.c
@@ -14,7 +14,7 @@
  * writing the 9P connection.  Thus the many threads in the
  * request proc can do 9P interactions without blocking.
  */
- 
+
 #define _GNU_SOURCE 1	/* for O_DIRECTORY on Linux */
 #include "a.h"
 
@@ -165,16 +165,16 @@ init9p(char *addr, char *spec)
 /*
  * FUSE uses nodeids to refer to active "struct inodes"
  * (9P's unopened fids).  FUSE uses fhs to refer to active
- * "struct fuse_files" (9P's opened fids).  The choice of 
+ * "struct fuse_files" (9P's opened fids).  The choice of
  * numbers is up to us except that nodeid 1 is the root directory.
- * We use the same number space for both and call the 
+ * We use the same number space for both and call the
  * bookkeeping structure a FuseFid.
  *
- * FUSE requires nodeids to have associated generation 
- * numbers.  If we reuse a nodeid, we have to bump the 
+ * FUSE requires nodeids to have associated generation
+ * numbers.  If we reuse a nodeid, we have to bump the
  * generation number to guarantee that the nodeid,gen
  * combination is never reused.
- * 
+ *
  * There are also inode numbers returned in directory reads
  * and file attributes, but these do NOT need to match the nodeids.
  * We use a combination of qid.path and qid.type as the inode
@@ -192,7 +192,7 @@ struct Fusefid
 	int id;
 	int gen;
 	int isnodeid;
-	
+
 	/* directory read state */
 	Dir *d0;
 	Dir *d;
@@ -208,7 +208,7 @@ Fusefid*
 allocfusefid(void)
 {
 	Fusefid *f;
-	
+
 	if((f = freefusefidlist) == nil){
 		f = emalloc(sizeof *f);
 		fusefid = erealloc(fusefid, (nfusefid+1)*sizeof *fusefid);
@@ -247,7 +247,7 @@ uvlong
 _alloc(CFid *fid, int isnodeid)
 {
 	Fusefid *ff;
-	
+
 	ff = allocfusefid();
 	ff->fid = fid;
 	ff->isnodeid = isnodeid;
@@ -283,7 +283,7 @@ CFid*
 _lookupcfid(uvlong id, int isnodeid)
 {
 	Fusefid *ff;
-	
+
 	if((ff = lookupfusefid(id, isnodeid)) == nil)
 		return nil;
 	return ff->fid;
@@ -360,7 +360,7 @@ fuselookup(FuseMsg *m)
 	CFid *fid, *newfid;
 	Dir *d;
 	struct fuse_entry_out out;
-	
+
 	name = m->tx;
 	if((fid = nodeid2fid(m->hdr->nodeid)) == nil){
 		replyfuseerrno(m, ESTALE);
@@ -392,7 +392,7 @@ fuselookup(FuseMsg *m)
 /*
  * Forget.  Reference-counted clunk for nodeids.
  * Does not send a reply.
- * Each lookup response gives the kernel an additional reference 
+ * Each lookup response gives the kernel an additional reference
  * to the returned nodeid.  Forget says "drop this many references
  * to this nodeid".  Our fuselookup, when presented with the same query,
  * does not return the same results (it allocates a new nodeid for each
@@ -423,7 +423,7 @@ fuseforget(FuseMsg *m)
  * Getattr.
  * Replies with a fuse_attr_out structure giving the
  * attr for the requested nodeid in out.attr.
- * Out.attr_valid and out.attr_valid_nsec give 
+ * Out.attr_valid and out.attr_valid_nsec give
  * the amount of time that the attributes can
  * be cached.
  *
@@ -479,7 +479,7 @@ fusesetattr(FuseMsg *m)
 		/*
 		 * Special case: Linux issues a size change to
 		 * truncate a file before opening it OTRUNC.
-		 * Synthetic file servers (e.g., plumber) honor 
+		 * Synthetic file servers (e.g., plumber) honor
 		 * open(OTRUNC) but not wstat.
 		 */
 		if(in->valid == FATTR_SIZE && in->size == 0){
@@ -554,7 +554,7 @@ _fuseopenfid(uvlong nodeid, int isdir, int openmode, i
 		*err = errstr2errno();
 		return nil;
 	}
-		
+
 	if(fsfopen(newfid, openmode) < 0){
 		*err = errstr2errno();
 		fsclose(newfid);
@@ -617,7 +617,7 @@ _fuseopen(FuseMsg *m, int isdir)
 		return;
 	}
 	out.fh = allocfh(fid);
-	out.open_flags = FOPEN_DIRECT_IO;	/* no page cache */	
+	out.open_flags = FOPEN_DIRECT_IO;	/* no page cache */
 	replyfuse(m, &out, sizeof out);
 }
 
@@ -696,7 +696,7 @@ fusemkdir(FuseMsg *m)
 	CFid *fid;
 	int err;
 	char *name;
-	
+
 	in = m->tx;
 	name = (char*)(in+1);
 	if((fid = _fusecreate(m->hdr->nodeid, name, in->mode, 1, OREAD, &out, &err)) == nil){
@@ -716,7 +716,7 @@ fusecreate(FuseMsg *m)
 	CFid *fid;
 	int err, openmode, flags;
 	char *name;
-	
+
 	in = m->tx;
 	flags = in->flags;
 	openmode = in->flags&3;
@@ -740,7 +740,7 @@ fusecreate(FuseMsg *m)
 }
 
 /*
- * Access.  
+ * Access.
  * Lib9pclient implements this just as Plan 9 does,
  * by opening the file (or not) and then closing it.
  */
@@ -760,7 +760,7 @@ fuseaccess(FuseMsg *m)
 		ORDWR,
 		ORDWR
 	};
-	
+
 	in = m->tx;
 	if(in->mask >= nelem(a2o)){
 		replyfuseerrno(m, EINVAL);
@@ -791,7 +791,7 @@ fuserelease(FuseMsg *m)
 {
 	struct fuse_release_in *in;
 	Fusefid *ff;
-	
+
 	in = m->tx;
 	if((ff = lookupfusefid(in->fh, 0)) != nil)
 		freefusefid(ff);
@@ -864,7 +864,7 @@ fusereadlink(FuseMsg *m)
 	return;
 }
 
-/* 
+/*
  * Readdir.
  * Read from file handle in->fh at offset in->offset for size in->size.
  * We truncate size to maxwrite just to keep the buffer reasonable.
@@ -884,12 +884,12 @@ fusereaddir(FuseMsg *m)
 	uchar *buf, *p, *ep;
 	int n;
 	Fusefid *ff;
-	
+
 	in = m->tx;
 	if((ff = lookupfusefid(in->fh, 0)) == nil){
 		replyfuseerrno(m, ESTALE);
 		return;
-	}	
+	}
 	if(in->offset == 0){
 		fsseek(ff->fid, 0, 0);
 		free(ff->d0);
@@ -922,7 +922,7 @@ fusereaddir(FuseMsg *m)
 			break;
 		ff->d = ff->d0;
 	}
-out:			
+out:
 	replyfuse(m, buf, p - buf);
 	free(buf);
 }
@@ -958,7 +958,7 @@ canpack(Dir *d, uvlong off, uchar **pp, uchar *ep)
 	uchar *p;
 	struct fuse_dirent *de;
 	int pad, size;
-	
+
 	p = *pp;
 	size = FUSE_NAME_OFFSET + strlen(d->name);
 	pad = 0;
@@ -981,7 +981,7 @@ canpack(Dir *d, uvlong off, uchar **pp, uchar *ep)
  * Write.
  * Write from file handle in->fh at offset in->offset for size in->size.
  * Don't know what in->write_flags means.
- * 
+ *
  * Apparently implementations are allowed to buffer these writes
  * and wait until Flush is sent, but FUSE docs say flush may be
  * called zero, one, or even more times per close.  So better do the
@@ -996,7 +996,7 @@ fusewrite(FuseMsg *m)
 	void *a;
 	CFid *fid;
 	int n;
-	
+
 	in = m->tx;
 	a = in+1;
 	if((fid = fh2fid(in->fh)) == nil){
@@ -1018,7 +1018,7 @@ fusewrite(FuseMsg *m)
 
 /*
  * Flush.  Supposed to flush any buffered writes.  Don't use this.
- * 
+ *
  * Flush is a total crock.  It gets called on close() of a file descriptor
  * associated with this open file.  Some open files have multiple file
  * descriptors and thus multiple closes of those file descriptors.
@@ -1027,7 +1027,7 @@ fusewrite(FuseMsg *m)
  * closed explicitly.  For those files, Flush is never called.
  * Even more amusing, Flush gets called before close() of read-only
  * file descriptors too!
- * 
+ *
  * This is just a bad idea.
  */
 void
@@ -1044,7 +1044,7 @@ _fuseremove(FuseMsg *m, int isdir)
 {
 	char *name;
 	CFid *fid, *newfid;
-	
+
 	name = m->tx;
 	if((fid = nodeid2fid(m->hdr->nodeid)) == nil){
 		replyfuseerrno(m, ESTALE);
@@ -1105,7 +1105,7 @@ fuserename(FuseMsg *m)
 	char *before, *after;
 	CFid *fid, *newfid;
 	Dir d;
-	
+
 	in = m->tx;
 	if(in->newdir != m->hdr->nodeid){
 		replyfuseerrno(m, EXDEV);
@@ -1146,7 +1146,7 @@ fusefsync(FuseMsg *m)
 	struct fuse_fsync_in *in;
 	CFid *fid;
 	Dir d;
-	
+
 	in = m->tx;
 	if((fid = fh2fid(in->fh)) == nil){
 		replyfuseerrno(m, ESTALE);
@@ -1181,7 +1181,7 @@ void
 fusestatfs(FuseMsg *m)
 {
 	struct fuse_statfs_out out;
-	
+
 	memset(&out, 0, sizeof out);
 	replyfuse(m, &out, sizeof out);
 }
@@ -1215,7 +1215,7 @@ struct {
 	{ FUSE_FSYNC,		fusefsync },
 	/*
 	 * FUSE_SETXATTR, FUSE_GETXATTR, FUSE_LISTXATTR, and
-	 * FUSE_REMOVEXATTR are unimplemented. 
+	 * FUSE_REMOVEXATTR are unimplemented.
 	 * FUSE will stop sending these requests after getting
 	 * an -ENOSYS reply (see dispatch below).
 	 */
@@ -1237,7 +1237,7 @@ fusethread(void *v)
 	FuseMsg *m;
 
 	m = v;
-	if((uint)m->hdr->opcode >= nelem(fusehandlers) 
+	if((uint)m->hdr->opcode >= nelem(fusehandlers)
 	|| !fusehandlers[m->hdr->opcode]){
 		replyfuseerrno(m, ENOSYS);
 		return;
@@ -1267,7 +1267,7 @@ fusedispatch(void *v)
 		case FUSE_FORGET:
 		 	fusehandlers[m->hdr->opcode](m);
 			break;
-		default: 
+		default:
 			threadcreate(fusethread, m, STACK);
 		}
 	}
blob - 24c80714824265e454d619695723c8be7e0a12ea
blob + 255bcbb25244b6276cc3f973f1d084947f765e7b
--- src/cmd/9pserve.c
+++ src/cmd/9pserve.c
@@ -185,7 +185,7 @@ threadmain(int argc, char **argv)
 		logging++;
 		break;
 	}ARGEND
-	
+
 	if(attached && !versioned){
 		fprint(2, "-A must be used with -M\n");
 		usage();
@@ -258,7 +258,7 @@ mainproc(void *v)
 
 /*	if(rootfid) */
 /*		dorootstat(); */
-	
+
 	threadcreate(listenthread, nil, STACK);
 	threadexits(0);
 }
@@ -302,7 +302,7 @@ listenthread(void *arg)
 		c->outqdead = chancreate(sizeof(void*), 0);
 		if(verbose) fprint(2, "%T incoming call on %s\n", c->dir);
 		threadcreate(connthread, c, STACK);
-	}	
+	}
 }
 
 void
@@ -348,7 +348,7 @@ char*
 estrdup(char *s)
 {
 	char *t;
-	
+
 	t = emalloc(strlen(s)+1);
 	strcpy(t, s);
 	return t;
@@ -713,7 +713,7 @@ openfdthread(void *v)
 	chanfree(c->internal);
 	c->internal = 0;
 	free(c);
-}			
+}
 
 int
 xopenfd(Msg *m)
@@ -868,7 +868,7 @@ outputthread(void *arg)
 	closeioproc(io);
 	fprint(2, "%T output eof\n");
 	threadexitsall(0);
-}	
+}
 
 void
 inputthread(void *arg)
@@ -1041,7 +1041,7 @@ msgnew(int x)
  * Clear data associated with connections, so that
  * if all msgs have been msgcleared, the connection
  * can be freed.  Note that this does *not* free the tpkt
- * and rpkt; they are freed in msgput with the msg itself. 
+ * and rpkt; they are freed in msgput with the msg itself.
  * The io write thread might still be holding a ref to msg
  * even once the connection has finished with it.
  */
@@ -1080,7 +1080,7 @@ msgput(Msg *m)
 	if(m == nil)
 		return;
 
-	if(verbose > 1) fprint(2, "%T msgput 0x%lux %p tag %d/%d ref %d\n", 
+	if(verbose > 1) fprint(2, "%T msgput 0x%lux %p tag %d/%d ref %d\n",
 		getcallerpc(&m), m, m->tag, m->ctag, m->ref);
 	assert(m->ref > 0);
 	if(--m->ref > 0)
@@ -1296,7 +1296,7 @@ repack(Fcall *f, uchar **ppkt)
 {
 	uint n, nn;
 	uchar *pkt;
-	
+
 	pkt = *ppkt;
 	n = GBIT32(pkt);
 	nn = sizeS2M(f);
@@ -1305,7 +1305,7 @@ repack(Fcall *f, uchar **ppkt)
 		pkt = emalloc(nn);
 		*ppkt = pkt;
 	}
-	n = convS2M(f, pkt, nn);	
+	n = convS2M(f, pkt, nn);
 	if(n <= BIT16SZ)
 		sysfatal("convS2M conversion error");
 	if(n != nn)
@@ -1401,13 +1401,13 @@ ioaccept(Ioproc *io, int fd, char *dir)
 int
 timefmt(Fmt *fmt)
 {
-	static char *mon[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", 
+	static char *mon[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
 		"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
 	vlong ns;
 	Tm tm;
 	ns = nsec();
 	tm = *localtime(time(0));
-	return fmtprint(fmt, "%s %2d %02d:%02d:%02d.%03d", 
+	return fmtprint(fmt, "%s %2d %02d:%02d:%02d.%03d",
 		mon[tm.mon], tm.mday, tm.hour, tm.min, tm.sec,
 		(int)(ns%1000000000)/1000000);
 }
blob - 81c39a6354f18e713972037b850d8ac5c4dceda3
blob + b28f44fafe085c246ec5798d591cac87005f1df6
--- src/cmd/9term/9term.c
+++ src/cmd/9term/9term.c
@@ -51,13 +51,13 @@ void
 threadmain(int argc, char *argv[])
 {
 	char *p;
-	
+
 	rfork(RFNOTEG);
 	font = nil;
 	_wantfocuschanges = 1;
 	mainpid = getpid();
 	messagesize = 8192;
-	
+
 	ARGBEGIN{
 	default:
 		usage();
@@ -80,7 +80,7 @@ threadmain(int argc, char *argv[])
 		winsize = EARGF(usage());
 		break;
 	}ARGEND
-	
+
 	if(fontname)
 		putenv("font", fontname);
 
@@ -92,7 +92,7 @@ threadmain(int argc, char *argv[])
 	if(maxtab <= 0)
 		maxtab = 4;
 	free(p);
-	
+
 	startdir = ".";
 
 	if(initdraw(derror, fontname, "9term") < 0)
@@ -100,7 +100,7 @@ threadmain(int argc, char *argv[])
 
 	notify(hangupnote);
 	noteenable("sys: child");
-	
+
 	mousectl = initmouse(nil, screen);
 	if(mousectl == nil)
 		error("cannot find mouse");
@@ -181,13 +181,13 @@ void
 resizethread(void *v)
 {
 	Point p;
-	
+
 	USED(v);
-	
+
 	for(;;){
 		p = stringsize(display->defaultfont, "0");
 		if(p.x && p.y)
-			updatewinsize(Dy(screen->r)/p.y, (Dx(screen->r)-Scrollwid-2)/p.x, 
+			updatewinsize(Dy(screen->r)/p.y, (Dx(screen->r)-Scrollwid-2)/p.x,
 				Dx(screen->r), Dy(screen->r));
 		wresize(w, screen, 0);
 		flushimage(display, 1);
@@ -197,7 +197,7 @@ resizethread(void *v)
 			sysfatal("can't reattach to window");
 	}
 }
-			
+
 void
 mousethread(void *v)
 {
@@ -229,7 +229,7 @@ mousethread(void *v)
 			bouncemouse(mouse);
 	}
 }
-		
+
 void
 wborder(Window *w, int type)
 {
@@ -405,7 +405,7 @@ rcoutputproc(void *arg)
 	Conswritemesg cwm;
 	Rune *r;
 	Stringpair pair;
-	
+
 	i = 0;
 	cnt = 0;
 	for(;;){
@@ -432,11 +432,11 @@ rcoutputproc(void *arg)
 		if(nb < cnt)
 			memmove(data, data+nb, cnt-nb);
 		cnt -= nb;
-		
+
 		nr = label(r, nr);
 		if(nr == 0)
 			continue;
-		
+
 		recv(w->conswrite, &cwm);
 		pair.s = r;
 		pair.ns = nr;
@@ -448,7 +448,7 @@ void
 winterrupt(Window *w)
 {
 	char rubout[1];
-	
+
 	USED(w);
 	rubout[0] = getintr(sfd);
 	write(rcfd, rubout, 1);
@@ -474,7 +474,7 @@ label(Rune *sr, int n)
 {
 	Rune *sl, *el, *er, *r;
 	char *p, *dir;
-	
+
 	er = sr+n;
 	for(r=er-1; r>=sr; r--)
 		if(*r == '\007')
@@ -527,7 +527,7 @@ rcinputproc(void *arg)
 		recv(w->consread, &crm);
 		c1 = crm.c1;
 		c2 = crm.c2;
-		
+
 		pair.s = data;
 		pair.ns = sizeof data;
 		send(c1, &pair);
@@ -547,7 +547,7 @@ void
 rioputsnarf(void)
 {
 	char *s;
-	
+
 	s = smprint("%.*S", nsnarf, snarf);
 	if(s){
 		putsnarf(s);
@@ -648,7 +648,7 @@ textproc(void *arg)
 			for(x=0; x<p-buf; x+=n)
 				if((n = write(fd, buf+x, (p-x)-buf)) <= 0)
 					goto break2;
-			
+
 			if(i >= end)
 				break;
 			p = buf;
@@ -664,4 +664,3 @@ textproc(void *arg)
 break2:
 	close(fd);
 }
-
blob - e0f866ab51f93d0754fbd725e2183a74e44e546a
blob + 73914a674b411e8587bcfd38035168b860aae3fb
--- src/cmd/9term/SunOS.c
+++ src/cmd/9term/SunOS.c
@@ -84,4 +84,3 @@ getintr(int fd)
 		return 0x7F;
 	return ttmode.c_cc[VINTR];
 }
-
blob - 31281325a02b527bd542bb7161f0da85fc57dd87
blob + d64e4c2fcb9a88d397890adf5e9336e14ada2a83
--- src/cmd/9term/bsdpty.c
+++ src/cmd/9term/bsdpty.c
@@ -20,7 +20,7 @@ static char *abc =
 	"abcdefghijklmnopqrstuvwxyz"
 	"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 	"0123456789";
-static char *_123 = 
+static char *_123 =
 	"0123456789"
 	"abcdefghijklmnopqrstuvwxyz"
 	"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
@@ -111,4 +111,3 @@ getintr(int fd)
 		return 0x7F;
 	return ttmode.c_cc[VINTR];
 }
-
blob - 25270a0e38f32451a80d32f93e6cc149c3986c14
blob + a215253fb55fb2619b271c1a38a5262d6cbd8270
--- src/cmd/9term/dat.h
+++ src/cmd/9term/dat.h
@@ -91,8 +91,8 @@ struct Mouseinfo
 	ulong	counter;	/* serial no. of last mouse event we received */
 	ulong	lastcounter;	/* serial no. of last mouse event sent to client */
 	int	lastb;	/* last button state we received */
-	uchar	qfull;	/* filled the queue; no more recording until client comes back */	
-};	
+	uchar	qfull;	/* filled the queue; no more recording until client comes back */
+};
 
 struct Window
 {
blob - e0f18e873b2ac0397adf7e7189ff92f86767b5f3
blob + 4c2a76020c1e53e8d4224679f3797cf64b086ca8
--- src/cmd/9term/data.c
+++ src/cmd/9term/data.c
@@ -48,121 +48,121 @@ Cursor sightcursor = {
 
 Cursor whitearrow = {
 	{0, 0},
-	{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, 
-	 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, 
-	 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, 
+	{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
+	 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC,
+	 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
 	 0xF3, 0xF8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, },
-	{0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C, 
-	 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C, 
-	 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C, 
+	{0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C,
+	 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C,
+	 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C,
 	 0xD3, 0xB8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, }
 };
 
 Cursor query = {
 	{-7,-7},
-	{0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 
-	 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8, 
-	 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0, 
+	{0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
+	 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8,
+	 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0,
 	 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, },
-	{0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c, 
-	 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0, 
-	 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80, 
+	{0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c,
+	 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0,
+	 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80,
 	 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
 };
 
 Cursor tl = {
 	{-4, -4},
-	{0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff, 
-	 0xa0, 0x01, 0xb0, 0x01, 0xd0, 0x01, 0x11, 0xff, 
-	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 
+	{0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff,
+	 0xa0, 0x01, 0xb0, 0x01, 0xd0, 0x01, 0x11, 0xff,
+	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
 	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, },
-	{0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00, 
-	 0x5f, 0xfe, 0x4f, 0xfe, 0x0f, 0xfe, 0x0e, 0x00, 
-	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 
+	{0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00,
+	 0x5f, 0xfe, 0x4f, 0xfe, 0x0f, 0xfe, 0x0e, 0x00,
+	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
 	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, }
 };
 
 Cursor t = {
 	{-7, -8},
-	{0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0, 
-	 0x1c, 0x70, 0x10, 0x10, 0x0c, 0x60, 0xfc, 0x7f, 
-	 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xff, 0xff, 
+	{0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0,
+	 0x1c, 0x70, 0x10, 0x10, 0x0c, 0x60, 0xfc, 0x7f,
+	 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xff, 0xff,
 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 
-	 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 0x03, 0x80, 
-	 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+	 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 0x03, 0x80,
+	 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00,
 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
 };
 
 Cursor tr = {
 	{-11, -4},
-	{0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1, 
-	 0x80, 0x05, 0x80, 0x0d, 0x80, 0x0b, 0xff, 0x88, 
-	 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, 0x00, 0x88, 
+	{0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1,
+	 0x80, 0x05, 0x80, 0x0d, 0x80, 0x0b, 0xff, 0x88,
+	 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, 0x00, 0x88,
 	 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, },
-	{0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e, 
-	 0x7f, 0xfa, 0x7f, 0xf2, 0x7f, 0xf0, 0x00, 0x70, 
-	 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 
+	{0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e,
+	 0x7f, 0xfa, 0x7f, 0xf2, 0x7f, 0xf0, 0x00, 0x70,
+	 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
 	 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, }
 };
 
 Cursor r = {
 	{-8, -7},
-	{0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58, 
-	 0x04, 0x68, 0x04, 0x6c, 0x04, 0x06, 0x04, 0x02, 
-	 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, 0x04, 0x58, 
+	{0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58,
+	 0x04, 0x68, 0x04, 0x6c, 0x04, 0x06, 0x04, 0x02,
+	 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, 0x04, 0x58,
 	 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x07, 0xc0, },
-	{0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 
-	 0x03, 0x90, 0x03, 0x90, 0x03, 0xf8, 0x03, 0xfc, 
-	 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, 0x03, 0x80, 
+	{0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80,
+	 0x03, 0x90, 0x03, 0x90, 0x03, 0xf8, 0x03, 0xfc,
+	 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, 0x03, 0x80,
 	 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
 };
 
 Cursor br = {
 	{-11, -11},
-	{0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 
-	 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 
-	 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, 0x80, 0x05, 
+	{0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+	 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+	 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, 0x80, 0x05,
 	 0xff, 0xe1, 0x00, 0x31, 0x00, 0x41, 0x00, 0x7f, },
-	{0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 
-	 0x0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 
-	 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, 0x7f, 0xfa, 
+	{0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
+	 0x0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
+	 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, 0x7f, 0xfa,
 	 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x00, }
 };
 
 Cursor b = {
 	{-7, -7},
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-	 0xff, 0xff, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 
-	 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, 0x1c, 0x70, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	 0xff, 0xff, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
+	 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, 0x1c, 0x70,
 	 0x06, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, },
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-	 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 
-	 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe,
+	 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80,
 	 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
 };
 
 Cursor bl = {
 	{-4, -11},
-	{0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 
-	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 
-	 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, 0xa0, 0x01, 
+	{0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
+	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
+	 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, 0xa0, 0x01,
 	 0x87, 0xff, 0x8c, 0x00, 0x82, 0x00, 0xfe, 0x00, },
-	{0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 
-	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 
-	 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, 0x5f, 0xfe, 
+	{0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
+	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
+	 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, 0x5f, 0xfe,
 	 0x78, 0x00, 0x70, 0x00, 0x7c, 0x00, 0x00, 0x0, }
 };
 
 Cursor l = {
 	{-7, -7},
-	{0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20, 
-	 0x16, 0x20, 0x36, 0x20, 0x60, 0x20, 0x40, 0x20, 
-	 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, 0x1a, 0x20, 
+	{0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20,
+	 0x16, 0x20, 0x36, 0x20, 0x60, 0x20, 0x40, 0x20,
+	 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, 0x1a, 0x20,
 	 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x03, 0xe0, },
-	{0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 
-	 0x09, 0xc0, 0x09, 0xc0, 0x1f, 0xc0, 0x3f, 0xc0, 
-	 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, 0x01, 0xc0, 
+	{0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0,
+	 0x09, 0xc0, 0x09, 0xc0, 0x1f, 0xc0, 0x3f, 0xc0,
+	 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, 0x01, 0xc0,
 	 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0x00, }
 };
 
blob - 34cebf01e3ef0925962c04067bcd124a6123815a
blob + fd0bd74a3001dc74ed4264046f0368d483686196
--- src/cmd/9term/fns.h
+++ src/cmd/9term/fns.h
@@ -39,4 +39,3 @@ int	intrc(void);
 
 void rioputsnarf(void);
 void riogetsnarf(void);
-
blob - 130942bdc38851ebb5305223c40ef6f374d1e943
blob + 9132235b3419d7be512670cb6002f865119f72e7
--- src/cmd/9term/malloc.c
+++ src/cmd/9term/malloc.c
@@ -13,7 +13,7 @@ void*
 p9malloc(ulong n)
 {
 	void *v;
-	
+
 	if(n == 0)
 		n++;
 	lock(&malloclock);
@@ -38,7 +38,7 @@ void*
 p9calloc(ulong a, ulong b)
 {
 	void *v;
-	
+
 	if(a*b == 0)
 		a = b = 1;
 
@@ -53,11 +53,10 @@ void*
 p9realloc(void *v, ulong n)
 {
 	void *vv;
-	
+
 	lock(&malloclock);
 	vv = realloc(v, n);
 	unlock(&malloclock);
 	print("p9realloc %p %lud => %p; pc %lux\n", v, n, vv, getcallerpc(&v));
 	return vv;
 }
-
blob - fddabc6de49f3abe35d2c6b1a7e949230de150d8
blob + a447036d425adb872b81a77f1a10f5cafdd5600e
--- src/cmd/9term/rcstart.c
+++ src/cmd/9term/rcstart.c
@@ -69,15 +69,15 @@ rcstart(int argc, char **argv, int *pfd, int *tfd)
 	}
 	/*
 	 * notedisable("sys: window size change");
-	 * 
+	 *
 	 * Can't disable because will be inherited by other programs
 	 * like if you run an xterm from the prompt, and then xterm's
-	 * resizes won't get handled right.  Sigh.  
+	 * resizes won't get handled right.  Sigh.
 	 *
 	 * Can't not disable because when we stty below we'll get a
 	 * signal, which will drop us into the thread library note handler,
 	 * which will get all confused because we just forked and thus
-	 * have an unknown pid. 
+	 * have an unknown pid.
 	 *
 	 * So disable it internally.  ARGH!
 	 */
@@ -145,7 +145,7 @@ echoed(char *p, int n)
 	if(echo.w+n > sizeof echo.buf)
 		n = 0;
 	memmove(echo.buf+echo.w, p, n);
-	echo.w += n;	
+	echo.w += n;
 	unlock(&echo.l);
 }
 
blob - 8a35d1d75625c85dde4f582adc68297cb300d940
blob + 32ea08b6290e948d5c798934aa0132be2451412d
--- src/cmd/9term/util.c
+++ src/cmd/9term/util.c
@@ -146,4 +146,3 @@ runetobyte(Rune *r, int n, int *ip)
 	*ip = m;
 	return s;
 }
-
blob - 017d546b47475f45cee0d694a55734cceaff6bb1
blob + 9c7a12eb617c81a242654fad32736071e1e93223
--- src/cmd/9term/win.c
+++ src/cmd/9term/win.c
@@ -134,7 +134,7 @@ threadmain(int argc, char **argv)
 	char buf1[128];
 	CFsys *fs;
 	char *dump;
-	
+
 	dump = onestring(argc, argv);
 
 	ARGBEGIN{
@@ -215,7 +215,7 @@ threadmain(int argc, char **argv)
 	fswrite(ctlfd, buf, strlen(buf));
 	sprint(buf, "scroll");
 	fswrite(ctlfd, buf, strlen(buf));
-	
+
 	updatewinsize(25, 80, 0, 0);
 	proccreate(stdoutproc, nil, STACK);
 	stdinproc(nil);
@@ -225,7 +225,7 @@ void
 error(char *s, ...)
 {
 	va_list arg;
-	
+
 	if(s){
 		va_start(arg, s);
 		s = vsmprint(s, arg);
@@ -378,11 +378,11 @@ stdinproc(void *v)
 					fprint(2, "shift typing %d... ", e.q1-e.q0);
 				q.p += e.q1-e.q0;
 				break;
-			
+
 			case 'i':
 			case 'd':		/* tag */
 				break;
-			
+
 			default:
 				goto Unknown;
 			}
@@ -484,7 +484,7 @@ dropcr(char *p, int n)
 {
 	int i;
 	char *w, *r, *q;
-	
+
 	r = p;
 	w = p;
 	for(i=0; i<n; i++) {
@@ -538,15 +538,15 @@ stdoutproc(void *v)
 		n = read(fd1, buf+npart, 8192);
 		if(n <= 0)
 			error(nil);
-		
+
 		n = echocancel(buf+npart, n);
 		if(n == 0)
 			continue;
-		
+
 		n = dropcrnl(buf+npart, n);
 		if(n == 0)
 			continue;
-		
+
 		n = dropcr(buf+npart, n);
 		if(n == 0)
 			continue;
@@ -581,13 +581,13 @@ stdoutproc(void *v)
 			buf[n] = 0;
 			n = label(buf, n);
 			buf[n] = 0;
-			
+
 			// clumsy but effective: notice password
 			// prompts so we can disable echo.
 			password = 0;
 			if(cistrstr(buf, "password") || cistrstr(buf, "passphrase")) {
 				int i;
-				
+
 				i = n;
 				while(i > 0 && buf[i-1] == ' ')
 					i--;
@@ -743,7 +743,7 @@ void
 sendtype(int fd0)
 {
 	int i, n, nr, raw;
-	
+
 	raw = israw(fd0);
 	while(ntypebreak || (raw && ntypeb > 0)){
 		for(i=0; i<ntypeb; i++)
blob - d47e84674c6e3b28ac53d6cbd0cf66ccc596e365
blob + 7993930da0fa131895a0c208456c541404b33261
--- src/cmd/9term/wind.c
+++ src/cmd/9term/wind.c
@@ -101,7 +101,7 @@ wsetname(Window *w)
 {
 	int i, n;
 	char err[ERRMAX];
-	
+
 	n = sprint(w->name, "window.%d.%d", w->id, w->namecount++);
 	for(i='A'; i<='Z'; i++){
 		if(nameimage(w->i, w->name, 1) > 0)
@@ -224,8 +224,8 @@ winctl(void *arg)
 	crm.c2 = chancreate(sizeof(Stringpair), 0);
 	cwrm.c1 = chancreate(sizeof(Stringpair), 0);
 	cwrm.c2 = chancreate(sizeof(Stringpair), 0);
-	
 
+
 	alts[WKey].c = w->ck;
 	alts[WKey].v = &kbdr;
 	alts[WKey].op = CHANRCV;
@@ -803,7 +803,7 @@ wbswidth(Window *w, Rune c)
 		if(r == '\n'){		/* eat at most one more character */
 			if(q == w->q0 && c != '\r')	/* eat the newline */
 				--q;
-			break; 
+			break;
 		}
 		if(c == 0x17){
 			eq = isalnum(r);
@@ -1382,15 +1382,15 @@ wsetpid(Window *w, int pid, int dolabel)
 	}
 }
 
-static Rune left1[] =  { 
+static Rune left1[] =  {
 	'{', '[', '(', '<', 0xAB,
-	0x207d, 0x2329, 0x27e6, 0x27e8, 0x27ea, 
-	0xfe59, 0xfe5b, 0xfe5d, 0xff08, 0xff3b, 0xff5b, 
+	0x207d, 0x2329, 0x27e6, 0x27e8, 0x27ea,
+	0xfe59, 0xfe5b, 0xfe5d, 0xff08, 0xff3b, 0xff5b,
 	0
 };
 static Rune right1[] = {
 	'}', ']', ')', '>', 0xBB,
-	0x207e, 0x232a, 0x27e7, 0x27e9, 0x27eb, 
+	0x207e, 0x232a, 0x27e7, 0x27e9, 0x27eb,
 	0xfe5a, 0xfe5c, 0xfe5e, 0xff09, 0xff3d, 0xff5d,
 	0
 };
blob - ddc326a48d4adb19655b6fe0bfc615f7719d1507
blob + be387abeb9428378c80351743f46db55230b2ded
--- src/cmd/acid/builtin.c
+++ src/cmd/acid/builtin.c
@@ -635,7 +635,7 @@ includepipe(Node *r, Node *args)
 
 	if(pipe(pip) < 0)
 		error("pipe: %r");
-		
+
 	pid = fork();
 	switch(pid) {
 	case -1:
@@ -657,7 +657,7 @@ includepipe(Node *r, Node *args)
 
 	close(pip[1]);
 	pushfd(pip[0]);
-	
+
 	isave = interactive;
 	interactive = 0;
 	r->store.u.ival = yyparse();
@@ -746,7 +746,7 @@ doaccess(Node *r, Node *args)
 	r->op = OCONST;
 	r->type = TINT;
 	r->store.fmt = 'D';
-	r->store.u.ival = 0;		
+	r->store.u.ival = 0;
 	if(access(res.store.u.string->string, 4) == 0)
 		r->store.u.ival = 1;
 }
@@ -974,7 +974,7 @@ map(Node *r, Node *args)
 			i = findseg(m, nam, fil);
 		}
 		if(i < 0)
-			error("%s %s is not a map entry", nam, fil);	
+			error("%s %s is not a map entry", nam, fil);
 		l = l->next;
 		if(l->type != TINT)
 			error("map entry not int");
@@ -1008,7 +1008,7 @@ map(Node *r, Node *args)
 	}
 }
 
-void 
+void
 flatten(Node **av, Node *n)
 {
 	if(n == 0)
@@ -1086,7 +1086,7 @@ strace(Node *r, Node *args)
 		l = l->next;
 	}
 	regs.rw = straceregrw;
-	
+
 	tracelist = 0;
 	if(stacktrace(cormap, &regs, trlist) <= 0)
 		error("no stack frame");
@@ -1482,7 +1482,7 @@ pcfile(Node *r, Node *args)
 	if(p == 0)
 		error("pcfile(addr): funny file %s", buf);
 	*p = '\0';
-	r->store.u.string = strnode(buf);	
+	r->store.u.string = strnode(buf);
 }
 
 void
@@ -1507,7 +1507,7 @@ pcline(Node *r, Node *args)
 	p = strrchr(buf, ':');
 	if(p == 0)
 		error("pcline(addr): funny file %s", buf);
-	r->store.u.ival = atoi(p+1);	
+	r->store.u.ival = atoi(p+1);
 }
 
 void
blob - fd4464925fe97f71580cad20c6ec2af881a8ab4e
blob + 80ec2d020ba73f393959e7c11ac52d8890099709
--- src/cmd/acid/dot.c
+++ src/cmd/acid/dot.c
@@ -46,9 +46,9 @@ odot(Node *n, Node *r)
 		error("no tag for (expr).%s", s);
 
 	/* Propagate types */
-	if(t->type) 
+	if(t->type)
 		r->store.comt = t->type->lt;
-	
+
 	addr = res.store.u.ival+t->offset;
 	if(t->fmt == 'a') {
 		r->op = OCONST;
@@ -56,7 +56,7 @@ odot(Node *n, Node *r)
 		r->type = TINT;
 		r->store.u.ival = addr;
 	}
-	else 
+	else
 		indir(cormap, addr, t->fmt, r);
 
 }
@@ -74,7 +74,7 @@ buildtype(Node *m, int d)
 
 	switch(m->op) {
 	case OLIST:
-		buildtype(m->left, d);		
+		buildtype(m->left, d);
 		buildtype(m->right, d);
 		break;
 
@@ -90,7 +90,7 @@ buildtype(Node *m, int d)
 		t->offset = m->store.u.ival;
 		if(m->left) {
 			t->type = m->left->sym;
-			t->fmt = 'a';			
+			t->fmt = 'a';
 		}
 		else {
 			t->type = 0;
@@ -101,7 +101,7 @@ buildtype(Node *m, int d)
 
 		*tail = t;
 		tail = &t->next;
-	}			
+	}
 }
 
 void
blob - 088b98f848935ad3ee0848bcd89e4d3f25a5fcb2
blob + dc2f59c7691abe93592b8332f10a98ea4b327832
--- src/cmd/acid/expr.c
+++ src/cmd/acid/expr.c
@@ -74,7 +74,7 @@ chklval(Node *lp)
 
 	if(lp->op == OCALL){
 		s = chklval(lp->left);
-		if(strcmp(s->name, "var") == 0	
+		if(strcmp(s->name, "var") == 0
 		&& (lp->builtin || s->proc == 0)){
 			if(lp->right == 0)
 				error("var(string): arg count");
@@ -85,7 +85,7 @@ chklval(Node *lp)
 		}
 	}
 	error("need l-value");
-	return nil;	
+	return nil;
 }
 
 void
@@ -177,7 +177,7 @@ oframe(Node *n, Node *res)
 	lp = n->left;
 	if(localaddr(cormap, acidregs, p, lp->sym->name, &ival) < 0)
 		error("colon: %r");
-		
+
 	res->store.u.ival = ival;
 	res->op = OCONST;
 	res->store.fmt = 'X';
@@ -397,7 +397,7 @@ oadd(Node *n, Node *res)
 		if(r.type == TSTRING) {
 			res->type = TSTRING;
 			res->store.fmt = 's';
-			res->store.u.string = stradd(l.store.u.string, r.store.u.string); 
+			res->store.u.string = stradd(l.store.u.string, r.store.u.string);
 			break;
 		}
 		error("bad rhs for +");
@@ -916,7 +916,7 @@ oeinc(Node *n, Node *res)
 			v->store.u.ival -= fmtsize(v);
 		else
 			v->store.u.ival += fmtsize(v);
-		break;			
+		break;
 	case TFLOAT:
 		if(n->op == OEDEC)
 			v->store.u.fval--;
@@ -944,7 +944,7 @@ opinc(Node *n, Node *res)
 			v->store.u.ival -= fmtsize(v);
 		else
 			v->store.u.ival += fmtsize(v);
-		break;			
+		break;
 	case TFLOAT:
 		if(n->op == OPDEC)
 			v->store.u.fval--;
blob - 19581eab3a6ac4485e086dd3c0f43e74f0f1a819
blob + 90e23f7872fcd556c7ce92087c67c5566e234719
--- src/cmd/acid/lex.c
+++ src/cmd/acid/lex.c
@@ -61,7 +61,7 @@ kinit(void)
 
 	initcmap();
 
-	for(i = 0; keywds[i].name; i++) 
+	for(i = 0; keywds[i].name; i++)
 		enter(keywds[i].name, keywds[i].terminal);
 }
 
@@ -415,7 +415,7 @@ loop:
 			return numsym('.');
 
 		return '.';
- 
+
 	case '(':
 	case ')':
 	case '[':
@@ -671,7 +671,7 @@ delsym(Lsym *s)
 	for(q = s->name; *q; q++)
 		h = h*3 + *q;
 	h %= Hashsize;
-	
+
 	if(hash[h] == s)
 		hash[h] = s->hash;
 	else{
blob - 2c26426e244b2c62019ea73e1d7af031e390e514
blob + af9f77ae6c7c498fa96c0fc39e74ca30828acd79
--- src/cmd/acid/list.c
+++ src/cmd/acid/list.c
@@ -54,7 +54,7 @@ build(Node *n)
 		l = al(res.type);
 		l->store = res.store;
 		*tail = l;
-		tail = &l->next;	
+		tail = &l->next;
 	}
 }
 
blob - 59ae90b1c026c7ae0f210eedc6b6b1ef2ed175c6
blob + ba3ce46e59ae7e98c4bea8cf247f0574aa073f34
--- src/cmd/acid/main.c
+++ src/cmd/acid/main.c
@@ -92,7 +92,7 @@ main(int argc, char *argv[])
 	default:
 		usage();
 	}ARGEND
-	
+
 	USED(pid);
 
 	fmtinstall('Z', Zfmt);
@@ -198,7 +198,7 @@ attachfiles(int argc, char **argv)
 	pid = 0;
 	interactive = 0;
 	USED(pid);
-	
+
 	if(setjmp(err))
 		return -1;
 
blob - e6efc95a0da1d031b09e679303577e2c5f7da1db
blob + ff37cd5f31e54dc535984519e7a7e377a4c97dca
--- src/cmd/acid/proc.c
+++ src/cmd/acid/proc.c
@@ -29,7 +29,7 @@ sproc(int xpid)
 		free(correg);
 		correg = regs;
 	}else{
-		/* XXX should only change register set here if cormap already mapped */		
+		/* XXX should only change register set here if cormap already mapped */
 		if(xpid <= 0)
 			error("bad pid");
 		unmapproc(cormap);
@@ -245,4 +245,3 @@ getstatus(int pid)
 {
 	return "unknown";
 }
-
blob - 29db6d8bc1d1cf8ec5bd040d8dcceb6d35cd4eae
blob + e44cb5e2f76d7377ab784255ec06806fcbdad103
--- src/cmd/acid/util.c
+++ src/cmd/acid/util.c
@@ -40,7 +40,7 @@ unique(char *buf, Symbol *s)
 	if(l == 0)
 		l = enter(buf, Tid);
 	s->aux = l;
-	return l;	
+	return l;
 }
 
 void
@@ -122,22 +122,22 @@ addvarsym(Fhdr *fp)
 			tl->store.u.l = list;
 			list->store.u.string = strnode(buf);
 			list->store.fmt = 's';
-			
+
 			list->next = al(TINT);
 			list = list->next;
 			list->store.fmt = 'c';
 			list->store.u.ival = s.type;
-			
+
 			list->next = al(TINT);
 			list = list->next;
 			list->store.fmt = 'X';
 			list->store.u.ival = v;
-			
+
 			list->next = al(TSTRING);
 			list = list->next;
 			list->store.fmt = 's';
 			list->store.u.string = file;
-			
+
 			list->next = al(TSTRING);
 			list = list->next;
 			list->store.fmt = 's';
blob - 8a043787cf480fe97c2562febc2824f0e6103d28
blob + 97b3a1665353fea27ec579b2c6a8299dd7cb0ba9
--- src/cmd/acidtypes/dat.h
+++ src/cmd/acidtypes/dat.h
@@ -9,7 +9,7 @@ enum
 	Base,
 	Enum,
 	Aggr,
-	Function,	
+	Function,
 	Pointer,
 	Array,
 	Range,
@@ -92,4 +92,3 @@ int Bfmt(Fmt*);
 #ifdef VARARGCK
 #pragma varargck type "B" char*
 #endif
-
blob - f92942865ca193fe1c03fc8c9ec9e18fd4cb1d51
blob + cb39fcbf82c50fd997e95a2d7300c40ac61901f4
--- src/cmd/acidtypes/dwarf.c
+++ src/cmd/acidtypes/dwarf.c
@@ -183,4 +183,3 @@ ds2acid(Dwarf *d, DwarfSym *s, Biobuf *b, char *fn)
 		break;
 	}
 }
-
blob - f272f67a982f364ca5c9a82d0c263feb3e245424
blob + eb1a941820058eb9ebd7abd8b7521c4105a3e80c
--- src/cmd/acidtypes/main.c
+++ src/cmd/acidtypes/main.c
@@ -64,7 +64,7 @@ main(int argc, char **argv)
 			}
 			have = 1;
 		}
-		
+
 		if(!have){
 			Bprint(&b, "// no debugging symbols in %s\n\n", argv[i]);
 		/*	fprint(2, "no debugging symbols in %s\n", argv[i]); */
@@ -75,4 +75,3 @@ main(int argc, char **argv)
 	Bterm(&b);
 	exits(0);
 }
-
blob - 5ce0d461159029e90d4d2fcd68ff3082e877b6c6
blob + 0ca3b73f0d7855dafdc457b2d5d0e8f07ac35bf1
--- src/cmd/acidtypes/stabs.c
+++ src/cmd/acidtypes/stabs.c
@@ -192,7 +192,7 @@ parsenum(char *p, int *n1, int *n2, char **pp)
 /*
 	attr ::= '@' text ';'
 
-	text is 
+	text is
 		'a' integer (alignment)
 		'p' integer (pointer class)
 		'P' (packed type)
@@ -237,7 +237,7 @@ static Basic baseints[] =
 /*13*/	8, 'f',		/* double */
 /*14*/	10, 'f',	/* long double */
 /*15*/	4, 'd',	/* int32 */
-/*16*/	4, 'd',	/* bool32 */	
+/*16*/	4, 'd',	/* bool32 */
 /*17*/	2, 'f',		/* short real */
 /*18*/	4, 'f',		/* real */
 /*19*/	4, 'x',	/* stringptr */
@@ -391,7 +391,7 @@ parsedefn(char *p, Type *t, char **pp)
 		t->ty = Pointer;
 		t->sub = parseinfo(p+1, &p);
 		break;
-	case 'a':	/* array */		
+	case 'a':	/* array */
 	case 'P':	/* packed array */
 		t->ty = Pointer;
 		tt = newtype();
@@ -422,7 +422,7 @@ parsedefn(char *p, Type *t, char **pp)
 		}
 		semi(&p);
 		break;
-		
+
 	case 's':	/* struct */
 	case 'u':	/* union */
 		p++;
@@ -532,7 +532,7 @@ parsedefn(char *p, Type *t, char **pp)
 }
 
 /*
-	bound ::= 
+	bound ::=
 		'A' offset			(bound is on stack by ref at offset offset from arg list)
 		| 'T' offset			(bound is on stack by val at offset offset from arg list)
 		| 'a' regnum		(bound passed by reference in register)
@@ -642,7 +642,7 @@ stabs2acid(Stab *stabs, Biobuf *b)
 			fno++;
 			if((f = findftypes(dir, sym.name)) == nil){
 				static int cannotprint;
-				
+
 				if(cannotprint++ == 0)
 					fprint(2, "cannot find remembered %s\n", sym.name);
 				continue;
@@ -673,7 +673,7 @@ stabs2acid(Stab *stabs, Biobuf *b)
 			}
 			if(setjmp(kaboom)){
 				static int cannotparse;
-				
+
 				if(cannotparse++ == 0)
 					fprint(2, "cannot parse %s\n", name);
 				continue;
@@ -683,7 +683,7 @@ stabs2acid(Stab *stabs, Biobuf *b)
 				continue;
 			if(*p != 0){
 				static int extradesc;
-				
+
 				if(extradesc++ == 0)
 					fprint(2, "extra desc '%s' in '%s'\n", p, desc);
 			}
blob - 00897e34670e0a1174ef7108e6292201cd282a0a
blob + 0f1c2f3094de8d11bc7aa8774c9421851a3e9084
--- src/cmd/acidtypes/type.c
+++ src/cmd/acidtypes/type.c
@@ -95,7 +95,7 @@ typebynum(uint n1, uint n2)
 	t->n2 = n2;
 	addhash(t);
 	return t;
-}	
+}
 
 Type*
 newtype(void)
@@ -251,10 +251,10 @@ cleanstl(char *name)
 {
 	char *b, *p;
 	static char buf[65536];	/* These can be huge. */
-	
+
 	if(strchr(name, '<') == nil)
 		return nonempty(name);
-	
+
 	b = buf;
 	for(p = name; *p != 0; p++){
 		switch(*p){
@@ -443,7 +443,7 @@ char*
 mkname(char *prefix, char *name)
 {
 	static char buf[65536];
-	
+
 	snprint(buf, sizeof buf, "%s%s", prefix, name);
 	return buf;
 }
@@ -630,7 +630,7 @@ ttt=ttt->sub;
 		if(nprint == 0)
 			Bprint(b, "\t'X' 0 __dummy;\n");
 		Bprint(b, "};\n\n");
-	
+
 		name = nameof(t, 1);	/* might have smashed it */
 		Bprint(b, "defn %B(addr) { %B(addr, \"\"); }\n", name, mkname("indent_", name));
 		Bprint(b, "defn %B(addr, indent) {\n", mkname("indent_", name));
@@ -675,13 +675,13 @@ ttt=ttt->sub;
 		}
 		Bprint(b, "};\n\n");
 		break;
-	
+
 	case Enum:
 		name = nameof(t, 1);
 		Bprint(b, "// enum %s\n", name);
 		for(j=0; j<t->n; j++)
 			Bprint(b, "%B = %ld;\n", fixname(t->tname[j]), t->val[j]);
-	
+
 		Bprint(b, "%B = {\n", mkname("vals_", name));
 		for(j=0; j<t->n; j++)
 			Bprint(b, "\t%lud,\n", t->val[j]);
@@ -738,7 +738,7 @@ printtypes(Biobuf *b)
 	 * only take one type of a given name; acid is going to do this anyway,
 	 * and this will reduce the amount of code we output considerably.
 	 * we could run a DFA equivalence relaxation sort of algorithm
-	 * to find the actual equivalence classes, and then rename types 
+	 * to find the actual equivalence classes, and then rename types
 	 * appropriately, but this will do for now.
 	 */
 	all = emalloc(n*sizeof(all[0]));
blob - 47fe193d77abe135d5ef48e3f2fcb976a8565a56
blob + 41883bbd6e64ddfc13ae69a08367bb9b9551c68d
--- src/cmd/acidtypes/util.c
+++ src/cmd/acidtypes/util.c
@@ -68,7 +68,7 @@ Bfmt(Fmt *fmt)
 {
 	int i;
 	char *s, *t;
-	
+
 	if(!isBfrog['.']){
 		for(i=0; i<256; i++)
 			if(i != '_' && i != '$' && i < Runeself && !isalnum(i))
blob - 12701f23fff2da5c66624f847202a647541d042d
blob + e5658a4ef1339357d62759399079cd21d39abfbb
--- src/cmd/acme/acme.c
+++ src/cmd/acme/acme.c
@@ -968,69 +968,69 @@ Cursor boxcursor = {
 
 Cursor2 boxcursor2 = {
 	{-15, -15},
-	{0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xC0, 0x03, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
-	 0xFF, 0xFF, 0xFF, 0xFF, 
+	{0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xC0, 0x03, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
+	 0xFF, 0xFF, 0xFF, 0xFF,
 	 0xFF, 0xFF, 0xFF, 0xFF},
-	{0x00, 0x00, 0x00, 0x00, 
-	 0x00, 0x00, 0x00, 0x00, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0x00, 0x00, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x3F, 0xFF, 0xFF, 0xFC, 
-	 0x00, 0x00, 0x00, 0x00, 
+	{0x00, 0x00, 0x00, 0x00,
+	 0x00, 0x00, 0x00, 0x00,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0x00, 0x00, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x3F, 0xFF, 0xFF, 0xFC,
+	 0x00, 0x00, 0x00, 0x00,
 	 0x00, 0x00, 0x00, 0x00}
 };
 
@@ -1047,7 +1047,7 @@ iconinit(void)
 		tagcols[BORD] = allocimage(display, Rect(0,0,1,1), screen->chan, 1, DPurpleblue);
 		tagcols[TEXT] = display->black;
 		tagcols[HTEXT] = display->black;
-	
+
 		/* Yellow */
 		textcols[BACK] = allocimagemix(display, DPaleyellow, DWhite);
 		textcols[HIGH] = allocimage(display, Rect(0,0,1,1), screen->chan, 1, DDarkyellow);
@@ -1055,7 +1055,7 @@ iconinit(void)
 		textcols[TEXT] = display->black;
 		textcols[HTEXT] = display->black;
 	}
-	
+
 	r = Rect(0, 0, Scrollwid+ButtonBorder, font->height+1);
 	if(button && eqrect(r, button->r))
 		return;
@@ -1169,4 +1169,3 @@ timefmt(Fmt *f)
 	return fmtprint(f, "%04d/%02d/%02d %02d:%02d:%02d",
 		tm->year+1900, tm->mon+1, tm->mday, tm->hour, tm->min, tm->sec);
 }
-
blob - 6215e04410fdc958773b9a3549f5fcd7cb1b5274
blob + 63c33ac11c52dded05cc959bb0f7644ed1610780
--- src/cmd/acme/cols.c
+++ src/cmd/acme/cols.c
@@ -89,19 +89,19 @@ coladd(Column *c, Window *w, Window *clone, int y)
 		/*
 		 * figure out where to split v to make room for w
 		 */
-		
+
 		/* new window stops where next window begins */
 		if(i < c->nw)
 			ymax = c->w[i]->r.min.y-Border;
 		else
 			ymax = c->r.max.y;
-		
+
 		/* new window must start after v's tag ends */
 		y = max(y, v->tagtop.max.y+Border);
-		
+
 		/* new window must start early enough to end before ymax */
 		y = min(y, ymax - minht);
-		
+
 		/* if y is too small, too many windows in column */
 		if(y < v->tagtop.max.y+Border)
 			buggered = 1;
@@ -118,7 +118,7 @@ coladd(Column *c, Window *w, Window *clone, int y)
 		r1.min.y = winresize(v, r1, FALSE, FALSE);
 		r1.max.y = r1.min.y+Border;
 		draw(screen, r1, display->black, nil, ZP);
-		
+
 		/*
 		 * leave r with w's coordinates
 		 */
@@ -142,7 +142,7 @@ coladd(Column *c, Window *w, Window *clone, int y)
 	c->nw++;
 	c->w[i] = w;
 	c->safe = TRUE;
-	
+
 	/* if there were too many windows, redraw the whole column */
 	if(buggered)
 		colresize(c, c->r);
blob - ef92e3395deca665f306c2f7059f35803ea96f16
blob + 75cf710f19bfeadb658f67cb8c3303d63d279516
--- src/cmd/acme/ecmd.c
+++ src/cmd/acme/ecmd.c
@@ -633,8 +633,8 @@ runpipe(Text *t, int cmd, Rune *cr, int ncr, int state
 	/*
 	 * The editoutlk exists only so that we can tell when
 	 * the editout file has been closed.  It can get closed *after*
-	 * the process exits because, since the process cannot be 
-	 * connected directly to editout (no 9P kernel support), 
+	 * the process exits because, since the process cannot be
+	 * connected directly to editout (no 9P kernel support),
 	 * the process is actually connected to a pipe to another
 	 * process (arranged via 9pserve) that reads from the pipe
 	 * and then writes the data in the pipe to editout using
@@ -704,7 +704,7 @@ printposn(Text *t, int mode)
 
 	if (t != nil && t->file != nil && t->file->name != nil)
 		warning(nil, "%.*S:", t->file->nname, t->file->name);
-	
+
 	switch(mode) {
 	case PosnChars:
 		warning(nil, "#%d", addr.r.q0);
@@ -712,7 +712,7 @@ printposn(Text *t, int mode)
 			warning(nil, ",#%d", addr.r.q1);
 		warning(nil, "\n");
 		return;
-	
+
 	default:
 	case PosnLine:
 		l1 = 1+nlcount(t, 0, addr.r.q0, nil);
blob - d3f820593ea00d1e52229b00bcd847bb62affd58
blob + 81f80300db28d033b22290177f3e00632b679e72
--- src/cmd/acme/edit.c
+++ src/cmd/acme/edit.c
@@ -515,7 +515,7 @@ parsecmd(int nest)
 						if(nextc() == 'g')
 							cmd.flag = getch();
 					}
-			
+
 				}
 			}
 		}
@@ -613,7 +613,7 @@ simpleaddr(void)
 		addr.num = getnum(1);
 		break;
 	case '0': case '1': case '2': case '3': case '4':
-	case '5': case '6': case '7': case '8': case '9': 
+	case '5': case '6': case '7': case '8': case '9':
 		addr.num = getnum(1);
 		addr.type='l';
 		break;
blob - c5650f03f9934aaba9d8a20aa1741b0725c24d18
blob + 8a8951fb409ad1b9971806b5992c7d0e4ef68562
--- src/cmd/acme/elog.c
+++ src/cmd/acme/elog.c
@@ -243,7 +243,7 @@ elogapply(File *f)
 	 * but using coordinates relative to the unmodified buffer.  As we apply the log,
 	 * we have to update the coordinates to be relative to the modified buffer.
 	 * Textinsert and textdelete will do this for us; our only work is to apply the
-	 * convention that an insertion at t->q0==t->q1 is intended to select the 
+	 * convention that an insertion at t->q0==t->q1 is intended to select the
 	 * inserted text.
 	 */
 
@@ -337,7 +337,7 @@ elogapply(File *f)
 	}
 	fbuffree(buf);
 	elogterm(f);
-	
+
 	/*
 	 * Bad addresses will cause bufload to crash, so double check.
 	 * If changes were out of order, we expect problems so don't complain further.
blob - 4c395eb2bf2090d8b432466d75979c1f47197cc1
blob + d9d4b30d73d2c66281d04669c5f005ae9852c81a
--- src/cmd/acme/fsys.c
+++ src/cmd/acme/fsys.c
@@ -463,7 +463,7 @@ fsyswalk(Xfid *x, Fid *f)
 			qunlock(&row.lk);
 			dir = dirtabw;
 			goto Accept;
-	
+
     Regular:
 			if(strcmp(x->fcall.wname[i], "new") == 0){
 				if(w)
blob - 567b83839e653505a5ede655d12ef057ce56637a
blob + 562026c92c6efd612be64b3aa8a08446b132341f
--- src/cmd/acme/logf.c
+++ src/cmd/acme/logf.c
@@ -20,7 +20,7 @@ struct Log
 	Rendez r;
 
 	vlong start; // msg[0] corresponds to 'start' in the global sequence of events
-	
+
 	// queued events (nev=entries in ev, mev=capacity of p)
 	char **ev;
 	int nev;
@@ -30,7 +30,7 @@ struct Log
 	Fid **f;
 	int nf;
 	int mf;
-	
+
 	// active (blocked) reads waiting for events
 	Xfid **read;
 	int nread;
@@ -43,7 +43,7 @@ void
 xfidlogopen(Xfid *x)
 {
 	qlock(&eventlog.lk);
-	if(eventlog.nf >= eventlog.mf) {	
+	if(eventlog.nf >= eventlog.mf) {
 		eventlog.mf = eventlog.mf*2;
 		if(eventlog.mf == 0)
 			eventlog.mf = 8;
@@ -78,20 +78,20 @@ xfidlogread(Xfid *x)
 	Fcall fc;
 
 	qlock(&eventlog.lk);
-	if(eventlog.nread >= eventlog.mread) {	
+	if(eventlog.nread >= eventlog.mread) {
 		eventlog.mread = eventlog.mread*2;
 		if(eventlog.mread == 0)
 			eventlog.mread = 8;
 		eventlog.read = erealloc(eventlog.read, eventlog.mread*sizeof eventlog.read[0]);
 	}
 	eventlog.read[eventlog.nread++] = x;
-	
+
 	if(eventlog.r.l == nil)
 		eventlog.r.l = &eventlog.lk;
 	x->flushed = FALSE;
 	while(x->f->logoff >= eventlog.start+eventlog.nev && !x->flushed)
 		rsleep(&eventlog.r);
-		
+
 	for(i=0; i<eventlog.nread; i++) {
 		if(eventlog.read[i] == x) {
 			eventlog.read[i] = eventlog.read[--eventlog.nread];
@@ -112,7 +112,7 @@ xfidlogread(Xfid *x)
 	fc.data = p;
 	fc.count = strlen(p);
 	respond(x, &fc, nil);
-	free(p);	
+	free(p);
 }
 
 void
@@ -177,7 +177,7 @@ xfidlog(Window *w, char *op)
 			eventlog.start += n;
 			memmove(eventlog.ev, eventlog.ev+n, eventlog.nev*sizeof eventlog.ev[0]);
 		}
-		
+
 		// Otherwise grow.
 		if(eventlog.nev >= eventlog.mev) {
 			eventlog.mev = eventlog.mev*2;
blob - a7ac6a0bb1fa569d192b77f0286495c9580624cb
blob + 66bb3a5d4f6399493a7af9d3076076a3d8cecfae
--- src/cmd/acme/mail/dat.h
+++ src/cmd/acme/mail/dat.h
@@ -178,4 +178,3 @@ extern	int		shortmenu;
 
 extern	CFsys	*mailfs;
 extern	CFsys	*acmefs;
-
blob - e3a956b06250ef02b003d06c7a2812f774e1e905
blob + e193fc4d4f63ec698ee7bedab0cc2301ab4dec89
--- src/cmd/acme/mail/html.c
+++ src/cmd/acme/mail/html.c
@@ -67,7 +67,7 @@ char*
 readbody(char *type, char *dir, int *np)
 {
 	char *body;
-	
+
 	body = readfile(dir, "body", np);
 	if(body != nil && strcmp(type, "text/html") == 0)
 		return formathtml(body, np);
blob - d79721f80c0d79f5b2bea731d85fa67cc82d1e24
blob + e1047bb8b7c393e3b9777b947ec3d7586add5da6
--- src/cmd/acme/mail/mail.c
+++ src/cmd/acme/mail/mail.c
@@ -558,16 +558,16 @@ mainctl(void *v)
 		Unknown:
 			print("unknown message %c%c\n", e->c1, e->c2);
 			break;
-	
+
 		case 'E':	/* write to body; can't affect us */
 			break;
-	
+
 		case 'F':	/* generated by our actions; ignore */
 			break;
-	
+
 		case 'K':	/* type away; we don't care */
 			break;
-	
+
 		case 'M':
 			switch(e->c2){
 			case 'x':
@@ -597,7 +597,7 @@ mainctl(void *v)
 				if(na)
 					free(s);
 				break;
-	
+
 			case 'l':
 			case 'L':
 				buf = nil;
@@ -628,17 +628,16 @@ mainctl(void *v)
 					winwriteevent(w, e);
 				free(buf);
 				break;
-	
+
 			case 'I':	/* modify away; we don't care */
 			case 'D':
 			case 'd':
 			case 'i':
 				break;
-	
+
 			default:
 				goto Unknown;
 			}
 		}
 	}
 }
-
blob - 9bfe10e152e79b2a6b85fe7b9ae8d9fdd3a659f3
blob + 739ce10a780b003b3a83898227b8ccdb373be71c
--- src/cmd/acme/mail/mesg.c
+++ src/cmd/acme/mail/mesg.c
@@ -85,7 +85,7 @@ mkaddrs(char *t, char **colon)
 	int i, nf, inquote;
 	char **f, *s;
 	Fmt fmt;
-	
+
 	inquote = 0;
 	nf = 2;
 	for(s=t; *s; s++){
@@ -127,7 +127,7 @@ loadinfo(Message *m, char *dir)
 	data = readfile(dir, "info", &n);
 	if(data == nil)
 		return 0;
-	
+
 	p = data;
 	while((s = line(p, &p)) != nil && *s != 0){
 		t = strchr(s, ' ');
@@ -282,7 +282,7 @@ mesgadd(Message *mbox, char *dir, Dir *d, char *digest
 
 	if (m->level != 1){
 		m->recursed = 1;
-		readmbox(m, dir, m->name); 
+		readmbox(m, dir, m->name);
 	}
 	return 1;
 }
@@ -351,7 +351,7 @@ readfile(char *dir, char *name, int *np)
 		fsseek(fid, 0, 0);
 		free(d);
 		d = fsdirfstat(fid);
-	}	
+	}
 	free(file);
 	len = 0;
 	if(d != nil)
@@ -400,13 +400,13 @@ info(Message *m, int ind, int ogf)
 		i = estrdup(s);
 
 		return i;
-	} 
+	}
 
 	i = estrdup("");
 	i = eappend(i, "\t", p);
 	i = egrow(i, "\t", stripdate(m->date));
 	if(ind == 0){
-		if(strcmp(m->type, "text")!=0 && strncmp(m->type, "text/", 5)!=0 && 
+		if(strcmp(m->type, "text")!=0 && strncmp(m->type, "text/", 5)!=0 &&
 		   strncmp(m->type, "multipart/", 10)!=0)
 			i = egrow(i, "\t(", estrstrdup(m->type, ")"));
 	}else if(strncmp(m->type, "multipart/", 10) != 0)
@@ -647,7 +647,7 @@ mesgsave(Message *m, char *s, int save)
 		}
 		return 1;
 	}
-		
+
 	t = estrstrdup(mbox.name, m->name);
 	raw = readfile(t, "raw", &n);
 	unixheader = readfile(t, "unixheader", &k);
@@ -1160,7 +1160,7 @@ tokenizec(char *str, char **args, int max, char *split
 
 	if(max <= 0)
 		return 0;
-		
+
 /*	if(strchr(str, ',') || strchr(str, '"') || strchr(str, '<') || strchr(str, '(')) */
 /*		splitc = ","; */
 	for(na=0; *str != '\0';str++){
blob - 5dda0edc317be4f0634392b032b3162627ba709d
blob + f28cbef106eb62de737ca109ba7c372487290686
--- src/cmd/acme/mail/reply.c
+++ src/cmd/acme/mail/reply.c
@@ -78,7 +78,7 @@ mkreply(Message *m, char *label, char *to, Plumbattr *
 	Plumbattr *a;
 
 	quotereply = (label[0] == 'Q');
-	
+
 	if(quotereply && m && m->replywinid > 0){
 		snprint(buf, sizeof buf, "%d/body", m->replywinid);
 		if((fd = fsopen(acmefs, buf, OWRITE)) != nil){
@@ -88,7 +88,7 @@ mkreply(Message *m, char *label, char *to, Plumbattr *
 			return;
 		}
 	}
-	
+
 	r = emalloc(sizeof(Message));
 	r->isreply = 1;
 	if(m != nil)
@@ -212,7 +212,7 @@ execproc(void *v)
 	q[0] = e->q[0];
 	q[1] = e->q[1];
 	prog = e->prog;	/* known not to be malloc'ed */
-	
+
 	fd[0] = dup(p[0], -1);
 	if(q[0])
 		fd[1] = dup(q[1], -1);
@@ -224,7 +224,7 @@ execproc(void *v)
 	free(e->argv);
 	chanfree(e->sync);
 	free(e);
-	
+
 	threadexec(nil, fd, prog, argv);
 	close(fd[0]);
 	close(fd[1]);
blob - 888e7e72c8f3d3d62fd0617a0bf60fc257257f0d
blob + 8ac9f94671a9ef4ec76d85e934ecdde259f6e82f
--- src/cmd/acme/mail/util.c
+++ src/cmd/acme/mail/util.c
@@ -104,4 +104,3 @@ ctlprint(CFid *fd, char *fmt, ...)
 	if(n <= 0)
 		error("control file write error: %r");
 }
-
blob - 84c9cee0c68d39303850015451407fd11e44d4c9
blob + 1cf776dda1a3ce03ae0085f94df5d7940357b06d
--- src/cmd/acme/mail/win.c
+++ src/cmd/acme/mail/win.c
@@ -196,7 +196,7 @@ wingeter(Window *w, char *buf, int *nb)
 		while(!fullrune(buf, n))
 			buf[n++] = wingetec(w);
 		chartorune(&r, buf);
-	} 
+	}
 	*nb = n;
 	return r;
 }
blob - 8ff5884df8e3cc7aa1c8c3cbd1ef6e4792585304
blob + 09422dda077cfa755a87ba156da88fafa25cd7b1
--- src/cmd/acme/text.c
+++ src/cmd/acme/text.c
@@ -388,7 +388,7 @@ textinsert(Text *t, uint q0, Rune *r, uint n, int tofi
 					textscrdraw(u);
 				}
 			}
-					
+
 	}
 	if(q0 < t->iq1)
 		t->iq1 += n;
@@ -549,7 +549,7 @@ textbswidth(Text *t, Rune c)
 		if(r == '\n'){		/* eat at most one more character */
 			if(q == t->q0)	/* eat the newline */
 				--q;
-			break; 
+			break;
 		}
 		if(c == 0x17){
 			eq = isalnum(r);
@@ -771,7 +771,7 @@ texttype(Text *t, Rune r)
 	case Kcmd+'Z':	/* %-shift-Z: redo */
 	 	typecommit(t);
 		undo(t, nil, nil, FALSE, 0, nil, 0);
-		return;		
+		return;
 
 	Tagdown:
 		/* expand tag to show all text */
@@ -780,7 +780,7 @@ texttype(Text *t, Rune r)
 			winresize(t->w, t->w->r, FALSE, TRUE);
 		}
 		return;
-	
+
 	Tagup:
 		/* shrink tag to single line */
 		if(t->w->tagexpand){
@@ -1192,7 +1192,7 @@ void
 textsetselect(Text *t, uint q0, uint q1)
 {
 	int p0, p1, ticked;
-	
+
 	/* t->fr.p0 and t->fr.p1 are always right; t->q0 and t->q1 may be off */
 	t->q0 = q0;
 	t->q1 = q1;
@@ -1345,7 +1345,7 @@ textselect23(Text *t, uint *q0, uint *q1, Image *high,
 {
 	uint p0, p1;
 	int buts;
-	
+
 	p0 = xselect(&t->fr, mousectl, high, &p1);
 	buts = mousectl->m.buttons;
 	if((buts & mask) == 0){
@@ -1412,7 +1412,7 @@ textdoubleclick(Text *t, uint *q0, uint *q1)
 
 	if(textclickhtmlmatch(t, q0, q1))
 		return;
-	
+
 	for(i=0; left[i]!=nil; i++){
 		q = *q0;
 		l = left[i];
@@ -1444,7 +1444,7 @@ textdoubleclick(Text *t, uint *q0, uint *q1)
 			return;
 		}
 	}
-	
+
 	/* try filling out word to right */
 	while(*q1<t->file->b.nc && isalnum(textreadc(t, *q1)))
 		(*q1)++;
@@ -1518,7 +1518,7 @@ static int
 ishtmlend(Text *t, uint q, uint *q0)
 {
 	int c, c1, c2;
-	
+
 	if(q < 2)
 		return 0;
 	if(textreadc(t, --q) != '>')
@@ -1546,7 +1546,7 @@ textclickhtmlmatch(Text *t, uint *q0, uint *q1)
 {
 	int depth, n;
 	uint q, nq;
-	
+
 	q = *q0;
 	// after opening tag?  scan forward for closing tag
 	if(ishtmlend(t, q, nil) == 1) {
@@ -1583,7 +1583,7 @@ textclickhtmlmatch(Text *t, uint *q0, uint *q1)
 			q--;
 		}
 	}
-	
+
 	return 0;
 }
 
blob - dc9780954e0589e35d8cc5eb7a14b034d39534d2
blob + c153f8c180c0c2325d9b26c1b29e0f6257ba61b4
--- src/cmd/acme/util.c
+++ src/cmd/acme/util.c
@@ -132,7 +132,7 @@ errorwin(Mntdir *md, int owner)
 }
 
 /*
- * Incoming window should be locked. 
+ * Incoming window should be locked.
  * It will be unlocked and returned window
  * will be locked in its place.
  */
@@ -189,7 +189,7 @@ void
 addwarningtext(Mntdir *md, Rune *r, int nr)
 {
 	Warning *warn;
-	
+
 	for(warn = warnings; warn; warn=warn->next){
 		if(warn->md == md){
 			bufinsert(&warn->buf, warn->buf.nc, r, nr);
blob - b4f1a1cbcc530ce2ebf1f54390090ae7027c2f42
blob + 820955b0b62c63f20ffa1e4fa56d0510c07f6f8e
--- src/cmd/acme/wind.c
+++ src/cmd/acme/wind.c
@@ -97,7 +97,7 @@ windrawbutton(Window *w)
 {
 	Image *b;
 	Rectangle br;
-	
+
 	b = button;
 	if(!w->isdir && !w->isscratch && (w->body.file->mod || w->body.ncache))
 		b = modbutton;
@@ -112,7 +112,7 @@ delrunepos(Window *w)
 {
 	int n;
 	Rune rune;
-	
+
 	for(n=0; n<w->tag.file->b.nc; n++) {
 		bufread(&w->tag.file->b, n, &rune, 1);
 		if(rune == ' ')
@@ -128,7 +128,7 @@ void
 movetodel(Window *w)
 {
 	int n;
-	
+
 	n = delrunepos(w);
 	if(n < 0)
 		return;
@@ -153,7 +153,7 @@ wintaglines(Window *w, Rectangle r)
 	textresize(&w->tag, r, TRUE);
 	w->tag.fr.noredraw = 0;
 	w->tagsafe = FALSE;
-	
+
 	if(!w->tagexpand) {
 		/* use just as many lines as needed to show the Del */
 		n = delrunepos(w);
@@ -162,7 +162,7 @@ wintaglines(Window *w, Rectangle r)
 		p = subpt(frptofchar(&w->tag.fr, n), w->tag.fr.r.min);
 		return 1 + p.y / w->tag.fr.font->height;
 	}
-		
+
 	/* can't use more than we have */
 	if(w->tag.fr.nlines >= w->tag.fr.maxlines)
 		return w->tag.fr.maxlines;
@@ -224,7 +224,7 @@ winresize(Window *w, Rectangle r, int safe, int keepex
 			moveto(mousectl, p);
 		}
 	}
-	
+
 	/* If needed, resize & redraw body. */
 	r1 = r;
 	r1.min.y = y;
@@ -293,7 +293,7 @@ winunlock(Window *w)
 void
 winmousebut(Window *w)
 {
-	moveto(mousectl, addpt(w->tag.scrollr.min, 
+	moveto(mousectl, addpt(w->tag.scrollr.min,
 		divpt(Pt(Dx(w->tag.scrollr), font->height), 2)));
 }
 
@@ -673,7 +673,7 @@ winctlprint(Window *w, char *buf, int fonts)
 	sprint(buf, "%11d %11d %11d %11d %11d ", w->id, w->tag.file->b.nc,
 		w->body.file->b.nc, w->isdir, w->dirty);
 	if(fonts)
-		return smprint("%s%11d %q %11d ", buf, Dx(w->body.fr.r), 
+		return smprint("%s%11d %q %11d ", buf, Dx(w->body.fr.r),
 			w->body.reffont->f->name, w->body.fr.maxtab);
 	return buf;
 }
blob - 637ad206b3aa614a13518ad205fc42114a122fd1
blob + 8ce3748bddba0804714018cc9505d7893a434027
--- src/cmd/astro/cosadd.c
+++ src/cmd/astro/cosadd.c
@@ -17,7 +17,7 @@ cosadd(int n, ...)
 	int i;
 	double sum, a1, a2;
 	va_list arg;
-	
+
 	sum = 0;
 	cp = cacp;
 	va_start(arg, n);
blob - d5f26bfc77e01d148cfe070c9bf4f03f95e6c820
blob + 684275277949f835493d145ceb763d1375c5a4fd
--- src/cmd/auth/dsa2pub.c
+++ src/cmd/auth/dsa2pub.c
@@ -35,7 +35,7 @@ main(int argc, char **argv)
 		sysfatal("%r");
 
 	s = smprint("key %A p=%lB q=%lB alpha=%lB key=%lB\n",
-		a, 
+		a,
 		key->pub.p, key->pub.q, key->pub.alpha, key->pub.key);
 	if(s == nil)
 		sysfatal("smprint: %r");
blob - 489f2d211c61356ac8c47d184a87874558cff416
blob + 26f9ff6d0d68fc6a38346a373f36b20e84afb32e
--- src/cmd/auth/dsa2ssh.c
+++ src/cmd/auth/dsa2ssh.c
@@ -18,7 +18,7 @@ main(int argc, char **argv)
 	DSApriv *k;
 	char *comment;
 	uchar buf[8192], *p;
-	
+
 	fmtinstall('B', mpfmt);
 	fmtinstall('[', encodefmt);
 	comment = "";
blob - cb618edee3e3c56a9c395637c4a1931ec6bcd6ca
blob + d938cf5ddff81ffc4f7da5cb86258417eb7a0df5
--- src/cmd/auth/dsagen.c
+++ src/cmd/auth/dsagen.c
@@ -43,6 +43,6 @@ main(int argc, char **argv)
 
 	if(write(1, s, strlen(s)) != strlen(s))
 		sysfatal("write: %r");
-	
+
 	exits(nil);
 }
blob - 913385f9a6bd5608fe72464596c5bc420c2c62e9
blob + 594e84e2863c1abdcdcb4990a1b117e3781bc097
--- src/cmd/auth/dsasign.c
+++ src/cmd/auth/dsasign.c
@@ -30,10 +30,10 @@ threadmain(int argc, char **argv)
 	uchar digest[SHA1dlen];
 	AuthRpc *rpc;
 	Fmt fmt;
-	
+
 	fmtinstall('[', encodefmt);
 	fmtinstall('H', encodefmt);
-	
+
 	verify = 0;
 	id = "";
 	ARGBEGIN{
@@ -46,7 +46,7 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 1)
 		usage();
 	key = argv[0];
@@ -68,7 +68,7 @@ threadmain(int argc, char **argv)
 		auth_freerpc(rpc);
 		threadexits("rpc");
 	}
-	
+
 	print("+%s\n", id);
 
 	Binit(&b, 0, OREAD);
@@ -96,7 +96,7 @@ keytomp(Attr *a, char *name)
 {
 	char *p;
 	mpint *m;
-	
+
 	p = _strfindattr(a, name);
 	if(p == nil)
 		sysfatal("missing key attribute %s", name);
@@ -117,7 +117,7 @@ doVerify(void)
 	Attr *a;
 	DSAsig dsig;
 	DSApub dkey;
-	
+
 	a = _parseattr(key);
 	if(a == nil)
 		sysfatal("invalid key");
@@ -159,7 +159,7 @@ end:
 
 	if(dsaverify(&dkey, &dsig, betomp(digest, sizeof digest, nil)) < 0)
 		sysfatal("signature failed to verify: %r");
-	
+
 	write(1, text, strlen(text));
 	threadexitsall(0);
 }
@@ -169,7 +169,7 @@ getline(int *np)
 {
 	char *p;
 	int n;
-	
+
 	if((p = Brdline(&b, '\n')) == nil)
 		return nil;
 	n = Blinelen(&b);
blob - 992cc0ad1283140bafda1980db15d45faa0564a9
blob + d3d8c95ac646b1ba259bd50201c4332ea0017ab2
--- src/cmd/auth/factotum/apop.c
+++ src/cmd/auth/factotum/apop.c
@@ -10,7 +10,7 @@
  *	S -> C:	ok
  *
  * Note that this is the protocol between factotum and the local
- * program, not between the two factotums.  The information 
+ * program, not between the two factotums.  The information
  * exchanged here is wrapped in the APOP protocol by the local
  * programs.
  *
@@ -42,7 +42,7 @@ apopclient(Conv *c)
 	Attr *attr;
 	DigestState *ds;
 	Key *k;
-	
+
 	chal = nil;
 	k = nil;
 	res = nil;
@@ -328,7 +328,7 @@ apopresp(ServerState *s, char *user, char *resp)
 }
 
 static Role
-apoproles[] = 
+apoproles[] =
 {
 	"client",	apopclient,
 	"server",	apopserver,
@@ -350,4 +350,3 @@ Proto cram = {
 	apopcheck,
 	nil
 };
-
blob - 1c037a5366f09f1939d948b214916d3d7f45329b
blob + 25a4615991beb80a6bb3d79799b80c76a5b15471
--- src/cmd/auth/factotum/attr.c
+++ src/cmd/auth/factotum/attr.c
@@ -53,7 +53,7 @@ addattrs(Attr *a, Attr *b)
 			break;
 		}
 	}
-	return a;		
+	return a;
 }
 
 void
@@ -201,7 +201,7 @@ matchattr(Attr *pat, Attr *a0, Attr *a1)
 			break;
 		}
 	}
-	return 1;		
+	return 1;
 }
 
 Attr*
blob - fa44db96b2ee9daac328aa5c03be542a31e5dd86
blob + d4fee3c4c19ab606cc3d674a0e76e70ca46da41e
--- src/cmd/auth/factotum/chap.c
+++ src/cmd/auth/factotum/chap.c
@@ -1,6 +1,6 @@
 /*
  * CHAP, MSCHAP
- * 
+ *
  * The client does not authenticate the server, hence no CAI
  *
  * Protocol:
@@ -51,7 +51,7 @@ nthash(uchar hash[MShashlen], char *passwd)
 {
 	uchar buf[512];
 	int i;
-	
+
 	for(i=0; *passwd && i<sizeof(buf); passwd++) {
 		buf[i++] = *passwd;
 		buf[i++] = 0;
@@ -96,7 +96,7 @@ mschalresp(uchar resp[MSresplen], uchar hash[MShashlen
 {
 	int i;
 	uchar buf[21];
-	
+
 	memset(buf, 0, sizeof(buf));
 	memcpy(buf, hash, MShashlen);
 
@@ -404,7 +404,7 @@ chapresp(ServerState *s, char *user, char *resp)
 }
 
 static Role
-chaproles[] = 
+chaproles[] =
 {
 	"client",	chapclient,
 	"server",	chapserver,
@@ -424,5 +424,3 @@ Proto mschap = {
 	"user? !password?",
 	chapcheck
 };
-
-
blob - 3a8cf590d904bc21fc22eba2b3195e1adf719beb
blob + 090a5ad3cddf6edac94dfabb5762850ab57ad626
--- src/cmd/auth/factotum/conv.c
+++ src/cmd/auth/factotum/conv.c
@@ -268,4 +268,3 @@ convbadkey(Conv *c, Key *k, char *msg, Attr *a)
 		return -1;
 	return 0;
 }
-
blob - 46399049ec119cd108957901b26aa9cdc2657030
blob + 64c4c9806f6bafb66725563bcfe923ef39c66be7
--- src/cmd/auth/factotum/cpu.c
+++ src/cmd/auth/factotum/cpu.c
@@ -168,7 +168,7 @@ main(int argc, char **argv)
 	/* start up a process to pass along notes */
 	lclnoteproc(data);
 
-	/* 
+	/*
 	 *  Wait for the other end to execute and start our file service
 	 *  of /mnt/term
 	 */
@@ -246,7 +246,7 @@ old9p(int fd)
 		close(fd);
 		close(p[0]);
 	}
-	return p[1];	
+	return p[1];
 }
 
 /* Invoked with stdin, stdout and stderr connected to the network connection */
@@ -392,7 +392,7 @@ readstr(int fd, char *str, int len)
 
 	while(len) {
 		n = read(fd, str, 1);
-		if(n < 0) 
+		if(n < 0)
 			return -1;
 		if(*str == '\0')
 			return 0;
@@ -659,7 +659,7 @@ rmtnoteproc(void)
 			syslog(0, "cpu", "cpu -R: can't open %s", rmtnotefile);
 			_exits(0);
 		}
-	
+
 		for(;;){
 			n = read(fd, buf, sizeof(buf)-1);
 			if(n <= 0){
blob - 49377f40192e6c37f25094ecd5cd347bad3830f6
blob + db4a3b1e03845d4a3f2960f86888a3b8ed60a58f
--- src/cmd/auth/factotum/dat.h
+++ src/cmd/auth/factotum/dat.h
@@ -57,7 +57,7 @@ struct Conv
 	Req *req;				/* 9P call to read response */
 
 	Channel *keywait;	/* wait here for key confirmation */
-	
+
 };
 
 struct Key
blob - ced10355f3d448107392334c409b238979779bb4
blob + aa67881eb05ff3b9378ccadb3cbffb83cb39df91
--- src/cmd/auth/factotum/dsa.c
+++ src/cmd/auth/factotum/dsa.c
@@ -3,7 +3,7 @@
 
 /*
  * DSA signing and verification
- * 
+ *
  * Sign:
  *	start p=xxx q=xxx alpha=xxx key=xxx
  *	write msg
@@ -14,10 +14,10 @@
  *	write msg
  *	write signature(msg)
  *	read ok or fail
- * 
+ *
  * all numbers are hexadecimal bigints parsable with strtomp.
  */
- 
+
 static int
 xdsasign(Conv *c)
 {
@@ -58,7 +58,7 @@ xdsasign(Conv *c)
 }
 
 /*
- * convert to canonical form (lower case) 
+ * convert to canonical form (lower case)
  * for use in attribute matches.
  */
 static void
@@ -78,11 +78,11 @@ readdsapriv(Key *k)
 
 	priv = dsaprivalloc();
 
-	if((a=strfindattr(k->attr, "p"))==nil 
+	if((a=strfindattr(k->attr, "p"))==nil
 	|| (priv->pub.p=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->attr, "q"))==nil 
+	if((a=strfindattr(k->attr, "q"))==nil
 	|| (priv->pub.q=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
@@ -90,15 +90,15 @@ readdsapriv(Key *k)
 		werrstr("dsa: p or q not prime");
 		goto Error;
 	}
-	if((a=strfindattr(k->attr, "alpha"))==nil 
+	if((a=strfindattr(k->attr, "alpha"))==nil
 	|| (priv->pub.alpha=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->attr, "key"))==nil 
+	if((a=strfindattr(k->attr, "key"))==nil
 	|| (priv->pub.key=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->privattr, "!secret"))==nil 
+	if((a=strfindattr(k->privattr, "!secret"))==nil
 	|| (priv->secret=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
@@ -113,7 +113,7 @@ static int
 dsacheck(Key *k)
 {
 	static int first = 1;
-	
+
 	if(first){
 		fmtinstall('B', mpfmt);
 		first = 0;
@@ -134,7 +134,7 @@ dsaclose(Key *k)
 }
 
 static Role
-dsaroles[] = 
+dsaroles[] =
 {
 	"sign",	xdsasign,
 	0
@@ -147,4 +147,3 @@ Proto dsa = {
 	dsacheck,
 	dsaclose
 };
-
blob - fd89b2c28fb4425a58ae9529e1ecf82d78ce7c85
blob + 811bd5b045dfa9a05d2434876d583a0c42e71ad7
--- src/cmd/auth/factotum/fs.c
+++ src/cmd/auth/factotum/fs.c
@@ -65,7 +65,7 @@ rootdirgen(int n, Dir *dir, void *v)
 
 	if(n > 0)
 		return -1;
-	
+
 	fillstat(dir, factname, QTDIR, Qfactotum, DMDIR|0555);
 	return 0;
 }
@@ -224,7 +224,7 @@ convlist(int i, char *a, uint nn)
 	memmove(a, buf, n);
 	return n;
 }
-	
+
 static void
 fskickreply(Conv *c)
 {
@@ -250,7 +250,7 @@ fskickreply(Conv *c)
 	respond(r, nil);
 	c->nreply = 0;
 }
-		
+
 /*
  * Some of the file system work happens in the fs proc, but
  * fsopen, fsread, fswrite, fsdestroyfid, and fsflush happen in
@@ -305,7 +305,7 @@ fsopen(Req *r)
 		c->kickreply = fskickreply;
 		r->fid->aux = c;
 	}
-	
+
 	respond(r, nil);
 }
 
@@ -538,4 +538,3 @@ fsinit0(void)
 	fs.destroyfid = fssendclunk;
 	fs.start = fsstart;
 }
-
blob - 3e299bf5e35906ea954d330c330ac26dc3bf4263
blob + 1e9d5793f54f26c324d9a436ffd118729b9fd7bd
--- src/cmd/auth/factotum/httpdigest.c
+++ src/cmd/auth/factotum/httpdigest.c
@@ -2,7 +2,7 @@
  * HTTPDIGEST - MD5 challenge/response authentication (RFC 2617)
  *
  * Client protocol:
- *	write challenge: nonce method uri 
+ *	write challenge: nonce method uri
  *	read response: 2*MD5dlen hex digits
  *
  * Server protocol:
@@ -22,10 +22,10 @@ hdclient(Conv *c)
 	char *realm, *passwd, *user, *f[4], *s, resp[MD5dlen*2+1];
 	int ret;
 	Key *k;
-	
+
 	ret = -1;
 	s = nil;
-	
+
 	c->state = "keylookup";
 	k = keyfetch(c, "%A", c->attr);
 	if(k == nil)
@@ -45,7 +45,7 @@ hdclient(Conv *c)
 	digest(user, realm, passwd, f[0], f[1], f[2], resp);
 	convwrite(c, resp, strlen(resp));
 	ret = 0;
-	
+
 out:
 	free(s);
 	keyclose(k);
@@ -103,7 +103,7 @@ digest(char *user, char *realm, char *passwd,
 	strtolower(dig);
 }
 
-static Role hdroles[] = 
+static Role hdroles[] =
 {
 	"client",	hdclient,
 	0
blob - 9df50eb31cd780ba51bc31d1bb33f58d826c6e09
blob + 817df97bbeb2569bad31d0f15bff5dc3408d6416
--- src/cmd/auth/factotum/key.c
+++ src/cmd/auth/factotum/key.c
@@ -161,7 +161,7 @@ keyreplace(Conv *c, Key *k, char *fmt, ...)
 		sysfatal("out of memory");
 	va_end(arg);
 
-	/* replace prompted values with prompts */	
+	/* replace prompted values with prompts */
 	a = copyattr(k->attr);
 	bp = parseattr(k->proto->keyprompt);
 	for(b=bp; b; b=b->next){
@@ -204,7 +204,7 @@ keyevict(Conv *c, Key *k, char *fmt, ...)
 		sysfatal("out of memory");
 	va_end(arg);
 
-	/* replace prompted values with prompts */	
+	/* replace prompted values with prompts */
 	a = copyattr(k->attr);
 	bp = parseattr(k->proto->keyprompt);
 	for(b=bp; b; b=b->next){
blob - 4d29536b06850619d7d248f5a81e8d97a35872ec
blob + e644028ad395c0b7df1136aa1702fb1302972606
--- src/cmd/auth/factotum/log.c
+++ src/cmd/auth/factotum/log.c
@@ -118,4 +118,3 @@ flog(char *fmt, ...)
 	lbvappend(&logbuf, fmt, arg);
 	va_end(arg);
 }
-
blob - 1f603ac7a0e6ed9218f29ae4ac36caaca18b5713
blob + b3ace12c41e976d0e1ea2bf7889b0073ad6eb874
--- src/cmd/auth/factotum/main.c
+++ src/cmd/auth/factotum/main.c
@@ -142,7 +142,7 @@ sendkey(Attr *attr)
 	int rv;
 	char buf[8192];
 	CFid *fid;
-	
+
 	fid = nsopen("factotum", nil, "ctl", OWRITE);
 	if(fid == nil)
 		sysfatal("opening factotum/ctl: %r");
blob - 0267a6164717a68000c578b20fe517428d7fbd4d
blob + 079eed942ff3415fd28dca458a5110f0103a39c3
--- src/cmd/auth/factotum/p9any.c
+++ src/cmd/auth/factotum/p9any.c
@@ -9,7 +9,7 @@
  *	C->S: proto dom NUL
  *	[negotiated proto continues]
  */
- 
+
 extern Proto p9sk1, p9sk2, p9cr;
 
 static Proto* okproto[] =
@@ -111,7 +111,7 @@ p9anyserver(Conv *c)
 	}
 
 	ret = 0;
-	
+
 out:
 	free(s);
 	freeattr(attr);
@@ -222,7 +222,7 @@ found:
 	/* f[i] is the chosen protocol, q the chosen domain */
 	attr = addattr(attr, "proto=%q dom=%q", f[i], q);
 	c->state = "write choice";
-	
+
 	/* have a key: go for it */
 	choice = estrappend(nil, "%q %q", f[i], q);
 	if(convwrite(c, choice, strlen(choice)+1) < 0){
@@ -258,7 +258,7 @@ out:
 }
 
 static Role
-p9anyroles[] = 
+p9anyroles[] =
 {
 	"client",	p9anyclient,
 	"server",	p9anyserver,
@@ -269,4 +269,3 @@ Proto p9any = {
 	"p9any",
 	p9anyroles
 };
-
blob - 1c3f21e1940bddd1940dd0ca5eaf0c9a019d93bc
blob + 4f181e98127d5385602d2d30911c29c83950c110
--- src/cmd/auth/factotum/p9cr.c
+++ src/cmd/auth/factotum/p9cr.c
@@ -9,7 +9,7 @@
  *	S -> C: ok or bad
  *
  * Note that this is the protocol between factotum and the local
- * program, not between the two factotums.  The information 
+ * program, not between the two factotums.  The information
  * exchanged here is wrapped in other protocols by the local
  * programs.
  */
@@ -317,7 +317,7 @@ p9crresp(ServerState *s, uchar *resp, int resplen)
 
 static int
 p9response(char *pw, uchar *chal, uchar *resp)
-{	
+{
 	char key[DESKEYLEN];
 	uchar buf[8];
 	ulong x;
@@ -338,7 +338,7 @@ static int
 vncresponse(char *pw, uchar *chal, uchar *resp)
 {
 	DESstate des;
-	
+
 	memmove(resp, chal, MAXCHAL);
 	setupDESstate(&des, 0, nil);  // XXX put key in for 0
 	desECBencrypt(resp, MAXCHAL, &des);
blob - 0a79a361bede4c53d0a41afc1f9341652b6c84aa
blob + d2d7eb89543ba7f977d88a241eae315c5084e8f6
--- src/cmd/auth/factotum/p9sk1.c
+++ src/cmd/auth/factotum/p9sk1.c
@@ -93,7 +93,7 @@ p9skclient(Conv *c)
 		k = keyfetch(c, "%A", a);
 		if(k == nil)
 			goto out;
-		
+
 		/* relay ticket request to auth server, get tickets */
 		strcpy(tr.hostid, strfindattr(k->attr, "user"));
 		if(speakfor)
@@ -329,7 +329,7 @@ p9sk1close(Key *k)
 }
 
 static Role
-p9sk1roles[] = 
+p9sk1roles[] =
 {
 	"client",	p9skclient,
 	"server",	p9skserver,
@@ -337,7 +337,7 @@ p9sk1roles[] = 
 };
 
 static Role
-p9sk2roles[] = 
+p9sk2roles[] =
 {
 	"client",	p9skclient,
 	"server",	p9skserver,
@@ -356,4 +356,3 @@ Proto p9sk2 = {
 	"p9sk2",
 	p9sk2roles
 };
-
blob - 453045ce820b9b98e3daf8539f62619d65dec2c6
blob + ddda95964f5fa24621958d68615af57e0ce2f2e9
--- src/cmd/auth/factotum/pass.c
+++ src/cmd/auth/factotum/pass.c
@@ -15,12 +15,12 @@ static int
 passproto(Conv *c)
 {
 	Key *k;
-	
+
 	k = keyfetch(c, "%A", c->attr);
 	if(k == nil)
 		return -1;
 	c->state = "write";
-	convprint(c, "%q %q", 
+	convprint(c, "%q %q",
 		strfindattr(k->attr, "user"),
 		strfindattr(k->privattr, "!password"));
 	return 0;
blob - f3278454cdf0fef9a405da7cd942f2b37df9238e
blob + 0e116f2dea91670f0bbf950d7130df6e85df1e8f
--- src/cmd/auth/factotum/pkcs1.c
+++ src/cmd/auth/factotum/pkcs1.c
@@ -12,7 +12,7 @@
  *
  * We sign hashes of messages instead of the messages
  * themselves.
- * 
+ *
  * The hashes are encoded in ASN.1 DER to identify
  * the signature type, and then prefixed with 0x01 PAD 0x00
  * where PAD is as many 0xFF bytes as desired.
@@ -138,7 +138,7 @@ mptoberjust(mpint *b, uchar *buf, uint len)
 #define O3(x)	\
 	(((x)>>14)&0x7F)|0x80, \
 	(((x)>>7)&0x7F)|0x80, \
-	((x)&0x7F)	
+	((x)&0x7F)
 uchar oidsha1[] = { O0(1, 3), 14, 3, 2, 26 };
 uchar oidmd2[] = { O0(1, 2), O2(840), O3(113549), 2, 2 };
 uchar oidmd5[] = { O0(1, 2), O2(840), O3(113549), 2, 5 };
@@ -174,11 +174,11 @@ mkasn1(uchar *asn1, DigestAlg *alg, uchar *d, uint dle
 		sysfatal("bad alg in mkasn1");
 		return -1;
 	}
-	
+
 	p = asn1;
 	*p++ = 0x30;	/* sequence */
 	p++;
-	
+
 	*p++ = 0x30;	/* another sequence */
 	p++;
 
@@ -186,12 +186,12 @@ mkasn1(uchar *asn1, DigestAlg *alg, uchar *d, uint dle
 	*p++ = olen;
 	memmove(p, obj, olen);
 	p += olen;
-	
+
 	*p++ = 0x05;	/* null */
 	*p++ = 0;
-	
+
 	asn1[3] = p - (asn1+4);	/* end of inner sequence */
-	
+
 	*p++ = 0x04;	/* octet string */
 	*p++ = dlen;
 	memmove(p, d, dlen);
@@ -200,4 +200,3 @@ mkasn1(uchar *asn1, DigestAlg *alg, uchar *d, uint dle
 	asn1[1] = p - (asn1+2);	/* end of outer sequence */
 	return p-asn1;
 }
-
blob - ad894330731d63abd907b1ba722ff20d0fde152e
blob + 26d5fd4b8c7ce6dae640438367cf4189b1fbf895
--- src/cmd/auth/factotum/rpc.c
+++ src/cmd/auth/factotum/rpc.c
@@ -32,7 +32,7 @@
  *	done [haveai] - authentication is done [haveai: you can get an ai with authinfo]
  */
 
-char *rpcname[] = 
+char *rpcname[] =
 {
 	"unknown",
 	"authinfo",
@@ -196,7 +196,7 @@ rpcexec(Conv *c)
 			rpcrespond(c, "error conversation not successful");
 		else{
 			/* make up an auth info using the attr */
-			p = convAI2M((uchar*)c->reply+3, sizeof c->reply-3, 
+			p = convAI2M((uchar*)c->reply+3, sizeof c->reply-3,
 				strfindattr(c->attr, "cuid"),
 				strfindattr(c->attr, "suid"),
 				strfindattr(c->attr, "cap"),
@@ -341,4 +341,3 @@ convAI2M(uchar *p, int n, char *cuid, char *suid, char
 		werrstr("authinfo too big");
 	return p;
 }
-
blob - 95545f931a2decbdc5a249e3bfbdc39dc5f5c39c
blob + e59feaab15450513f5b712e6583b88e6d3ce5685
--- src/cmd/auth/factotum/rsa.c
+++ src/cmd/auth/factotum/rsa.c
@@ -3,7 +3,7 @@
 
 /*
  * RSA authentication.
- * 
+ *
  * Encrypt/Decrypt:
  *	start n=xxx ek=xxx
  *	write msg
@@ -13,7 +13,7 @@
  *	start n=xxx ek=xxx
  *	write hash(msg)
  *	read signature(hash(msg))
- * 
+ *
  * Verify:
  *	start n=xxx ek=xxx
  *	write hash(msg)
@@ -44,14 +44,14 @@ xrsadecrypt(Conv *c)
 	if(k == nil)
 		goto out;
 	key = k->priv;
-	
+
 	/* make sure have private half if needed */
 	role = strfindattr(c->attr, "role");
 	if(strcmp(role, "decrypt") == 0 && !key->c2){
 		werrstr("missing private half of key -- cannot decrypt");
 		goto out;
 	}
-	
+
 	/* read text */
 	c->state = "read";
 	if((n=convreadm(c, &txt)) < 0)
@@ -60,7 +60,7 @@ xrsadecrypt(Conv *c)
 		convprint(c, "data too short");
 		goto out;
 	}
-	
+
 	/* encrypt/decrypt */
 	m = betomp((uchar*)txt, n, nil);
 	if(m == nil)
@@ -72,7 +72,7 @@ xrsadecrypt(Conv *c)
 	if(mm == nil)
 		goto out;
 	n = mptobe(mm, (uchar*)buf, sizeof buf, nil);
-	
+
 	/* send response */
 	c->state = "write";
 	convwrite(c, buf, n);
@@ -98,7 +98,7 @@ xrsasign(Conv *c)
 	char *sig2;
 
 	ret = -1;
-	
+
 	/* fetch key */
 	c->state = "keylookup";
 	k = keylookup("%A", c->attr);
@@ -112,7 +112,7 @@ xrsasign(Conv *c)
 		werrstr("missing private half of key -- cannot sign");
 		goto out;
 	}
-	
+
 	/* get hash type from key */
 	hash = strfindattr(k->attr, "hash");
 	if(hash == nil)
@@ -144,7 +144,7 @@ xrsasign(Conv *c)
 		/* read signature */
 		if((n = convreadm(c, &sig2)) < 0)
 			goto out;
-			
+
 		/* verify */
 		if(rsaverify(&key->pub, hashfn, digest, dlen, (uchar*)sig2, n) == 0)
 			convprint(c, "ok");
@@ -160,7 +160,7 @@ out:
 }
 
 /*
- * convert to canonical form (lower case) 
+ * convert to canonical form (lower case)
  * for use in attribute matches.
  */
 static void
@@ -180,22 +180,22 @@ readrsapriv(Key *k)
 
 	priv = rsaprivalloc();
 
-	if((a=strfindattr(k->attr, "ek"))==nil 
+	if((a=strfindattr(k->attr, "ek"))==nil
 	|| (priv->pub.ek=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->attr, "n"))==nil 
+	if((a=strfindattr(k->attr, "n"))==nil
 	|| (priv->pub.n=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
 	if(k->privattr == nil)	/* only public half */
 		return priv;
 
-	if((a=strfindattr(k->privattr, "!p"))==nil 
+	if((a=strfindattr(k->privattr, "!p"))==nil
 	|| (priv->p=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->privattr, "!q"))==nil 
+	if((a=strfindattr(k->privattr, "!q"))==nil
 	|| (priv->q=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
@@ -203,19 +203,19 @@ readrsapriv(Key *k)
 		werrstr("rsa: p or q not prime");
 		goto Error;
 	}
-	if((a=strfindattr(k->privattr, "!kp"))==nil 
+	if((a=strfindattr(k->privattr, "!kp"))==nil
 	|| (priv->kp=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->privattr, "!kq"))==nil 
+	if((a=strfindattr(k->privattr, "!kq"))==nil
 	|| (priv->kq=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->privattr, "!c2"))==nil 
+	if((a=strfindattr(k->privattr, "!c2"))==nil
 	|| (priv->c2=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
-	if((a=strfindattr(k->privattr, "!dk"))==nil 
+	if((a=strfindattr(k->privattr, "!dk"))==nil
 	|| (priv->dk=strtomp(a, nil, 16, nil))==nil)
 		goto Error;
 	strlwr(a);
@@ -230,7 +230,7 @@ static int
 rsacheck(Key *k)
 {
 	static int first = 1;
-	
+
 	if(first){
 		fmtinstall('B', mpfmt);
 		first = 0;
@@ -251,7 +251,7 @@ rsaclose(Key *k)
 }
 
 static Role
-rsaroles[] = 
+rsaroles[] =
 {
 	"sign",	xrsasign,
 	"verify",	xrsasign,	/* public operation */
blob - c17c3cf2784b6d1b5334e142e21b3887c6963bfe
blob + 9928d3610771c226fcf6ae023ba6ce0f0b441b06
--- src/cmd/auth/factotum/secstore.c
+++ src/cmd/auth/factotum/secstore.c
@@ -659,4 +659,3 @@ Out:
 		free(sta);
 	return rv;
 }
-
blob - 814664e0fb482cf11e5da201fb5f5c63d6b5b17a
blob + 52c55b7c8a60a3076c286b10981fd64c7cb38e3a
--- src/cmd/auth/factotum/std.h
+++ src/cmd/auth/factotum/std.h
@@ -7,4 +7,3 @@
 #include <thread.h>
 #include <fcall.h>
 #include <9p.h>
-
blob - accddddde1c0aa943d3437aa04dad9a03e7658ad
blob + dce37dca7970c24288937cf08c6ea0f8eaa05876
--- src/cmd/auth/factotum/util.c
+++ src/cmd/auth/factotum/util.c
@@ -50,5 +50,3 @@ estrappend(char *s, char *fmt, ...)
 	free(t);
 	return s;
 }
-
-
blob - 1d516db288bd3f166fe2a1b15ab520449b501fea
blob + 701018e776006662de0cc4c78ce27622f8881cff
--- src/cmd/auth/factotum/wep.c
+++ src/cmd/auth/factotum/wep.c
@@ -11,11 +11,11 @@ wepclient(Conv *c)
 	char *dev, buf[128], *p, *kp;
 	Key *k;
 	int ret, fd, cfd;
-	
+
 	fd = cfd = -1;
 	ret = -1;
 	dev = nil;
-	
+
 	if((k = keylookup("%A !key1?", c->attr)) == nil
 	&& (k = keylookup("%A !key2?", c->attr)) == nil
 	&& (k = keylookup("%A !key3?", c->attr)) == nil){
@@ -73,7 +73,7 @@ static Role weproles[] = {
 	0
 };
 
-Proto wep = 
+Proto wep =
 {
 	"wep",
 	weproles,
blob - 2e6b141b0cae8629e25e8d5bb0bb35b907400ca3
blob + 116fccaf58e13110bda2bb376a4535efe590d560
--- src/cmd/auth/factotum/xio.c
+++ src/cmd/auth/factotum/xio.c
@@ -9,7 +9,7 @@ xioproc(void)
 {
 	Ioproc *c;
 	int i;
-	
+
 	for(i=0; i<ncache; i++){
 		if(c = cache[i]){
 			cache[i] = nil;
@@ -162,4 +162,3 @@ xioasgetticket(int fd, char *trbuf, char *tbuf)
 		n = 0;
 	return n;
 }
-
blob - da23638fab5d11d0f31ac3aa08a68eeb516d71b2
blob + 0b5e0453b979ff797ea63a2f2fff6b9410ad6fa0
--- src/cmd/auth/passwd.c
+++ src/cmd/auth/passwd.c
@@ -41,7 +41,7 @@ void
 readln(char *prompt, char *buf, int nbuf, int secret)
 {
 	char *p;
-	
+
 	p = readcons(prompt, nil, secret);
 	if(p == nil)
 		sysfatal("user terminated input");
blob - c6634220be48873a137fab5696a8d94989a54963
blob + 68f9d400c32d9eb064ccb01d9022ce47272f25e0
--- src/cmd/auth/respond.c
+++ src/cmd/auth/respond.c
@@ -30,5 +30,3 @@ main(int argc, char **argv)
 	write(1, buf, n);
 	print("\n");
 }
-
-	
\ No newline at end of file
blob - 8538ac38856f53970033dba431baca79b80df597
blob + e306cdeca72405578efbfe6efc5300e2b80eeae4
--- src/cmd/auth/rsa2any.c
+++ src/cmd/auth/rsa2any.c
@@ -109,27 +109,27 @@ getkey(int argc, char **argv, int needprivate, Attr **
 	}
 	if((key->kp = strtomp(p, &p, 16, nil)) == nil || *p != 0){
 		fprint(2, "warning: bad !kp\n");
-		regen = 1;	
+		regen = 1;
 		goto regen;
 	}
 	if((p = _strfindattr(a, "!kq")) == nil){
 		fprint(2, "warning: no !kq\n");
-		regen = 1;	
+		regen = 1;
 		goto regen;
 	}
 	if((key->kq = strtomp(p, &p, 16, nil)) == nil || *p != 0){
 		fprint(2, "warning: bad !kq\n");
-		regen = 1;	
+		regen = 1;
 		goto regen;
 	}
 	if((p = _strfindattr(a, "!c2")) == nil){
 		fprint(2, "warning: no !c2\n");
-		regen = 1;	
+		regen = 1;
 		goto regen;
 	}
 	if((key->c2 = strtomp(p, &p, 16, nil)) == nil || *p != 0){
 		fprint(2, "warning: bad !c2\n");
-		regen = 1;	
+		regen = 1;
 		goto regen;
 	}
 regen:
@@ -285,7 +285,7 @@ uchar*
 putmp2(uchar *p, mpint *b)
 {
 	int bits, n;
-	
+
 	if(mpcmp(b, mpzero) == 0)
 		return put4(p, 0);
 	bits = mpsignif(b);
blob - c0a208a72af18d821d7dcc029bd87b83dc4876ff
blob + e45c04915a92c636a9f134ac55b751e9483d3e58
--- src/cmd/auth/rsa2pub.c
+++ src/cmd/auth/rsa2pub.c
@@ -35,7 +35,7 @@ main(int argc, char **argv)
 		sysfatal("%r");
 
 	s = smprint("key %A size=%d ek=%lB n=%lB\n",
-		a, 
+		a,
 		mpsignif(key->pub.n), key->pub.ek, key->pub.n);
 	if(s == nil)
 		sysfatal("smprint: %r");
blob - 3de2792e33043bf3abe7a6cd2e1fb9174e966337
blob + 9951106b6012dfa2fd05f76517eff3772fc2d854
--- src/cmd/auth/rsa2ssh.c
+++ src/cmd/auth/rsa2ssh.c
@@ -19,7 +19,7 @@ main(int argc, char **argv)
 {
 	RSApriv *k;
 	char *comment;
-	
+
 	fmtinstall('B', mpfmt);
 	fmtinstall('[', encodefmt);
 	comment = "";
@@ -42,7 +42,7 @@ main(int argc, char **argv)
 
 	if(ssh2){
 		uchar buf[8192], *p;
-		
+
 		p = buf;
 		p = put4(p, 7);
 		p = putn(p, "ssh-rsa", 7);
blob - 08cb85998975460922846f9b2f4d3a19cfb77223
blob + efab877e2500789d444093dbf45089cbf09075de
--- src/cmd/auth/rsafill.c
+++ src/cmd/auth/rsafill.c
@@ -35,7 +35,7 @@ main(int argc, char **argv)
 		sysfatal("%r");
 
 	s = smprint("key %A size=%d ek=%lB !dk=%lB n=%lB !p=%lB !q=%lB !kp=%lB !kq=%lB !c2=%lB\n",
-		a, 
+		a,
 		mpsignif(key->pub.n), key->pub.ek,
 		key->dk, key->pub.n, key->p, key->q,
 		key->kp, key->kq, key->c2);
blob - d51560b6350c944a667eb3eec61d9c72a3981440
blob + 2ca99d3498136986c7a0ebaa64be2d2c6e26b9da
--- src/cmd/auth/rsagen.c
+++ src/cmd/auth/rsagen.c
@@ -55,6 +55,6 @@ main(int argc, char **argv)
 
 	if(write(1, s, strlen(s)) != strlen(s))
 		sysfatal("write: %r");
-	
+
 	exits(nil);
 }
blob - 07e92327b732d2a66e115aae0f639bd0fb8ba7f2
blob + 9ffb3d93543607e290f312b7f8a04dd73a5d44b0
--- src/cmd/auth/secstore/SConn.c
+++ src/cmd/auth/secstore/SConn.c
@@ -211,4 +211,3 @@ readstr(SConn *conn, char *s)
 	}
 	return n;
 }
-
blob - 31765f3ecc4dff853258aec872c101453f80cdc0
blob + 09ddb637f383c4818ba36fff529ff087ce43f718
--- src/cmd/auth/secstore/SConn.h
+++ src/cmd/auth/secstore/SConn.h
@@ -23,4 +23,3 @@ extern int readstr(SConn*, char*);  /* call with buf o
 extern void *emalloc(ulong); /* dies on failure; clears memory */
 extern void *erealloc(void *, ulong);
 extern char *estrdup(char *);
-
blob - eaae8cdc99547c4ae0e416b1414ba5a6f3916c92
blob + 39542a52c6f5c0b2fde255c80525baf48307be3a
--- src/cmd/auth/secstore/dirls.c
+++ src/cmd/auth/secstore/dirls.c
@@ -84,4 +84,3 @@ dirls(char *path)
 	free(dirbuf);
 	return list;
 }
-
blob - effc01d9f5bb985ca44a4974dfa4ce8fe13d52af
blob + 1f1a09c5b483c338482ad6fd2dead8bb4887c87c
--- src/cmd/auth/secstore/pak.c
+++ src/cmd/auth/secstore/pak.c
@@ -341,4 +341,3 @@ done:
 	mpfree(H);
 	return rc;
 }
-
blob - b2a00e724f989e031bc25808ee8b767da81528e8
blob + c9e63d19ae5387f60206c061e82dc34151a90571
--- src/cmd/auth/secstore/password.c
+++ src/cmd/auth/secstore/password.c
@@ -133,4 +133,3 @@ freePW(PW *pw)
 	mpfree(pw->Hi);
 	free(pw);
 }
-
blob - 571c6fae465b346253b80ec1b54cc8157478a602
blob + 2b33e5d4ee0f5bc644b6219df4e3b7c0e02a989b
--- src/cmd/auth/secstore/secstore.c
+++ src/cmd/auth/secstore/secstore.c
@@ -85,7 +85,7 @@ getfile(SConn *conn, char *gf, uchar **buf, ulong *buf
 		return 0;
 	}
 
-	/* conn is already encrypted against wiretappers, 
+	/* conn is already encrypted against wiretappers,
 		but gf is also encrypted against server breakin. */
 	if(buf == nil && (fd =create(gf, OWRITE, 0600)) < 0){
 		fprint(2, "can't open %s: %r\n", gf);
@@ -197,7 +197,7 @@ putfile(SConn *conn, char *pf, uchar *buf, ulong len, 
 				return -1;
 			}
 		}else{
-			if((n = len - bufi) > Maxmsg-ivo)	
+			if((n = len - bufi) > Maxmsg-ivo)
 				n = Maxmsg-ivo;
 			memcpy(b+ivo, buf+bufi, n);
 			bufi += n;
@@ -578,4 +578,3 @@ main(int argc, char **argv)
 	exits("");
 	return 0;
 }
-
blob - d9cb807dc41c5e7292f961a70d0f3613334c7064
blob + dfc07730b7dfc1472e6fa3f98cf592762023606b
--- src/cmd/auth/secstore/secstore.h
+++ src/cmd/auth/secstore/secstore.h
@@ -28,4 +28,3 @@ char *PAK_Hi(char *, char *, mpint *, mpint *);
 #define LOG "secstore"
 
 extern	char	*SECSTORE_DIR;
-
blob - 9a3c4b66bed1778db6227a6e4b90b290bbdc132c
blob + d32ec64c10e46e630571940eb14ec926a86c1725
--- src/cmd/auth/secstore/secstored.c
+++ src/cmd/auth/secstore/secstored.c
@@ -24,7 +24,7 @@ usage(void)
 static int
 getdir(SConn *conn, char *id)
 {
-	char *ls, *s; 
+	char *ls, *s;
 	uchar *msg;
 	int n, len;
 
@@ -417,4 +417,3 @@ main(int argc, char **argv)
 		}
 	}
 }
-
blob - 8ef6f6aaad7202198a9ff7a8178d13a16447d1b4
blob + 9d8e81ad6daac59b3eea122555a31d30c839fdef
--- src/cmd/auth/secstore/secureidcheck.c
+++ src/cmd/auth/secstore/secureidcheck.c
@@ -417,7 +417,7 @@ secureidcheck(char *user, char *response)
 			resp = nil;
 			continue;
 		}
-	
+
 		switch(resp->code){
 		case R_AccessAccept:
 			syslog(0, AUTHLOG, "%s accepted ruser=%s", dest, ruser);
blob - 31ba184bb5d680aa3f18d666e44481814ce7cbd6
blob + 8e4eae605bb930d754abb277ab115800d98a3cb8
--- src/cmd/auth/secstore/secuser.c
+++ src/cmd/auth/secstore/secuser.c
@@ -241,4 +241,3 @@ userinput(char *buf, int blen)
 			exits("input too large");
 	}
 }
-
blob - 40516a770f00dc4993c125481f125ed9e100e473
blob + c3b0c7ef35373bf992059fbadd170269971183e3
--- src/cmd/auth/ssh-agent.c
+++ src/cmd/auth/ssh-agent.c
@@ -25,7 +25,7 @@ enum		/* agent protocol packet types */
 	SSH_AGENTC_ADD_RSA_IDENTITY,
 	SSH_AGENTC_REMOVE_RSA_IDENTITY,
 	SSH_AGENTC_REMOVE_ALL_RSA_IDENTITIES,
-	
+
 	SSH2_AGENTC_REQUEST_IDENTITIES = 11,
 	SSH2_AGENT_IDENTITIES_ANSWER,
 	SSH2_AGENTC_SIGN_REQUEST,
@@ -42,12 +42,12 @@ enum		/* agent protocol packet types */
 	SSH_AGENTC_ADD_RSA_ID_CONSTRAINED,
 	SSH2_AGENTC_ADD_ID_CONSTRAINED,
 	SSH_AGENTC_ADD_SMARTCARD_KEY_CONSTRAINED,
-	
+
 	SSH_AGENT_CONSTRAIN_LIFETIME = 1,
 	SSH_AGENT_CONSTRAIN_CONFIRM = 2,
 
 	SSH2_AGENT_FAILURE = 30,
-	
+
 	SSH_COM_AGENT2_FAILURE = 102,
 	SSH_AGENT_OLD_SIGNATURE = 0x01
 };
@@ -121,12 +121,12 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc > 1)
 		usage();
 	if(argc == 1)
 		factotum = argv[0];
-		
+
 	if(dotextlist)
 		listkeystext();
 
@@ -145,7 +145,7 @@ threadmain(int argc, char **argv)
 
 	if((afd = announce(addr, adir)) < 0)
 		sysfatal("announce %s: %r", addr);
-	
+
 	print("SSH_AUTH_SOCK=%s;\n", sock);
 	if(export)
 		print("export SSH_AUTH_SOCK;\n");
@@ -178,7 +178,7 @@ agentproc(void *v)
 {
 	Aconn *a;
 	int n;
-	
+
 	a = v;
 	a->fd = accept(a->ctl, a->dir);
 	close(a->ctl);
@@ -209,7 +209,7 @@ int
 get2(Msg *m)
 {
 	uint x;
-	
+
 	if(m->p+2 > m->ep)
 		return 0;
 	x = (m->p[0]<<8)|m->p[1];
@@ -232,7 +232,7 @@ uchar*
 getn(Msg *m, uint n)
 {
 	uchar *p;
-	
+
 	if(m->p+n > m->ep)
 		return nil;
 	p = m->p;
@@ -261,7 +261,7 @@ getmp(Msg *m)
 {
 	int n;
 	uchar *p;
-	
+
 	n = (get2(m)+7)/8;
 	if((p=getn(m, n)) == nil)
 		return nil;
@@ -273,7 +273,7 @@ getmp2(Msg *m)
 {
 	int n;
 	uchar *p;
-	
+
 	n = get4(m);
 	if((p = getn(m, n)) == nil)
 		return nil;
@@ -301,7 +301,7 @@ getm(Msg *m, Msg *mm)
 {
 	uint n;
 	uchar *p;
-	
+
 	n = get4(m);
 	if((p = getn(m, n)) == nil)
 		return nil;
@@ -347,7 +347,7 @@ void
 put4(Msg *m, uint n)
 {
 	uchar *p;
-	
+
 	p = ensure(m, 4);
 	p[0] = (n>>24)&0xFF;
 	p[1] = (n>>16)&0xFF;
@@ -359,7 +359,7 @@ void
 put2(Msg *m, uint n)
 {
 	uchar *p;
-	
+
 	p = ensure(m, 2);
 	p[0] = (n>>8)&0xFF;
 	p[1] = n&0xFF;
@@ -369,7 +369,7 @@ void
 put1(Msg *m, uint n)
 {
 	uchar *p;
-	
+
 	p = ensure(m, 1);
 	p[0] = n&0xFF;
 }
@@ -378,7 +378,7 @@ void
 putn(Msg *m, void *a, uint n)
 {
 	uchar *p;
-	
+
 	p = ensure(m, n);
 	memmove(p, a, n);
 }
@@ -388,7 +388,7 @@ putmp(Msg *m, mpint *b)
 {
 	int bits, n;
 	uchar *p;
-	
+
 	bits = mpsignif(b);
 	put2(m, bits);
 	n = (bits+7)/8;
@@ -401,7 +401,7 @@ putmp2(Msg *m, mpint *b)
 {
 	int bits, n;
 	uchar *p;
-	
+
 	if(mpcmp(b, mpzero) == 0){
 		put4(m, 0);
 		return;
@@ -421,7 +421,7 @@ void
 putstr(Msg *m, char *s)
 {
 	int n;
-	
+
 	n = strlen(s);
 	put4(m, n);
 	putn(m, s, n);
@@ -431,7 +431,7 @@ void
 putm(Msg *m, Msg *mm)
 {
 	uint n;
-	
+
 	n = mm->p - mm->bp;
 	put4(m, n);
 	putn(m, mm->bp, n);
@@ -450,7 +450,7 @@ reply(Aconn *a, Msg *m)
 {
 	uint n;
 	uchar *p;
-	
+
 	n = (m->p - m->bp) - 4;
 	p = m->bp;
 	p[0] = (n>>24)&0xFF;
@@ -513,7 +513,7 @@ void
 printattr(char **f, int nf)
 {
 	int i;
-	
+
 	print("#");
 	for(i=0; i<nf; i++)
 		print(" %s", f[i]);
@@ -571,7 +571,7 @@ RSApub*
 getrsapub(Msg *m)
 {
 	RSApub *k;
-	
+
 	k = rsapuballoc();
 	if(k == nil)
 		return nil;
@@ -624,7 +624,7 @@ putkey2(Msg *m, int (*put)(Msg*,char**,int), char **f,
 {
 	char *p;
 	Msg mm;
-	
+
 	newmsg(&mm);
 	if(put(&mm, f, nf) < 0)
 		return -1;
@@ -642,7 +642,7 @@ printkey(char *type, int (*put)(Msg*,char**,int), char
 {
 	Msg m;
 	char *p;
-	
+
 	newmsg(&m);
 	if(put(&m, f, nf) < 0)
 		return -1;
@@ -660,7 +660,7 @@ DSApub*
 getdsapub(Msg *m)
 {
 	DSApub *k;
-	
+
 	k = dsapuballoc();
 	if(k == nil)
 		return nil;
@@ -825,7 +825,7 @@ dorsa(Aconn *a, mpint *mod, mpint *exp, mpint *chal, u
 		auth_freerpc(rpc);
 		return -1;
 	}
-	
+
 	p = mptoa(chal, 16, nil, 0);
 	if(p == nil){
 		fprint(2, "ssh-agent: dorsa: mptoa: %r\n");
@@ -874,7 +874,7 @@ keysign(Msg *mkey, Msg *mdata, Msg *msig)
 	DSApub *dsa;
 	char buf[4096];
 	uchar digest[SHA1dlen];
-	
+
 	s = getstr(mkey);
 	if(strcmp(s, "ssh-rsa") == 0){
 		rsa = getrsapub(mkey);
@@ -935,7 +935,7 @@ runmsg(Aconn *a)
 	uint len, flags;
 	DigestState *s;
 	Msg m, mkey, mdata, msig;
-	
+
 	if(a->ndata < 4)
 		return 0;
 	len = (a->data[0]<<24)|(a->data[1]<<16)|(a->data[2]<<8)|a->data[3];
@@ -993,7 +993,7 @@ runmsg(Aconn *a)
 			goto Failchal;
 		md5(sessid, 16, digest, s);
 		print("md5 %.*H %.*H => %.*H\n", 32, chalbuf, 16, sessid, MD5dlen, digest);
-		
+
 		newreply(&m, SSH_AGENT_RSA_RESPONSE);
 		putn(&m, digest, 16);
 		reply(a, &m);
@@ -1020,22 +1020,22 @@ runmsg(Aconn *a)
 		mreset(&msig);
 		reply(a, &m);
 		break;
-		
+
 	case SSH_AGENTC_ADD_RSA_IDENTITY:
 		/*
 			msg: n[4] mod[mp] pubexp[exp] privexp[mp]
 				p^-1 mod q[mp] p[mp] q[mp] comment[str]
 		 */
 		goto Failure;
-		
+
 	case SSH_AGENTC_REMOVE_RSA_IDENTITY:
 		/*
 			msg: n[4] mod[mp] pubexp[mp]
 		 */
 		goto Failure;
-		
+
 	}
-	
+
 	a->ndata -= 4+len;
 	memmove(a->data, a->data+4+len, a->ndata);
 	return 1;
@@ -1064,4 +1064,3 @@ erealloc(void *v, int n)
 	}
 	return v;
 }
-
blob - b92f682ef0234bb7ad3837658d8b1570a9781807
blob + 836de5205d0078ce45668a29e61221eeec644c1a
--- src/cmd/auxstats/Darwin.c
+++ src/cmd/auxstats/Darwin.c
@@ -79,7 +79,7 @@ void
 sampleinit(void)
 {
 	mach_timebase_info_data_t info;
-	
+
 	if(stat_port)
 		return;
 
@@ -115,7 +115,7 @@ samplenet(void)
 		sample.net_obytes = 0;
 		sample.net_errors = 0;
 		sample.net_ifaces = 0;
-		
+
 		for(ifa=ifa_list; ifa; ifa=ifa->ifa_next){
 			if(ifa->ifa_addr->sa_family != AF_LINK)
 				continue;
@@ -125,7 +125,7 @@ samplenet(void)
 				continue;
 			if(strncmp(ifa->ifa_name, "lo", 2) == 0)	/* loopback */
 				continue;
-			
+
 			if_data = (struct if_data*)ifa->ifa_data;
 			sample.net_ipackets += if_data->ifi_ipackets;
 			sample.net_opackets += if_data->ifi_opackets;
@@ -144,7 +144,7 @@ samplenet(void)
  * all the other stat monitoring apps get set:
  *
  * -rwsr-xr-x   1 root  wheel  83088 Mar 20  2005 /usr/bin/top
- * -rwsrwxr-x   1 root  admin  54048 Mar 20  2005 
+ * -rwsrwxr-x   1 root  admin  54048 Mar 20  2005
  *	/Applications/Utilities/Activity Monitor.app/Contents/Resources/pmTool
  *
  * If Darwin eventually encompases more into sysctl then this
@@ -165,7 +165,7 @@ sampleevents(void)
 			mach_error_string(error));
 		return;
 	}
-	
+
 	sample.p_syscalls_mach = sample.syscalls_mach;
 	sample.p_syscalls_unix = sample.syscalls_unix;
 	sample.p_csw = sample.csw;
@@ -173,7 +173,7 @@ sampleevents(void)
 	sample.syscalls_mach = 0;
 	sample.syscalls_unix = 0;
 	sample.csw = 0;
-	
+
 	for(i=0; i<pcnt; i++){
 		if((error=host_processor_set_priv(stat_port, psets[i], &pset)) != KERN_SUCCESS){
 			Bprint(&bout, "host_processor_set_priv: %s\n", mach_error_string(error));
@@ -190,24 +190,24 @@ sampleevents(void)
 				sample.syscalls_unix += events.syscalls_unix;
 				sample.csw += events.csw;
 			}
-			
+
 			if(tasks[j] != mach_task_self())
 				mach_port_deallocate(mach_task_self(), tasks[j]);
 		}
-		
-		if((error = vm_deallocate((vm_map_t)mach_task_self(), 
+
+		if((error = vm_deallocate((vm_map_t)mach_task_self(),
 				(vm_address_t)tasks, tcnt*sizeof(task_t))) != KERN_SUCCESS){
 			Bprint(&bout, "vm_deallocate: %s\n", mach_error_string(error));
 			return;
 		}
-		
+
 		if((error = mach_port_deallocate(mach_task_self(), pset)) != KERN_SUCCESS
 		|| (error = mach_port_deallocate(mach_task_self(), psets[i])) != KERN_SUCCESS){
 			Bprint(&bout, "mach_port_deallocate: %s\n", mach_error_string(error));
 			return;
 		}
 	}
-	
+
 	if((error = vm_deallocate((vm_map_t)mach_task_self(), (vm_address_t)psets,
 			pcnt*sizeof(processor_set_t))) != KERN_SUCCESS){
 		Bprint(&bout, "vm_deallocate: %s\n", mach_error_string(error));
@@ -221,12 +221,12 @@ xsample(int first)
 	int mib[2];
 	mach_msg_type_number_t count;
 	size_t len;
-	
+
 	if(first){
 		sampleinit();
 		return;
 	}
-	
+
 	sample.seq++;
 	sample.p_time = sample.time;
 	sample.time = mach_absolute_time();
@@ -234,7 +234,7 @@ xsample(int first)
 	sample.p_vm_stat = sample.vm_stat;
 	count = sizeof(sample.vm_stat) / sizeof(natural_t);
 	host_statistics(stat_port, HOST_VM_INFO, (host_info_t)&sample.vm_stat, &count);
-	
+
 	if(sample.seq == 1)
 		sample.p_vm_stat = sample.vm_stat;
 
@@ -267,7 +267,7 @@ xapm(int first)
 
 	if(first)
 		return;
-		
+
 	src = IOPSCopyPowerSourcesInfo();
 	array = IOPSCopyPowerSourcesList(src);
 
@@ -294,14 +294,14 @@ xnet(int first)
 {
 	uint n;
 	ulong err, in, inb, out, outb;
-	
+
 	n = sample.net_ifaces;
 	in = sample.net_ipackets - sample.p_net_ipackets;
 	out = sample.net_opackets - sample.p_net_opackets;
 	inb = sample.net_ibytes - sample.p_net_ibytes;
 	outb = sample.net_obytes - sample.p_net_obytes;
 	err = sample.net_errors - sample.p_net_errors;
-	
+
        Bprint(&bout, "etherb %lud %d\n", inb+outb, n*1000000);
        Bprint(&bout, "ether %lud %d\n", in+out, n*1000);
        Bprint(&bout, "ethererr %lud %d\n", err, n*1000);
@@ -347,7 +347,7 @@ xvm(int first)
 		+ sample.vm_stat.active_count
 		+ sample.vm_stat.inactive_count
 		+ sample.vm_stat.wire_count;
-	
+
 	active = sample.vm_stat.active_count
 		+ sample.vm_stat.inactive_count
 		+ sample.vm_stat.wire_count;
@@ -357,10 +357,10 @@ xvm(int first)
 
 	Bprint(&bout, "context %lld 1000\n", (vlong)sample.csw);
 	Bprint(&bout, "syscall %lld 1000\n", (vlong)sample.syscalls_mach+sample.syscalls_unix);
-	Bprint(&bout, "intr %lld 1000\n", 
+	Bprint(&bout, "intr %lld 1000\n",
 		isys("vm.stats.sys.v_intr")
 		+isys("vm.stats.sys.v_trap"));
-	
+
 	Bprint(&bout, "fault %lld 1000\n", sample.vm_stat.faults);
 	Bprint(&bout, "fork %lld 1000\n",
 		isys("vm.stats.vm.v_rforks")
@@ -388,7 +388,7 @@ xcpu(int first)
 		sample.p_cpu.cpu_ticks[CPU_STATE_USER];
 	nice = sample.cpu.cpu_ticks[CPU_STATE_NICE] -
 		sample.p_cpu.cpu_ticks[CPU_STATE_NICE];
-	
+
 	t = sys+idle+user+nice;
 
 	Bprint(&bout, "user =%lud %lud\n", user, t);
@@ -418,8 +418,8 @@ xswap(int first)
 
 #ifdef VM_SWAPUSAGE
 	if(sample.xsu_valid)
-		Bprint(&bout, "swap %lld %lld\n", 
-			(vlong)sample.xsu.xsu_used, 
+		Bprint(&bout, "swap %lld %lld\n",
+			(vlong)sample.xsu.xsu_used,
 			(vlong)sample.xsu.xsu_total);
 #endif
 }
blob - ec9310447017e5215754d96967872b6d5a70f59b
blob + 33ebdedc18f59eb24385c1f73dbec11df59e63fe
--- src/cmd/auxstats/DragonFly.c
+++ src/cmd/auxstats/DragonFly.c
@@ -3,8 +3,7 @@
 #include <bio.h>
 #include "dat.h"
 
-void (*statfn[])(int) = 
+void (*statfn[])(int) =
 {
 	0
 };
-
blob - 2497fe35eb5be77886f0e494d81d25efb43686ac
blob + 2cc82879dab4d0ae4dd6f9b05bdd2d14cb9f6a22
--- src/cmd/auxstats/FreeBSD.c
+++ src/cmd/auxstats/FreeBSD.c
@@ -203,8 +203,8 @@ xsysctl(int first)
 			pgsize = 4096;
 	}
 
-	Bprint(&bout, "mem =%lld %lld\n", 
-		isys("vm.stats.vm.v_active_count")*pgsize, 
+	Bprint(&bout, "mem =%lld %lld\n",
+		isys("vm.stats.vm.v_active_count")*pgsize,
 		isys("vm.stats.vm.v_page_count")*pgsize);
 	Bprint(&bout, "context %lld 1000\n", isys("vm.stats.sys.v_swtch"));
 	Bprint(&bout, "syscall %lld 1000\n", isys("vm.stats.sys.v_syscall"));
@@ -284,4 +284,3 @@ xswap(int first)
 
 	Bprint(&bout, "swap =%lld %lld\n", s.ksw_used*(vlong)pgsize, s.ksw_total*(vlong)pgsize);
 }
-
blob - 64c86a26cd6aeeaf7e9e00ed60205faffbee5d42
blob + 7bc4b7206881f4756cf9a951ba4f21275e4b8240
--- src/cmd/auxstats/Linux.c
+++ src/cmd/auxstats/Linux.c
@@ -39,12 +39,12 @@ xapm(int first)
 	readfile(fd);
 	tokens(0);
 	curr = atoi(tok[0]);
-			
+
 	if(curr != -1)
 		Bprint(&bout, "battery =%d 100\n", curr);
 
 }
-	
+
 void
 xloadavg(int first)
 {
@@ -236,7 +236,7 @@ xwireless(int first)
 {
 	static int fd = -1;
 	int i;
-	
+
 	if(first){
 		fd = open("/proc/net/wireless", OREAD);
 		return;
blob - ec9310447017e5215754d96967872b6d5a70f59b
blob + 33ebdedc18f59eb24385c1f73dbec11df59e63fe
--- src/cmd/auxstats/NetBSD.c
+++ src/cmd/auxstats/NetBSD.c
@@ -3,8 +3,7 @@
 #include <bio.h>
 #include "dat.h"
 
-void (*statfn[])(int) = 
+void (*statfn[])(int) =
 {
 	0
 };
-
blob - ec9310447017e5215754d96967872b6d5a70f59b
blob + 33ebdedc18f59eb24385c1f73dbec11df59e63fe
--- src/cmd/auxstats/SunOS.c
+++ src/cmd/auxstats/SunOS.c
@@ -3,8 +3,7 @@
 #include <bio.h>
 #include "dat.h"
 
-void (*statfn[])(int) = 
+void (*statfn[])(int) =
 {
 	0
 };
-
blob - d1c3556193847cdc91b9d319d14981b0f0de5584
blob + 3fd77ac4c42d5150a2c833fc6f54679ae67fd8ae
--- src/cmd/auxstats/main.c
+++ src/cmd/auxstats/main.c
@@ -120,4 +120,3 @@ tokens(int i)
 	}
 	ntok = tokenize(line[i], tok, nelem(tok));
 }
-
blob - 1853381d4fac0c696fd027204ed3802de2c806c4
blob + 913f450924e93cb1658a0efcd25e5c11c6c2629d
--- src/cmd/awk/awk.h
+++ src/cmd/awk/awk.h
@@ -134,7 +134,7 @@ extern Node	*nullnode;
 #define CCOPY	6
 #define CCON	5
 #define CTEMP	4
-#define CNAME	3 
+#define CNAME	3
 #define CVAR	2
 #define CFLD	1
 #define	CUNK	0
@@ -182,4 +182,3 @@ extern	int	pairstack[], paircnt;
 #define freeable(p)	( ((p)->tval & (STR|DONTFREE)) == STR )
 
 #include "proto.h"
-
blob - 74a99030511806632f6517321cf30086a759cc77
blob + 0a051eded7fd5f887a51d077805ac6146eb7f45d
--- src/cmd/awk/lex.c
+++ src/cmd/awk/lex.c
@@ -140,7 +140,7 @@ int gettok(char **pbuf, int *psz)	/* get next input to
 			if (bp-buf >= sz)
 				if (!adjbuf(&buf, &sz, bp-buf+2, 100, &bp, 0))
 					FATAL( "out of space for number %.10s...", buf );
-			if (isdigit(c) || c == 'e' || c == 'E' 
+			if (isdigit(c) || c == 'e' || c == 'E'
 			  || c == '.' || c == '+' || c == '-')
 				*bp++ = c;
 			else {
@@ -191,7 +191,7 @@ int yylex(void)
 			/* should this also have STR set? */
 			RET(NUMBER);
 		}
-	
+
 		yylval.i = c;
 		switch (c) {
 		case '\n':	/* {EOL} */
@@ -220,7 +220,7 @@ int yylex(void)
 		case '&':
 			if (peek() == '&') {
 				input(); RET(AND);
-			} else 
+			} else
 				RET('&');
 		case '|':
 			if (peek() == '|') {
@@ -295,7 +295,7 @@ int yylex(void)
 				input(); yylval.i = POWEQ; RET(ASGNOP);
 			} else
 				RET(POWER);
-	
+
 		case '$':
 			/* BUG: awkward, if not wrong */
 			c = gettok(&buf, &bufsize);
@@ -313,7 +313,7 @@ int yylex(void)
 				unputstr(buf);
 				RET(INDIRECT);
 			}
-	
+
 		case '}':
 			if (--bracecnt < 0)
 				SYNTAX( "extra }" );
@@ -336,10 +336,10 @@ int yylex(void)
 		case '(':
 			parencnt++;
 			RET('(');
-	
+
 		case '"':
 			return string();	/* BUG: should be like tran.c ? */
-	
+
 		default:
 			RET(c);
 		}
@@ -369,7 +369,7 @@ int string(void)
 			c = input();
 			switch (c) {
 			case '"': *bp++ = '"'; break;
-			case 'n': *bp++ = '\n'; break;	
+			case 'n': *bp++ = '\n'; break;
 			case 't': *bp++ = '\t'; break;
 			case 'f': *bp++ = '\f'; break;
 			case 'r': *bp++ = '\r'; break;
@@ -406,7 +406,7 @@ int string(void)
 				break;
 			    }
 
-			default: 
+			default:
 				*bp++ = c;
 				break;
 			}
@@ -416,7 +416,7 @@ int string(void)
 			break;
 		}
 	}
-	*bp = 0; 
+	*bp = 0;
 	s = tostring(buf);
 	*bp++ = ' '; *bp++ = 0;
 	yylval.cp = setsymtab(buf, s, 0.0, CON|STR|DONTFREE, symtab);
@@ -442,7 +442,7 @@ int binsearch(char *w, Keyword *kp, int n)
 	return -1;
 }
 
-int word(char *w) 
+int word(char *w)
 {
 	Keyword *kp;
 	int c, n;
@@ -504,11 +504,11 @@ int regexpr(void)
 		if (!adjbuf(&buf, &bufsz, bp-buf+3, 500, &bp, 0))
 			FATAL("out of space for reg expr %.10s...", buf);
 		if (c == '\n') {
-			SYNTAX( "newline in regular expression %.10s...", buf ); 
+			SYNTAX( "newline in regular expression %.10s...", buf );
 			unput('\n');
 			break;
 		} else if (c == '\\') {
-			*bp++ = '\\'; 
+			*bp++ = '\\';
 			*bp++ = input();
 		} else {
 			*bp++ = c;
@@ -567,4 +567,3 @@ void unputstr(char *s)	/* put a string back on input *
 	for (i = strlen(s)-1; i >= 0; i--)
 		unput(s[i]);
 }
-
blob - 3eb30687cf9f746445c95938fe1810886c652fc6
blob + 30c3ddd4bf7a161d24bb08fc6b71a67687d4dc61
--- src/cmd/awk/lib.c
+++ src/cmd/awk/lib.c
@@ -435,7 +435,7 @@ int refldbld(char *rec, char *fs)	/* build fields from
 			break;
 		}
 	}
-	return i;		
+	return i;
 }
 
 void recbld(void)	/* create $0 from $1..$NF if necessary */
@@ -715,4 +715,3 @@ int is_number(char *s)
 	else
 		return 0;
 }
-
blob - ea20f63e5d71dade631baae91b88abb2b1f4ebae
blob + 532cc1f649e890b7da83c6ea4462deff38893a8c
--- src/cmd/awk/main.c
+++ src/cmd/awk/main.c
@@ -195,4 +195,3 @@ char *cursource(void)	/* current source file name */
 	else
 		return NULL;
 }
-
blob - 50908ce9770ffd9ac7dbddc83fb0f8de85a1fdcb
blob + 13d34e96e0d0c2d2f960ad68cfa589cf27b7f797
--- src/cmd/awk/maketab.c
+++ src/cmd/awk/maketab.c
@@ -166,4 +166,3 @@ int main(int argc, char *argv[])
 	printf("}\n");
 	return 0;
 }
-
blob - d4c88324327751bf90c39e0940c0925ab1115285
blob + 2ee6eca621314b74a671f6a6237c3be5f0bbc422
--- src/cmd/awk/parse.c
+++ src/cmd/awk/parse.c
@@ -269,4 +269,3 @@ Node *itonp(int i)	/* and vice versa */
 {
 	return (Node *) (long) i;
 }
-
blob - f124f4e4c46cc82c20bb4c7940a734d844899f72
blob + d12a9322130344fbd0b432c9e01d8bccdaba1891
--- src/cmd/awk/proto.h
+++ src/cmd/awk/proto.h
@@ -177,4 +177,3 @@ extern	Cell	*gsub(Node **, int);
 
 extern	FILE	*popen(const char *, const char *);
 extern	int	pclose(FILE *);
-
blob - a15d2f4dd84be54cdc6384e6d0d5749847da20d1
blob + 2a226768b5e20ebbdd883277d7497108a68a252b
--- src/cmd/awk/re.c
+++ src/cmd/awk/re.c
@@ -215,7 +215,7 @@ nematch(void *p, char *s, char *start)
 	if (pmatch(p, s, start) == 1 && patlen > 0)
 		return 1;
 	patlen = -1;
-	patbeg = start; 
+	patbeg = start;
 	return 0;
 }
 /* in the parsing of regular expressions, metacharacters like . have */
@@ -322,4 +322,3 @@ overflow(void)
 {
 	FATAL("%s", "regular expression too big");
 }
-
blob - b145758cc0372d8460bbd64b33fcb4a2369ce39c
blob + 9aa3e0e4ce1cd13ae40845de01df64639b93fe4e
--- src/cmd/awk/run.c
+++ src/cmd/awk/run.c
@@ -506,7 +506,7 @@ Cell *awkdelete(Node **a, int n)	/* a[0] is symtab, a[
 			s = getsval(y);
 			if (!adjbuf(&buf, &bufsz, strlen(buf)+strlen(s)+nsub+1, recsize, 0, 0))
 				FATAL("out of memory deleting %s[%s...]", x->nval, buf);
-			strcat(buf, s);	
+			strcat(buf, s);
 			if (np->nnext)
 				strcat(buf, *SUBSEP);
 			tempfree(y);
@@ -1914,4 +1914,3 @@ void backsub(char **pb_ptr, char **sptr_ptr)	/* handle
 	*pb_ptr = pb;
 	*sptr_ptr = sptr;
 }
-
blob - 272a7fdc0c0c3c53378a20e9544db40bc6f2751a
blob + 387bc00bdbf654a61d0c0e618f716b96b233880b
--- src/cmd/awk/tran.c
+++ src/cmd/awk/tran.c
@@ -167,7 +167,7 @@ void freesymtab(Cell *ap)	/* free a symbol table */
 			if (freeable(cp))
 				xfree(cp->sval);
 			temp = cp->cnext;	/* avoids freeing then using */
-			free(cp); 
+			free(cp);
 		}
 		tp->tab[i] = 0;
 	}
@@ -180,7 +180,7 @@ void freeelem(Cell *ap, char *s)	/* free elem s from a
 	Array *tp;
 	Cell *p, *prev = NULL;
 	int h;
-	
+
 	tp = (Array *) ap->sval;
 	h = hash(s, tp->size);
 	for (p = tp->tab[h]; p != NULL; prev = p, p = p->cnext)
@@ -275,7 +275,7 @@ Awkfloat setfval(Cell *vp, Awkfloat f)	/* set float va
 {
 	int fldno;
 
-	if ((vp->tval & (NUM | STR)) == 0) 
+	if ((vp->tval & (NUM | STR)) == 0)
 		funnyvar(vp, "assign to");
 	if (isfld(vp)) {
 		donerec = 0;	/* mark $0 invalid */
@@ -405,7 +405,7 @@ char *qstring(char *s, int delim)	/* collect string up
 			if (c == 0) {	/* \ at end */
 				*bp++ = '\\';
 				break;	/* for loop */
-			}	
+			}
 			switch (c) {
 			case '\\':	*bp++ = '\\'; break;
 			case 'n':	*bp++ = '\n'; break;
@@ -432,4 +432,3 @@ char *qstring(char *s, int delim)	/* collect string up
 	*bp++ = 0;
 	return buf;
 }
-
blob - 653ebc33e820ff9dcbce4ddb5d70e6cbe5f1f04c
blob + 38abb7ed36905c5480ed0995e4aa2e039f10818e
--- src/cmd/bzip2/bunzip2.c
+++ src/cmd/bzip2/bunzip2.c
@@ -151,7 +151,7 @@ bunzip(int ofd, char *ofile, Biobuf *bin)
 		if(!done && strm.avail_in < sizeof buf) {
 			if(strm.avail_in)
 				memmove(buf, strm.next_in, strm.avail_in);
-			
+
 			n = Bread(bin, buf+strm.avail_in, sizeof(buf)-strm.avail_in);
 			if(n <= 0)
 				done = 1;
blob - cc21a57c2554317c5a6616357acdbb6c5cb9055a
blob + 6743acb8e8f03c5e4660394e4650bf26cd1a1b59
--- src/cmd/bzip2/bzip2.c
+++ src/cmd/bzip2/bzip2.c
@@ -175,7 +175,7 @@ bzip(char *file, long mtime, int ifd, Biobuf *bout)
 		if(!done && strm.avail_in < sizeof buf) {
 			if(strm.avail_in)
 				memmove(buf, strm.next_in, strm.avail_in);
-			
+
 			n = Bread(&bin, buf+strm.avail_in, sizeof(buf)-strm.avail_in);
 			if(n <= 0)
 				done = 1;
blob - ba3d175632a77de125e5d2c2a346f1efb1cc27c2
blob + c31c50abecef4ae2b7ab4499ef5a4e678d63c707
--- src/cmd/bzip2/bzip2recover.c
+++ src/cmd/bzip2/bzip2recover.c
@@ -5,7 +5,7 @@
 /*-----------------------------------------------------------*/
 
 /*--
-  This program is bzip2recover, a program to attempt data 
+  This program is bzip2recover, a program to attempt data
   salvage from damaged files created by the accompanying
   bzip2-1.0 program.
 
@@ -18,16 +18,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -324,10 +324,10 @@ Int32 main ( Int32 argc, Char** argv )
       }
       buffHi = (buffHi << 1) | (buffLo >> 31);
       buffLo = (buffLo << 1) | (b & 1);
-      if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI 
+      if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI
              && buffLo == BLOCK_HEADER_LO)
-           || 
-           ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI 
+           ||
+           ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI
              && buffLo == BLOCK_ENDMARK_LO)
          ) {
          if (bitsRead > 49)
@@ -378,7 +378,7 @@ Int32 main ( Int32 argc, Char** argv )
       if (b == 2) break;
       buffHi = (buffHi << 1) | (buffLo >> 31);
       buffLo = (buffLo << 1) | (b & 1);
-      if (bitsRead == 47+rbStart[wrBlock]) 
+      if (bitsRead == 47+rbStart[wrBlock])
          blockCRC = (buffHi << 16) | (buffLo >> 16);
 
       if (outFile != NULL && bitsRead >= rbStart[wrBlock]
blob - f43d569e6da61eca1add14dd1eb8cfe4d9284467
blob + e6d154b30baa473917056c0c2df1e52443419c5a
--- src/cmd/bzip2/lib/blocksort.c
+++ src/cmd/bzip2/lib/blocksort.c
@@ -17,16 +17,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -57,8 +57,8 @@
 
   For more information on these sources, see the manual.
 
-  To get some idea how the block sorting algorithms in this file 
-  work, read my paper 
+  To get some idea how the block sorting algorithms in this file
+  work, read my paper
      On the Performance of BWT Sorting Algorithms
   in Proceedings of the IEEE Data Compression Conference 2000,
   Snowbird, Utah, USA, 27-30 March 2000.  The main sort in this
@@ -75,11 +75,11 @@
 /*---------------------------------------------*/
 
 /*---------------------------------------------*/
-static 
+static
 __inline__
-void fallbackSimpleSort ( UInt32* fmap, 
-                          UInt32* eclass, 
-                          Int32   lo, 
+void fallbackSimpleSort ( UInt32* fmap,
+                          UInt32* eclass,
+                          Int32   lo,
                           Int32   hi )
 {
    Int32 i, j, tmp;
@@ -138,9 +138,9 @@ void fallbackSimpleSort ( UInt32* fmap, 
 
 
 static
-void fallbackQSort3 ( UInt32* fmap, 
+void fallbackQSort3 ( UInt32* fmap,
                       UInt32* eclass,
-                      Int32   loSt, 
+                      Int32   loSt,
                       Int32   hiSt )
 {
    Int32 unLo, unHi, ltLo, gtHi, n, m;
@@ -165,9 +165,9 @@ void fallbackQSort3 ( UInt32* fmap, 
       }
 
       /* Random partitioning.  Median of 3 sometimes fails to
-         avoid bad cases.  Median of 9 seems to help but 
+         avoid bad cases.  Median of 9 seems to help but
          looks rather expensive.  This too seems to work but
-         is cheaper.  Guidance for the magic constants 
+         is cheaper.  Guidance for the magic constants
          7621 and 32768 is taken from Sedgewick's algorithms
          book, chapter 35.
       */
@@ -184,10 +184,10 @@ void fallbackQSort3 ( UInt32* fmap, 
          while (1) {
             if (unLo > unHi) break;
             n = (Int32)eclass[fmap[unLo]] - (Int32)med;
-            if (n == 0) { 
-               fswap(fmap[unLo], fmap[ltLo]); 
-               ltLo++; unLo++; 
-               continue; 
+            if (n == 0) {
+               fswap(fmap[unLo], fmap[ltLo]);
+               ltLo++; unLo++;
+               continue;
             };
             if (n > 0) break;
             unLo++;
@@ -195,10 +195,10 @@ void fallbackQSort3 ( UInt32* fmap, 
          while (1) {
             if (unLo > unHi) break;
             n = (Int32)eclass[fmap[unHi]] - (Int32)med;
-            if (n == 0) { 
-               fswap(fmap[unHi], fmap[gtHi]); 
-               gtHi--; unHi--; 
-               continue; 
+            if (n == 0) {
+               fswap(fmap[unHi], fmap[gtHi]);
+               gtHi--; unHi--;
+               continue;
             };
             if (n < 0) break;
             unHi--;
@@ -257,8 +257,8 @@ void fallbackQSort3 ( UInt32* fmap, 
 #define UNALIGNED_BH(zz)  ((zz) & 0x01f)
 
 static
-void fallbackSort ( UInt32* fmap, 
-                    UInt32* eclass, 
+void fallbackSort ( UInt32* fmap,
+                    UInt32* eclass,
                     UInt32* bhtab,
                     Int32   nblock,
                     Int32   verb )
@@ -299,7 +299,7 @@ void fallbackSort ( UInt32* fmap, 
    --*/
 
    /*-- set sentinel bits for block-end detection --*/
-   for (i = 0; i < 32; i++) { 
+   for (i = 0; i < 32; i++) {
       SET_BH(nblock + 2*i);
       CLEAR_BH(nblock + 2*i + 1);
    }
@@ -308,7 +308,7 @@ void fallbackSort ( UInt32* fmap, 
    H = 1;
    while (1) {
 
-      if (verb >= 4) 
+      if (verb >= 4)
          VPrintf1 ( "        depth %6d has ", H );
 
       j = 0;
@@ -353,14 +353,14 @@ void fallbackSort ( UInt32* fmap, 
          }
       }
 
-      if (verb >= 4) 
+      if (verb >= 4)
          VPrintf1 ( "%6d unresolved strings\n", nNotDone );
 
       H *= 2;
       if (H > nblock || nNotDone == 0) break;
    }
 
-   /*-- 
+   /*--
       Reconstruct the original block in
       eclass8 [0 .. nblock-1], since the
       previous phase destroyed it.
@@ -392,9 +392,9 @@ void fallbackSort ( UInt32* fmap, 
 /*---------------------------------------------*/
 static
 __inline__
-Bool mainGtU ( UInt32  i1, 
+Bool mainGtU ( UInt32  i1,
                UInt32  i2,
-               UChar*  block, 
+               UChar*  block,
                UInt16* quadrant,
                UInt32  nblock,
                Int32*  budget )
@@ -534,8 +534,8 @@ void mainSimpleSort ( UInt32* ptr,
                       UChar*  block,
                       UInt16* quadrant,
                       Int32   nblock,
-                      Int32   lo, 
-                      Int32   hi, 
+                      Int32   lo,
+                      Int32   hi,
                       Int32   d,
                       Int32*  budget )
 {
@@ -559,8 +559,8 @@ void mainSimpleSort ( UInt32* ptr,
          if (i > hi) break;
          v = ptr[i];
          j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+         while ( mainGtU (
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget
                  ) ) {
             ptr[j] = ptr[j-h];
             j = j - h;
@@ -573,8 +573,8 @@ void mainSimpleSort ( UInt32* ptr,
          if (i > hi) break;
          v = ptr[i];
          j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+         while ( mainGtU (
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget
                  ) ) {
             ptr[j] = ptr[j-h];
             j = j - h;
@@ -587,8 +587,8 @@ void mainSimpleSort ( UInt32* ptr,
          if (i > hi) break;
          v = ptr[i];
          j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+         while ( mainGtU (
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget
                  ) ) {
             ptr[j] = ptr[j-h];
             j = j - h;
@@ -626,13 +626,13 @@ void mainSimpleSort ( UInt32* ptr,
    }                                  \
 }
 
-static 
+static
 __inline__
 UChar mmed3 ( UChar a, UChar b, UChar c )
 {
    UChar t;
    if (a > b) { t = a; a = b; b = t; };
-   if (b > c) { 
+   if (b > c) {
       b = c;
       if (a > b) b = a;
    }
@@ -670,8 +670,8 @@ void mainQSort3 ( UInt32* ptr,
                   UChar*  block,
                   UInt16* quadrant,
                   Int32   nblock,
-                  Int32   loSt, 
-                  Int32   hiSt, 
+                  Int32   loSt,
+                  Int32   hiSt,
                   Int32   dSt,
                   Int32*  budget )
 {
@@ -694,14 +694,14 @@ void mainQSort3 ( UInt32* ptr,
       AssertH ( sp < MAIN_QSORT_STACK_SIZE, 1001 );
 
       mpop ( lo, hi, d );
-      if (hi - lo < MAIN_QSORT_SMALL_THRESH || 
+      if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
           d > MAIN_QSORT_DEPTH_THRESH) {
          mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
          if (*budget < 0) return;
          continue;
       }
 
-      med = (Int32) 
+      med = (Int32)
             mmed3 ( block[ptr[ lo         ]+d],
                     block[ptr[ hi         ]+d],
                     block[ptr[ (lo+hi)>>1 ]+d] );
@@ -713,9 +713,9 @@ void mainQSort3 ( UInt32* ptr,
          while (True) {
             if (unLo > unHi) break;
             n = ((Int32)block[ptr[unLo]+d]) - med;
-            if (n == 0) { 
-               mswap(ptr[unLo], ptr[ltLo]); 
-               ltLo++; unLo++; continue; 
+            if (n == 0) {
+               mswap(ptr[unLo], ptr[ltLo]);
+               ltLo++; unLo++; continue;
             };
             if (n >  0) break;
             unLo++;
@@ -723,9 +723,9 @@ void mainQSort3 ( UInt32* ptr,
          while (True) {
             if (unLo > unHi) break;
             n = ((Int32)block[ptr[unHi]+d]) - med;
-            if (n == 0) { 
-               mswap(ptr[unHi], ptr[gtHi]); 
-               gtHi--; unHi--; continue; 
+            if (n == 0) {
+               mswap(ptr[unHi], ptr[gtHi]);
+               gtHi--; unHi--; continue;
             };
             if (n <  0) break;
             unHi--;
@@ -796,9 +796,9 @@ void mainQSort3 ( UInt32* ptr,
 #define CLEARMASK (~(SETMASK))
 
 static
-void mainSort ( UInt32* ptr, 
+void mainSort ( UInt32* ptr,
                 UChar*  block,
-                UInt16* quadrant, 
+                UInt16* quadrant,
                 UInt32* ftab,
                 Int32   nblock,
                 Int32   verb,
@@ -926,7 +926,7 @@ void mainSort ( UInt32* ptr, 
       /*--
          Step 1:
          Complete the big bucket [ss] by quicksorting
-         any unsorted small buckets [ss, j], for j != ss.  
+         any unsorted small buckets [ss, j], for j != ss.
          Hopefully previous pointer-scanning phases have already
          completed many of the small buckets [ss, j], so
          we don't have to sort them at all.
@@ -942,10 +942,10 @@ void mainSort ( UInt32* ptr, 
                      VPrintf4 ( "        qsort [0x%x, 0x%x]   "
                                 "done %d   this %d\n",
                                 ss, j, numQSorted, hi - lo + 1 );
-                  mainQSort3 ( 
-                     ptr, block, quadrant, nblock, 
-                     lo, hi, BZ_N_RADIX, budget 
-                  );   
+                  mainQSort3 (
+                     ptr, block, quadrant, nblock,
+                     lo, hi, BZ_N_RADIX, budget
+                  );
                   numQSorted += (hi - lo + 1);
                   if (*budget < 0) return;
                }
@@ -977,7 +977,7 @@ void mainSort ( UInt32* ptr, 
          for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
             k = ptr[j]-1; if (k < 0) k += nblock;
             c1 = block[k];
-            if (!bigDone[c1]) 
+            if (!bigDone[c1])
                ptr[ copyEnd[c1]-- ] = k;
          }
       }
@@ -996,7 +996,7 @@ void mainSort ( UInt32* ptr, 
          updating for the last bucket is pointless.
 
          The quadrant array provides a way to incrementally
-         cache sort orderings, as they appear, so as to 
+         cache sort orderings, as they appear, so as to
          make subsequent comparisons in fullGtU() complete
          faster.  For repetitive blocks this makes a big
          difference (but not big enough to be able to avoid
@@ -1006,9 +1006,9 @@ void mainSort ( UInt32* ptr, 
 
             for 0 <= i < nblock and 0 <= j <= nblock
 
-            if block[i] != block[j], 
+            if block[i] != block[j],
 
-               then the relative values of quadrant[i] and 
+               then the relative values of quadrant[i] and
                     quadrant[j] are meaningless.
 
                else {
@@ -1071,7 +1071,7 @@ void mainSort ( UInt32* ptr, 
 */
 void BZ2_blockSort ( EState* s )
 {
-   UInt32* ptr    = s->ptr; 
+   UInt32* ptr    = s->ptr;
    UChar*  block  = s->block;
    UInt32* ftab   = s->ftab;
    Int32   nblock = s->nblock;
@@ -1095,8 +1095,8 @@ void BZ2_blockSort ( EState* s )
       quadrant = (UInt16*)(&(block[i]));
 
       /* (wfact-1) / 3 puts the default-factor-30
-         transition point at very roughly the same place as 
-         with v0.1 and v0.9.0.  
+         transition point at very roughly the same place as
+         with v0.1 and v0.9.0.
          Not that it particularly matters any more, since the
          resulting compressed stream is now the same regardless
          of whether or not we use the main sort or fallback sort.
@@ -1107,14 +1107,14 @@ void BZ2_blockSort ( EState* s )
       budget = budgetInit;
 
       mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
-      if (verb >= 3) 
+      if (verb >= 3)
          VPrintf3 ( "      %d work, %d block, ratio %5.2f\n",
                     budgetInit - budget,
-                    nblock, 
+                    nblock,
                     (float)(budgetInit - budget) /
-                    (float)(nblock==0 ? 1 : nblock) ); 
+                    (float)(nblock==0 ? 1 : nblock) );
       if (budget < 0) {
-         if (verb >= 2) 
+         if (verb >= 2)
             VPrintf0 ( "    too repetitive; using fallback"
                        " sorting algorithm\n" );
          fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
blob - 849c8ff00a3c578b4ba8389f771878f61caf7d07
blob + cd3509342d35fa47a37955300ab5b88f64fb2e5e
--- src/cmd/bzip2/lib/buffcompress.c
+++ src/cmd/bzip2/lib/buffcompress.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -89,30 +89,30 @@
 #include "bzlib_private.h"
 
 /*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffCompress) 
-                         ( char*         dest, 
+int BZ_API(BZ2_bzBuffToBuffCompress)
+                         ( char*         dest,
                            unsigned int* destLen,
-                           char*         source, 
+                           char*         source,
                            unsigned int  sourceLen,
-                           int           blockSize100k, 
-                           int           verbosity, 
+                           int           blockSize100k,
+                           int           verbosity,
                            int           workFactor )
 {
    bz_stream strm;
    int ret;
 
-   if (dest == NULL || destLen == NULL || 
+   if (dest == NULL || destLen == NULL ||
        source == NULL ||
        blockSize100k < 1 || blockSize100k > 9 ||
        verbosity < 0 || verbosity > 4 ||
-       workFactor < 0 || workFactor > 250) 
+       workFactor < 0 || workFactor > 250)
       return BZ_PARAM_ERROR;
 
    if (workFactor == 0) workFactor = 30;
    strm.bzalloc = NULL;
    strm.bzfree = NULL;
    strm.opaque = NULL;
-   ret = BZ2_bzCompressInit ( &strm, blockSize100k, 
+   ret = BZ2_bzCompressInit ( &strm, blockSize100k,
                               verbosity, workFactor );
    if (ret != BZ_OK) return ret;
 
@@ -126,7 +126,7 @@ int BZ_API(BZ2_bzBuffToBuffCompress) 
    if (ret != BZ_STREAM_END) goto errhandler;
 
    /* normal termination */
-   *destLen -= strm.avail_out;   
+   *destLen -= strm.avail_out;
    BZ2_bzCompressEnd ( &strm );
    return BZ_OK;
 
@@ -138,4 +138,3 @@ int BZ_API(BZ2_bzBuffToBuffCompress) 
    BZ2_bzCompressEnd ( &strm );
    return ret;
 }
-
blob - 944166f3f9fb7c4c8c44b7ba7d3f6160ca25aa0d
blob + 47492470939609644c30fdf3d11f28011b11c844
--- src/cmd/bzip2/lib/buffdecompress.c
+++ src/cmd/bzip2/lib/buffdecompress.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -89,10 +89,10 @@
 #include "bzlib_private.h"
 
 /*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffDecompress) 
-                           ( char*         dest, 
+int BZ_API(BZ2_bzBuffToBuffDecompress)
+                           ( char*         dest,
                              unsigned int* destLen,
-                             char*         source, 
+                             char*         source,
                              unsigned int  sourceLen,
                              int           small,
                              int           verbosity )
@@ -100,10 +100,10 @@ int BZ_API(BZ2_bzBuffToBuffDecompress) 
    bz_stream strm;
    int ret;
 
-   if (dest == NULL || destLen == NULL || 
+   if (dest == NULL || destLen == NULL ||
        source == NULL ||
        (small != 0 && small != 1) ||
-       verbosity < 0 || verbosity > 4) 
+       verbosity < 0 || verbosity > 4)
           return BZ_PARAM_ERROR;
 
    strm.bzalloc = NULL;
@@ -133,11 +133,9 @@ int BZ_API(BZ2_bzBuffToBuffDecompress) 
    } else {
       BZ2_bzDecompressEnd ( &strm );
       return BZ_OUTBUFF_FULL;
-   };      
+   };
 
    errhandler:
    BZ2_bzDecompressEnd ( &strm );
-   return ret; 
+   return ret;
 }
-
-
blob - 56d58fc245a0511686d31b3711f3ecaa457d6143
blob + 8a578bd0285a8342ac750efd403825bcbe721e6c
--- src/cmd/bzip2/lib/bzassert.c
+++ src/cmd/bzip2/lib/bzassert.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -93,7 +93,7 @@
 
 void BZ2_bz__AssertH__fail ( int errcode )
 {
-   fprintf(stderr, 
+   fprintf(stderr,
       "\n\nbzip2/libbzip2: internal error number %d.\n"
       "This is a bug in bzip2/libbzip2, %s.\n"
       "Please report it to me at: jseward@acm.org.  If this happened\n"
blob - 849c8ff00a3c578b4ba8389f771878f61caf7d07
blob + cd3509342d35fa47a37955300ab5b88f64fb2e5e
--- src/cmd/bzip2/lib/bzbuffcompress.c
+++ src/cmd/bzip2/lib/bzbuffcompress.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -89,30 +89,30 @@
 #include "bzlib_private.h"
 
 /*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffCompress) 
-                         ( char*         dest, 
+int BZ_API(BZ2_bzBuffToBuffCompress)
+                         ( char*         dest,
                            unsigned int* destLen,
-                           char*         source, 
+                           char*         source,
                            unsigned int  sourceLen,
-                           int           blockSize100k, 
-                           int           verbosity, 
+                           int           blockSize100k,
+                           int           verbosity,
                            int           workFactor )
 {
    bz_stream strm;
    int ret;
 
-   if (dest == NULL || destLen == NULL || 
+   if (dest == NULL || destLen == NULL ||
        source == NULL ||
        blockSize100k < 1 || blockSize100k > 9 ||
        verbosity < 0 || verbosity > 4 ||
-       workFactor < 0 || workFactor > 250) 
+       workFactor < 0 || workFactor > 250)
       return BZ_PARAM_ERROR;
 
    if (workFactor == 0) workFactor = 30;
    strm.bzalloc = NULL;
    strm.bzfree = NULL;
    strm.opaque = NULL;
-   ret = BZ2_bzCompressInit ( &strm, blockSize100k, 
+   ret = BZ2_bzCompressInit ( &strm, blockSize100k,
                               verbosity, workFactor );
    if (ret != BZ_OK) return ret;
 
@@ -126,7 +126,7 @@ int BZ_API(BZ2_bzBuffToBuffCompress) 
    if (ret != BZ_STREAM_END) goto errhandler;
 
    /* normal termination */
-   *destLen -= strm.avail_out;   
+   *destLen -= strm.avail_out;
    BZ2_bzCompressEnd ( &strm );
    return BZ_OK;
 
@@ -138,4 +138,3 @@ int BZ_API(BZ2_bzBuffToBuffCompress) 
    BZ2_bzCompressEnd ( &strm );
    return ret;
 }
-
blob - d27e67573c513d918a120d4b5665ae44f81371b5
blob + 7f3deec0e1504f7901c60f8c046862ce087bcfbf
--- src/cmd/bzip2/lib/bzcompress.c
+++ src/cmd/bzip2/lib/bzcompress.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -125,8 +125,8 @@ Bool isempty_RL ( EState* s )
 
 
 /*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompressInit) 
-                    ( bz_stream* strm, 
+int BZ_API(BZ2_bzCompressInit)
+                    ( bz_stream* strm,
                      int        blockSize100k,
                      int        verbosity,
                      int        workFactor )
@@ -136,7 +136,7 @@ int BZ_API(BZ2_bzCompressInit) 
 
    if (!bz_config_ok()) return BZ_CONFIG_ERROR;
 
-   if (strm == NULL || 
+   if (strm == NULL ||
        blockSize100k < 1 || blockSize100k > 9 ||
        workFactor < 0 || workFactor > 250)
      return BZ_PARAM_ERROR;
@@ -279,7 +279,7 @@ Bool copy_input_until_stop ( EState* s )
          /*-- no input? --*/
          if (s->strm->avail_in == 0) break;
          progress_in = True;
-         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
+         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
          s->strm->next_in++;
          s->strm->avail_in--;
          s->strm->total_in_lo32++;
@@ -297,7 +297,7 @@ Bool copy_input_until_stop ( EState* s )
          /*-- flush/finish end? --*/
          if (s->avail_in_expect == 0) break;
          progress_in = True;
-         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
+         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
          s->strm->next_in++;
          s->strm->avail_in--;
          s->strm->total_in_lo32++;
@@ -343,18 +343,18 @@ Bool handle_compress ( bz_stream* strm )
    Bool progress_in  = False;
    Bool progress_out = False;
    EState* s = strm->state;
-   
+
    while (True) {
 
       if (s->state == BZ_S_OUTPUT) {
          progress_out |= copy_output_until_stop ( s );
          if (s->state_out_pos < s->numZ) break;
-         if (s->mode == BZ_M_FINISHING && 
+         if (s->mode == BZ_M_FINISHING &&
              s->avail_in_expect == 0 &&
              isempty_RL(s)) break;
          prepare_new_block ( s );
          s->state = BZ_S_INPUT;
-         if (s->mode == BZ_M_FLUSHING && 
+         if (s->mode == BZ_M_FLUSHING &&
              s->avail_in_expect == 0 &&
              isempty_RL(s)) break;
       }
@@ -402,7 +402,7 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int acti
          if (action == BZ_RUN) {
             progress = handle_compress ( strm );
             return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
-         } 
+         }
          else
 	 if (action == BZ_FLUSH) {
             s->avail_in_expect = strm->avail_in;
@@ -415,12 +415,12 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int acti
             s->mode = BZ_M_FINISHING;
             goto preswitch;
          }
-         else 
+         else
             return BZ_PARAM_ERROR;
 
       case BZ_M_FLUSHING:
          if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
-         if (s->avail_in_expect != s->strm->avail_in) 
+         if (s->avail_in_expect != s->strm->avail_in)
             return BZ_SEQUENCE_ERROR;
          progress = handle_compress ( strm );
          if (!progress) return BZ_SEQUENCE_ERROR;	/*rsc added */
@@ -431,7 +431,7 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int acti
 
       case BZ_M_FINISHING:
          if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
-         if (s->avail_in_expect != s->strm->avail_in) 
+         if (s->avail_in_expect != s->strm->avail_in)
             return BZ_SEQUENCE_ERROR;
          progress = handle_compress ( strm );
          if (!progress) return BZ_SEQUENCE_ERROR;
@@ -458,8 +458,7 @@ int BZ_API(BZ2_bzCompressEnd)  ( bz_stream *strm )
    if (s->ftab != NULL) BZFREE(s->ftab);
    BZFREE(strm->state);
 
-   strm->state = NULL;   
+   strm->state = NULL;
 
    return BZ_OK;
 }
-
blob - 25ed925360f273179b360a56e590f5c50f648ad5
blob + da3251fbeb88042548e7f40c7a758a00e25b3c11
--- src/cmd/bzip2/lib/bzdecompress.c
+++ src/cmd/bzip2/lib/bzdecompress.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -93,8 +93,8 @@
 /*---------------------------------------------------*/
 
 /*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompressInit) 
-                     ( bz_stream* strm, 
+int BZ_API(BZ2_bzDecompressInit)
+                     ( bz_stream* strm,
                        int        verbosity,
                        int        small )
 {
@@ -153,34 +153,34 @@ void unRLE_obuf_to_output_FAST ( DState* s )
             s->strm->total_out_lo32++;
             if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
          }
-   
+
          /* can a new run be started? */
          if (s->nblock_used == s->save_nblock+1) return;
-               
-   
+
+
          s->state_out_len = 1;
          s->state_out_ch = s->k0;
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
+
          s->state_out_len = 2;
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
+
          s->state_out_len = 3;
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          s->state_out_len = ((Int32)k1) + 4;
-         BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; 
+         BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK;
          s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
       }
 
@@ -217,7 +217,7 @@ void unRLE_obuf_to_output_FAST ( DState* s )
             }
             s_state_out_len_eq_one:
             {
-               if (cs_avail_out == 0) { 
+               if (cs_avail_out == 0) {
                   c_state_out_len = 1; goto return_notr;
                };
                *( (UChar*)(cs_next_out) ) = c_state_out_ch;
@@ -225,29 +225,29 @@ void unRLE_obuf_to_output_FAST ( DState* s )
                cs_next_out++;
                cs_avail_out--;
             }
-         }   
+         }
          /* can a new run be started? */
          if (c_nblock_used == s_save_nblockPP) {
             c_state_out_len = 0; goto return_notr;
-         };   
+         };
          c_state_out_ch = c_k0;
          BZ_GET_FAST_C(k1); c_nblock_used++;
-         if (k1 != c_k0) { 
-            c_k0 = k1; goto s_state_out_len_eq_one; 
+         if (k1 != c_k0) {
+            c_k0 = k1; goto s_state_out_len_eq_one;
          };
-         if (c_nblock_used == s_save_nblockPP) 
+         if (c_nblock_used == s_save_nblockPP)
             goto s_state_out_len_eq_one;
-   
+
          c_state_out_len = 2;
          BZ_GET_FAST_C(k1); c_nblock_used++;
          if (c_nblock_used == s_save_nblockPP) continue;
          if (k1 != c_k0) { c_k0 = k1; continue; };
-   
+
          c_state_out_len = 3;
          BZ_GET_FAST_C(k1); c_nblock_used++;
          if (c_nblock_used == s_save_nblockPP) continue;
          if (k1 != c_k0) { c_k0 = k1; continue; };
-   
+
          BZ_GET_FAST_C(k1); c_nblock_used++;
          c_state_out_len = ((Int32)k1) + 4;
          BZ_GET_FAST_C(c_k0); c_nblock_used++;
@@ -311,34 +311,34 @@ void unRLE_obuf_to_output_SMALL ( DState* s )
             s->strm->total_out_lo32++;
             if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
          }
-   
+
          /* can a new run be started? */
          if (s->nblock_used == s->save_nblock+1) return;
-               
-   
+
+
          s->state_out_len = 1;
          s->state_out_ch = s->k0;
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
+
          s->state_out_len = 2;
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
+
          s->state_out_len = 3;
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
          k1 ^= BZ_RAND_MASK; s->nblock_used++;
          s->state_out_len = ((Int32)k1) + 4;
-         BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; 
+         BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK;
          s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
       }
 
@@ -357,26 +357,26 @@ void unRLE_obuf_to_output_SMALL ( DState* s )
             s->strm->total_out_lo32++;
             if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
          }
-   
+
          /* can a new run be started? */
          if (s->nblock_used == s->save_nblock+1) return;
-   
+
          s->state_out_len = 1;
          s->state_out_ch = s->k0;
          BZ_GET_SMALL(k1); s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
+
          s->state_out_len = 2;
          BZ_GET_SMALL(k1); s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
+
          s->state_out_len = 3;
          BZ_GET_SMALL(k1); s->nblock_used++;
          if (s->nblock_used == s->save_nblock+1) continue;
          if (k1 != s->k0) { s->k0 = k1; continue; };
-   
+
          BZ_GET_SMALL(k1); s->nblock_used++;
          s->state_out_len = ((Int32)k1) + 4;
          BZ_GET_SMALL(s->k0); s->nblock_used++;
@@ -403,14 +403,14 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
             unRLE_obuf_to_output_FAST  ( s );
          if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
             BZ_FINALISE_CRC ( s->calculatedBlockCRC );
-            if (s->verbosity >= 3) 
-               VPrintf2 ( " {0x%x, 0x%x}", s->storedBlockCRC, 
+            if (s->verbosity >= 3)
+               VPrintf2 ( " {0x%x, 0x%x}", s->storedBlockCRC,
                           s->calculatedBlockCRC );
             if (s->verbosity >= 2) VPrintf0 ( "]" );
             if (s->calculatedBlockCRC != s->storedBlockCRC)
                return BZ_DATA_ERROR;
-            s->calculatedCombinedCRC 
-               = (s->calculatedCombinedCRC << 1) | 
+            s->calculatedCombinedCRC
+               = (s->calculatedCombinedCRC << 1) |
                     (s->calculatedCombinedCRC >> 31);
             s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
             s->state = BZ_X_BLKHDR_1;
@@ -422,7 +422,7 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
          Int32 r = BZ2_decompress ( s );
          if (r == BZ_STREAM_END) {
             if (s->verbosity >= 3)
-               VPrintf2 ( "\n    combined CRCs: stored = 0x%x, computed = 0x%x", 
+               VPrintf2 ( "\n    combined CRCs: stored = 0x%x, computed = 0x%x",
                           s->storedCombinedCRC, s->calculatedCombinedCRC );
             if (s->calculatedCombinedCRC != s->storedCombinedCRC)
                return BZ_DATA_ERROR;
@@ -435,7 +435,7 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
 /*
    AssertH ( 0, 6001 );
 
-   return 0;  
+   return 0;
 */
 }
 
@@ -458,4 +458,3 @@ int BZ_API(BZ2_bzDecompressEnd)  ( bz_stream *strm )
 
    return BZ_OK;
 }
-
blob - 74e1f88da69cc674ce9ad5ef225cbd334dc96110
blob + c96974daed724b4fe451fafd06ac1f60d981d7ae
--- src/cmd/bzip2/lib/bzfeof.c
+++ src/cmd/bzip2/lib/bzfeof.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -97,4 +97,3 @@ Bool bz_feof ( FILE* f )
    ungetc ( c, f );
    return False;
 }
-
blob - 66b89a2e8f9cf9b7cb03c5d94493a78fd4ac2323
blob + 12a4bf90f6540d99602bca3f166c15614be24b95
--- src/cmd/bzip2/lib/bzlib.c
+++ src/cmd/bzip2/lib/bzlib.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
blob - 0ece4e8a6d29fd4564a875c5d1f8902536f89fb1
blob + fae78bcbd9f425f5a4a4924759ba1bb6970f2c49
--- src/cmd/bzip2/lib/bzlib.h
+++ src/cmd/bzip2/lib/bzlib.h
@@ -29,16 +29,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -96,7 +96,7 @@ extern "C" {
 #define BZ_OUTBUFF_FULL      (-8)
 #define BZ_CONFIG_ERROR      (-9)
 
-typedef 
+typedef
    struct {
       char *next_in;
       unsigned int avail_in;
@@ -113,7 +113,7 @@ typedef 
       void *(*bzalloc)(void *,int,int);
       void (*bzfree)(void *,void *);
       void *opaque;
-   } 
+   }
    bz_stream;
 
 
@@ -144,57 +144,57 @@ typedef 
 
 /*-- Core (low-level) library functions --*/
 
-BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( 
-      bz_stream* strm, 
-      int        blockSize100k, 
-      int        verbosity, 
-      int        workFactor 
+BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
+      bz_stream* strm,
+      int        blockSize100k,
+      int        verbosity,
+      int        workFactor
    );
 
-BZ_EXTERN int BZ_API(BZ2_bzCompress) ( 
-      bz_stream* strm, 
-      int action 
+BZ_EXTERN int BZ_API(BZ2_bzCompress) (
+      bz_stream* strm,
+      int action
    );
 
-BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( 
-      bz_stream* strm 
+BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
+      bz_stream* strm
    );
 
-BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( 
-      bz_stream *strm, 
-      int       verbosity, 
+BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
+      bz_stream *strm,
+      int       verbosity,
       int       small
    );
 
-BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( 
-      bz_stream* strm 
+BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
+      bz_stream* strm
    );
 
-BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( 
-      bz_stream *strm 
+BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
+      bz_stream *strm
    );
 
 
 
 /*-- Utility functions --*/
 
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( 
-      char*         dest, 
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
+      char*         dest,
       unsigned int* destLen,
-      char*         source, 
+      char*         source,
       unsigned int  sourceLen,
-      int           blockSize100k, 
-      int           verbosity, 
-      int           workFactor 
+      int           blockSize100k,
+      int           verbosity,
+      int           workFactor
    );
 
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( 
-      char*         dest, 
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
+      char*         dest,
       unsigned int* destLen,
-      char*         source, 
+      char*         source,
       unsigned int  sourceLen,
-      int           small, 
-      int           verbosity 
+      int           small,
+      int           verbosity
    );
 
 
blob - ad57870636f349cdd6aa37671dc74a22e50d2ee5
blob + 002d79b3285dd5b2275fbf4ae1b72143d9a49675
--- src/cmd/bzip2/lib/bzlib_private.h
+++ src/cmd/bzip2/lib/bzlib_private.h
@@ -29,16 +29,16 @@
   1. Redistributions of source code must retain the above copyright
 	  notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-	  not claim that you wrote the original software.	If you use this 
-	  software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+	  not claim that you wrote the original software.	If you use this
+	  software in a product, an acknowledgment in the product
 	  documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
 	  not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-	  products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+	  products derived from this software without specific prior written
 	  permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -80,7 +80,7 @@
 
 #ifndef __GNUC__
 #define __inline__  /* */
-#endif 
+#endif
 
 /* these #defines can be overridden by bzlib_stdio.h */
 extern void bz_internal_error ( int errcode );
@@ -257,19 +257,19 @@ typedef
 
 /*-- externs for compression. --*/
 
-extern void 
+extern void
 BZ2_blockSort ( EState* );
 
-extern void 
+extern void
 BZ2_compressBlock ( EState*, Bool );
 
-extern void 
+extern void
 BZ2_bsInitWrite ( EState* );
 
-extern void 
+extern void
 BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 );
 
-extern void 
+extern void
 BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 );
 
 
@@ -413,7 +413,7 @@ typedef
 		Int32		save_N;
 		Int32		save_curr;
 		Int32		save_zt;
-		Int32		save_zn; 
+		Int32		save_zn;
 		Int32		save_zvec;
 		Int32		save_zj;
 		Int32		save_gSel;
@@ -463,13 +463,13 @@ typedef
 
 /*-- externs for decompression. --*/
 
-extern Int32 
+extern Int32
 BZ2_indexIntoF ( Int32, Int32* );
 
-extern Int32 
+extern Int32
 BZ2_decompress ( DState* );
 
-extern void 
+extern void
 BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*,
 									Int32,  Int32, Int32 );
 
blob - 30d41d998462a2685456658c5a5ee3ec6b6a1178
blob + 18805f0ba953006b680a1a996cb114efb8913418
--- src/cmd/bzip2/lib/bzlib_stdio.h
+++ src/cmd/bzip2/lib/bzlib_stdio.h
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -99,17 +99,17 @@ BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
       int        fd,
       const char *mode
    );
-         
+
 BZ_EXTERN int BZ_API(BZ2_bzread) (
-      BZFILE* b, 
-      void* buf, 
-      int len 
+      BZFILE* b,
+      void* buf,
+      int len
    );
 
 BZ_EXTERN int BZ_API(BZ2_bzwrite) (
-      BZFILE* b, 
-      void*   buf, 
-      int     len 
+      BZFILE* b,
+      void*   buf,
+      int     len
    );
 
 BZ_EXTERN int BZ_API(BZ2_bzflush) (
@@ -121,70 +121,69 @@ BZ_EXTERN void BZ_API(BZ2_bzclose) (
    );
 
 BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
-      BZFILE *b, 
+      BZFILE *b,
       int    *errnum
    );
 
 
 /*-- High(er) level library functions --*/
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( 
-      int*  bzerror,   
-      FILE* f, 
-      int   verbosity, 
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
+      int*  bzerror,
+      FILE* f,
+      int   verbosity,
       int   small,
-      void* unused,    
-      int   nUnused 
+      void* unused,
+      int   nUnused
    );
 
-BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( 
-      int*    bzerror, 
-      BZFILE* b 
+BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
+      int*    bzerror,
+      BZFILE* b
    );
 
-BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( 
-      int*    bzerror, 
-      BZFILE* b, 
-      void**  unused,  
-      int*    nUnused 
+BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
+      int*    bzerror,
+      BZFILE* b,
+      void**  unused,
+      int*    nUnused
    );
 
-BZ_EXTERN int BZ_API(BZ2_bzRead) ( 
-      int*    bzerror, 
-      BZFILE* b, 
-      void*   buf, 
-      int     len 
+BZ_EXTERN int BZ_API(BZ2_bzRead) (
+      int*    bzerror,
+      BZFILE* b,
+      void*   buf,
+      int     len
    );
 
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( 
-      int*  bzerror,      
-      FILE* f, 
-      int   blockSize100k, 
-      int   verbosity, 
-      int   workFactor 
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
+      int*  bzerror,
+      FILE* f,
+      int   blockSize100k,
+      int   verbosity,
+      int   workFactor
    );
 
-BZ_EXTERN void BZ_API(BZ2_bzWrite) ( 
-      int*    bzerror, 
-      BZFILE* b, 
-      void*   buf, 
-      int     len 
+BZ_EXTERN void BZ_API(BZ2_bzWrite) (
+      int*    bzerror,
+      BZFILE* b,
+      void*   buf,
+      int     len
    );
 
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( 
-      int*          bzerror, 
-      BZFILE*       b, 
-      int           abandon, 
-      unsigned int* nbytes_in, 
-      unsigned int* nbytes_out 
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
+      int*          bzerror,
+      BZFILE*       b,
+      int           abandon,
+      unsigned int* nbytes_in,
+      unsigned int* nbytes_out
    );
 
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( 
-      int*          bzerror, 
-      BZFILE*       b, 
-      int           abandon, 
-      unsigned int* nbytes_in_lo32, 
-      unsigned int* nbytes_in_hi32, 
-      unsigned int* nbytes_out_lo32, 
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
+      int*          bzerror,
+      BZFILE*       b,
+      int           abandon,
+      unsigned int* nbytes_in_lo32,
+      unsigned int* nbytes_in_hi32,
+      unsigned int* nbytes_out_lo32,
       unsigned int* nbytes_out_hi32
    );
-
blob - 24b3114436cbd8c1a1a3007e2382f524c8e111f1
blob + caacf36a19dd01c866ff303ccae9cc0ff26eda33
--- src/cmd/bzip2/lib/bzlib_stdio_private.h
+++ src/cmd/bzip2/lib/bzlib_stdio_private.h
@@ -53,7 +53,7 @@ extern void BZ2_bz__AssertH__fail ( int errcode );
    if (bzf != NULL) bzf->lastErr = eee;   \
 }
 
-typedef 
+typedef
    struct {
       FILE*     handle;
       Char      buf[BZ_MAX_UNUSED];
@@ -66,4 +66,3 @@ typedef 
    bzFile;
 
 extern Bool bz_feof( FILE* );
-
blob - 8bd03888d0e7f2a91391b287a66c306c84064eec
blob + e523d249cea3223226bbda2d05eb9ebf25fbdad4
--- src/cmd/bzip2/lib/bzread.c
+++ src/cmd/bzip2/lib/bzread.c
@@ -19,16 +19,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -82,9 +82,9 @@
 #include "bzlib_stdio_private.h"
 
 /*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzReadOpen) 
-                   ( int*  bzerror, 
-                     FILE* f, 
+BZFILE* BZ_API(BZ2_bzReadOpen)
+                   ( int*  bzerror,
+                     FILE* f,
                      int   verbosity,
                      int   small,
                      void* unused,
@@ -95,7 +95,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen) 
 
    BZ_SETERR(BZ_OK);
 
-   if (f == NULL || 
+   if (f == NULL ||
        (small != 0 && small != 1) ||
        (verbosity < 0 || verbosity > 4) ||
        (unused == NULL && nUnused != 0) ||
@@ -106,7 +106,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen) 
       { BZ_SETERR(BZ_IO_ERROR); return NULL; };
 
    bzf = malloc ( sizeof(bzFile) );
-   if (bzf == NULL) 
+   if (bzf == NULL)
       { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
 
    BZ_SETERR(BZ_OK);
@@ -118,7 +118,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen) 
    bzf->strm.bzalloc  = NULL;
    bzf->strm.bzfree   = NULL;
    bzf->strm.opaque   = NULL;
-   
+
    while (nUnused > 0) {
       bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
       unused = ((void*)( 1 + ((UChar*)(unused))  ));
@@ -133,7 +133,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen) 
    bzf->strm.next_in  = bzf->buf;
 
    bzf->initialisedOk = True;
-   return bzf;   
+   return bzf;
 }
 
 
@@ -156,10 +156,10 @@ void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b
 
 
 /*---------------------------------------------------*/
-int BZ_API(BZ2_bzRead) 
-           ( int*    bzerror, 
-             BZFILE* b, 
-             void*   buf, 
+int BZ_API(BZ2_bzRead)
+           ( int*    bzerror,
+             BZFILE* b,
+             void*   buf,
              int     len )
 {
    Int32   n, ret;
@@ -181,11 +181,11 @@ int BZ_API(BZ2_bzRead) 
 
    while (True) {
 
-      if (ferror(bzf->handle)) 
+      if (ferror(bzf->handle))
          { BZ_SETERR(BZ_IO_ERROR); return 0; };
 
       if (bzf->strm.avail_in == 0 && !bz_feof(bzf->handle)) {
-         n = fread ( bzf->buf, sizeof(UChar), 
+         n = fread ( bzf->buf, sizeof(UChar),
                      BZ_MAX_UNUSED, bzf->handle );
          if (ferror(bzf->handle))
             { BZ_SETERR(BZ_IO_ERROR); return 0; };
@@ -199,7 +199,7 @@ int BZ_API(BZ2_bzRead) 
       if (ret != BZ_OK && ret != BZ_STREAM_END)
          { BZ_SETERR(ret); return 0; };
 
-      if (ret == BZ_OK && bz_feof(bzf->handle) && 
+      if (ret == BZ_OK && bz_feof(bzf->handle) &&
           bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
          { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
 
@@ -208,7 +208,7 @@ int BZ_API(BZ2_bzRead) 
            return len - bzf->strm.avail_out; };
       if (bzf->strm.avail_out == 0)
          { BZ_SETERR(BZ_OK); return len; };
-      
+
    }
 
   /*  return 0; not reached*/
@@ -216,10 +216,10 @@ int BZ_API(BZ2_bzRead) 
 
 
 /*---------------------------------------------------*/
-void BZ_API(BZ2_bzReadGetUnused) 
-                     ( int*    bzerror, 
-                       BZFILE* b, 
-                       void**  unused, 
+void BZ_API(BZ2_bzReadGetUnused)
+                     ( int*    bzerror,
+                       BZFILE* b,
+                       void**  unused,
                        int*    nUnused )
 {
    bzFile* bzf = (bzFile*)b;
blob - 3e1f2de504e91c7d1e37c694fd24bc7499a35fe1
blob + 31b0a768894047d236df01590f805f4ead50e0ec
--- src/cmd/bzip2/lib/bzstdio.c
+++ src/cmd/bzip2/lib/bzstdio.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -95,4 +95,3 @@ Bool bz_feof ( FILE* f )
    ungetc ( c, f );
    return False;
 }
-
blob - 5320144b26eef4ca3b03918de333c346e9d029b6
blob + 601d0c91edd7f80aa62335b838e2997277cc3af9
--- src/cmd/bzip2/lib/bzversion.c
+++ src/cmd/bzip2/lib/bzversion.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -96,4 +96,3 @@ const char * BZ_API(BZ2_bzlibVersion)(void)
 {
    return BZ_VERSION;
 }
-
blob - a37a66bab29667409394c317de29d0433f349f12
blob + 086b6e2d0b792ae2bf27862542666b27e1deb3cc
--- src/cmd/bzip2/lib/bzwrite.c
+++ src/cmd/bzip2/lib/bzwrite.c
@@ -19,16 +19,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -82,10 +82,10 @@
 #include "bzlib_stdio_private.h"
 
 /*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzWriteOpen) 
-                    ( int*  bzerror,      
-                      FILE* f, 
-                      int   blockSize100k, 
+BZFILE* BZ_API(BZ2_bzWriteOpen)
+                    ( int*  bzerror,
+                      FILE* f,
+                      int   blockSize100k,
                       int   verbosity,
                       int   workFactor )
 {
@@ -117,23 +117,23 @@ BZFILE* BZ_API(BZ2_bzWriteOpen) 
    bzf->strm.opaque   = NULL;
 
    if (workFactor == 0) workFactor = 30;
-   ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, 
+   ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k,
                               verbosity, workFactor );
    if (ret != BZ_OK)
       { BZ_SETERR(ret); free(bzf); return NULL; };
 
    bzf->strm.avail_in = 0;
    bzf->initialisedOk = True;
-   return bzf;   
+   return bzf;
 }
 
 
 
 /*---------------------------------------------------*/
 void BZ_API(BZ2_bzWrite)
-             ( int*    bzerror, 
-               BZFILE* b, 
-               void*   buf, 
+             ( int*    bzerror,
+               BZFILE* b,
+               void*   buf,
                int     len )
 {
    Int32 n, n2, ret;
@@ -162,7 +162,7 @@ void BZ_API(BZ2_bzWrite)
 
       if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
          n = BZ_MAX_UNUSED - bzf->strm.avail_out;
-         n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
+         n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
                        n, bzf->handle );
          if (n != n2 || ferror(bzf->handle))
             { BZ_SETERR(BZ_IO_ERROR); return; };
@@ -176,20 +176,20 @@ void BZ_API(BZ2_bzWrite)
 
 /*---------------------------------------------------*/
 void BZ_API(BZ2_bzWriteClose)
-                  ( int*          bzerror, 
-                    BZFILE*       b, 
+                  ( int*          bzerror,
+                    BZFILE*       b,
                     int           abandon,
                     unsigned int* nbytes_in,
                     unsigned int* nbytes_out )
 {
-   BZ2_bzWriteClose64 ( bzerror, b, abandon, 
+   BZ2_bzWriteClose64 ( bzerror, b, abandon,
                         nbytes_in, NULL, nbytes_out, NULL );
 }
 
 
 void BZ_API(BZ2_bzWriteClose64)
-                  ( int*          bzerror, 
-                    BZFILE*       b, 
+                  ( int*          bzerror,
+                    BZFILE*       b,
                     int           abandon,
                     unsigned int* nbytes_in_lo32,
                     unsigned int* nbytes_in_hi32,
@@ -221,7 +221,7 @@ void BZ_API(BZ2_bzWriteClose64)
 
          if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
             n = BZ_MAX_UNUSED - bzf->strm.avail_out;
-            n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
+            n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
                           n, bzf->handle );
             if (n != n2 || ferror(bzf->handle))
                { BZ_SETERR(BZ_IO_ERROR); return; };
@@ -250,4 +250,3 @@ void BZ_API(BZ2_bzWriteClose64)
    BZ2_bzCompressEnd ( &(bzf->strm) );
    free ( bzf );
 }
-
blob - 87b6912890af79a7e931fdc99a5c6e9d3438d047
blob + 56b0b7dea50d96660b12ec734317d03bb917ee15
--- src/cmd/bzip2/lib/bzzlib.c
+++ src/cmd/bzip2/lib/bzzlib.c
@@ -28,16 +28,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -128,7 +128,7 @@ BZFILE * bzopen_or_bzdopen
    int    verbosity     = 0;
    int    workFactor    = 30;
    int    smallMode     = 0;
-   int    nUnused       = 0; 
+   int    nUnused       = 0;
 
    if (mode == NULL) return NULL;
    while (*mode) {
@@ -168,7 +168,7 @@ BZFILE * bzopen_or_bzdopen
    if (writing) {
       /* Guard against total chaos and anarchy -- JRS */
       if (blockSize100k < 1) blockSize100k = 1;
-      if (blockSize100k > 9) blockSize100k = 9; 
+      if (blockSize100k > 9) blockSize100k = 9;
       bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
                              verbosity,workFactor);
    } else {
@@ -247,7 +247,7 @@ void BZ_API(BZ2_bzclose) (BZFILE* b)
 {
    int bzerr;
    FILE *fp = ((bzFile *)b)->handle;
-   
+
    if (b==NULL) {return;}
    if(((bzFile*)b)->writing){
       BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL);
@@ -265,7 +265,7 @@ void BZ_API(BZ2_bzclose) (BZFILE* b)
 
 /*---------------------------------------------------*/
 /*--
-   return last error code 
+   return last error code
 --*/
 static char *bzerrorstrings[] = {
        "OK"
blob - 96c5591838ab1593fb8a40cbbb2ce28a8462dec7
blob + c7a1aa80bedc28978b2b8159eb6593fb499b48c4
--- src/cmd/bzip2/lib/compress.c
+++ src/cmd/bzip2/lib/compress.c
@@ -17,16 +17,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -66,7 +66,7 @@
    0.9.0a/b -- no changes in this file.
 
    0.9.0c
-      * changed setting of nGroups in sendMTFValues() so as to 
+      * changed setting of nGroups in sendMTFValues() so as to
         do a bit better on small files
 --*/
 
@@ -171,11 +171,11 @@ void generateMTFValues ( EState* s )
    Int32   wr;
    Int32   EOB;
 
-   /* 
+   /*
       After sorting (eg, here),
          s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,
          and
-         ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] 
+         ((UChar*)s->arr2) [ 0 .. s->nblock-1 ]
          holds the original block data.
 
       The first thing to do is generate the MTF values,
@@ -190,7 +190,7 @@ void generateMTFValues ( EState* s )
          (UChar*) (&((UChar*)s->arr2)[s->nblock])
 
       These storage aliases are set up in bzCompressInit(),
-      except for the last one, which is arranged in 
+      except for the last one, which is arranged in
       compressBlock().
    */
    UInt32* ptr   = s->ptr;
@@ -213,7 +213,7 @@ void generateMTFValues ( EState* s )
       ll_i = s->unseqToSeq[block[j]];
       AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );
 
-      if (yy[0] == ll_i) { 
+      if (yy[0] == ll_i) {
          zPend++;
       } else {
 
@@ -221,11 +221,11 @@ void generateMTFValues ( EState* s )
             zPend--;
             while (True) {
                if (zPend & 1) {
-                  mtfv[wr] = BZ_RUNB; wr++; 
-                  s->mtfFreq[BZ_RUNB]++; 
+                  mtfv[wr] = BZ_RUNB; wr++;
+                  s->mtfFreq[BZ_RUNB]++;
                } else {
-                  mtfv[wr] = BZ_RUNA; wr++; 
-                  s->mtfFreq[BZ_RUNA]++; 
+                  mtfv[wr] = BZ_RUNA; wr++;
+                  s->mtfFreq[BZ_RUNA]++;
                }
                if (zPend < 2) break;
                zPend = (zPend - 2) / 2;
@@ -259,11 +259,11 @@ void generateMTFValues ( EState* s )
       zPend--;
       while (True) {
          if (zPend & 1) {
-            mtfv[wr] = BZ_RUNB; wr++; 
-            s->mtfFreq[BZ_RUNB]++; 
+            mtfv[wr] = BZ_RUNB; wr++;
+            s->mtfFreq[BZ_RUNB]++;
          } else {
-            mtfv[wr] = BZ_RUNA; wr++; 
-            s->mtfFreq[BZ_RUNA]++; 
+            mtfv[wr] = BZ_RUNA; wr++;
+            s->mtfFreq[BZ_RUNA]++;
          }
          if (zPend < 2) break;
          zPend = (zPend - 2) / 2;
@@ -306,7 +306,7 @@ void sendMTFValues ( EState* s )
 
    if (s->verbosity >= 3)
       VPrintf3( "      %d in block, %d after MTF & 1-2 coding, "
-                "%d+2 syms in use\n", 
+                "%d+2 syms in use\n",
                 s->nblock, s->nMTF, s->nInUse );
 
    alphaSize = s->nInUse+2;
@@ -323,7 +323,7 @@ void sendMTFValues ( EState* s )
                        nGroups = 6;
 
    /*--- Generate an initial set of coding tables ---*/
-   { 
+   {
       Int32 nPart, remF, tFreq, aFreq;
 
       nPart = nGroups;
@@ -338,8 +338,8 @@ void sendMTFValues ( EState* s )
             aFreq += s->mtfFreq[ge];
          }
 
-         if (ge > gs 
-             && nPart != nGroups && nPart != 1 
+         if (ge > gs
+             && nPart != nGroups && nPart != 1
              && ((nGroups-nPart) % 2 == 1)) {
             aFreq -= s->mtfFreq[ge];
             ge--;
@@ -348,21 +348,21 @@ void sendMTFValues ( EState* s )
          if (s->verbosity >= 3)
             VPrintf5( "      initial group %d, [%d .. %d], "
                       "has %d syms (%4.1f%%)\n",
-                      nPart, gs, ge, aFreq, 
-                      (100.0 * (float)aFreq) / (float)(s->nMTF) );
- 
+                      nPart, gs, ge, aFreq,
+                      (100.0 * (float)aFreq) / (float)(s->nMTF) );
+
          for (v = 0; v < alphaSize; v++)
-            if (v >= gs && v <= ge) 
+            if (v >= gs && v <= ge)
                s->len[nPart-1][v] = BZ_LESSER_ICOST; else
                s->len[nPart-1][v] = BZ_GREATER_ICOST;
- 
+
          nPart--;
          gs = ge+1;
          remF -= aFreq;
       }
    }
 
-   /*--- 
+   /*---
       Iterate up to BZ_N_ITERS times to improve the tables.
    ---*/
    nSelectors = 40000;	/* shut up some compilers' warnings about used and not set */
@@ -377,7 +377,7 @@ void sendMTFValues ( EState* s )
 
       /*---
         Set up an auxiliary length table which is used to fast-track
-	the common case (nGroups == 6). 
+	the common case (nGroups == 6).
       ---*/
       if (nGroups == 6) {
          for (v = 0; v < alphaSize; v++) {
@@ -394,10 +394,10 @@ void sendMTFValues ( EState* s )
 
          /*--- Set group start & end marks. --*/
          if (gs >= s->nMTF) break;
-         ge = gs + BZ_G_SIZE - 1; 
+         ge = gs + BZ_G_SIZE - 1;
          if (ge >= s->nMTF) ge = s->nMTF-1;
 
-         /*-- 
+         /*--
             Calculate the cost of this group as coded
             by each of the coding tables.
          --*/
@@ -434,13 +434,13 @@ void sendMTFValues ( EState* s )
 
          } else {
 	    /*--- slow version which correctly handles all situations ---*/
-            for (i = gs; i <= ge; i++) { 
+            for (i = gs; i <= ge; i++) {
                UInt16 icv = mtfv[i];
                for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
             }
          }
- 
-         /*-- 
+
+         /*--
             Find the coding table which is best for this group,
             and record its identity in the selector table.
          --*/
@@ -452,7 +452,7 @@ void sendMTFValues ( EState* s )
          s->selector[nSelectors] = bt;
          nSelectors++;
 
-         /*-- 
+         /*--
             Increment the symbol frequencies for the selected table.
           --*/
          if (nGroups == 6 && 50 == ge-gs+1) {
@@ -482,7 +482,7 @@ void sendMTFValues ( EState* s )
          gs = ge+1;
       }
       if (s->verbosity >= 3) {
-         VPrintf2 ( "      pass %d: size is %d, grp uses are ", 
+         VPrintf2 ( "      pass %d: size is %d, grp uses are ",
                    iter+1, totc/8 );
          for (t = 0; t < nGroups; t++)
             VPrintf1 ( "%d ", fave[t] );
@@ -493,7 +493,7 @@ void sendMTFValues ( EState* s )
         Recompute the tables based on the accumulated frequencies.
       --*/
       for (t = 0; t < nGroups; t++)
-         BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), 
+         BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]),
                                  alphaSize, 20 );
    }
 
@@ -533,19 +533,19 @@ void sendMTFValues ( EState* s )
       }
       AssertH ( !(maxLen > 20), 3004 );
       AssertH ( !(minLen < 1),  3005 );
-      BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), 
+      BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]),
                           minLen, maxLen, alphaSize );
    }
 
    /*--- Transmit the mapping table. ---*/
-   { 
+   {
       Bool inUse16[16];
       for (i = 0; i < 16; i++) {
           inUse16[i] = False;
           for (j = 0; j < 16; j++)
              if (s->inUse[i * 16 + j]) inUse16[i] = True;
       }
-     
+
       nBytes = s->numZ;
       for (i = 0; i < 16; i++)
          if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0);
@@ -556,7 +556,7 @@ void sendMTFValues ( EState* s )
                if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0);
             }
 
-      if (s->verbosity >= 3) 
+      if (s->verbosity >= 3)
          VPrintf1( "      bytes: mapping %d, ", s->numZ-nBytes );
    }
 
@@ -564,7 +564,7 @@ void sendMTFValues ( EState* s )
    nBytes = s->numZ;
    bsW ( s, 3, nGroups );
    bsW ( s, 15, nSelectors );
-   for (i = 0; i < nSelectors; i++) { 
+   for (i = 0; i < nSelectors; i++) {
       for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1);
       bsW(s,1,0);
    }
@@ -593,14 +593,14 @@ void sendMTFValues ( EState* s )
    gs = 0;
    while (True) {
       if (gs >= s->nMTF) break;
-      ge = gs + BZ_G_SIZE - 1; 
+      ge = gs + BZ_G_SIZE - 1;
       if (ge >= s->nMTF) ge = s->nMTF-1;
       AssertH ( s->selector[selCtr] < nGroups, 3006 );
 
       if (nGroups == 6 && 50 == ge-gs+1) {
             /*--- fast track the common case ---*/
             UInt16 mtfv_i;
-            UChar* s_len_sel_selCtr 
+            UChar* s_len_sel_selCtr
                = &(s->len[s->selector[selCtr]][0]);
             Int32* s_code_sel_selCtr
                = &(s->code[s->selector[selCtr]][0]);
@@ -627,7 +627,7 @@ void sendMTFValues ( EState* s )
       } else {
 	 /*--- slow version which correctly handles all situations ---*/
          for (i = gs; i <= ge; i++) {
-            bsW ( s, 
+            bsW ( s,
                   s->len  [s->selector[selCtr]] [mtfv[i]],
                   s->code [s->selector[selCtr]] [mtfv[i]] );
          }
@@ -682,8 +682,8 @@ void BZ2_compressBlock ( EState* s, Bool is_last_block
       /*-- Now the block's CRC, so it is in a known place. --*/
       bsPutUInt32 ( s, s->blockCRC );
 
-      /*-- 
-         Now a single bit indicating (non-)randomisation. 
+      /*--
+         Now a single bit indicating (non-)randomisation.
          As of version 0.9.5, we use a better sorting algorithm
          which makes randomisation unnecessary.  So always set
          the randomised bit to 'no'.  Of course, the decoder
blob - db1eb93f88dbaa1f99c3b95524c60ae93c26dc10
blob + efd1f8fb222f0b278212a3dd844ae68c3da14a99
--- src/cmd/bzip2/lib/crctable.c
+++ src/cmd/bzip2/lib/crctable.c
@@ -17,16 +17,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
blob - 734bfee7bdf9cf871bcef3040662254baa173f58
blob + e9f8a59d558affcf774aa420887b3904b05d02e1
--- src/cmd/bzip2/lib/decompress.c
+++ src/cmd/bzip2/lib/decompress.c
@@ -17,16 +17,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -169,7 +169,7 @@ Int32 BZ2_decompress ( DState* s )
    Int32  N;
    Int32  curr;
    Int32  zt;
-   Int32  zn; 
+   Int32  zn;
    Int32  zvec;
    Int32  zj;
    Int32  gSel;
@@ -223,7 +223,7 @@ Int32 BZ2_decompress ( DState* s )
    N           = s->save_N;
    curr        = s->save_curr;
    zt          = s->save_zt;
-   zn          = s->save_zn; 
+   zn          = s->save_zn;
    zvec        = s->save_zvec;
    zj          = s->save_zj;
    gSel        = s->save_gSel;
@@ -246,14 +246,14 @@ Int32 BZ2_decompress ( DState* s )
       if (uc != 'h') RETURN(BZ_DATA_ERROR_MAGIC);
 
       GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
-      if (s->blockSize100k < '1' || 
+      if (s->blockSize100k < '1' ||
           s->blockSize100k > '9') RETURN(BZ_DATA_ERROR_MAGIC);
       s->blockSize100k -= '0';
 
       if (s->smallDecompress) {
          s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
-         s->ll4  = BZALLOC( 
-                      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) 
+         s->ll4  = BZALLOC(
+                      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar)
                    );
          if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
       } else {
@@ -279,7 +279,7 @@ Int32 BZ2_decompress ( DState* s )
       s->currBlockNo++;
       if (s->verbosity >= 2)
          VPrintf1 ( "\n    [%d: huff+mtf ", s->currBlockNo );
- 
+
       s->storedBlockCRC = 0;
       GET_UCHAR(BZ_X_BCRC_1, uc);
       s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
@@ -302,14 +302,14 @@ Int32 BZ2_decompress ( DState* s )
 
       if (s->origPtr < 0)
          RETURN(BZ_DATA_ERROR);
-      if (s->origPtr > 10 + 100000*s->blockSize100k) 
+      if (s->origPtr > 10 + 100000*s->blockSize100k)
          RETURN(BZ_DATA_ERROR);
 
       /*--- Receive the mapping table ---*/
       for (i = 0; i < 16; i++) {
          GET_BIT(BZ_X_MAPPING_1, uc);
-         if (uc == 1) 
-            s->inUse16[i] = True; else 
+         if (uc == 1)
+            s->inUse16[i] = True; else
             s->inUse16[i] = False;
       }
 
@@ -345,7 +345,7 @@ Int32 BZ2_decompress ( DState* s )
       {
          UChar pos[BZ_N_GROUPS], tmp, v;
          for (v = 0; v < nGroups; v++) pos[v] = v;
-   
+
          for (i = 0; i < nSelectors; i++) {
             v = s->selectorMtf[i];
             tmp = pos[v];
@@ -378,10 +378,10 @@ Int32 BZ2_decompress ( DState* s )
             if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
             if (s->len[t][i] < minLen) minLen = s->len[t][i];
          }
-         BZ2_hbCreateDecodeTables ( 
-            &(s->limit[t][0]), 
-            &(s->base[t][0]), 
-            &(s->perm[t][0]), 
+         BZ2_hbCreateDecodeTables (
+            &(s->limit[t][0]),
+            &(s->base[t][0]),
+            &(s->perm[t][0]),
             &(s->len[t][0]),
             minLen, maxLen, alphaSize
          );
@@ -473,23 +473,23 @@ Int32 BZ2_decompress ( DState* s )
                      s->mtfa[(z)-3] = s->mtfa[(z)-4];
                      nn -= 4;
                   }
-                  while (nn > 0) { 
-                     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; 
+                  while (nn > 0) {
+                     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--;
                   };
                   s->mtfa[pp] = uc;
-               } else { 
+               } else {
                   /* general case */
                   lno = nn / MTFL_SIZE;
                   off = nn % MTFL_SIZE;
                   pp = s->mtfbase[lno] + off;
                   uc = s->mtfa[pp];
-                  while (pp > s->mtfbase[lno]) { 
-                     s->mtfa[pp] = s->mtfa[pp-1]; pp--; 
+                  while (pp > s->mtfbase[lno]) {
+                     s->mtfa[pp] = s->mtfa[pp-1]; pp--;
                   };
                   s->mtfbase[lno]++;
                   while (lno > 0) {
                      s->mtfbase[lno]--;
-                     s->mtfa[s->mtfbase[lno]] 
+                     s->mtfa[s->mtfbase[lno]]
                         = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
                      lno--;
                   }
@@ -565,7 +565,7 @@ Int32 BZ2_decompress ( DState* s )
          if (s->blockRandomised) {
             BZ_RAND_INIT_MASK;
             BZ_GET_SMALL(s->k0); s->nblock_used++;
-            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
+            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
          } else {
             BZ_GET_SMALL(s->k0); s->nblock_used++;
          }
@@ -584,7 +584,7 @@ Int32 BZ2_decompress ( DState* s )
          if (s->blockRandomised) {
             BZ_RAND_INIT_MASK;
             BZ_GET_FAST(s->k0); s->nblock_used++;
-            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
+            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
          } else {
             BZ_GET_FAST(s->k0); s->nblock_used++;
          }
@@ -653,7 +653,7 @@ Int32 BZ2_decompress ( DState* s )
    s->save_gBase       = gBase;
    s->save_gPerm       = gPerm;
 
-   return retVal;   
+   return retVal;
 }
 
 
blob - 9cad09706ca04fc8582254155f537ed87f99b9a8
blob + 9388ef21326d3cc63d7fbf04e06460d421bbcada
--- src/cmd/bzip2/lib/huffman.c
+++ src/cmd/bzip2/lib/huffman.c
@@ -17,16 +17,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -102,7 +102,7 @@
 
 
 /*---------------------------------------------------*/
-void BZ2_hbMakeCodeLengths ( UChar *len, 
+void BZ2_hbMakeCodeLengths ( UChar *len,
                              Int32 *freq,
                              Int32 alphaSize,
                              Int32 maxLen )
@@ -116,7 +116,7 @@ void BZ2_hbMakeCodeLengths ( UChar *len, 
 
    Int32 heap   [ BZ_MAX_ALPHA_SIZE + 2 ];
    Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ];
-   Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; 
+   Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ];
 
    for (i = 0; i < alphaSize; i++)
       weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8;
@@ -138,7 +138,7 @@ void BZ2_hbMakeCodeLengths ( UChar *len, 
       }
 
       AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 );
-   
+
       while (nHeap > 1) {
          n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
          n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
@@ -161,7 +161,7 @@ void BZ2_hbMakeCodeLengths ( UChar *len, 
          len[i-1] = j;
          if (j > maxLen) tooLong = True;
       }
-      
+
       if (! tooLong) break;
 
       for (i = 1; i < alphaSize; i++) {
blob - aa196a878f91098b919d722a8a6e8c3cb9262b6b
blob + 1236e5d5827e3da70f40f56603b158b39a0c371c
--- src/cmd/bzip2/lib/os.h
+++ src/cmd/bzip2/lib/os.h
@@ -76,7 +76,7 @@ typedef int             Int32;
 typedef unsigned int    UInt32;
 typedef short           Int16;
 typedef unsigned short  UInt16;
-                                       
+
 #define True  ((Bool)1)
 #define False ((Bool)0)
 
@@ -85,4 +85,3 @@ typedef unsigned short  UInt16;
   Only here to avoid probs with 64-bit platforms.
 --*/
 typedef int IntNative;
-
blob - 2ab1e952d51b666fbd2d6c194da6c62814d2dc10
blob + c6d70773a0a1cbbb1df35954aec50e7f4ea34531
--- src/cmd/bzip2/lib/randtable.c
+++ src/cmd/bzip2/lib/randtable.c
@@ -17,16 +17,16 @@
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
 
-  2. The origin of this software must not be misrepresented; you must 
-     not claim that you wrote the original software.  If you use this 
-     software in a product, an acknowledgment in the product 
+  2. The origin of this software must not be misrepresented; you must
+     not claim that you wrote the original software.  If you use this
+     software in a product, an acknowledgment in the product
      documentation would be appreciated but is not required.
 
   3. Altered source versions must be plainly marked as such, and must
      not be misrepresented as being the original software.
 
-  4. The name of the author may not be used to endorse or promote 
-     products derived from this software without specific prior written 
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
      permission.
 
   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -64,58 +64,58 @@
 
 
 /*---------------------------------------------*/
-Int32 BZ2_rNums[512] = { 
-   619, 720, 127, 481, 931, 816, 813, 233, 566, 247, 
-   985, 724, 205, 454, 863, 491, 741, 242, 949, 214, 
-   733, 859, 335, 708, 621, 574, 73, 654, 730, 472, 
-   419, 436, 278, 496, 867, 210, 399, 680, 480, 51, 
-   878, 465, 811, 169, 869, 675, 611, 697, 867, 561, 
-   862, 687, 507, 283, 482, 129, 807, 591, 733, 623, 
-   150, 238, 59, 379, 684, 877, 625, 169, 643, 105, 
-   170, 607, 520, 932, 727, 476, 693, 425, 174, 647, 
-   73, 122, 335, 530, 442, 853, 695, 249, 445, 515, 
-   909, 545, 703, 919, 874, 474, 882, 500, 594, 612, 
-   641, 801, 220, 162, 819, 984, 589, 513, 495, 799, 
-   161, 604, 958, 533, 221, 400, 386, 867, 600, 782, 
-   382, 596, 414, 171, 516, 375, 682, 485, 911, 276, 
-   98, 553, 163, 354, 666, 933, 424, 341, 533, 870, 
-   227, 730, 475, 186, 263, 647, 537, 686, 600, 224, 
-   469, 68, 770, 919, 190, 373, 294, 822, 808, 206, 
-   184, 943, 795, 384, 383, 461, 404, 758, 839, 887, 
-   715, 67, 618, 276, 204, 918, 873, 777, 604, 560, 
-   951, 160, 578, 722, 79, 804, 96, 409, 713, 940, 
-   652, 934, 970, 447, 318, 353, 859, 672, 112, 785, 
-   645, 863, 803, 350, 139, 93, 354, 99, 820, 908, 
-   609, 772, 154, 274, 580, 184, 79, 626, 630, 742, 
-   653, 282, 762, 623, 680, 81, 927, 626, 789, 125, 
-   411, 521, 938, 300, 821, 78, 343, 175, 128, 250, 
-   170, 774, 972, 275, 999, 639, 495, 78, 352, 126, 
-   857, 956, 358, 619, 580, 124, 737, 594, 701, 612, 
-   669, 112, 134, 694, 363, 992, 809, 743, 168, 974, 
-   944, 375, 748, 52, 600, 747, 642, 182, 862, 81, 
-   344, 805, 988, 739, 511, 655, 814, 334, 249, 515, 
-   897, 955, 664, 981, 649, 113, 974, 459, 893, 228, 
-   433, 837, 553, 268, 926, 240, 102, 654, 459, 51, 
-   686, 754, 806, 760, 493, 403, 415, 394, 687, 700, 
-   946, 670, 656, 610, 738, 392, 760, 799, 887, 653, 
-   978, 321, 576, 617, 626, 502, 894, 679, 243, 440, 
-   680, 879, 194, 572, 640, 724, 926, 56, 204, 700, 
-   707, 151, 457, 449, 797, 195, 791, 558, 945, 679, 
-   297, 59, 87, 824, 713, 663, 412, 693, 342, 606, 
-   134, 108, 571, 364, 631, 212, 174, 643, 304, 329, 
-   343, 97, 430, 751, 497, 314, 983, 374, 822, 928, 
-   140, 206, 73, 263, 980, 736, 876, 478, 430, 305, 
-   170, 514, 364, 692, 829, 82, 855, 953, 676, 246, 
-   369, 970, 294, 750, 807, 827, 150, 790, 288, 923, 
-   804, 378, 215, 828, 592, 281, 565, 555, 710, 82, 
-   896, 831, 547, 261, 524, 462, 293, 465, 502, 56, 
-   661, 821, 976, 991, 658, 869, 905, 758, 745, 193, 
-   768, 550, 608, 933, 378, 286, 215, 979, 792, 961, 
-   61, 688, 793, 644, 986, 403, 106, 366, 905, 644, 
-   372, 567, 466, 434, 645, 210, 389, 550, 919, 135, 
-   780, 773, 635, 389, 707, 100, 626, 958, 165, 504, 
-   920, 176, 193, 713, 857, 265, 203, 50, 668, 108, 
-   645, 990, 626, 197, 510, 357, 358, 850, 858, 364, 
+Int32 BZ2_rNums[512] = {
+   619, 720, 127, 481, 931, 816, 813, 233, 566, 247,
+   985, 724, 205, 454, 863, 491, 741, 242, 949, 214,
+   733, 859, 335, 708, 621, 574, 73, 654, 730, 472,
+   419, 436, 278, 496, 867, 210, 399, 680, 480, 51,
+   878, 465, 811, 169, 869, 675, 611, 697, 867, 561,
+   862, 687, 507, 283, 482, 129, 807, 591, 733, 623,
+   150, 238, 59, 379, 684, 877, 625, 169, 643, 105,
+   170, 607, 520, 932, 727, 476, 693, 425, 174, 647,
+   73, 122, 335, 530, 442, 853, 695, 249, 445, 515,
+   909, 545, 703, 919, 874, 474, 882, 500, 594, 612,
+   641, 801, 220, 162, 819, 984, 589, 513, 495, 799,
+   161, 604, 958, 533, 221, 400, 386, 867, 600, 782,
+   382, 596, 414, 171, 516, 375, 682, 485, 911, 276,
+   98, 553, 163, 354, 666, 933, 424, 341, 533, 870,
+   227, 730, 475, 186, 263, 647, 537, 686, 600, 224,
+   469, 68, 770, 919, 190, 373, 294, 822, 808, 206,
+   184, 943, 795, 384, 383, 461, 404, 758, 839, 887,
+   715, 67, 618, 276, 204, 918, 873, 777, 604, 560,
+   951, 160, 578, 722, 79, 804, 96, 409, 713, 940,
+   652, 934, 970, 447, 318, 353, 859, 672, 112, 785,
+   645, 863, 803, 350, 139, 93, 354, 99, 820, 908,
+   609, 772, 154, 274, 580, 184, 79, 626, 630, 742,
+   653, 282, 762, 623, 680, 81, 927, 626, 789, 125,
+   411, 521, 938, 300, 821, 78, 343, 175, 128, 250,
+   170, 774, 972, 275, 999, 639, 495, 78, 352, 126,
+   857, 956, 358, 619, 580, 124, 737, 594, 701, 612,
+   669, 112, 134, 694, 363, 992, 809, 743, 168, 974,
+   944, 375, 748, 52, 600, 747, 642, 182, 862, 81,
+   344, 805, 988, 739, 511, 655, 814, 334, 249, 515,
+   897, 955, 664, 981, 649, 113, 974, 459, 893, 228,
+   433, 837, 553, 268, 926, 240, 102, 654, 459, 51,
+   686, 754, 806, 760, 493, 403, 415, 394, 687, 700,
+   946, 670, 656, 610, 738, 392, 760, 799, 887, 653,
+   978, 321, 576, 617, 626, 502, 894, 679, 243, 440,
+   680, 879, 194, 572, 640, 724, 926, 56, 204, 700,
+   707, 151, 457, 449, 797, 195, 791, 558, 945, 679,
+   297, 59, 87, 824, 713, 663, 412, 693, 342, 606,
+   134, 108, 571, 364, 631, 212, 174, 643, 304, 329,
+   343, 97, 430, 751, 497, 314, 983, 374, 822, 928,
+   140, 206, 73, 263, 980, 736, 876, 478, 430, 305,
+   170, 514, 364, 692, 829, 82, 855, 953, 676, 246,
+   369, 970, 294, 750, 807, 827, 150, 790, 288, 923,
+   804, 378, 215, 828, 592, 281, 565, 555, 710, 82,
+   896, 831, 547, 261, 524, 462, 293, 465, 502, 56,
+   661, 821, 976, 991, 658, 869, 905, 758, 745, 193,
+   768, 550, 608, 933, 378, 286, 215, 979, 792, 961,
+   61, 688, 793, 644, 986, 403, 106, 366, 905, 644,
+   372, 567, 466, 434, 645, 210, 389, 550, 919, 135,
+   780, 773, 635, 389, 707, 100, 626, 958, 165, 504,
+   920, 176, 193, 713, 857, 265, 203, 50, 668, 108,
+   645, 990, 626, 197, 510, 357, 358, 850, 858, 364,
    936, 638
 };
 
blob - e47197b82500b88a10ac20001b66a98b85794548
blob + 797ba1187c1119dfbd92cfe33c3cbfe1d5bb39c7
--- src/cmd/bzip2/lib/unix.h
+++ src/cmd/bzip2/lib/unix.h
@@ -5,4 +5,3 @@
 #include <math.h>
 #include <errno.h>
 #include <ctype.h>
-
blob - 778c76082846beb54c16afe0d2b2249ac09a525d
blob + c936a286aacf11f6a252f06f128544599db444ed
--- src/cmd/calendar.c
+++ src/cmd/calendar.c
@@ -99,7 +99,7 @@ main(int argc, char *argv[])
 	exits("");
 }
 
-char *months[] = 
+char *months[] =
 {
 	"january",
 	"february",
@@ -146,7 +146,7 @@ dates(Date **last, Tm *tm)
 	first = alloc(sizeof(Date));
 	if(*last)
 		(*last)->next = first;
-	first->p = regcomp(buf);	
+	first->p = regcomp(buf);
 
 	if (matchyear)
 		snprint(buf, sizeof buf,
@@ -159,7 +159,7 @@ dates(Date **last, Tm *tm)
 	if(debug)
 		print("%s\n", buf);
 	nd = alloc(sizeof(Date));
-	nd->p = regcomp(buf);	
+	nd->p = regcomp(buf);
 	nd->next = 0;
 	first->next = nd;
 	*last = nd;
blob - ac5888979725984641e4d2e247d40ec8f626d313
blob + 8fdcf4ec359a19309799784edfe3a8bae36c7a48
--- src/cmd/cat.c
+++ src/cmd/cat.c
@@ -33,4 +33,3 @@ main(int argc, char *argv[])
 	}
 	exits(0);
 }
-
blob - 9e611f042c75f49897d80d1c4f47acb1ba1a1848
blob + ebca5cc5e9233a0257b4ebfe3ac578bfed8d959d
--- src/cmd/cb/cb.c
+++ src/cmd/cb/cb.c
@@ -1007,7 +1007,7 @@ clearif(struct indent *cl)
 	int i;
 	for(i=0;i<IFLEVEL-1;i++)cl->ifc[i] = 0;
 }
-char 
+char
 puttmp(char c, int keep)
 {
 	if(tp < &temp[TEMP-120])
blob - 4f69e181597666c8855656231c2d7baefa32d7a8
blob + f06f12a51f020897a994a1ee5de2f031c209f063
--- src/cmd/cmp.c
+++ src/cmd/cmp.c
@@ -88,7 +88,7 @@ main(int argc, char *argv[])
 					print("%6lld 0x%.2x 0x%.2x\n", nc+i, *p, *q);
 				}
 			}
-		}		
+		}
 		if(Lflag)
 			for(p = b1s; p < b1e;)
 				if(*p++ == '\n')
blob - fc2ec5af5017e36bd97c8539a42ade35fae1df98
blob + 272f5ec8c7d854b4b64b133d0086729a89ab8475
--- src/cmd/date.c
+++ src/cmd/date.c
@@ -25,6 +25,6 @@ main(int argc, char *argv[])
 		print("%s", asctime(gmtime(now)));
 	else
 		print("%s", ctime(now));
-	
+
 	exits(0);
 }
blob - 55ed02a8283d830b2939a97bbd2ad20f810fdff8
blob + b89318e8017ef5483733ffc9593d96d8140b04f7
--- src/cmd/db/command.c
+++ src/cmd/db/command.c
@@ -76,26 +76,26 @@ command(char *buf, int defcom)
 			break;
 
 		case '>':
-			lastcom = savecom; 
+			lastcom = savecom;
 			savc=rdc();
 			if (reg=regname(savc))
 				rput(correg, reg, dot);
-			else	
+			else
 				error("bad variable");
 			break;
 
 		case '!':
 			lastcom=savecom;
-			shell(); 
+			shell();
 			break;
 
 		case '$':
 			lastcom=savecom;
-			printdollar(nextchar()); 
+			printdollar(nextchar());
 			break;
 
 		case ':':
-			if (!executing) { 
+			if (!executing) {
 				executing=TRUE;
 				subpcs(nextchar());
 				executing=FALSE;
@@ -107,7 +107,7 @@ command(char *buf, int defcom)
 			prints(DBNAME);
 			break;
 
-		default: 
+		default:
 			error("bad command");
 		}
 		flushbuf();
@@ -159,21 +159,21 @@ acommand(int pc)
 	{
 	case 'm':
 		if (eqcom)
-			error(BADEQ); 
+			error(BADEQ);
 		cmdmap(map);
 		break;
 
 	case 'L':
 	case 'l':
 		if (eqcom)
-			error(BADEQ); 
+			error(BADEQ);
 		cmdsrc(lastc, map);
 		break;
 
 	case 'W':
 	case 'w':
 		if (eqcom)
-			error(BADEQ); 
+			error(BADEQ);
 		cmdwrite(lastc, map);
 		break;
 
@@ -199,10 +199,10 @@ cmdsrc(int c, Map *map)
 	else
 		dotinc = 2;
 	savdot=dot;
-	expr(1); 
+	expr(1);
 	locval=expv;
 	if (expr(0))
-		locmsk=expv; 
+		locmsk=expv;
 	else
 		locmsk = ~0;
 	if (c == 'L')
@@ -211,8 +211,8 @@ cmdsrc(int c, Map *map)
 	else
 		while ((ret = get2(map, dot, &sh)) > 0 && (sh&locmsk) != locval)
 			dot = inkdot(dotinc);
-	if (ret < 0) { 
-		dot=savdot; 
+	if (ret < 0) {
+		dot=savdot;
 		error("%r");
 	}
 	symoff(buf, 512, dot, CANY);
@@ -235,7 +235,7 @@ cmdwrite(int wcom, Map *map)
 	expr(1);
 	pass = 0;
 	do {
-		pass++;  
+		pass++;
 		savdot=dot;
 		exform(1, 1, format, map, 0, pass);
 		dot=savdot;
@@ -247,7 +247,7 @@ cmdwrite(int wcom, Map *map)
 				error(badwrite);
 		}
 		savdot=dot;
-		dprint("=%8t"); 
+		dprint("=%8t");
 		exform(1, 0, format, map, 0, pass);
 		newline();
 	} while (expr(0));
@@ -305,7 +305,7 @@ shell(void)
 			}
 			break;
 		}
-		prints("!"); 
+		prints("!");
 		reread();
 	}
 }
blob - 74c9319a7884cb2aedfd26537f891faddb8431fb
blob + 72b8c906747f9994c64790600560a921172d0d22
--- src/cmd/db/expr.c
+++ src/cmd/db/expr.c
@@ -186,7 +186,7 @@ item(int a)
 			return 1;
 		}
 		error("bad file location");
-	} else if (symchar(0)) {	
+	} else if (symchar(0)) {
 		readsym(gsym);
 		if (lastc=='.') {
 			readchar();	/* ugh */
@@ -212,7 +212,7 @@ item(int a)
 		reread();
 	} else if (getnum(readchar)) {
 		;
-	} else if (lastc=='.') {	
+	} else if (lastc=='.') {
 		readchar();
 		if (!symchar(0) && lastc != '.') {
 			expv = dot;
@@ -228,7 +228,7 @@ item(int a)
 			if (localaddr(cormap, correg, s.name, lsym, &u) < 0)
 				error("%r");
 			expv = u;
-		}	
+		}
 		reread();
 	} else if (lastc=='"') {
 		expv=ditto;
@@ -245,7 +245,7 @@ item(int a)
 		expv = ascval();
 	else if (a)
 		error("address expected");
-	else {	
+	else {
 		reread();
 		return(0);
 	}
blob - 8cd091b017a259f2416a9a2ef1afca5f00b76cef
blob + bd97cd7075eb5d0d95c51c1242ec31cc1bed2b47
--- src/cmd/db/input.c
+++ src/cmd/db/input.c
@@ -144,7 +144,7 @@ getformat(char *deformat)
  *
  *	we handle this case specially because we have to look ahead
  *	at the token after the colon to decide if it is a file reference
- *	or a colon-command with a symbol name prefix. 
+ *	or a colon-command with a symbol name prefix.
  */
 
 int
blob - 176cec2858c1e2298fc027369a84808e4f90a8d9
blob + db4d0fa25eba5d9956b14267eae4644ed84d1249
--- src/cmd/db/output.c
+++ src/cmd/db/output.c
@@ -77,7 +77,7 @@ iclose(int stack, int err)
 		infile = STDIN;
 	} else {
 		if (infile) {
-			close(infile); 
+			close(infile);
 			infile=STDIN;
 		}
 		if (ifiledepth > 0) {
blob - b876f50abe9f4c2a40f2d7c80a039b4b87e8bb9f
blob + 681819da66ded907fdbe878c4c62f2e8b3a2fdbc
--- src/cmd/db/pcs.c
+++ src/cmd/db/pcs.c
@@ -29,7 +29,7 @@ subpcs(int modif)
 	switch (modif) {
 
 		/* delete breakpoint */
-	case 'd': 
+	case 'd':
 	case 'D':
 		if ((bk=scanbkpt(dot)) == 0)
 			error("no breakpoint set");
@@ -37,7 +37,7 @@ subpcs(int modif)
 		return;
 
 		/* set breakpoint */
-	case 'b': 
+	case 'b':
 	case 'B':
 		if (bk=scanbkpt(dot))
 			bk->flag=BKPTCLR;
@@ -80,7 +80,7 @@ subpcs(int modif)
 		return;
 
 		/* run program */
-	case 'r': 
+	case 'r':
 	case 'R':
 		endpcs();
 		setup();
@@ -88,7 +88,7 @@ subpcs(int modif)
 		break;
 
 		/* single step */
-	case 's': 
+	case 's':
 		if (pid == 0) {
 			setup();
 			loopcnt--;
@@ -119,8 +119,8 @@ subpcs(int modif)
 		loopcnt = 0;
 		break;
 		/* continue with optional note */
-	case 'c': 
-	case 'C': 
+	case 'c':
+	case 'C':
 		if (pid==0)
 			error(NOPCS);
 		runmode=CONTIN;
blob - eaeb61f2b140ab241ae0af4091ec562388239efa
blob + 15a196e1199abb19becf0713e08e9914f6d7c83e
--- src/cmd/db/setup.c
+++ src/cmd/db/setup.c
@@ -100,15 +100,15 @@ cmdmap(Map *map)
 	/*		textseg(expv, &fhdr); */
 		map->seg[i].base = expv;
 	} else
-		error("Invalid base address"); 
+		error("Invalid base address");
 	if (expr(0))
 		map->seg[i].size = expv - map->seg[i].base;
 	else
-		error("Invalid end address"); 
+		error("Invalid end address");
 	if (expr(0))
-		map->seg[i].offset = expv; 
+		map->seg[i].offset = expv;
 	else
-		error("Invalid file offset"); 
+		error("Invalid file offset");
 /*
 	if (rdc()=='?' && map == cormap) {
 		if (fcor)
blob - 1b758efec074c7165289f7cf5f9ccc153c110978
blob + 0ad083759d94390241830c13a3e075388f38457f
--- src/cmd/deroff.c
+++ src/cmd/deroff.c
@@ -13,7 +13,7 @@
  * Deroff follows .so and .nx commands, removes contents of macro
  * definitions, equations (both .EQ ... .EN and $...$),
  * Tbl command sequences, and Troff backslash vconstructions.
- * 
+ *
  * All input is through the C macro; the most recently read character is in c.
  */
 
@@ -37,7 +37,7 @@
 #define	C	fC()
 #define	C1	fC1()
 
-#define	SKIP	while(C != '\n') 
+#define	SKIP	while(C != '\n')
 #define SKIP1	while(C1 != '\n')
 #define SKIP_TO_COM		SKIP;\
 				SKIP;\
@@ -211,7 +211,7 @@ skeqn(void)
 			c = C1;
 		else if(c == '"')
 			while(C1 != '"')
-				if(c == '\\') 
+				if(c == '\\')
 					C1;
 	if (msflag)
 		eqnflag = 1;
@@ -257,9 +257,9 @@ getfname(void)
 	Rune r;
 	Dir *dir;
 	struct chain
-	{ 
-		struct	chain*	nextp; 
-		char*	datap; 
+	{
+		struct	chain*	nextp;
+		char*	datap;
 	} *q;
 
 	static struct chain *namechain= 0;
@@ -470,7 +470,7 @@ comx:
 	else
 	if(filesp==files && c1=='T' && (c2=='S' || c2=='C' || c2=='&')) {
 		if(msflag)
-			stbl(); 
+			stbl();
 		else
 			tbl();
 	}
@@ -512,11 +512,11 @@ comx:
 		SKIP;
 	else
 	if(c1=='h' && c2=='w')
-		SKIP; 
+		SKIP;
 	else
 	if(msflag && c1 == 'T' && c2 == 'L') {
 		SKIP_TO_COM;
-		goto comx; 
+		goto comx;
 	}
 	else
 	if(msflag && c1=='N' && c2 == 'R')
@@ -526,17 +526,17 @@ comx:
 		if(mac==MM)SKIP;
 		else {
 			SKIP_TO_COM;
-			goto comx; 
+			goto comx;
 		}
 	} else
 	if(msflag && c1=='F' && c2=='S') {
 		SKIP_TO_COM;
-		goto comx; 
+		goto comx;
 	}
 	else
 	if(msflag && (c1=='S' || c1=='N') && c2=='H') {
 		SKIP_TO_COM;
-		goto comx; 
+		goto comx;
 	} else
 	if(c1 == 'U' && c2 == 'X') {
 		if(wordflag)
@@ -546,7 +546,7 @@ comx:
 	} else
 	if(msflag && c1=='O' && c2=='K') {
 		SKIP_TO_COM;
-		goto comx; 
+		goto comx;
 	} else
 	if(msflag && c1=='N' && c2=='D')
 		SKIP;
@@ -565,11 +565,11 @@ comx:
 	if(!msflag && c1=='P' && c2=='S') {
 		inpic();
 	} else
-	if(msflag && (c1=='D' || c1=='N' || c1=='K'|| c1=='P') && c2=='S') { 
-		sdis(c1, 'E'); 
+	if(msflag && (c1=='D' || c1=='N' || c1=='K'|| c1=='P') && c2=='S') {
+		sdis(c1, 'E');
 	} else
-	if(msflag && (c1 == 'K' && c2 == 'F')) { 
-		sdis(c1,'E'); 
+	if(msflag && (c1 == 'K' && c2 == 'F')) {
+		sdis(c1,'E');
 	} else
 	if(msflag && c1=='n' && c2=='f')
 		sdis('f','i');
@@ -601,8 +601,8 @@ void
 macro(void)
 {
 	if(msflag) {
-		do { 
-			SKIP1; 
+		do {
+			SKIP1;
 		} while(C1 != '.' || C1 != '.' || C1 == '.');
 		if(c != '\n')
 			SKIP;
@@ -660,7 +660,7 @@ sdis(char a1, char a2)
 			SKIP1;
 		} else
 		if(a1 == 'D' && c1 == 'E' && c2 == 'Q') {
-			eqn(); 
+			eqn();
 			eqnf = 0;
 		} else
 		if(a1 == 'f') {
@@ -720,8 +720,8 @@ eqn(void)
 					Bputc(&bout, 'x');
 					Bputc(&bout, ' ');
 					if(last) {
-						Bputc(&bout, last); 
-						Bputc(&bout, '\n'); 
+						Bputc(&bout, last);
+						Bputc(&bout, '\n');
 					}
 				}
 				return;
@@ -744,7 +744,7 @@ eqn(void)
 			dflg = 0;
 		}
 		if(c != '\n')
-			while(C1 != '\n') { 
+			while(C1 != '\n') {
 				if(chars[c] == PUNCT)
 					last = c;
 				else
@@ -762,7 +762,7 @@ backsl(void)
 {
 	int bdelim;
 
-sw:  
+sw:
 	switch(C1)
 	{
 	case '"':
blob - 1221ec8c194fc33cd532e480c9cb67b0c28ac57b
blob + 4bfe02450ac8fb311b787e9994e2bae5bdef4ac5
--- src/cmd/devdraw/bigarrow.h
+++ src/cmd/devdraw/bigarrow.h
@@ -14,70 +14,70 @@ Cursor	bigarrow = {
 
 Cursor2	bigarrow2 = {
 	{ -2, -2 },
-	{ 0xFF, 0xFF, 0xFF, 0xFF, 
-	  0xFF, 0xFF, 0xFF, 0xFF, 
-	  0xC0, 0x00, 0x00, 0x03, 
-	  0xC0, 0x00, 0x00, 0x07, 
-	  0xC0, 0x00, 0x00, 0x1E, 
-	  0xC0, 0x00, 0x00, 0x3C, 
-	  0xC0, 0x00, 0x00, 0xF0, 
-	  0xC0, 0x00, 0x03, 0xE0, 
-	  0xC0, 0x00, 0x0F, 0x80, 
-	  0xC0, 0x00, 0x0E, 0x00, 
-	  0xC0, 0x00, 0x07, 0x00, 
-	  0xC0, 0x00, 0x03, 0x80, 
-	  0xC0, 0x00, 0x01, 0xC0, 
-	  0xC0, 0x00, 0x00, 0xE0, 
-	  0xC0, 0x00, 0x00, 0x70, 
-	  0xC0, 0x00, 0x00, 0x38, 
-	  0xC0, 0x00, 0x00, 0x1C, 
-	  0xC0, 0x00, 0x00, 0x0E, 
-	  0xC0, 0x00, 0x00, 0x07, 
-	  0xC0, 0x00, 0x00, 0x03, 
-	  0xC0, 0xC0, 0x00, 0x07, 
-	  0xC0, 0xE0, 0x00, 0x0E, 
-	  0xC1, 0xF0, 0x00, 0x1C, 
-	  0xC1, 0xB8, 0x00, 0x38, 
-	  0xC3, 0x9C, 0x00, 0x70, 
-	  0xC3, 0x0E, 0x00, 0xE0, 
-	  0xC7, 0x07, 0x01, 0xC0, 
-	  0xCE, 0x03, 0x83, 0x80, 
-	  0xCC, 0x01, 0xC7, 0x00, 
-	  0xDC, 0x00, 0xEE, 0x00, 
-	  0xF8, 0x00, 0x7C, 0x00, 
+	{ 0xFF, 0xFF, 0xFF, 0xFF,
+	  0xFF, 0xFF, 0xFF, 0xFF,
+	  0xC0, 0x00, 0x00, 0x03,
+	  0xC0, 0x00, 0x00, 0x07,
+	  0xC0, 0x00, 0x00, 0x1E,
+	  0xC0, 0x00, 0x00, 0x3C,
+	  0xC0, 0x00, 0x00, 0xF0,
+	  0xC0, 0x00, 0x03, 0xE0,
+	  0xC0, 0x00, 0x0F, 0x80,
+	  0xC0, 0x00, 0x0E, 0x00,
+	  0xC0, 0x00, 0x07, 0x00,
+	  0xC0, 0x00, 0x03, 0x80,
+	  0xC0, 0x00, 0x01, 0xC0,
+	  0xC0, 0x00, 0x00, 0xE0,
+	  0xC0, 0x00, 0x00, 0x70,
+	  0xC0, 0x00, 0x00, 0x38,
+	  0xC0, 0x00, 0x00, 0x1C,
+	  0xC0, 0x00, 0x00, 0x0E,
+	  0xC0, 0x00, 0x00, 0x07,
+	  0xC0, 0x00, 0x00, 0x03,
+	  0xC0, 0xC0, 0x00, 0x07,
+	  0xC0, 0xE0, 0x00, 0x0E,
+	  0xC1, 0xF0, 0x00, 0x1C,
+	  0xC1, 0xB8, 0x00, 0x38,
+	  0xC3, 0x9C, 0x00, 0x70,
+	  0xC3, 0x0E, 0x00, 0xE0,
+	  0xC7, 0x07, 0x01, 0xC0,
+	  0xCE, 0x03, 0x83, 0x80,
+	  0xCC, 0x01, 0xC7, 0x00,
+	  0xDC, 0x00, 0xEE, 0x00,
+	  0xF8, 0x00, 0x7C, 0x00,
 	  0xF0, 0x00, 0x38, 0x00,
 	},
-	{ 0x00, 0x00, 0x00, 0x00, 
-	  0x00, 0x00, 0x00, 0x00, 
-	  0x3F, 0xFF, 0xFF, 0xFC, 
-	  0x3F, 0xFF, 0xFF, 0xF8, 
-	  0x3F, 0xFF, 0xFF, 0xE0, 
-	  0x3F, 0xFF, 0xFF, 0xC0, 
-	  0x3F, 0xFF, 0xFF, 0x00, 
-	  0x3F, 0xFF, 0xFC, 0x00, 
-	  0x3F, 0xFF, 0xF0, 0x00, 
-	  0x3F, 0xFF, 0xF0, 0x00, 
-	  0x3F, 0xFF, 0xF8, 0x00, 
-	  0x3F, 0xFF, 0xFC, 0x00, 
-	  0x3F, 0xFF, 0xFE, 0x00, 
-	  0x3F, 0xFF, 0xFF, 0x00, 
-	  0x3F, 0xFF, 0xFF, 0x80, 
-	  0x3F, 0xFF, 0xFF, 0xC0, 
-	  0x3F, 0xFF, 0xFF, 0xE0, 
-	  0x3F, 0xFF, 0xFF, 0xF0, 
-	  0x3F, 0xFF, 0xFF, 0xF8, 
-	  0x3F, 0xFF, 0xFF, 0xFC, 
-	  0x3F, 0x3F, 0xFF, 0xF8, 
-	  0x3F, 0x1F, 0xFF, 0xF0, 
-	  0x3E, 0x0F, 0xFF, 0xE0, 
-	  0x3E, 0x07, 0xFF, 0xC0, 
-	  0x3C, 0x03, 0xFF, 0x80, 
-	  0x3C, 0x01, 0xFF, 0x00, 
-	  0x38, 0x00, 0xFE, 0x00, 
-	  0x30, 0x00, 0x7C, 0x00, 
-	  0x30, 0x00, 0x38, 0x00, 
-	  0x20, 0x00, 0x10, 0x00, 
-	  0x00, 0x00, 0x00, 0x00, 
+	{ 0x00, 0x00, 0x00, 0x00,
 	  0x00, 0x00, 0x00, 0x00,
+	  0x3F, 0xFF, 0xFF, 0xFC,
+	  0x3F, 0xFF, 0xFF, 0xF8,
+	  0x3F, 0xFF, 0xFF, 0xE0,
+	  0x3F, 0xFF, 0xFF, 0xC0,
+	  0x3F, 0xFF, 0xFF, 0x00,
+	  0x3F, 0xFF, 0xFC, 0x00,
+	  0x3F, 0xFF, 0xF0, 0x00,
+	  0x3F, 0xFF, 0xF0, 0x00,
+	  0x3F, 0xFF, 0xF8, 0x00,
+	  0x3F, 0xFF, 0xFC, 0x00,
+	  0x3F, 0xFF, 0xFE, 0x00,
+	  0x3F, 0xFF, 0xFF, 0x00,
+	  0x3F, 0xFF, 0xFF, 0x80,
+	  0x3F, 0xFF, 0xFF, 0xC0,
+	  0x3F, 0xFF, 0xFF, 0xE0,
+	  0x3F, 0xFF, 0xFF, 0xF0,
+	  0x3F, 0xFF, 0xFF, 0xF8,
+	  0x3F, 0xFF, 0xFF, 0xFC,
+	  0x3F, 0x3F, 0xFF, 0xF8,
+	  0x3F, 0x1F, 0xFF, 0xF0,
+	  0x3E, 0x0F, 0xFF, 0xE0,
+	  0x3E, 0x07, 0xFF, 0xC0,
+	  0x3C, 0x03, 0xFF, 0x80,
+	  0x3C, 0x01, 0xFF, 0x00,
+	  0x38, 0x00, 0xFE, 0x00,
+	  0x30, 0x00, 0x7C, 0x00,
+	  0x30, 0x00, 0x38, 0x00,
+	  0x20, 0x00, 0x10, 0x00,
+	  0x00, 0x00, 0x00, 0x00,
+	  0x00, 0x00, 0x00, 0x00,
 	}
 };
blob - c1cf5983856681bb4b210b96a7cc322a3a56f079
blob + dcb1801ac2c6f9947469959a9b5f7fefbc3291ba
--- src/cmd/devdraw/cocoa-srv.c
+++ src/cmd/devdraw/cocoa-srv.c
@@ -77,7 +77,7 @@ servep9p(void)
 	Wsysmsg m;
 
 	fmtinstall('W', drawfcallfmt);
-	
+
 	mbuf = nil;
 	nmbuf = 0;
 	while((n = read(3, buf, 4)) == 4){
@@ -106,15 +106,15 @@ void
 replyerror(Wsysmsg *m)
 {
 	char err[256];
-	
+
 	rerrstr(err, sizeof err);
 	m->type = Rerror;
 	m->error = err;
 	replymsg(m);
 }
 
-/* 
- * Handle a single wsysmsg. 
+/*
+ * Handle a single wsysmsg.
  * Might queue for later (kbd, mouse read)
  */
 void
@@ -123,7 +123,7 @@ runmsg(Wsysmsg *m)
 	static uchar buf[65536];
 	int n;
 	Memimage *i;
-	
+
 	switch(m->type){
 	case Tinit:
 		memimageinit();
@@ -176,7 +176,7 @@ runmsg(Wsysmsg *m)
 			setcursor(&m->cursor, &m->cursor2);
 		replymsg(m);
 		break;
-			
+
 	case Tbouncemouse:
 	//	_xbouncemouse(&m->mouse);
 		replymsg(m);
@@ -222,12 +222,12 @@ runmsg(Wsysmsg *m)
 			replymsg(m);
 		zunlock();
 		break;
-	
+
 	case Ttop:
 		topwin();
 		replymsg(m);
 		break;
-	
+
 	case Tresize:
 		resizewindow(m->rect);
 		replymsg(m);
@@ -249,7 +249,7 @@ replymsg(Wsysmsg *m)
 	/* T -> R msg */
 	if(m->type%2 == 0)
 		m->type++;
-		
+
 	if(trace) fprint(2, "%ud [%d] -> %W\n", nsec()/1000000, threadid(), m);
 	/* copy to output buffer */
 	n = sizeW2M(m);
@@ -275,7 +275,7 @@ void
 matchkbd(void)
 {
 	Wsysmsg m;
-	
+
 	if(kbd.stall)
 		return;
 	while(kbd.ri != kbd.wi && kbdtags.ri != kbdtags.wi){
@@ -297,7 +297,7 @@ void
 matchmouse(void)
 {
 	Wsysmsg m;
-	
+
 	while(mouse.ri != mouse.wi && mousetags.ri != mousetags.wi){
 		m.type = Rrdmouse;
 		m.tag = mousetags.t[mousetags.ri++];
@@ -321,7 +321,7 @@ void
 mousetrack(int x, int y, int b, uint ms)
 {
 	Mouse *m;
-	
+
 	if(x < mouserect.min.x)
 		x = mouserect.min.x;
 	if(x > mouserect.max.x)
blob - 7f0bff2117dcf9b801fc9c9ba9993a81c88dcd7b
blob + 654ab4af6b3967ebd61931292b2c2176dc7c6b12
--- src/cmd/devdraw/devdraw.c
+++ src/cmd/devdraw/devdraw.c
@@ -160,11 +160,11 @@ _drawreplacescreenimage(Memimage *m)
 	/*
 	 * Replace the screen image because the screen
 	 * was resized.
-	 * 
+	 *
 	 * In theory there should only be one reference
 	 * to the current screen image, and that's through
 	 * client0's image 0, installed a few lines above.
-	 * Once the client drops the image, the underlying backing 
+	 * Once the client drops the image, the underlying backing
 	 * store freed properly.  The client is being notified
 	 * about the resize through external means, so all we
 	 * need to do is this assignment.
@@ -769,7 +769,7 @@ _drawmsgwrite(void *v, int n)
 {
 	char cbuf[40], *err, ibuf[12*12+1], *s;
 	int c, ci, doflush, dstid, e0, e1, esize, j, m;
-	int ni, nw, oesize, oldn, op, ox, oy, repl, scrnid, y; 
+	int ni, nw, oesize, oldn, op, ox, oy, repl, scrnid, y;
 	uchar *a, refresh, *u;
 	u32int chan, value;
 	Client *client;
@@ -969,7 +969,7 @@ _drawmsgwrite(void *v, int n)
 				err = "negative ellipse thickness";
 				goto error;
 			}
-			
+
 			drawpoint(&sp, a+29);
 			c = j;
 			if(*a == 'E')
@@ -1073,11 +1073,11 @@ _drawmsgwrite(void *v, int n)
 			ni = sprint(ibuf, "%11d %11d %11s %11d %11d %11d %11d %11d"
 					" %11d %11d %11d %11d ",
 					client->clientid,
-					client->infoid,	
+					client->infoid,
 					chantostr(cbuf, i->chan),
 					(i->flags&Frepl)==Frepl,
 					i->r.min.x, i->r.min.y, i->r.max.x, i->r.max.y,
-					i->clipr.min.x, i->clipr.min.y, 
+					i->clipr.min.x, i->clipr.min.y,
 					i->clipr.max.x, i->clipr.max.y);
 			free(client->readdata);
 			client->readdata = malloc(ni);
@@ -1087,7 +1087,7 @@ _drawmsgwrite(void *v, int n)
 			client->nreaddata = ni;
 			client->infoid = -1;
 			continue;
-		
+
 		/* query: 'Q' n[1] queryspec[n] */
 		case 'q':
 			if(n < 2)
@@ -1633,5 +1633,3 @@ error:
 	qunlock(&sdraw.lk);
 	return -1;
 }
-
-
blob - 87df3f18c9512bba360673087f384f7f71786923
blob + f61392894d4cf635a5bb3cb13ca4c9fdd6b62ccd
--- src/cmd/devdraw/drawclient.c
+++ src/cmd/devdraw/drawclient.c
@@ -20,7 +20,7 @@ void
 startsrv(void)
 {
 	int pid, p[2];
-	
+
 	if(pipe(p) < 0)
 		sysfatal("pipe");
 	if((pid=fork()) < 0)
@@ -56,7 +56,7 @@ void
 cmdinit(int argc, char **argv)
 {
 	Wsysmsg m;
-	
+
 	memset(&m, 0, sizeof m);
 	m.op = Tinit;
 	m.winsize = "100x100";
@@ -70,7 +70,7 @@ void
 cmdmouse(int argc, char **argv)
 {
 	Wsysmsg m;
-	
+
 	memset(&m, 0, sizeof m);
 	m.op = Trdmouse;
 	if(domsg(&m) < 0)
@@ -86,7 +86,7 @@ void
 cmdkbd(int argc, char **argv)
 {
 	Wsysmsg m;
-	
+
 	memset(&m, 0, sizeof m);
 	m.op = Trdkbd;
 	if(domsg(&m) < 0)
@@ -125,4 +125,3 @@ fprint(2, "%s...\n", p);
 	}
 	exits(0);
 }
-
blob - 09c67523c8663290490054889fd366ffdd2713c5
blob + 2fa9e29d26cf44f6868e112bb1a73bf2cfdaddb8
--- src/cmd/devdraw/latin1.c
+++ src/cmd/devdraw/latin1.c
@@ -58,7 +58,7 @@ _latin1(Rune *k, int n)
 		else
 			return -5;
 	}
-	
+
 	for(l=latintab; l->ld!=0; l++)
 		if(k[0] == l->ld[0]){
 			if(n == 1)
blob - abd202fb764ee06ce00b3cb65f82c284204b9c3d
blob + db34b6ecebc5c8fe646ae3c6cff752f3fda79474
--- src/cmd/devdraw/mklatinkbd.c
+++ src/cmd/devdraw/mklatinkbd.c
@@ -132,7 +132,7 @@ printtrie(Biobuf *b, Trie *t)
 			printtrie(b, t->link[i]);
 	if(t->n == 0)
 		return;
-	
+
 	if(xflag) {
 		for(i=0; i<256; i++) {
 			if(t->r[i] == 0)
@@ -142,7 +142,7 @@ printtrie(Biobuf *b, Trie *t)
 				Bprint(b, " %k", *p);
 			Bprint(b, " %k : \"%C\" U%04X\n", i, t->r[i], t->r[i]);
 		}
-		return;			
+		return;
 	}
 
 	Bprint(b, "\t\"");
@@ -315,5 +315,3 @@ kfmt(Fmt *f)
 			return fmtprint(f, "<%s>", xkey[i].s);
 	return fmtprint(f, "<%c>", c);
 }
-
-
blob - e6ece33399007e8d27b1013ef23c828e10407623
blob + 29f33b7bfbc53e90d61e390d4425e8fa76af9d4f
--- src/cmd/devdraw/mouseswap.c
+++ src/cmd/devdraw/mouseswap.c
@@ -51,7 +51,7 @@ mouseswap(int but)
 
 	if(!map.init)
 		initmap();
-	
+
 	nbut = 0;
 	for(i=0; i<Nbutton; i++)
 		if((but&(1<<i)) && map.b[i] >= 0)
blob - fd8b7ee164ccfdcb52970bc3daf9cb0d93e49ca8
blob + 08e0521fd5a0727496c3bb3c46b5bd38c0959947
--- src/cmd/devdraw/nowsys.c
+++ src/cmd/devdraw/nowsys.c
@@ -18,14 +18,14 @@ main(int argc, char **argv)
 	int n;
 	uchar buf[1024*1024];
 	Wsysmsg m;
-	
+
 	ARGBEGIN{
 	case 'D':
 		break;
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 0)
 		usage();
 
blob - d3f08331659a0e2fad8261e34ff7e77276f51e62
blob + fdf7acecdae95f76540889079a1eb442e91e5066
--- src/cmd/devdraw/osx-draw.c
+++ src/cmd/devdraw/osx-draw.c
@@ -56,4 +56,3 @@ unloadmemimage(Memimage *i, Rectangle r, uchar *data, 
 {
 	return _unloadmemimage(i, r, data, ndata);
 }
-
blob - 1e7a93a1cb862387fda12eca24c572c3125ba272
blob + 4d350654dff4c4ad9fd02edc09dbe27335d55dfd
--- src/cmd/devdraw/snarf.c
+++ src/cmd/devdraw/snarf.c
@@ -96,7 +96,7 @@ runxevent(XEvent *xev)
 	case Expose:
 		_xexpose(xev);
 		break;
-	
+
 	case DestroyNotify:
 		if(_xdestroy(xev))
 			exits(0);
@@ -107,4 +107,3 @@ runxevent(XEvent *xev)
 		break;
 	}
 }
-
blob - a465f998b578c60d95ad5e48a15670e083fc3c79
blob + 9d85b4514998fe6bd97bf829d434c1b029f2074f
--- src/cmd/devdraw/x11-alloc.c
+++ src/cmd/devdraw/x11-alloc.c
@@ -121,4 +121,3 @@ freememimage(Memimage *m)
 	}
 	_freememimage(m);
 }
-
blob - 33e3170a52527aa897bf1460928201a8ca5eeb98
blob + 1666eceded666596d4e8b512a82bdf3438397062
--- src/cmd/devdraw/x11-cload.c
+++ src/cmd/devdraw/x11-cload.c
@@ -15,4 +15,3 @@ cloadmemimage(Memimage *i, Rectangle r, uchar *data, i
 		_xputxdata(i, r);
 	return n;
 }
-
blob - 685ad88a76492416061b07d903a138ff74318265
blob + f3b6a68973ea2a1f1698ba1865353b4e99cf8bff
--- src/cmd/devdraw/x11-draw.c
+++ src/cmd/devdraw/x11-draw.c
@@ -147,4 +147,3 @@ xdraw(Memdrawparam *par)
 	 */
 	return 0;
 }
-
blob - fc43a684f7c42dcfb4a19643c00377221f5bd5b2
blob + adead1eadddaed12e902108ba1e2a3ad969ee966
--- src/cmd/devdraw/x11-fill.c
+++ src/cmd/devdraw/x11-fill.c
@@ -23,7 +23,7 @@ _xfillcolor(Memimage *m, Rectangle r, u32int v)
 	Point p;
 	Xmem *xm;
 	XGC gc;
-	
+
 	xm = m->X;
 	assert(xm != nil);
 
@@ -52,5 +52,3 @@ _xfillcolor(Memimage *m, Rectangle r, u32int v)
 	p = subpt(r.min, m->r.min);
 	XFillRectangle(_x.display, xm->pixmap, gc, p.x, p.y, Dx(r), Dy(r));
 }
-
-
blob - 1a47be01d9f9a06a07876812d0b4aee53b53ad0c
blob + 61913f184fcdb8222aae3f4b4b82efc5e595f299
--- src/cmd/devdraw/x11-get.c
+++ src/cmd/devdraw/x11-get.c
@@ -21,7 +21,7 @@ _xgetxdata(Memimage *m, Rectangle r)
 	uchar *p;
 	Point tp, xdelta, delta;
 	Xmem *xm;
-	
+
 	xm = m->X;
 	if(xm == nil)
 		return nil;
@@ -83,7 +83,7 @@ _xputxdata(Memimage *m, Rectangle r)
 
 	XPutImage(_x.display, xm->pixmap, gc, xi, xdelta.x, xdelta.y, delta.x, delta.y,
 		Dx(r), Dy(r));
-	
+
 	if(_x.usetable && m->chan==CMAP8){
 		for(y=r.min.y; y<r.max.y; y++)
 		for(x=r.min.x, p=byteaddr(m, Pt(x,y)); x<r.max.x; x++, p++)
@@ -103,6 +103,3 @@ _xdirtyxdata(Memimage *m, Rectangle r)
 	xm->dirty = 1;
 	addrect(&xm->dirtyr, r);
 }
-
-
-
blob - f09963dceb445638db517227eb2d7223b86df759
blob + 8935c9d15a1ebad457a251fb41cddbd0d4d4bc92
--- src/cmd/devdraw/x11-init.c
+++ src/cmd/devdraw/x11-init.c
@@ -95,7 +95,7 @@ _xattach(char *label, char *winsize)
 	xrootid = DefaultScreen(_x.display);
 	xrootwin = DefaultRootWindow(_x.display);
 
-	/* 
+	/*
 	 * Figure out underlying screen format.
 	 */
 	if(XMatchVisualInfo(_x.display, xrootid, 24, TrueColor, &xvi)
@@ -207,7 +207,7 @@ _xattach(char *label, char *winsize)
 		/*
 		 * Parse the various X resources.  Thanks to Peter Canning.
 		 */
-		char *screen_resources, *display_resources, *geom, 
+		char *screen_resources, *display_resources, *geom,
 			*geomrestype, *home, *file, *dpitype;
 		XrmDatabase database;
 		XrmValue geomres, dpires;
@@ -548,7 +548,7 @@ plan9cmap(void)
  * be the default depth.  On such "suboptimal" systems, we have to allocate an
  * empty color map anyway, according to Axel Belinfante.
  */
-static int 
+static int
 setupcmap(XWindow w)
 {
 	char buf[30];
@@ -561,16 +561,16 @@ setupcmap(XWindow w)
 
 	if(_x.depth >= 24) {
 		if(_x.usetable == 0)
-			_x.cmap = XCreateColormap(_x.display, w, _x.vis, AllocNone); 
+			_x.cmap = XCreateColormap(_x.display, w, _x.vis, AllocNone);
 
 		/*
 		 * The pixel value returned from XGetPixel needs to
 		 * be converted to RGB so we can call rgb2cmap()
 		 * to translate between 24 bit X and our color. Unfortunately,
-		 * the return value appears to be display server endian 
+		 * the return value appears to be display server endian
 		 * dependant. Therefore, we run some heuristics to later
 		 * determine how to mask the int value correctly.
-		 * Yeah, I know we can look at _x.vis->byte_order but 
+		 * Yeah, I know we can look at _x.vis->byte_order but
 		 * some displays say MSB even though they run on LSB.
 		 * Besides, this is more anal.
 		 */
@@ -611,7 +611,7 @@ setupcmap(XWindow w)
 			_x.cmap = XCreateColormap(_x.display, w, _x.vis, AllocNone);
 	}else if(_x.vis->class == PseudoColor){
 		if(_x.usetable == 0){
-			_x.cmap = XCreateColormap(_x.display, w, _x.vis, AllocAll); 
+			_x.cmap = XCreateColormap(_x.display, w, _x.vis, AllocAll);
 			XStoreColors(_x.display, _x.cmap, _x.map, 256);
 			for(i = 0; i < 256; i++){
 				_x.tox11[i] = i;
blob - 729f264735fd40ba4bb13263997d22c9bb4fc181
blob + bdf7d2b2e44465fc3f19cbc9a39cfade337a2084
--- src/cmd/devdraw/x11-itrans.c
+++ src/cmd/devdraw/x11-itrans.c
@@ -97,7 +97,7 @@ __xtoplan9kbd(XEvent *e)
 		case XK_KP_End:
 			k = Kend;
 			break;
-		case XK_Page_Up:	
+		case XK_Page_Up:
 		case XK_KP_Page_Up:
 			k = Kpgup;
 			break;
@@ -243,7 +243,7 @@ _xtoplan9mouse(XEvent *e, Mouse *m)
 	case ButtonPress:
 		be = (XButtonEvent*)e;
 
-		/* 
+		/*
 		 * Fake message, just sent to make us announce snarf.
 		 * Apparently state and button are 16 and 8 bits on
 		 * the wire, since they are truncated by the time they
@@ -443,7 +443,7 @@ _xgetsnarffrom(XWindow w, Atom clipboard, Atom target,
 
 	/* get the property */
 	xdata = nil;
-	XGetWindowProperty(_x.display, _x.drawable, prop, 0, SnarfSize/sizeof(ulong), 0, 
+	XGetWindowProperty(_x.display, _x.drawable, prop, 0, SnarfSize/sizeof(ulong), 0,
 		AnyPropertyType, &type, &fmt, &len, &dummy, &xdata);
 	if((type != target && type != XA_STRING && type != _x.utf8string) || len == 0){
 		if(xdata)
@@ -500,7 +500,7 @@ _xgetsnarf(void)
 		data = nil;
 		goto out;
 	}
-		
+
 	if((data = _xgetsnarffrom(w, clipboard, _x.utf8string, 10, 100)) == nil)
 	if((data = _xgetsnarffrom(w, clipboard, XA_STRING, 10, 100)) == nil){
 		/* nothing left to do */
@@ -554,9 +554,9 @@ if(0) fprint(2, "xselect target=%d requestor=%d proper
 		a[3] = _x.compoundtext;
 		XChangeProperty(_x.display, xe->requestor, xe->property, XA_ATOM,
 			32, PropModeReplace, (uchar*)a, nelem(a));
-	}else if(xe->target == XA_STRING 
-	|| xe->target == _x.utf8string 
-	|| xe->target == _x.text 
+	}else if(xe->target == XA_STRING
+	|| xe->target == _x.utf8string
+	|| xe->target == _x.text
 	|| xe->target == _x.compoundtext
 	|| ((name = XGetAtomName(_x.display, xe->target)) && strcmp(name, "text/plain;charset=UTF-8") == 0)){
 		/* text/plain;charset=UTF-8 seems nonstandard but is used by Synergy */
@@ -643,7 +643,7 @@ _applegetsnarf(void)
 		CFRelease(flavors);
 	}
 	qunlock(&clip.lk);
-	return nil;		
+	return nil;
 }
 
 void
@@ -677,7 +677,7 @@ _appleputsnarf(char *s)
 		qunlock(&clip.lk);
 		return;
 	}
-	cfdata = CFDataCreate(kCFAllocatorDefault, 
+	cfdata = CFDataCreate(kCFAllocatorDefault,
 		(uchar*)clip.rbuf, runestrlen(clip.rbuf)*2);
 	if(cfdata == nil){
 		fprint(2, "apple pasteboard cfdatacreate failed\n");
blob - 108f153c79e876bd150c3b43da442d8d4853b657
blob + 853fa552d29861c170b397004d6e4c65e90517dd
--- src/cmd/devdraw/x11-keysym2ucs.c
+++ src/cmd/devdraw/x11-keysym2ucs.c
@@ -34,7 +34,7 @@
  */
 
 #ifndef KEYSYM2UCS_INCLUDED
-  
+
 #include "x11-keysym2ucs.h"
 #define VISIBLE /* */
 
blob - a7446f37dda49dee73b4b595e685401fd333f08a
blob + 895e110960501b7729cbe156f235a446254b8c26
--- src/cmd/devdraw/x11-load.c
+++ src/cmd/devdraw/x11-load.c
@@ -15,4 +15,3 @@ loadmemimage(Memimage *i, Rectangle r, uchar *data, in
 		_xputxdata(i, r);
 	return n;
 }
-
blob - 5cbdded84267122b86eac07b0ff296456c1691c1
blob + 5227f39b5c8a03bb0f2d1896ee96566d6a2634e5
--- src/cmd/devdraw/x11-pixelbits.c
+++ src/cmd/devdraw/x11-pixelbits.c
@@ -12,5 +12,3 @@ pixelbits(Memimage *m, Point p)
 		_xgetxdata(m, Rect(p.x, p.y, p.x+1, p.y+1));
 	return _pixelbits(m, p);
 }
-
-
blob - 8141648271f611b386201430cfff131673e311bc
blob + 4d72415b18dd29d1978c44483a06aa3d495f1630
--- src/cmd/devdraw/x11-srv.c
+++ src/cmd/devdraw/x11-srv.c
@@ -147,12 +147,12 @@ main(int argc, char **argv)
 	/*
 	 * Ignore arguments.  They're only for good ps -a listings.
 	 */
-	
+
 	notify(bell);
 
 	fdin.rp = fdin.wp = fdin.buf;
 	fdin.ep = fdin.buf+sizeof fdin.buf;
-	
+
 	fdout.rp = fdout.wp = fdout.buf;
 	fdout.ep = fdout.buf+sizeof fdout.buf;
 
@@ -222,7 +222,7 @@ main(int argc, char **argv)
 				runmsg(&m);
 				fdin.rp += n;
 			}
-			
+
 			/* slide data to beginning of buf */
 			fdslide(&fdin);
 		}
@@ -277,7 +277,7 @@ void
 replyerror(Wsysmsg *m)
 {
 	char err[256];
-	
+
 	rerrstr(err, sizeof err);
 	m->type = Rerror;
 	m->error = err;
@@ -286,8 +286,8 @@ replyerror(Wsysmsg *m)
 
 
 
-/* 
- * Handle a single wsysmsg. 
+/*
+ * Handle a single wsysmsg.
  * Might queue for later (kbd, mouse read)
  */
 void
@@ -296,7 +296,7 @@ runmsg(Wsysmsg *m)
 	uchar buf[65536];
 	int n;
 	Memimage *i;
-	
+
 	switch(m->type){
 	case Tinit:
 		memimageinit();
@@ -339,7 +339,7 @@ runmsg(Wsysmsg *m)
 			_xsetcursor(&m->cursor);
 		replymsg(m);
 		break;
-			
+
 	case Tbouncemouse:
 		_xbouncemouse(&m->mouse);
 		replymsg(m);
@@ -381,12 +381,12 @@ runmsg(Wsysmsg *m)
 		else
 			replymsg(m);
 		break;
-	
+
 	case Ttop:
 		_xtopwindow();
 		replymsg(m);
 		break;
-	
+
 	case Tresize:
 		_xresizewindow(m->rect);
 		replymsg(m);
@@ -405,7 +405,7 @@ replymsg(Wsysmsg *m)
 	/* T -> R msg */
 	if(m->type%2 == 0)
 		m->type++;
-		
+
 	/* fprint(2, "-> %W\n", m); */
 	/* copy to output buffer */
 	n = sizeW2M(m);
@@ -422,7 +422,7 @@ void
 matchkbd(void)
 {
 	Wsysmsg m;
-	
+
 	if(kbd.stall)
 		return;
 	while(kbd.ri != kbd.wi && kbdtags.ri != kbdtags.wi){
@@ -444,7 +444,7 @@ void
 matchmouse(void)
 {
 	Wsysmsg m;
-	
+
 	while(mouse.ri != mouse.wi && mousetags.ri != mousetags.wi){
 		m.type = Rrdmouse;
 		m.tag = mousetags.t[mousetags.ri++];
@@ -519,7 +519,7 @@ runxevent(XEvent *xev)
 	case Expose:
 		_xexpose(xev);
 		break;
-	
+
 	case DestroyNotify:
 		if(_xdestroy(xev))
 			exits(0);
@@ -552,7 +552,7 @@ runxevent(XEvent *xev)
 			return;
 		sendmouse(m);
 		break;
-	
+
 	case KeyRelease:
 	case KeyPress:
 		ke = (XKeyEvent*)xev;
@@ -618,7 +618,7 @@ runxevent(XEvent *xev)
 			kbd.stall = 1;
 		matchkbd();
 		break;
-	
+
 	case FocusOut:
 		/*
 		 * Some key combinations (e.g. Alt-Tab) can cause us
@@ -629,10 +629,9 @@ runxevent(XEvent *xev)
 		altdown = 0;
 		abortcompose();
 		break;
-	
+
 	case SelectionRequest:
 		_xselect(xev);
 		break;
 	}
 }
-
blob - d01a232ff99e9d228100ff1724e918f3c2a7f52f
blob + 2f6241ba9555d97f2a7c9428a40d7d12ff82bc7b
--- src/cmd/devdraw/x11-unload.c
+++ src/cmd/devdraw/x11-unload.c
@@ -12,4 +12,3 @@ unloadmemimage(Memimage *i, Rectangle r, uchar *data, 
 		_xgetxdata(i, r);
 	return _unloadmemimage(i, r, data, ndata);
 }
-
blob - 9095c950d09f42ca5ebdc774b2c9b64f7a03f09b
blob + 82a7d32c1a7ca17e15dfc6fe4f69f4630d92b429
--- src/cmd/devdraw/x11-wsys.c
+++ src/cmd/devdraw/x11-wsys.c
@@ -43,4 +43,3 @@ _xmovewindow(Rectangle r)
 	XConfigureWindow(_x.display, _x.drawable, value_mask, &e);
 	XFlush(_x.display);
 }
-
blob - d9cdca624f5314c9f4a7a4647810962c9d2609c9
blob + 3c8597c6fdce7e7a0a8e67575f1b1c4baff77925
--- src/cmd/dict/dict.c
+++ src/cmd/dict/dict.c
@@ -678,7 +678,7 @@ setdotprev(void)
 
 /*
  * find the specified file and return a path.
- * default location is #9/dict, but can be 
+ * default location is #9/dict, but can be
  * in $dictdir instead.
  */
 char*
@@ -686,12 +686,12 @@ dictfile(char *f)
 {
 	static char *dict;
 	static int did;
-	
+
 	if(!did){
 		dict = getenv("dictpath");
 		did = 1;
 	}
-	
+
 	if(dict)
 		return smprint("%s/%s", dict, f);
 	return unsharp(smprint("#9/dict/%s", f));
blob - 81efe829b680e7300607a9d5d13d252324958454
blob + 5161456f87e7a89fb77d26d1da365c05ae3ad51d
--- src/cmd/dict/oed.c
+++ src/cmd/dict/oed.c
@@ -816,7 +816,7 @@ static Assoc spectab[] = {
 	bbc1		single chem bond below
 	bbc2		double chem bond below
 	bbl1		chem bond like /
-	bbl2		chem bond like // 
+	bbl2		chem bond like //
 	bbr1		chem bond like \
 	bbr2		chem bond \\
 	bcop1		copper symbol. Cf copper
@@ -1253,7 +1253,7 @@ static char *prkey1 =
 "tʃ ...  chop (tʃɒp), ditch (dɪtʃ)\n"
 "ʒ  ...  vision (ˈvɪʒən), déjeuner (deʒøne)\n"
 ;
-static char *prkey2 = 
+static char *prkey2 =
 "dʒ ...  judge (dʒʌdʒ)\n"
 "ŋ  ...  singing (ˈsɪŋɪŋ), think (θiŋk)\n"
 "ŋg ...  finger (ˈfiŋgə(r))\n"
@@ -1268,7 +1268,7 @@ static char *prkey2 = 
 "ɥ  ...  Fr. cuisine (kɥizin)\n"
 "\n"
 ;
-static char *prkey3 = 
+static char *prkey3 =
 "II. VOWELS AND DIPTHONGS\n"
 "\n"
 "Short\n"
@@ -1308,7 +1308,7 @@ static char *prkey4 =
 "yː ...  Ger. grün (gryːn)\n"
 "\n"
 ;
-static char *prkey5 = 
+static char *prkey5 =
 "Nasal\n"
 "ɛ˜, æ˜ as in Fr. fin (fɛ˜, fæ˜)\n"
 "ã  ...  Fr. franc (frã)\n"
@@ -1327,7 +1327,7 @@ static char *prkey5 = 
 "ɔə ...  boar (bɔə(r))\n"
 "\n"
 ;
-static char *prkey6 = 
+static char *prkey6 =
 "III. STRESS\n"
 "\n"
 "Main stress: ˈ preceding stressed syllable\n"
blob - cbdff9e6ad6dc261a198a68e0822d121cd727740
blob + 16a8a9133249a2d207034be703947cbcd10d97bd
--- src/cmd/dict/pcollinsg.c
+++ src/cmd/dict/pcollinsg.c
@@ -142,7 +142,7 @@ pcollgprintentry(Entry e, int cmd)
 
 		case TAGE:	/* an extra one */
 			break;
-	
+
 		case SPCS:
 			p = reach(p, 0xba);
 			r = looknassoc(numtab, asize(numtab), strtol(tag,0,0));
@@ -183,7 +183,7 @@ pcollgprintentry(Entry e, int cmd)
 				rprev = r;
 			}
 		}
-		
+
 	}
 	if(rprev != NONE)
 		outrune(rprev);
blob - 8cdaec35e5022ec568218d546f9c3ddb1c1b5ed9
blob + 5c93382af5a46024959b16c4b5de0f0a9bd0c900
--- src/cmd/dict/pgw.c
+++ src/cmd/dict/pgw.c
@@ -993,7 +993,7 @@ pgwnextoff(long fromoff)
 		if(c == '<' && Bgetc(bdict) == 'p' && Bgetc(bdict) == '>') {
 			c = Bgetc(bdict);
 			if(c == '<') {
-				if (Bgetc(bdict) == 'h' && Bgetc(bdict) == 'w' 
+				if (Bgetc(bdict) == 'h' && Bgetc(bdict) == 'w'
 					&& Bgetc(bdict) == '>')
 						n = 7;
 			}else if (c == '{')
@@ -1025,7 +1025,7 @@ static char *prkey1 =
 "tʃ ...  chop (tʃɒp), ditch (dɪtʃ)\n"
 "ʒ  ...  vision (ˈvɪʒən), déjeuner (deʒøne)\n"
 ;
-static char *prkey2 = 
+static char *prkey2 =
 "dʒ ...  judge (dʒʌdʒ)\n"
 "ŋ  ...  singing (ˈsɪŋɪŋ), think (θiŋk)\n"
 "ŋg ...  finger (ˈfiŋgə(r))\n"
@@ -1040,7 +1040,7 @@ static char *prkey2 = 
 "ɥ  ...  Fr. cuisine (kɥizin)\n"
 "\n"
 ;
-static char *prkey3 = 
+static char *prkey3 =
 "II. VOWELS AND DIPTHONGS\n"
 "\n"
 "Short\n"
@@ -1080,7 +1080,7 @@ static char *prkey4 =
 "yː ...  Ger. grün (gryːn)\n"
 "\n"
 ;
-static char *prkey5 = 
+static char *prkey5 =
 "Nasal\n"
 "ɛ˜, æ˜ as in Fr. fin (fɛ˜, fæ˜)\n"
 "ã  ...  Fr. franc (frã)\n"
@@ -1099,7 +1099,7 @@ static char *prkey5 = 
 "ɔə ...  boar (bɔə(r))\n"
 "\n"
 ;
-static char *prkey6 = 
+static char *prkey6 =
 "III. STRESS\n"
 "\n"
 "Main stress: ˈ preceding stressed syllable\n"
blob - d953636588dbe5f673c61b41b57bd84d61eaf31a
blob + 6562315f7faa94f6a4b3e81aecc26e4215fdd7d0
--- src/cmd/dict/roget.c
+++ src/cmd/dict/roget.c
@@ -23,7 +23,7 @@ rogetprintentry(Entry e, int cmd)
 		while(strncmp(p, " -- ", 4) != 0 && p < e.end){
 			while(isspace((uchar)*p) && p < e.end)
 				p++;
-			if (*p == '[' || *p == '{'){	
+			if (*p == '[' || *p == '{'){
 				c = (*p == '[')? ']': '}';
 				while(*p != c && p < e.end)
 					p++;
@@ -49,7 +49,7 @@ rogetprintentry(Entry e, int cmd)
 				outchar(*p++);
 		}
 		return;
-	}	
+	}
 
 	while(p < e.end && !isspace((uchar)*p))
 		p++;
@@ -62,7 +62,7 @@ rogetprintentry(Entry e, int cmd)
 			p += 4;
 			spc = 0;
 		}
-			
+
 		if (p < e.end -2 && strncmp(p, "[ ", 4) == 0){		/* twiddle layout */
 			outchars(" [");
 			continue;
blob - 6ead3ed6d14c4057c98b887ddcbc22235670f4e5
blob + c25a31c07860c633ba222efe828d571943f5b47c
--- src/cmd/dict/world.c
+++ src/cmd/dict/world.c
@@ -50,7 +50,7 @@ static Rune chartab[] = {
 	0x26a,	0xf0,	0x292,	0xe3,	0x153,	0x169,	0x28c,	0x265,
 /*c0*/	0x280,	0xeb,	0x6c,	0x28c,	0xf5,	0xf1,	0x152,	NONE,
 	NONE,	0x53,	0x73,	0x5a,	0x7a,	NONE,	NONE,	NONE,
-/*d0*/	0xdf,	NONE,	NONE,	0x101,	0x12b,	0x16b,	0x113,	0x14d,	
+/*d0*/	0xdf,	NONE,	NONE,	0x101,	0x12b,	0x16b,	0x113,	0x14d,
 	NONE,	NONE,	NONE,	0x20,	NONE,	NONE,	NONE,	NONE,
 
 /*e0*/	0x3b1,	0x3b2,	0x3b3,	0x3c0,	0x3a3,	0x3c3,	0xb5,	0x3c4,
blob - 93de4e378ae67e829bdea3a54dcff18b91420a55
blob + 75a725ffdc2de346ff1c73739dcaa7ef0c20f61f
--- src/cmd/diff/diffio.c
+++ src/cmd/diff/diffio.c
@@ -54,7 +54,7 @@ readline(Biobuf *bp, char *buf)
 /*
  * hashing has the effect of
  * arranging line in 7-bit bytes and then
- * summing 1-s complement in 16-bit hunks 
+ * summing 1-s complement in 16-bit hunks
  */
 static int
 readhash(Biobuf *bp, char *buf)
@@ -346,7 +346,7 @@ flushchanges(void)
 
 	if(nchanges == 0)
 		return;
-	
+
 	for(i=0; i<nchanges; ){
 		j = changeset(i);
 		a = changes[i].a-Lines;
blob - bb3fd11241b4607b8a973dac94b8fc3c88e8a780
blob + ed4d17b8e609b211d1c1b6ff57bbbce00dae048c
--- src/cmd/diff/diffreg.c
+++ src/cmd/diff/diffreg.c
@@ -19,7 +19,7 @@
 *	on the hash (called value). In particular, this
 *	collects the equivalence classes in file1 together.
 *	Subroutine equiv replaces the value of each line in
-*	file0 by the index of the first element of its 
+*	file0 by the index of the first element of its
 *	matching equivalence in (the reordered) file1.
 *	To save space equiv squeezes file1 into a single
 *	array member in which the equivalence classes
@@ -34,15 +34,15 @@
 *	of "k-candidates". At step i a k-candidate is a matched
 *	pair of lines x,y (x in file0 y in file1) such that
 *	there is a common subsequence of lenght k
-*	between the first i lines of file0 and the first y 
+*	between the first i lines of file0 and the first y
 *	lines of file1, but there is no such subsequence for
 *	any smaller y. x is the earliest possible mate to y
 *	that occurs in such a subsequence.
 *
 *	Whenever any of the members of the equivalence class of
-*	lines in file1 matable to a line in file0 has serial number 
-*	less than the y of some k-candidate, that k-candidate 
-*	with the smallest such y is replaced. The new 
+*	lines in file1 matable to a line in file0 has serial number
+*	less than the y of some k-candidate, that k-candidate
+*	with the smallest such y is replaced. The new
 *	k-candidate is chained (via pred) to the current
 *	k-1 candidate so that the actual subsequence can
 *	be recovered. When a member has serial number greater
@@ -64,7 +64,7 @@
 *	The core requirements for problems larger than somewhat
 *	are (in words) 2*length(file0) + length(file1) +
 *	3*(number of k-candidates installed),  typically about
-*	6n words for files of length n. 
+*	6n words for files of length n.
 */
 /* TIDY THIS UP */
 struct cand {
@@ -91,7 +91,7 @@ long *ixold;	/*will be overlaid on klist*/
 long *ixnew;	/*will be overlaid on file[1]*/
 /* END OF SOME TIDYING */
 
-static void	
+static void
 sort(struct line *a, int n)	/*shellsort CACM #201*/
 {
 	int m;
@@ -352,14 +352,14 @@ cmp(Biobuf* b1, Biobuf* b2)
 			break;
 		if(memcmp((void *)b1s, (void *)b2s, n) != 0){
 			return 1;
-		}		
+		}
 		nc += n;
 		b1s += n;
 		b2s += n;
 	}
 	if(b1e - b1s == b2e - b2s)
 		return 0;
-	return 1;	
+	return 1;
 }
 
 void
blob - 408ad90f517c0bf6d19086b55542ce37de553fa8
blob + 2697cb885c362b16acdfe2192b92e53583c86b2f
--- src/cmd/diff/main.c
+++ src/cmd/diff/main.c
@@ -22,7 +22,7 @@ rmtmpfiles(void)
 	}
 }
 
-void	
+void
 done(int status)
 {
 	rmtmpfiles();
@@ -72,7 +72,7 @@ mkpathname(char *pathname, char *path, char *name)
 	sprint(pathname, "%s/%s", path, name);
 	return 0;
 }
-	
+
 static char *
 mktmpfile(int input, Dir **sb)
 {
@@ -184,7 +184,7 @@ main(int argc, char *argv[])
 	int i;
 	Dir *fsb, *tsb;
 	extern int _p9usepwlibrary;
-	
+
 	_p9usepwlibrary = 0;
 	Binit(&stdout, 1, OWRITE);
 	progname = *argv;
@@ -214,7 +214,7 @@ main(int argc, char *argv[])
 				break;
 
 			case 'm':
-				mflag = 1;	
+				mflag = 1;
 				break;
 
 			case 'h':
blob - d576d24fe0867036d8a128abd589f5ea8948c626
blob + 3a1356105dacbaf503ae316a0133d4f93d2b511b
--- src/cmd/disk/mkext.c
+++ src/cmd/disk/mkext.c
@@ -64,7 +64,7 @@ main(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	Binits(&bin, 0, OREAD, binbuf, sizeof binbuf);
 	while(p = Brdline(&bin, '\n')){
 		p[Blinelen(&bin)-1] = '\0';
blob - 48de702271cb6e92e574964d7442b4ccb3c493cf
blob + 2edb37f403be594eb1937b27178ce6054fd891a0
--- src/cmd/disk/mkfs.c
+++ src/cmd/disk/mkfs.c
@@ -151,7 +151,7 @@ main(int argc, char **argv)
 		usage();
 	}ARGEND
 
-	if(!argc)	
+	if(!argc)
 		usage();
 
 	buf = emalloc(buflen);
@@ -514,7 +514,7 @@ setnames(File *f)
 			strcpy(oldfile, f->old);
 	}else
 		sprint(oldfile, "%s%s", oldroot, f->new);
-	if(strlen(newfile) >= sizeof newfile 
+	if(strlen(newfile) >= sizeof newfile
 	|| strlen(oldfile) >= sizeof oldfile)
 		error("name overfile");
 }
blob - 3d0e14e8ca2bd49555ea0fe4d13fc5d1b9a57b8c
blob + 4d56322b61293263e6374ed32d7e0ffb8f662bdb
--- src/cmd/draw/cmapcube.c
+++ src/cmd/draw/cmapcube.c
@@ -109,7 +109,7 @@ redraw(void)
 	line3(v[0x36], v[0x32]);
 	line3(v[0x32], v[0x3F]);
 	line3(v[0x3F], v[0]);
-	
+
 	line3(v[0xF0], v[0xF3]);
 	line3(v[0xF3], v[0xFF]);
 	line3(v[0xFF], v[0xFC]);
blob - 10a08f77deddeea9e1a7883f6c6bfc3d5bf1afec
blob + d6d89722faf1fc1d468eb3d874af18d73c689e99
--- src/cmd/draw/crop.c
+++ src/cmd/draw/crop.c
@@ -76,7 +76,7 @@ crop(Memimage *m, uint32 c)
 				bottom = y;
 			}
 	}
-	
+
 	if(n != nil)
 		freememimage(n);
 	return Rect(left, top, right+1, bottom+1);
blob - 0794f1006af91009413f82ed437e6ca1ac31b2b3
blob + 0f5e69055526463ed82f782e1652577f61dfe02f
--- src/cmd/draw/gview.c
+++ src/cmd/draw/gview.c
@@ -1547,7 +1547,7 @@ void all_set_clr(fpolygons* fps, Image* clr)
 	for (p=fps->p; p!=0; p=p->link)
 		p->clr = clr;
 }
-	
+
 
 void do_recolor(int but, Mouse* m, int alluniv)
 {
@@ -1819,7 +1819,7 @@ e_action* do_undo(e_action* a0)		/* pop off an e_actio
 	case Erecolor: a->fp->clr = a->clr;
 		eresized(0);
 		break;
-	case Edelete: 
+	case Edelete:
 		a->fp->link = univ.p;
 		univ.p = a->fp;
 		grow_bb(&univ.bb, &a->fp->bb);
blob - ea36e28df73527887bfc57ebf240ab5d8a95b967
blob + ee112194f2b099312feeb5fdbbbb7723a449c8e7
--- src/cmd/draw/mc.c
+++ src/cmd/draw/mc.c
@@ -337,4 +337,3 @@ getwidth(void)
 	}else
 		linewidth = ws.ws_col;
 }
-
blob - 74b8b76c72de390cb231720bc85e2d1e3a047ba8
blob + 3b6471b79d2eb6478a41c75bcb4c838d3554fec9
--- src/cmd/draw/stats.c
+++ src/cmd/draw/stats.c
@@ -50,7 +50,7 @@ enum
 };
 
 char*
-labels[Nvalue] = 
+labels[Nvalue] =
 {
 	"802.11",
 	"battery",
@@ -70,7 +70,7 @@ labels[Nvalue] = 
 	"sys",
 	"syscall",
 	"user"
-};	
+};
 
 struct Graph
 {
@@ -435,7 +435,7 @@ newvalue(Machine *m, int i, ulong *v, ulong *vmax)
 
 	if(m->last[i] == 0)
 		m->last[i] = m->val[i][0];
-		
+
 	if(i == Vload){
 		/*
 		 * Invert the ewma to obtain the 5s load statistics.
@@ -928,4 +928,3 @@ initmach(Machine *m, char *name)
 		*q = 0;
 	return 1;
 }
-
blob - fef6d2dd16a0f3e825cfac058cd85e95075592a2
blob + f67b10417fdc06d02ed48a425e58c0555b218ce3
--- src/cmd/draw/statusbar.c
+++ src/cmd/draw/statusbar.c
@@ -108,7 +108,7 @@ resize()
 
 	p.x = r.min.x+4;
 	p.y += display->defaultfont->height+4;
-	
+
 	q = subpt(r.max, Pt(4,4));
 	rbar = Rpt(p, q);
 	border(screen, rbar, -2, dark, ZP);
@@ -116,12 +116,12 @@ resize()
 	lastp = -1;
 
 	flushimage(display, 1);
-	drawbar();	
+	drawbar();
 }
 
 void
 keyboardthread(void *v)
-{	
+{
 	Rune r;
 
 	while(recv(kc->c , &r) == 1){
@@ -132,9 +132,9 @@ keyboardthread(void *v)
 
 void
 mousethread(void *v)
-{	
+{
 	USED(v);
-	
+
 	while(recv(mc->c, 0) == 1); /* to unblock mc->c */
 }
 
@@ -188,7 +188,7 @@ threadmain(int argc, char **argv)
 	int lfd;
 
 	p = "300x40@100,100";
-	
+
 	ARGBEGIN{
 	case 'W':
 		p = ARGF();
@@ -231,4 +231,3 @@ threadmain(int argc, char **argv)
 	}
 	proccreate(updateproc, nil, STACK);
 }
-
blob - caac0be66e713101ac5449cfa6e1b09d344173ab
blob + 9aa4de7980962ee5f1b00c8d5c28143e995099e8
--- src/cmd/draw/tcolors.c
+++ src/cmd/draw/tcolors.c
@@ -232,4 +232,3 @@ resizethread(void *v)
 	while(recv(mousectl->resizec, &x) >= 0)
 		eresized(1);
 }
-
blob - 89fdef32a1b84e2532a3142148ba6befa1de921d
blob + 0a71e2dd81b588ccf211458eae62fab1cc6da91d
--- src/cmd/draw/tweak.c
+++ src/cmd/draw/tweak.c
@@ -112,32 +112,32 @@ Cursor sight = {
 Cursor pixel = {
 	{-7, -7},
 	{0x1f, 0xf8, 0x3f, 0xfc,  0x7f, 0xfe,  0xf8, 0x1f,
-	0xf0, 0x0f,  0xe0, 0x07, 0xe0, 0x07, 0xfe, 0x7f, 
-	0xfe, 0x7f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 
+	0xf0, 0x0f,  0xe0, 0x07, 0xe0, 0x07, 0xfe, 0x7f,
+	0xfe, 0x7f, 0xe0, 0x07, 0xe0, 0x07, 0xf0, 0x0f,
 	0x78, 0x1f, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, },
-	{0x00, 0x00, 0x0f, 0xf0, 0x31, 0x8c, 0x21, 0x84, 
-	0x41, 0x82, 0x41, 0x82, 0x41, 0x82, 0x40, 0x02, 
-	0x40, 0x02, 0x41, 0x82, 0x41, 0x82, 0x41, 0x82, 
+	{0x00, 0x00, 0x0f, 0xf0, 0x31, 0x8c, 0x21, 0x84,
+	0x41, 0x82, 0x41, 0x82, 0x41, 0x82, 0x40, 0x02,
+	0x40, 0x02, 0x41, 0x82, 0x41, 0x82, 0x41, 0x82,
 	0x21, 0x84, 0x31, 0x8c, 0x0f, 0xf0, 0x00, 0x00, }
 };
 
 Cursor busy = {
 	{-7, -7},
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	 0x00, 0x00, 0x00, 0x0c, 0x00, 0x8e, 0x1d, 0xc7,
-	 0xff, 0xe3, 0xff, 0xf3, 0xff, 0xff, 0x7f, 0xfe, 
-	 0x3f, 0xf8, 0x17, 0xf0, 0x03, 0xe0, 0x00, 0x00,},
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	 0xff, 0xe3, 0xff, 0xf3, 0xff, 0xff, 0x7f, 0xfe,
+	 0x3f, 0xf8, 0x17, 0xf0, 0x03, 0xe0, 0x00, 0x00,},
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x82,
-	 0x04, 0x41, 0xff, 0xe1, 0x5f, 0xf1, 0x3f, 0xfe, 
+	 0x04, 0x41, 0xff, 0xe1, 0x5f, 0xf1, 0x3f, 0xfe,
 	 0x17, 0xf0, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00,}
 };
 
 Cursor skull = {
 	{-7,-7},
-	{0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xe7, 0xe7, 
-	 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0x1f, 0xf8, 
-	 0x0f, 0xf0, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 
+	{0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xe7, 0xe7,
+	 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0x1f, 0xf8,
+	 0x0f, 0xf0, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff,
 	 0xef, 0xf7, 0xc7, 0xe3, 0x00, 0x00, 0x00, 0x00,},
 	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03,
 	 0xE7, 0xE7, 0x3F, 0xFC, 0x0F, 0xF0, 0x0D, 0xB0,
@@ -372,7 +372,7 @@ stext(Thing *t, char *l0, char *l1)
 	char buf[256];
 
 	l1[0] = 0;
-	sprint(buf, "depth:%d r:%d %d  %d %d ", 
+	sprint(buf, "depth:%d r:%d %d  %d %d ",
 		t->b->depth, t->b->r.min.x, t->b->r.min.y,
 		t->b->r.max.x, t->b->r.max.y);
 	if(t->parent)
@@ -1397,7 +1397,7 @@ openedit(Thing *t, Point pt, int c)
 	}
 	br = t->b->r;
 	if(t->s == 0){
-		c = -1; 
+		c = -1;
 		/* if big enough to bother, sweep box */
 		if(Dx(br)<=16 && Dy(br)<=16)
 			r = br;
blob - 25b69692a5ba6285467a46ae10441f1d5eed4d24
blob + aa620b04ac8ab438cdde85e5c63c8c8d015025c5
--- src/cmd/echo.c
+++ src/cmd/echo.c
@@ -27,7 +27,7 @@ main(int argc, char *argv[])
 		if(i < argc-1)
 			*p++ = ' ';
 	}
-		
+
 	if(!nflag)
 		*p++ = '\n';
 
blob - 4084994cc38020b24437f3fd68c62c7513441639
blob + 8b0f36e547b8bf8e204a624715d67349221599e0
--- src/cmd/ed.c
+++ src/cmd/ed.c
@@ -203,7 +203,7 @@ commands(void)
 			a1 = dol;
 		if((addr2=a1) == 0) {
 			given = 0;
-			addr2 = dot;	
+			addr2 = dot;
 		} else
 			given = 1;
 		if(addr1 == 0)
@@ -726,7 +726,7 @@ getchr(void)
 		i++;
 		if(fullrune(s, i))
 			break;
-		
+
 	}
 	chartorune(&r, s);
 	lastc = r;
@@ -1072,7 +1072,7 @@ Rune*
 getblock(int atl, int iof)
 {
 	int bno, off;
-	
+
 	static uchar ibuff[BLKSIZE];
 	static uchar obuff[BLKSIZE];
 
@@ -1488,7 +1488,7 @@ match(int *addr)
 	}
 	loc1 = loc2 = 0;
 	return 0;
-	
+
 }
 
 void
blob - 10dc8c75c0d6ab96a6106fba5dd4ce2aaf902ad7
blob + 54f48f798d94787ee44466f58d9541dc4953a952
--- src/cmd/eqn/diacrit.c
+++ src/cmd/eqn/diacrit.c
@@ -64,7 +64,7 @@ void diacrit(int p1, int type)
 	nrwid(c, ps, c);
 	if (lfont[p1] != ITAL)
 		printf(".nr %d 0\n", t);
-	printf(".as %d \\h'-\\n(%du-\\n(%du/2u+\\n(%du'\\v'0-\\n(10u'\\*(%d", 
+	printf(".as %d \\h'-\\n(%du-\\n(%du/2u+\\n(%du'\\v'0-\\n(10u'\\*(%d",
 		p1, p1, c, t, c);
 	printf("\\v'\\n(10u'\\h'-\\n(%du+\\n(%du/2u-\\n(%du'\n", c, p1, t);
 	if (type != UNDER && type != UTILDE)
blob - 6ec013bbca2cc0db5b9abaa46d4c495f5e0fe18a
blob + 98006aa9a70ad052c0004da3dba8729da4f109bb
--- src/cmd/eqn/eqnbox.c
+++ src/cmd/eqn/eqnbox.c
@@ -8,7 +8,7 @@ void eqnbox(int p1, int p2, int lu)
 
 	yyval = p1;
 	b = max(ebase[p1], ebase[p2]);
-	eht[yyval] = h = b + max(eht[p1]-ebase[p1], 
+	eht[yyval] = h = b + max(eht[p1]-ebase[p1],
 		eht[p2]-ebase[p2]);
 	ebase[yyval] = b;
 	dprintf(".\tS%d <- %d %d; b=%g, h=%g\n", (int)yyval, p1, p2, b, h);
blob - 3fb01119cc69e9a78b43df030fee71ec2a24fa2b
blob + 961c7bb21564c686fdceaf843be425754a7f50d0
--- src/cmd/eqn/font.c
+++ src/cmd/eqn/font.c
@@ -51,7 +51,7 @@ void globfont(void)
 	} else if (strcmp(temp, "R") == 0 || strncmp(temp, "ro", 2) == 0) {
 		ft = ROM;
 		strcpy(temp, "1");
-	} else { 
+	} else {
 		ft = ROM;	/* assume it's a roman style */
 	}
 	ftstack[0].ft = ft;
blob - cf9c96e50b2f8cc6bbbea185ee9862ddb9c4155a
blob + 5dda828c96295b87ddcba3e6f63d7dc11a98d5d5
--- src/cmd/eqn/fromto.c
+++ src/cmd/eqn/fromto.c
@@ -28,21 +28,21 @@ void fromto(int p1, int p2, int p3)
 	printf(".ds %d ", (int)yyval);	/* bottom of middle box */
 	if (p2 > 0) {
 		t = eht[p2]-ebase[p2]+b1;
-		printf("\\v'%gm'\\h'\\n(%du-\\n(%du/2u'%s\\*(%d%s", 
+		printf("\\v'%gm'\\h'\\n(%du-\\n(%du/2u'%s\\*(%d%s",
 			REL(t,ps), (int)yyval, p2, DPS(ps,subps), p2, DPS(subps,ps));
-		printf("\\h'-\\n(%du-\\n(%du/2u'\\v'%gm'\\\n", 
+		printf("\\h'-\\n(%du-\\n(%du/2u'\\v'%gm'\\\n",
 			(int)yyval, p2, REL(-t,ps));
 	}
-	printf("\\h'\\n(%du-\\n(%du/2u'\\*(%d\\h'\\n(%du-\\n(%du/2u'\\\n", 
+	printf("\\h'\\n(%du-\\n(%du/2u'\\*(%d\\h'\\n(%du-\\n(%du/2u'\\\n",
 		(int)yyval, p1, p1, (int)yyval, p1);
 	if (p3  >0) {
 		t = h1-b1+ebase[p3];
-		printf("\\v'%gm'\\h'-\\n(%du-\\n(%du/2u'%s\\*(%d%s\\h'\\n(%du-\\n(%du/2u'\\v'%gm'\\\n", 
+		printf("\\v'%gm'\\h'-\\n(%du-\\n(%du/2u'%s\\*(%d%s\\h'\\n(%du-\\n(%du/2u'\\v'%gm'\\\n",
 			REL(-t,ps), (int)yyval, p3, DPS(ps,subps), p3, DPS(subps,ps), (int)yyval, p3, REL(t,ps));
 	}
 	printf("\n");
 	ebase[yyval] = b + b1;
-	dprintf(".\tS%d <- %d from %d to %d; h=%g b=%g\n", 
+	dprintf(".\tS%d <- %d from %d to %d; h=%g b=%g\n",
 		(int)yyval, p1, p2, p3, eht[yyval], ebase[yyval]);
 	sfree(p1);
 	if (p2 > 0)
blob - 3d0cef7479c5aee27a9b976546ba5d77b4c75a3f
blob + f5e42758fc54bc5a9315ecac3425f05dfc472e73
--- src/cmd/eqn/funny.c
+++ src/cmd/eqn/funny.c
@@ -24,7 +24,7 @@ void funny(int n)
 	printf(".ds %d %s\n", (int)yyval, f);
 	eht[yyval] = EM(1.0, ps+Funnyps) - EM(Funnyht, ps);
 	ebase[yyval] = EM(Funnybase, ps);
-	dprintf(".\tS%d <- %s; h=%g b=%g\n", 
+	dprintf(".\tS%d <- %s; h=%g b=%g\n",
 		(int)yyval, f, eht[yyval], ebase[yyval]);
 	lfont[yyval] = rfont[yyval] = ROM;
 }
blob - 25f7eee327035a0d4934b007859841ba3bf6f21a
blob + 816218c026962d94991b50454a9729dd766f88a8
--- src/cmd/eqn/main.c
+++ src/cmd/eqn/main.c
@@ -188,7 +188,7 @@ void inline(void)
 	printf(".lf %d\n", curfile->lineno+1);
 	if (curfile->lineno > n+3)
 		fprintf(stderr, "eqn warning: multi-line %c...%c, file %s:%d,%d\n",
-			lefteq, righteq, curfile->fname, n, curfile->lineno); 
+			lefteq, righteq, curfile->fname, n, curfile->lineno);
 	sfree(ds);
 	if (sz1) sfree(sz1);
 }
@@ -276,7 +276,7 @@ char *ABSPS(int dn)	/* absolute size dn in printable f
 	} else {
 		*lb++ = dn + '0';
 	}
-	*lb++ = '\0';	
+	*lb++ = '\0';
 	return p;
 }
 
@@ -307,7 +307,7 @@ char *DPS(int f, int t)	/* delta ps (t-f) in printable
 	} else {
 		*lb++ = dn + '0';
 	}
-	*lb++ = '\0';	
+	*lb++ = '\0';
 	return p;
 }
 
blob - c97b036ca8ee2f520857f95c466271d0e88efc66
blob + 3976350882ef081e000c9c0555e33706b2c1935c
--- src/cmd/eqn/mbwc.c
+++ src/cmd/eqn/mbwc.c
@@ -162,4 +162,3 @@ wcstombs(char *s, const wchar_t *pwcs, size_t n)
 	}
 	return p-s;
 }
-
blob - 06448adda02b330587a28563428e5efd5f7c6296
blob + b6462c78b3862f3f227428e0cc1a1a65c483ed86
--- src/cmd/eqn/move.c
+++ src/cmd/eqn/move.c
@@ -14,6 +14,6 @@ void move(int dir, int amt, int p)
 		printf("\\v'-%gm'\\*(%d\\v'%gm'\n", a, p, a);
 	else if (dir == DOWN)
 		printf("\\v'%gm'\\*(%d\\v'-%gm'\n", a, p, a);
-	dprintf(".\tmove %d dir %d amt %g; h=%g b=%g\n", 
+	dprintf(".\tmove %d dir %d amt %g; h=%g b=%g\n",
 		p, dir, a, eht[yyval], ebase[yyval]);
 }
blob - 575d1c8e6ada0273149e8cceb053778044dd95c6
blob + 0d519dd50b8e7aded4156637562020283976798b
--- src/cmd/eqn/over.c
+++ src/cmd/eqn/over.c
@@ -11,7 +11,7 @@ void boverb(int p1, int p2)
 	d = EM(Overgap, ps);
 	h = eht[p1] + eht[p2] + d;
 	b = eht[p2] - d;
-	dprintf(".\tS%d <- %d over %d; b=%g, h=%g\n", 
+	dprintf(".\tS%d <- %d over %d; b=%g, h=%g\n",
 		(int)yyval, p1, p2, b, h);
 	nrwid(p1, ps, p1);
 	nrwid(p2, ps, p2);
@@ -19,12 +19,12 @@ void boverb(int p1, int p2)
 	printf(".if \\n(%d>\\n(%d .nr %d \\n(%d\n", p2, treg, treg, p2);
 	printf(".nr %d \\n(%d+%gm\n", treg, treg, Overwid);
 	d2 = eht[p2]-ebase[p2]-d;	/* denom */
-	printf(".ds %d \\v'%gm'\\h'\\n(%du-\\n(%du/2u'\\*(%d\\v'%gm'\\\n", 
+	printf(".ds %d \\v'%gm'\\h'\\n(%du-\\n(%du/2u'\\*(%d\\v'%gm'\\\n",
 		(int)yyval, REL(d2,ps), treg, p2, p2, REL(-d2,ps));
 	d1 = 2 * d + ebase[p1];		/* num */
-	printf("\\h'-\\n(%du-\\n(%du/2u'\\v'%gm'\\*(%d\\v'%gm'\\\n", 
+	printf("\\h'-\\n(%du-\\n(%du/2u'\\v'%gm'\\*(%d\\v'%gm'\\\n",
 		p2, p1, REL(-d1,ps), p1, REL(d1,ps));
-	printf("\\h'-\\n(%du-\\n(%du/2u+%gm'\\v'%gm'\\l'\\n(%du-%gm'\\h'%gm'\\v'%gm'\n", 
+	printf("\\h'-\\n(%du-\\n(%du/2u+%gm'\\v'%gm'\\l'\\n(%du-%gm'\\h'%gm'\\v'%gm'\n",
 		treg, p1, Overline, REL(-d,ps),
 		treg, 2*Overline, Overline, REL(d,ps));
 	ebase[yyval] = b;
blob - 4a9fea0bb93383c3d0a01cbb919cb33d39fe6051
blob + e7d7d7ce3b3e78ed6a51b1e56cb5f52e62444198
--- src/cmd/eqn/paren.c
+++ src/cmd/eqn/paren.c
@@ -121,7 +121,7 @@ void paren(int leftc, int p1, int rightc)
 			printf("\\v'%gm'", -bv);
 	}
 	printf("\n");
-	dprintf(".\tcurly: h=%g b=%g n=%d v=%g l=%c, r=%c\n", 
+	dprintf(".\tcurly: h=%g b=%g n=%d v=%g l=%c, r=%c\n",
 		eht[yyval], ebase[yyval], n, v, leftc, rightc);
 }
 
blob - a8901721782f6055dd9d7052b723e032a32149df
blob + 8052e5c41f9efe19b3aeb1cdff18b0f858c4855c
--- src/cmd/eqn/pile.c
+++ src/cmd/eqn/pile.c
@@ -41,34 +41,34 @@ void pile(int oct)
 	printf(".nr %d \\n(%d\n", (int)yyval, lp[p1]);
 	for (i = p1+1; i < p2; i++) {
 		nrwid(lp[i], ps, lp[i]);
-		printf(".if \\n(%d>\\n(%d .nr %d \\n(%d\n", 
+		printf(".if \\n(%d>\\n(%d .nr %d \\n(%d\n",
 			lp[i], (int)yyval, (int)yyval, lp[i]);
 	}
-	printf(".ds %d \\v'%gm'\\h'%du*\\n(%du'\\\n", (int)yyval, REL(ebase[yyval],ps), 
+	printf(".ds %d \\v'%gm'\\h'%du*\\n(%du'\\\n", (int)yyval, REL(ebase[yyval],ps),
 		type==RCOL ? 1 : 0, (int)yyval);
 	sb = 0;		/* sum of box hts */
 	for (i = p2-1; i >= p1; i--) {
 		bi = sb + ebase[lp[i]];
 		switch (type) {
 		case LCOL:
-			printf("\\v'%gm'\\*(%d\\h'-\\n(%du'\\v'%gm'\\\n", 
+			printf("\\v'%gm'\\*(%d\\h'-\\n(%du'\\v'%gm'\\\n",
 				REL(-bi,ps), lp[i], lp[i], REL(bi,ps));
 			break;
 		case RCOL:
-			printf("\\v'%gm'\\h'-\\n(%du'\\*(%d\\v'%gm'\\\n", 
+			printf("\\v'%gm'\\h'-\\n(%du'\\*(%d\\v'%gm'\\\n",
 				REL(-bi,ps), lp[i], lp[i], REL(bi,ps));
 			break;
 		case CCOL:
 		case COL:
-			printf("\\v'%gm'\\h'\\n(%du-\\n(%du/2u'\\*(%d", 
+			printf("\\v'%gm'\\h'\\n(%du-\\n(%du/2u'\\*(%d",
 				REL(-bi,ps), (int)yyval, lp[i], lp[i]);
-			printf("\\h'-\\n(%du-\\n(%du/2u'\\v'%gm'\\\n", 
+			printf("\\h'-\\n(%du-\\n(%du/2u'\\v'%gm'\\\n",
 				(int)yyval, lp[i], REL(bi,ps));
 			break;
 		}
 		sb += eht[lp[i]] + gap;
 	}
-	printf("\\v'%gm'\\h'%du*\\n(%du'\n", REL(-ebase[yyval],ps), 
+	printf("\\v'%gm'\\h'%du*\\n(%du'\n", REL(-ebase[yyval],ps),
 		type!=RCOL ? 1 : 0, (int)yyval);
 	for (i = p1; i < p2; i++)
 		sfree(lp[i]);
blob - 970c13e7cb6e4e4718e4c50eb61b86cfad5e909e
blob + 34f0408089c8a030c4dfca09b4a5507c2cfb06ab
--- src/cmd/eqn/shift.c
+++ src/cmd/eqn/shift.c
@@ -56,10 +56,10 @@ void bshiftb(int p1, int dir, int p2)
 		sh1 = pad(n);
 		rclass[p1] = rclass[p2];	/* OTHER leaves too much after sup */
 	}
-	dprintf(".\tS%d <- %d shift %g %d; b=%g, h=%g, ps=%d, subps=%d\n", 
+	dprintf(".\tS%d <- %d shift %g %d; b=%g, h=%g, ps=%d, subps=%d\n",
 		(int)yyval, p1, shval, p2, ebase[yyval], eht[yyval], ps, subps);
 	sh2 = Sub2space;	/* was Sub2space; */
-	printf(".as %d \\v'%gm'%s%s\\*(%d%s%s\\v'%gm'\n", 
+	printf(".as %d \\v'%gm'%s%s\\*(%d%s%s\\v'%gm'\n",
 		(int)yyval, REL(shval,ps), DPS(ps,subps), sh1, p2,
 		DPS(subps,ps), sh2, REL(-shval,ps));
 	rfont[p1] = 0;
@@ -105,9 +105,9 @@ void shift2(int p1, int p2, int p3)
 	nrwid(p3, subps, p3);
 	printf(".nr %d \\n(%d\n", treg, p3);
 	printf(".if \\n(%d>\\n(%d .nr %d \\n(%d\n", p2, treg, treg, p2);
-	printf(".as %d %s\\v'%gm'\\*(%d\\v'%gm'\\h'-\\n(%du'\\\n", 
+	printf(".as %d %s\\v'%gm'\\*(%d\\v'%gm'\\h'-\\n(%du'\\\n",
 		p1, DPS(ps,subps), REL(subsh,subps), p2, REL(-subsh,subps), p2);
-	printf("\\v'%gm'\\*(%d\\v'%gm'\\h'-\\n(%du+\\n(%du'%s%s\n", 
+	printf("\\v'%gm'\\*(%d\\v'%gm'\\h'-\\n(%du+\\n(%du'%s%s\n",
 		REL(supsh,subps), p3, REL(-supsh,subps), p3, treg, DPS(subps,ps), Sub2space);
 	if (rfont[p2] == ITAL)
 		rfont[yyval] = 0;	/* lie */
blob - 01837e144020dbb99eceba67dc7f64a12cc8d88e
blob + 3e57b4dedd26ab4c22114602cbbd65fe3b30313d
--- src/cmd/eqn/size.c
+++ src/cmd/eqn/size.c
@@ -29,7 +29,7 @@ void size(int p1, int p2)
 {
 		/* old size in p1, new in ps */
 	yyval = p2;
-	dprintf(".\tS%d <- \\s%d %d \\s%d; b=%g, h=%g\n", 
+	dprintf(".\tS%d <- \\s%d %d \\s%d; b=%g, h=%g\n",
 		(int)yyval, ps, p2, p1, ebase[yyval], eht[yyval]);
 	if (szstack[nszstack] != 0) {
 		printf(".ds %d %s\\*(%d\\s\\n(%d\n", (int)yyval, ABSPS(ps), p2, 99-nszstack);
blob - 69359b67336cae15b1783351d8fdb8d12960df96
blob + 0963fe45f6ffc6d5d621684a6a3075a2baf32f3e
--- src/cmd/eqn/sqrt.c
+++ src/cmd/eqn/sqrt.c
@@ -17,7 +17,7 @@ void sqrt(int p2)
 		eht[yyval] = EM(1.15, nps);
 	else		/* DEV202, DEVPOST */
 		eht[yyval] = EM(1.15, nps);
-	dprintf(".\tS%d <- sqrt S%d;b=%g, h=%g, nps=%d\n", 
+	dprintf(".\tS%d <- sqrt S%d;b=%g, h=%g, nps=%d\n",
 		(int)yyval, p2, ebase[yyval], eht[yyval], nps);
 	printf(".as %d \\|\n", (int)yyval);
 	nrwid(p2, ps, p2);
blob - c016cca085cc3ea4fcb3b55ea06fc8b2aed10aad
blob + 4ca0bbd9d3501a2988ae37eae9470d4f78d415e8
--- src/cmd/eqn/text.c
+++ src/cmd/eqn/text.c
@@ -193,7 +193,7 @@ trans(int c, char *p1)
 			cadd(c);
 			psp++;
 		} else {
-			cadd(c);  
+			cadd(c);
 		}
 		return f;
 	case '-':
@@ -263,7 +263,7 @@ char *pad(int n)	/* return the padding as a string */
 	if (n < 0) {
 		sprintf(buf, "\\h'-%du*\\w'\\^'u'", -n);
 		return buf;
-	}	
+	}
 	for ( ; n > 1; n -= 2)
 		strcat(buf, "\\|");
 	if (n > 0)
blob - a24a391ad60b86091ff3b14d57a243f59643fad1
blob + 5043aa782f92b07533a8d70e9fdc5f71f3d14c46
--- src/cmd/faces/facedb.c
+++ src/cmd/faces/facedb.c
@@ -112,7 +112,7 @@ readfile(char *s)
 			continue;
 
 		/*
-		 * if it's less than 30 seconds since we read it, or it 
+		 * if it's less than 30 seconds since we read it, or it
 		 * hasn't changed, send back our copy
 		 */
 		if(time(0) - r->rdtime < 30)
@@ -215,7 +215,7 @@ tryfindpicture(char *dom, char *user, char *dir, char 
 {
 	static char buf[1024];
 	char *file, *p, *nextp, *q;
-	
+
 	if((file = readfile(dict)) == nil)
 		return nil;
 
@@ -247,7 +247,7 @@ static char*
 estrstrdup(char *a, char *b)
 {
 	char *t;
-	
+
 	t = emalloc(strlen(a)+strlen(b)+1);
 	strcpy(t, a);
 	strcat(t, b);
@@ -261,7 +261,7 @@ tryfindfiledir(char *dom, char *user, char *dir)
 	int fd;
 	int i, n;
 	Dir *d;
-	
+
 	/*
 	 * If this directory has a .machinelist, use it.
 	 */
@@ -279,7 +279,7 @@ tryfindfiledir(char *dom, char *user, char *dir)
 		return x;
 	}
 	free(dict);
-	
+
 	/*
 	 * If not, recurse into subdirectories.
 	 * Ignore 48x48xN directories for now.
@@ -305,7 +305,7 @@ tryfindfiledir(char *dom, char *user, char *dir)
 		free(d);
 	}
 	close(fd);
-	
+
 	/*
 	 * Handle 48x48xN directories in the right order.
 	 */
@@ -398,7 +398,7 @@ freefacefile(Facefile *f)
 		return;
 	if(++nsaved > Nsave)
 		clearsaved();
-}	
+}
 
 static Image*
 myallocimage(ulong chan)
@@ -413,7 +413,7 @@ myallocimage(ulong chan)
 	}
 	return img;
 }
-		
+
 
 static Image*
 readbit(int fd, ulong chan)
@@ -527,14 +527,14 @@ readface(char *fn)
 			mask = myallocimage(GREY1);
 			if(mask == nil)
 				goto Done;
-			if(unloadimage(face, face->r, data, Facesize*Facesize) != Facesize*Facesize){	
+			if(unloadimage(face, face->r, data, Facesize*Facesize) != Facesize*Facesize){
 				freeimage(mask);
 				goto Done;
 			}
 			bits = 0;
 			p = mdata;
 			for(y=0; y<Facesize; y++){
-				for(x=0; x<Facesize; x++){	
+				for(x=0; x<Facesize; x++){
 					bits <<= 1;
 					if(data[Facesize*y+x] != 0xFF)
 						bits |= 1;
blob - bb36ed7cef322964ac1c0afa71314f7f97db2ac2
blob + 30343c745d5505da1c8ec736725b6b26c77dc521
--- src/cmd/faces/main.c
+++ src/cmd/faces/main.c
@@ -19,7 +19,7 @@ enum
 	Infolines = 9,
 
 	HhmmTime = 18*60*60,	/* max age of face to display hh:mm time */
-	
+
 	STACK = 32768
 };
 
@@ -293,7 +293,7 @@ updatetimes(void)
 			continue;
 		if(((long)(now - f->time) <= HhmmTime) != f->recent)
 			drawface(f, i);
-	}	
+	}
 }
 
 void
@@ -610,7 +610,7 @@ click(int button, Mouse *m)
 			return;
 		}else{
 			for(i=first; i<last; i++)	/* clear vwhois faces */
-				if(ptinrect(p, facerect(i-first)) 
+				if(ptinrect(p, facerect(i-first))
 				&& strstr(faces[i]->str[Sshow], "/XXXvwhois")){
 					lockdisplay(display);
 					delface(i);
blob - 6d82c779f866639c06d7df1a403232dcf4ae796b
blob + b2fcfa85f1ff2990eccf24993cb922f5c83a4cf7
--- src/cmd/faces/plumb.c
+++ src/cmd/faces/plumb.c
@@ -113,7 +113,7 @@ setname(Face *f, char *sender)
 
 static char* months[] = {
 	"jan", "feb", "mar", "apr",
-	"may", "jun", "jul", "aug", 
+	"may", "jun", "jul", "aug",
 	"sep", "oct", "nov", "dec"
 };
 
blob - 22f57549cfd7aa4c1fca773c40b643e9030d1cd0
blob + 5f3e7fde9c862a66f6387dbd22272487cefb614e
--- src/cmd/faces/util.c
+++ src/cmd/faces/util.c
@@ -39,4 +39,3 @@ estrdup(char *s)
 	}
 	return t;
 }
-
blob - 32d580cdfc26bc4b7f539cf983d2d5761e0fa032
blob + 0ee1d1cfc797b924ac64b124ecc84f4ac743d9d4
--- src/cmd/file.c
+++ src/cmd/file.c
@@ -52,7 +52,7 @@ struct
 	"common",	Fword,
 	"con",		Lword,
 	"data",		Fword,
-	"dimension",	Fword,	
+	"dimension",	Fword,
 	"double",	Cword,
 	"extern",	Cword,
 	"bio",		I2,
@@ -86,7 +86,7 @@ struct
 enum	{
 		Normal	= 0,
 		First,		/* first entry for language spanning several ranges */
-		Multi,		/* later entries "   "       "  ... */ 
+		Multi,		/* later entries "   "       "  ... */
 		Shared,		/* codes used in several languages */
 	};
 
@@ -97,7 +97,7 @@ struct
 	int	low;
 	int	high;
 	char	*name;
-	
+
 } language[] =
 {
 	Normal, 0,	0x0080, 0x0080,	"Extended Latin",
@@ -127,8 +127,8 @@ struct
 	Shared,	0,	0x4e00,	0x9fff,	"CJK",
 	Normal,	0,	0,	0,	0,		/* terminal entry */
 };
-	
-	
+
+
 enum
 {
 	Fascii,		/* printable ascii */
@@ -342,7 +342,7 @@ filetype(int fd)
 	 * lookup dictionary words
 	 */
 	memset(wfreq, 0, sizeof(wfreq));
-	if(guess == Fascii || guess == Flatin || guess == Futf) 
+	if(guess == Fascii || guess == Flatin || guess == Futf)
 		wordfreq();
 	/*
 	 * call individual classify routines
@@ -540,7 +540,7 @@ filemagic(Filemagic *tab, int ntab, ulong x)
 		}
 	return 0;
 }
-	
+
 int
 long0(void)
 {
@@ -876,7 +876,7 @@ yes:
 	}
 	if(wfreq[Alword] > 0)
 		print("alef program\n");
-	else 
+	else
 		print("c program\n");
 	return 1;
 }
@@ -1042,7 +1042,7 @@ depthof(char *s, int *newp)
 		s++;	/* skip letter */
 		d += strtoul(s, &s, 10);
 	}
-	
+
 	switch(d){
 	case 32:
 	case 24:
blob - 1c4de8714e9e16cd7dd2c9e0f935c54b64aebb12
blob + 047da847dff8f2e15702198acb17a9be78282290
--- src/cmd/fmt.c
+++ src/cmd/fmt.c
@@ -104,7 +104,7 @@ indentof(char **linep)
 			ind -= ind%maxtab;
 			break;
 		}
-			
+
 	/* plain white space doesn't change the indent */
 	*linep = "";
 	return indent;
blob - 37f0da32dcaf4191d130ff3c240ab7e557cc4792
blob + ebab624975823d8d7fa561bec2597c9b75efd3ae
--- src/cmd/fontsrv/main.c
+++ src/cmd/fontsrv/main.c
@@ -70,7 +70,7 @@ dostat(vlong path, Qid *qid, Dir *dir)
 	vlong length;
 	XFont *f;
 	char buf[100];
-	
+
 	q.type = 0;
 	q.vers = 0;
 	q.path = path;
@@ -98,7 +98,7 @@ dostat(vlong path, Qid *qid, Dir *dir)
 		snprint(buf, sizeof buf, "%lld%s", QSIZE(path), QANTIALIAS(path) ? "a" : "");
 		name = buf;
 		break;
-	
+
 	case Qfontfile:
 		f = &xfont[QFONT(path)];
 		load(f);
@@ -111,7 +111,7 @@ dostat(vlong path, Qid *qid, Dir *dir)
 		name = buf;
 		break;
 	}
-	
+
 	if(qid)
 		*qid = q;
 	if(dir) {
@@ -214,7 +214,7 @@ fontgen(int i, Dir *d, void *v)
 {
 	vlong path;
 	Fid *f;
-	
+
 	f = v;
 	path = f->qid.path;
 	if(i >= 2*nelem(sizes))
@@ -280,7 +280,7 @@ void
 responderrstr(Req *r)
 {
 	char err[ERRMAX];
-	
+
 	rerrstr(err, sizeof err);
 	respond(r, err);
 }
@@ -295,7 +295,7 @@ xread(Req *r)
 	char *data;
 	Memsubfont *sf;
 	Memimage *m;
-	
+
 	path = r->fid->qid.path;
 	switch(QTYPE(path)) {
 	case Qroot:
@@ -377,7 +377,7 @@ static void
 xdestroyfid(Fid *fid)
 {
 	Memsubfont *sf;
-	
+
 	sf = fid->aux;
 	if(sf == nil)
 		return;
@@ -420,7 +420,7 @@ dump(char *path)
 
 	// root
 	memset(&fid, 0, sizeof fid);
-	dostat(0, &fid.qid, nil);	
+	dostat(0, &fid.qid, nil);
 	qid = fid.qid;
 
 	path0 = path;
@@ -440,7 +440,7 @@ dump(char *path)
 			*p++ = '/';
 		path = p;
 	}
-	
+
 	memset(&r, 0, sizeof r);
 	xsrv.fake = 1;
 
@@ -513,7 +513,7 @@ main(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	xsrv.attach = xattach;
 	xsrv.open = xopen;
 	xsrv.read = xread;
@@ -526,7 +526,7 @@ main(int argc, char **argv)
 	memimageinit();
 	loadfonts();
 	qsort(xfont, nxfont, sizeof xfont[0], fontcmp);
-	
+
 	if(pflag) {
 		if(argc != 1 || chatty9p || chattyfuse)
 			usage();
@@ -600,4 +600,3 @@ dirpackage(uchar *buf, long ts, Dir **d)
 
 	return nn;
 }
-
blob - c01ae6ce5d9dd2a8bac530e881368959698d6154
blob + b4dadd90a0a2fc4954636a0fbdef626817593792
--- src/cmd/fontsrv/osx.c
+++ src/cmd/fontsrv/osx.c
@@ -51,7 +51,7 @@ mac2c(CFStringRef s)
 	char *p;
 	int n;
 
-	n = CFStringGetLength(s)*8;	
+	n = CFStringGetLength(s)*8;
 	p = malloc(n);
 	CFStringGetCString(s, p, n, kCFStringEncodingUTF8);
 	return p;
@@ -93,7 +93,7 @@ loadfonts(void)
 		if(f == nil)
 			continue;
 		s = CTFontDescriptorCopyAttribute(f, kCTFontNameAttribute);
-		xfont[nxfont].name = mac2c(s);		
+		xfont[nxfont].name = mac2c(s);
 		CFRelease(s);
 		nxfont++;
 	}
@@ -147,7 +147,7 @@ fontheight(XFont *f, int size, int *height, int *ascen
 		CTLineRef line;
 
  		str = c2mac(lines[i]);
- 		
+
  		// See https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/CoreText_Programming/LayoutOperations/LayoutOperations.html#//apple_ref/doc/uid/TP40005533-CH12-SW2
  		attrs = CFDictionaryCreate(kCFAllocatorDefault, (const void**)&keys,
 			(const void**)&values, sizeof(keys) / sizeof(keys[0]),
@@ -162,15 +162,15 @@ fontheight(XFont *f, int size, int *height, int *ascen
 		r.size.width += r.origin.x;
 		r.size.height += r.origin.y;
 		CFRelease(line);
-		
+
 //	fprint(2, "%s: %g %g %g %g\n", lines[i], r.origin.x, r.origin.y, r.size.width, r.size.height);
-		
+
 		if(i == 0)
 			bbox = r;
 		if(bbox.origin.x > r.origin.x)
-			bbox.origin.x = r.origin.x;	
+			bbox.origin.x = r.origin.x;
 		if(bbox.origin.y > r.origin.y)
-			bbox.origin.y = r.origin.y;	
+			bbox.origin.y = r.origin.y;
 		if(bbox.size.width < r.size.width)
 			bbox.size.width = r.size.width;
 		if(bbox.size.height < r.size.height)
@@ -182,7 +182,7 @@ fontheight(XFont *f, int size, int *height, int *ascen
 
 	*height = bbox.size.height + 0.999999;
 	*ascent = *height - (-bbox.origin.y + 0.999999);
-		
+
 	CGContextRelease(ctxt);
 	CFRelease(font);
 }
@@ -232,8 +232,8 @@ mksubfont(XFont *f, char *name, int lo, int hi, int si
 	CFRelease(desc);
 	if(font == nil)
 		return nil;
-	
-	
+
+
 	bbox = CTFontGetBoundingBox(font);
 	x = (int)(bbox.size.width*2 + 0.99999999);
 
@@ -295,7 +295,7 @@ mksubfont(XFont *f, char *name, int lo, int hi, int si
 
 		sprint(buf, "%C", (Rune)mapUnicode(name, i));
  		str = c2mac(buf);
- 		
+
  		// See https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/CoreText_Programming/LayoutOperations/LayoutOperations.html#//apple_ref/doc/uid/TP40005533-CH12-SW2
  		attrs = CFDictionaryCreate(kCFAllocatorDefault, (const void**)&keys,
 			(const void**)&values, sizeof(keys) / sizeof(keys[0]),
@@ -309,7 +309,7 @@ mksubfont(XFont *f, char *name, int lo, int hi, int si
 		CGContextSetTextPosition(ctxt, 0, y0);
 		r = CTLineGetImageBounds(line, ctxt);
 		memfillcolor(mc, DBlack);
-		CTLineDraw(line, ctxt);		
+		CTLineDraw(line, ctxt);
 		CFRelease(line);
 
 		fc->x = x;
@@ -324,7 +324,7 @@ mksubfont(XFont *f, char *name, int lo, int hi, int si
 			if(i == 0) {
 				drawpjw(m, fc, x, (int)(bbox.size.width + 0.99999999), y, y - y0);
 				x += fc->width;
-			}	
+			}
 			continue;
 		}
 
@@ -357,6 +357,6 @@ mksubfont(XFont *f, char *name, int lo, int hi, int si
 	sf->ascent = Dy(m1->r) - y0;
 	sf->info = fc0;
 	sf->bits = m1;
-	
+
 	return sf;
 }
blob - 30ebbed2c7f7ca48466a26a8c5ff40179121e771
blob + 82e8cfa1de4d7839f80a81fde148c9259adb385d
--- src/cmd/fontsrv/pjw.c
+++ src/cmd/fontsrv/pjw.c
@@ -96,7 +96,7 @@ drawpjw(Memimage *m, Fontchar *fc, int x, int width, i
 	Memimage *pm, *pm1, *pm2;
 	Rectangle r;
 	int margin;
-	
+
 	w = width;
 
 	// assume margin below baseline is
@@ -116,7 +116,7 @@ drawpjw(Memimage *m, Fontchar *fc, int x, int width, i
 	close(p[0]);
 	if(pm == nil)
 		goto Error;
-	
+
 	pm1 = allocmemimage(pm->r, GREY8);
 	memimagedraw(pm1, pm1->r, pm, pm->r.min, nil, ZP, S);
 	pm2 = resample(w, w, pm1);
@@ -216,7 +216,7 @@ fac(int L)
 	return f;
 }
 
-/* 
+/*
  * i0(x) is the modified Bessel function, Σ (x/2)^2L / (L!)²
  * There are faster ways to calculate this, but we precompute
  * into a table so let's keep it simple.
blob - ac7242513af3f692c53814f9d4cea331b67461d3
blob + 121e5b66c34c59ef378f032daaae7f15ccb72a2b
--- src/cmd/fossil/9fsys.c
+++ src/cmd/fossil/9fsys.c
@@ -503,7 +503,7 @@ fsysSync(Fsys* fsys, int argc, char* argv[])
 {
 	char *usage = "usage: [fsys name] sync";
 	int n;
-	
+
 	ARGBEGIN{
 	default:
 		return cliError(usage);
@@ -1307,7 +1307,7 @@ fsckClri(Fsck *fsck, char *name, MetaBlock *mb, int i,
 
 	mbDelete(mb, i);
 	mbPack(mb);
-	blockDirty(b);	
+	blockDirty(b);
 }
 
 static void
@@ -1322,12 +1322,12 @@ fsckClose(Fsck *fsck, Block *b, u32int epoch)
 		consPrint("%#ux is already closed\n", b->addr);
 		return;
 	}
-	if(epoch){	
+	if(epoch){
 		l.state |= BsClosed;
 		l.epochClose = epoch;
 	}else
 		l.state = BsFree;
-		
+
 	if(!blockSetLabel(b, &l, 0))
 		consPrint("%#ux setlabel: %r\n", b->addr);
 }
blob - b4023e8bead490532f0da83787289c83f2fd1e82
blob + 4f9607294afc53756669fd8a13a2940fb9c393ac
--- src/cmd/fossil/9lstn.c
+++ src/cmd/fossil/9lstn.c
@@ -46,7 +46,7 @@ lstnListen(void* a)
 	Lstn *lstn;
 	int dfd, lfd;
 	char newdir[NETPATHLEN];
-	
+
  	threadsetname("listen");
 
 	lstn = a;
blob - 6738670e0e2e19d6527e05673dc9836f9cdcea1e
blob + e15622afae990e93ee8e96563c34a2a3f3afe0a6
--- src/cmd/fossil/9p.c
+++ src/cmd/fossil/9p.c
@@ -939,7 +939,7 @@ parseAname(char *aname, char **fsname, char **path)
 /*
  * Check remote IP address against /mnt/ipok.
  * Sources.cs.bell-labs.com uses this to disallow
- * network connections from Sudan, Libya, etc., 
+ * network connections from Sudan, Libya, etc.,
  * following U.S. cryptography export regulations.
  */
 static int
@@ -955,7 +955,7 @@ conIPCheck(Con* con)
 		}
 		if(access("/mnt/ipok/ok", AEXIST) < 0){
 			/* mount closes the fd on success */
-			if((fd = open("/srv/ipok", ORDWR)) >= 0 
+			if((fd = open("/srv/ipok", ORDWR)) >= 0
 			&& mount(fd, -1, "/mnt/ipok", MREPL, "") < 0)
 				close(fd);
 			if(access("/mnt/ipok/ok", AEXIST) < 0){
blob - dbf628c5b44117d0c24f945a6dec2362ee794017
blob + d820f20810cdb40380b61525098909d87e2d5375
--- src/cmd/fossil/9ping.c
+++ src/cmd/fossil/9ping.c
@@ -37,7 +37,7 @@ main(int argc, char *argv[])
 	int n = 1000, m;
 	int s = 1;
 	double *t, t0, t1;
-	uchar *buf;	
+	uchar *buf;
 	double a, d, max, min;
 
 	m = OREAD;
@@ -67,7 +67,7 @@ main(int argc, char *argv[])
 
 	buf = malloc(s);
 	t = malloc(n*sizeof(double));
-	
+
 	t0 = nsec();
 	for(i=0; i<n; i++){
 		if(m == OREAD){
@@ -96,7 +96,7 @@ main(int argc, char *argv[])
 	}
 
 	a /= n;
-	
+
 	for(i=0; i<n; i++)
 		d += (a - t[i]) * (a - t[i]);
 	d /= n;
blob - 7a88f23e0d0613ba39e957dd897d5a11bcf45faa
blob + 451fe628978efec48f0f4eac884fec1bdd3bcf89
--- src/cmd/fossil/archive.c
+++ src/cmd/fossil/archive.c
@@ -273,14 +273,14 @@ if(0) fprint(2, "falling\n");
 					blockDirty(b);
 					/*
 					 * If b is in the active tree, then we need to note that we've
-					 * just removed addr from the active tree (replacing it with the 
+					 * just removed addr from the active tree (replacing it with the
 					 * copy we just stored to Venti).  If addr is in other snapshots,
 					 * this will close addr but not free it, since it has a non-empty
 					 * epoch range.
 					 *
 					 * If b is in the active tree but has been copied (this can happen
 					 * if we get killed at just the right moment), then we will
-					 * mistakenly leak its kids.  
+					 * mistakenly leak its kids.
 					 *
 					 * The children of an archive directory (e.g., /archive/2004/0604)
 					 * are not treated as in the active tree.
blob - 8cd0956ee391ddd43fcbfd0ed395d76f4be681fa
blob + 7dcd6b2de2f0174d7c46c46a876c28a26fdbeeff
--- src/cmd/fossil/bwatch.c
+++ src/cmd/fossil/bwatch.c
@@ -124,7 +124,7 @@ _bwatchResetParent(uchar *score)
 	}
 }
 /*
- * and child 
+ * and child
  */
 static void
 _bwatchResetChild(uchar *score)
@@ -417,4 +417,3 @@ bwatchUnlock(Block *b)
 	}else
 		w->b[i] = w->b[--w->nb];
 }
-
blob - 23f89461ee488c08dec00fce2136fb35e4e3e33c
blob + 6707d50ae4c2e5e98e05595b08df1c06e644273e
--- src/cmd/fossil/cache.c
+++ src/cmd/fossil/cache.c
@@ -1062,10 +1062,10 @@ if(0)fprint(2, "%s: %d:%x:%d depends on %d:%x:%d\n", a
 
 /*
  * Mark an in-memory block as dirty.  If there are too many
- * dirty blocks, start writing some out to disk. 
- * 
+ * dirty blocks, start writing some out to disk.
+ *
  * If there were way too many dirty blocks, we used to
- * try to do some flushing ourselves, but it's just too dangerous -- 
+ * try to do some flushing ourselves, but it's just too dangerous --
  * it implies that the callers cannot have any of our priors locked,
  * but this is hard to avoid in some cases.
  */
@@ -1332,16 +1332,16 @@ if(0) fprint(2, "%s: iostate part=%d addr=%x %s->%s\n"
 }
 
 /*
- * The active file system is a tree of blocks. 
+ * The active file system is a tree of blocks.
  * When we add snapshots to the mix, the entire file system
  * becomes a dag and thus requires a bit more care.
- * 
+ *
  * The life of the file system is divided into epochs.  A snapshot
  * ends one epoch and begins the next.  Each file system block
  * is marked with the epoch in which it was created (b.epoch).
  * When the block is unlinked from the file system (closed), it is marked
- * with the epoch in which it was removed (b.epochClose).  
- * Once we have discarded or archived all snapshots up to 
+ * with the epoch in which it was removed (b.epochClose).
+ * Once we have discarded or archived all snapshots up to
  * b.epochClose, we can reclaim the block.
  *
  * If a block was created in a past epoch but is not yet closed,
@@ -1359,7 +1359,7 @@ if(0) fprint(2, "%s: iostate part=%d addr=%x %s->%s\n"
  * lbb (bb's label block).
  *
  * (2) We have to mark b as closed, but only after we switch
- * the pointer, so lb must be written out after p.  In fact, we 
+ * the pointer, so lb must be written out after p.  In fact, we
  * can't even update the in-memory copy, or the cache might
  * mistakenly give out b for reuse before p gets written.
  *
@@ -1369,7 +1369,7 @@ if(0) fprint(2, "%s: iostate part=%d addr=%x %s->%s\n"
  * to arrange for (2) to happen once p is written.
  *
  * Until (2) happens, some pieces of the code (e.g., the archiver)
- * still need to know whether a block has been copied, so we 
+ * still need to know whether a block has been copied, so we
  * set the BsCopied bit in the label and force that to disk *before*
  * the copy gets written out.
  */
@@ -1436,7 +1436,7 @@ void
 blockRemoveLink(Block *b, u32int addr, int type, u32int tag, int recurse)
 {
 	BList *p, **pp, bl;
-	
+
 	/* remove bb from prior list */
 	for(pp=&b->prior; (p=*pp)!=nil; ){
 		if(p->part == PartData && p->addr == addr){
@@ -1479,7 +1479,7 @@ blockRemoveLink(Block *b, u32int addr, int type, u32in
 	b->utail = p;
 }
 
-/* 
+/*
  * Process removal of a single block and perhaps its children.
  */
 static void
@@ -1592,7 +1592,7 @@ blistAlloc(Block *b)
 		/*
 		 * No free BLists.  What are our options?
 		 */
-	
+
 		/* Block has no priors? Just write it. */
 		if(b->prior == nil){
 			qunlock(&c->lk);
blob - c003f70693886c64e35dd14447649feb23285de8
blob + 2068a617624ef2745c04b76b46d4d9cae297556f
--- src/cmd/fossil/flchk.c
+++ src/cmd/fossil/flchk.c
@@ -64,7 +64,7 @@ threadmain(int argc, char *argv[])
 	int csize = 1000;
 	VtConn *z;
 	char *host = nil;
-	
+
 	fsck.useventi = 1;
 	Binit(&bout, 1, OWRITE);
 	ARGBEGIN{
@@ -119,4 +119,3 @@ threadmain(int argc, char *argv[])
 
 	threadexitsall(0);
 }
-
blob - ac466bdd5bb2145527532bff4c49bfdc8b9d7e89
blob + 128227d8a48bf5cc7b258d5adf112e221a5acb30
--- src/cmd/fossil/flfmt9660.c
+++ src/cmd/fossil/flfmt9660.c
@@ -1,7 +1,7 @@
 /*
  * Initialize a fossil file system from an ISO9660 image already in the
  * file system.  This is a fairly bizarre thing to do, but it lets us generate
- * installation CDs that double as valid Plan 9 disk partitions.  
+ * installation CDs that double as valid Plan 9 disk partitions.
  * People having trouble booting the CD can just copy it into a disk
  * partition and you've got a working Plan 9 system.
  *
@@ -329,7 +329,7 @@ iso9660start(Cdir *c)
 		c = (Cdir*)((uchar*)c+c->len);	/* skip dotdot */
 		/* oops: might happen if leftmost directory is empty or leftmost file is zero length! */
 		if(little(c->dloc, 4) == 0)
-			sysfatal("error parsing cd image or unfortunate cd image");	
+			sysfatal("error parsing cd image or unfortunate cd image");
 	}
 	return little(c->dloc, 4);
 }
blob - 5f8a1cfd099039eea3397bf28637e984207a4ed7
blob + d1baf736bf4102f83560e2bb6a934eb0b6147591
--- src/cmd/fossil/fs.c
+++ src/cmd/fossil/fs.c
@@ -529,7 +529,7 @@ fsSnapshot(Fs *fs, char *srcpath, char *dstpath, int d
 	 * It is important that we maintain the invariant that:
 	 *	if both b and bb are marked as Active with start epoch e
 	 *	and b points at bb, then no other pointers to bb exist.
-	 * 
+	 *
 	 * When bb is unlinked from b, its close epoch is set to b's epoch.
 	 * A block with epoch == close epoch is
 	 * treated as free by cacheAllocBlock; this aggressively
@@ -1095,4 +1095,3 @@ snapClose(Snap *s)
 	periodicKill(s->tick);
 	vtfree(s);
 }
-
blob - 9f98c03fe178aa06faf985a2d26e47246fbfad41
blob + e0e7b17eb2d184733d3a0bb6da9b7f21f3499c22
--- src/cmd/fossil/nobwatch.c
+++ src/cmd/fossil/nobwatch.c
@@ -37,4 +37,3 @@ bwatchUnlock(Block *b)
 {
 	USED(b);
 }
-
blob - b27f90b86f2a16992d73a7622d64aeef203d7cb4
blob + 75077a05df39bc5e00be41e16543f63538de30fa
--- src/cmd/fossil/pack.c
+++ src/cmd/fossil/pack.c
@@ -222,4 +222,3 @@ Err:
 	werrstr(EBadSuper);
 	return 0;
 }
-
blob - 634f975d8dd53388ad565fcf8d33223ab30f7ae7
blob + 6164eca22725dcdf03cf5ea2373c7ad5f49ab4b1
--- src/cmd/fossil/periodic.c
+++ src/cmd/fossil/periodic.c
@@ -79,4 +79,3 @@ periodicThread(void *a)
 	}
 	periodicFree(p);
 }
-
blob - 8cf63b4f62d35bbdac8ff72bec377151056c5b61
blob + 97e455411c42d83e64936c2b8213c2c5cf31b7ea
--- src/cmd/fossil/srcload.c
+++ src/cmd/fossil/srcload.c
@@ -39,7 +39,7 @@ main(int argc, char *argv[])
 	case 'l':
 		length = atoi(ARGF());
 		break;
-	case 'b':	
+	case 'b':
 		block = atoi(ARGF());
 		break;
 	case 'u':
@@ -92,7 +92,7 @@ main(int argc, char *argv[])
 
 	fprint(2, "count = %d\n", count(r, 1));
 	fprint(2, "total time = %ld\n", time(0)-t);
-	
+
 	fsClose(fs);
 	vtDetach();
 	exits(0);
@@ -119,7 +119,7 @@ new(Source *s, int trace, int depth)
 	int i, n;
 	Source *ss;
 	Entry e;
-	
+
 	if(depth > maxdepth)
 		maxdepth = depth;
 
@@ -174,7 +174,7 @@ delete(Source *s)
 	}
 	if(i == n)
 		return 0;
-		
+
 	for(;;){
 		ss = sourceOpen(s, nrand(n), OReadWrite);
 		if(ss == nil)
blob - ed18febc4814db71aee5ee49b05acbe104826e40
blob + 659e538097b54165f93ef9d8a97b0ba37586f59a
--- src/cmd/fossil/view.c
+++ src/cmd/fossil/view.c
@@ -298,7 +298,7 @@ copyMetaBlock(MetaBlock mb)
 }
 
 /*
- * visualizer 
+ * visualizer
  */
 
 #pragma	varargck	argpos	stringnode	1
@@ -555,7 +555,7 @@ initxentryblock(Block *b, Entry *ed)
 }
 
 typedef struct Xentry Xentry;
-struct Xentry 
+struct Xentry
 {
 	Tnode t;
 	Entry e;
@@ -813,7 +813,7 @@ parseScore(uchar *score, char *buf, int n)
 
 		if((i & 1) == 0)
 			c <<= 4;
-	
+
 		score[i>>1] |= c;
 	}
 	return 1;
@@ -912,7 +912,7 @@ drawnub(Image *m, Image *clipr, Point o, Tnode *t)
 	o.y += (display->defaultfont->height-Nubheight)/2;
 	draw(m, rectaddpt(Rect(0,0,1,Nubheight), o), display->black, clipr, ZP);
 	draw(m, rectaddpt(Rect(0,0,Nubwidth,1), o), display->black, clipr, o);
-	draw(m, rectaddpt(Rect(Nubwidth-1,0,Nubwidth,Nubheight), o), 
+	draw(m, rectaddpt(Rect(Nubwidth-1,0,Nubwidth,Nubheight), o),
 		display->black, clipr, addpt(o, Pt(Nubwidth-1, 0)));
 	draw(m, rectaddpt(Rect(0, Nubheight-1, Nubwidth, Nubheight), o),
 		display->black, clipr, addpt(o, Pt(0, Nubheight-1)));
blob - 632e3e5e5201c96941b3ecfdbe8c7d6416368c90
blob + 8fb1ceb712125fbbe755d47b06345992c90b1605
--- src/cmd/fossil/walk.c
+++ src/cmd/fossil/walk.c
@@ -62,4 +62,3 @@ nextWalk(WalkPtr *w, uchar score[VtScoreSize], uchar *
 	w->n++;
 	return 1;
 }
-
blob - 7c7d17875fd3d9c1ec35f7840053ce1f463a0059
blob + e97398a27fa0508ec14dfdefb482613630c5c4ce
--- src/cmd/getflags.c
+++ src/cmd/getflags.c
@@ -13,13 +13,13 @@ findarg(char *flags, Rune r)
 {
 	char *p;
 	Rune rr;
-	
+
 	for(p=flags; p!=(char*)1; p=strchr(p, ',')+1){
 		chartorune(&rr, p);
 		if(rr == r)
 			return p;
 	}
-	return nil;	
+	return nil;
 }
 
 int
@@ -42,11 +42,11 @@ main(int argc, char *argv[])
 	char *flags, *p, buf[512];
 	int i, n;
 	Fmt fmt;
-	
-	doquote = needsrcquote;	
+
+	doquote = needsrcquote;
 	quotefmtinstall();
 	argv0 = argv[0];	/* for sysfatal */
-	
+
 	flags = getenv("flagfmt");
 	if(flags == nil){
 		fprint(2, "$flagfmt not set\n");
@@ -72,7 +72,7 @@ main(int argc, char *argv[])
 			fmtprint(&fmt, "%s%q", i ? " " : "", EARGF(usage()));
 		fmtprint(&fmt, ")\n");
 	}ARGEND
-	
+
 	fmtprint(&fmt, "*=(");
 	for(i=0; i<argc; i++)
 		fmtprint(&fmt, "%s%q", i ? " " : "", argv[i]);
blob - 7a68a69277f0bdf1473ea2912fdeac3ae663fe69
blob + a3c215bd6945a500a16d64878d718ee4f2a78d34
--- src/cmd/grap/misc.c
+++ src/cmd/grap/misc.c
@@ -120,7 +120,7 @@ double setvar(Obj *p, double f)	/* set value of variab
 Point makepoint(Obj *s, double x, double y)	/* make a Point */
 {
 	Point p;
-	
+
 	dprintf("makepoint: %s, %g,%g\n", s->name, x, y);
 	p.obj = s;
 	p.x = x;
blob - a7497e44d3784224fa5e5c2ec64bb8814ffbf414
blob + 0d4d4ab763a1d453e55271cc09c7f9ad5d2a49c3
--- src/cmd/grap/print.c
+++ src/cmd/grap/print.c
@@ -39,7 +39,7 @@ void print(void)	/* arrange final output */
 	for (p = objlist; p; p = p->next) {
 		dprintf("print: name = <%s>, type = %d\n", p->name, p->type);
 		if (p->type == NAME) {
-			Point pt, pt1;	
+			Point pt, pt1;
 			pt = p->pt;
 			pt1 = p->pt1;
 			fprintf(tfd, "\t# %s %g .. %g, %g .. %g\n",
@@ -78,7 +78,7 @@ void print(void)	/* arrange final output */
 					p->pt1.y = pow(10.0, pt1.y);
 				}
 				dfp = setauto();
-			}		
+			}
 			dx = pt1.x - pt.x;
 			dy = pt1.y - pt.y;
 			xfac = dx > 0 ? frame_wid/dx : frame_wid/2;
@@ -184,7 +184,7 @@ void do_first(void)	/* done at first .G1:  definitions
 	FILE *fp;
 
 	snprintf(buf, sizeof buf, "define pid /%d/\n", getpid());
-	pbstr(buf);	
+	pbstr(buf);
 	if (lib != 0) {
 		if ((fp = fopen(lib_defines, "r")) != NULL) {
 			snprintf(buf1, sizeof buf, "copy \"%s\"\n", lib_defines);
blob - 7da0b81b359e869f3e8920876d820372c9cdbd2d
blob + 1dba7dfcca46b2ca8eb4854118e020a9a9e79526
--- src/cmd/graph/graph.c
+++ src/cmd/graph/graph.c
@@ -15,7 +15,7 @@ struct xy {
 	float	xquant;		/*quantum*/
 	float	xoff;		/*screen offset fraction*/
 	float	xsize;		/*screen fraction*/
-	int	xbot,xtop;	/*screen coords of border*/	
+	int	xbot,xtop;	/*screen coords of border*/
 	float	xmult;		/*scaling constant*/
 } xd,yd;
 struct val {
@@ -83,7 +83,7 @@ static void
 initpalette(void)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(colors); i++){
 		palette[(uchar)colors[i][0]].name = colors[i];
 		palette[(uchar)colors[i][0]].next = colors[i][0];
@@ -442,12 +442,12 @@ void setlim(struct xy *p){
 		if(ub > 0) {
 			ub = 2*ub;
 			lb = 0;
-		} 
+		}
 		else
 			if(lb < 0) {
 				lb = 2*lb;
 				ub = 0;
-			} 
+			}
 			else {
 				ub = 1;
 				lb = -1;
@@ -729,7 +729,7 @@ symbol(int ix, int iy, int k){
 		if(mode==0)
 			point(ix,iy);
 		return(1);
-	} 
+	}
 	else {
 		move(ix,iy);
 		text(k>=0?labels+k:plotsymb);
blob - 777bd1e8b04d165161aea8558b5c64b1490ef17c
blob + ac86b86d41e26cd793b55af00e5cbf35b60d3f10
--- src/cmd/grep/grep.h
+++ src/cmd/grep/grep.h
@@ -36,7 +36,7 @@ struct	Re
 		{
 			Rune	lo;
 			Rune	hi;
-		} x;	
+		} x;
 		Rune	val;	/* char */
 	} u;
 	Re*	next;
blob - bb348bc8837b31d155d549d0b80180efda6e8bf0
blob + d9ef2e2246aee8535dce0f29f82e2b9d22d84f7f
--- src/cmd/gzip/gunzip.c
+++ src/cmd/gzip/gunzip.c
@@ -348,7 +348,7 @@ error(char *fmt, ...)
 		vfprint(2, fmt, arg);
 		va_end(arg);
 		fprint(2, "\n");
-	
+
 		if(delfile != nil){
 			fprint(2, "gunzip: removing output file %s\n", delfile);
 			remove(delfile);
blob - 5480ba8454136bf90b228b234357d509525831e0
blob + d25fa36992ca7143b6ac5e10add306b0f99721fe
--- src/cmd/gzip/zip.c
+++ src/cmd/gzip/zip.c
@@ -136,7 +136,7 @@ zip(Biobuf *bout, char *file, int stdout)
 	zh->madevers = (2 * 10) + 0;
 	zh->extos = ZDos;
 	zh->extvers = (2 * 10) + 0;
-	
+
 	t = localtime(dir->mtime);
 	zh->modtime = (t->hour<<11) | (t->min<<5) | (t->sec>>1);
 	zh->moddate = ((t->year-80)<<9) | ((t->mon+1)<<5) | t->mday;
blob - c30bb0b34687b98fe102e9fdaaee30ae60f375b7
blob + f99b9647ca81bd9a6caafaa81d1ada42bc1f489b
--- src/cmd/hget.c
+++ src/cmd/hget.c
@@ -146,7 +146,7 @@ threadmain(int argc, char **argv)
 		else
 			p = seprint(p, e, "%s", t);
 		u.postbody = postbody;
-		
+
 		break;
 	default:
 		usage();
@@ -162,7 +162,7 @@ threadmain(int argc, char **argv)
 	if(argc != 1)
 		usage();
 
-	
+
 	out.fd = 1;
 	out.written = 0;
 	out.offset = 0;
@@ -278,7 +278,7 @@ crackurl(URL *u, char *s)
 	if(p = strchr(u->host, ':')) {
 		*p++ = 0;
 		u->port = p;
-	} else 
+	} else
 		u->port = method[u->method].name;
 
 	if(*(u->host) == 0){
@@ -429,7 +429,7 @@ dohttp(URL *u, URL *px, Range *r, Out *out, long mtime
 				cfd = -1;
 			}
 		}
-			
+
 		dfprint(fd, "\r\n", u->host);
 
 		auth = 0;
@@ -498,7 +498,7 @@ dohttp(URL *u, URL *px, Range *r, Out *out, long mtime
 
 		case 503:	/* Service unavailable */
 			sysfatal("Service unavailable");
-		
+
 		default:
 			sysfatal("Unknown response code %d", code);
 		}
@@ -681,7 +681,7 @@ void
 hhetag(char *p, URL *u, Range *r)
 {
 	USED(r);
-	
+
 	if(u->etag != nil){
 		if(strcmp(u->etag, p) != 0)
 			sysfatal("file changed underfoot");
@@ -700,7 +700,7 @@ hhmtime(char *p, URL *u, Range *r)
 	int i;
 
 	USED(r);
-	
+
 	i = getfields(p, fields, 6, 1, " \t");
 	if(i < 5)
 		return;
@@ -764,7 +764,7 @@ void
 hhclen(char *p, URL *u, Range *r)
 {
 	USED(u);
-	
+
 	r->end = atoi(p);
 }
 
@@ -791,7 +791,7 @@ void
 hhuri(char *p, URL *u, Range *r)
 {
 	USED(r);
-	
+
 	if(*p != '<')
 		return;
 	u->redirect = strdup(p+1);
@@ -804,7 +804,7 @@ void
 hhlocation(char *p, URL *u, Range *r)
 {
 	USED(r);
-	
+
 	u->redirect = strdup(p);
 }
 
@@ -814,7 +814,7 @@ hhauth(char *p, URL *u, Range *r)
 	char *f[4];
 	UserPasswd *up;
 	char *s, cred[64];
-	
+
 	USED(r);
 
 	if (cistrncmp(p, "basic ", 6) != 0)
@@ -898,7 +898,7 @@ doftp(URL *u, URL *px, Range *r, Out *out, long mtime)
 		close(ctl);
 		return Eof;
 	}
-		
+
 	/* first try passive mode, then active */
 	data = passive(ctl, u);
 	if(data < 0){
@@ -1215,7 +1215,7 @@ active(int ctl, URL *u)
 	}
 	close(afd);
 	close(lcfd);
-	
+
 	return dfd;
 }
 
@@ -1420,7 +1420,7 @@ DigestState*
 md5dup(DigestState *state)
 {
 	DigestState *s2;
-	
+
 	s2 = malloc(sizeof(DigestState));
 	if(s2 == nil)
 		sysfatal("malloc: %r");
@@ -1486,4 +1486,3 @@ output(Out *out, char *buf, int nb)
 	}
 	return n + d;
 }
-
blob - 46fd3f8a11d2da2340e3d4c70d144b18d26a63f2
blob + f6b81ed8bd017056a68725b87b7a80b7e3c7d75d
--- src/cmd/hist.c
+++ src/cmd/hist.c
@@ -23,7 +23,7 @@ int
 main(int argc, char *argv[])
 {
 	int i;
-	
+
 	sys = sysname();
 	if(strncmp(sys, "amsterdam", 9) == 0)	/* BUG */
 		sys = "am";
blob - e2d4c5ea381824c4e18b2f5a3976fb6c3ecee8eb
blob + af60c194c0ce81d66f064439f6a6eca940710e9f
--- src/cmd/hoc/code.c
+++ src/cmd/hoc/code.c
@@ -125,7 +125,7 @@ forcode(void)
 }
 
 void
-ifcode(void) 
+ifcode(void)
 {
 	Datum d;
 	Inst *savepc = pc;	/* then part */
@@ -133,7 +133,7 @@ ifcode(void) 
 	execute(savepc+3);	/* condition */
 	d = pop();
 	if (d.val)
-		execute(*((Inst **)(savepc)));	
+		execute(*((Inst **)(savepc)));
 	else if (*((Inst **)(savepc+1))) /* else part? */
 		execute(*((Inst **)(savepc+1)));
 	if (!returning)
@@ -255,7 +255,7 @@ procret(void) 	/* return from a procedure */
 }
 
 void
-bltin(void) 
+bltin(void)
 {
 
 	Datum d;
@@ -611,7 +611,7 @@ prexpr(void)	/* print numeric value */
 }
 
 void
-prstr(void)		/* print string value */ 
+prstr(void)		/* print string value */
 {
 	print("%s", (char *) *pc++);
 }
blob - 0a777b0d503900f90f6e28269503aaf556c3a42f
blob + d0e01ab18b9a9778117384e8a36dd53ab2fcff64
--- src/cmd/hoc/symbol.c
+++ src/cmd/hoc/symbol.c
@@ -13,7 +13,7 @@ lookup(char* s)	/* find s in symbol table */
 	for (sp = symlist; sp != (Symbol *) 0; sp = sp->next)
 		if (strcmp(sp->name, s) == 0)
 			return sp;
-	return 0;	/* 0 ==> not found */	
+	return 0;	/* 0 ==> not found */
 }
 
 Symbol*
blob - 173fdc9611421aa70cdd8b74ee650148d446f9fb
blob + a4209178979dea8d272e278623179f6887387023
--- src/cmd/htmlroff/a.h
+++ src/cmd/htmlroff/a.h
@@ -23,13 +23,13 @@ enum
 
 	UPI = 720,	/* units per inch */
 	UPX = 10,	/* units per pixel */
-	
+
 	/* special input modes */
 	CopyMode = 1<<1,
 	ExpandMode = 1<<2,
 	ArgMode = 1<<3,
 	HtmlMode = 1<<4,
-	
+
 	MaxLine = 1024
 };
 
blob - 151c9339f3da835aa05d8d2ad0d071013518a3f2
blob + 9e213e139462744000fe40d0254f7d68ba7e216e
--- src/cmd/htmlroff/char.c
+++ src/cmd/htmlroff/char.c
@@ -12,7 +12,7 @@ rune2html(Rune r)
 	static Rune **tcscache[256];
 	int p[2];
 	char *q;
-	
+
 	if(r == '\n')
 		return L("\n");
 
@@ -79,7 +79,7 @@ troff2rune(Rune *rs)
 	char *file, *f[10], *p, s[3];
 	int i, nf;
 	Biobuf *b;
-	
+
 	if(rs[0] >= Runeself || rs[1] >= Runeself)
 		return Runeerror;
 	s[0] = rs[0];
@@ -103,14 +103,13 @@ troff2rune(Rune *rs)
 			}
 		}
 		Bterm(b);
-		
+
 		if(ntrtab >= nelem(trtab))
 			fprint(2, "%s: trtab too small\n", argv0);
 	}
-	
+
 	for(i=0; i<ntrtab; i++)
 		if(strcmp(s, trtab[i].t) == 0)
 			return trtab[i].r;
 	return Runeerror;
 }
-
blob - 810959957eb2cf384056cba97d03f7af45eafff6
blob + 98b123f84838fe95d00515de5b665f101e805859
--- src/cmd/htmlroff/html.c
+++ src/cmd/htmlroff/html.c
@@ -22,7 +22,7 @@ closingtag(Rune *s)
 {
 	Rune *t;
 	Rune *p0, *p;
-	
+
 	t = runemalloc(sizeof(Rune));
 	if(s == nil)
 		return t;
@@ -44,7 +44,7 @@ closingtag(Rune *s)
 			runemove(t+2, p0, p-p0);
 			t[2+(p-p0)] = Ugt;
 		}
-		
+
 		if(*p == Ugt && p>s && *(p-1) == '/'){
 		close:
 			for(p0=t+1; *p0 && *p0 != Ult; p0++)
@@ -52,7 +52,7 @@ closingtag(Rune *s)
 			runemove(t, p0, runestrlen(p0)+1);
 		}
 	}
-	return t;	
+	return t;
 }
 
 void
@@ -108,7 +108,7 @@ void
 closehtml(void)
 {
 	Tag *t, *next;
-	
+
 	br();
 	hideihtml();
 	for(t=tagstack; t; t=next){
@@ -230,7 +230,7 @@ void
 r_html(Rune *name)
 {
 	Rune *id, *line, *p;
-	
+
 	id = copyarg();
 	line = readline(HtmlMode);
 	for(p=line; *p; p++){
@@ -281,7 +281,6 @@ htmlinit(void)
 	addesc('`', e_btick, CopyMode);
 	addesc('-', e_minus, CopyMode);
 	addesc('@', e_at, CopyMode);
-	
+
 	ds(L("font"), L(defaultfont));
 }
-
blob - 99e0d56e9d806cc79794bfee92724380b94c0b3a
blob + a4c4bc3a391ddc7df442f49a50d26f5ea42445d9
--- src/cmd/htmlroff/input.c
+++ src/cmd/htmlroff/input.c
@@ -65,7 +65,7 @@ _inputfile(Rune *s, void (*push)(Istack*))
 	Istack *is;
 	Biobuf *b;
 	char *t;
-	
+
 	t = esmprint("%S", s);
 	if((b = Bopen(t, OREAD)) == nil){
 		free(t);
@@ -95,7 +95,7 @@ queueinputfile(Rune *s)
 
 int
 _inputstdin(void (*push)(Istack*))
-{	
+{
 	Biobuf *b;
 	Istack *is;
 
@@ -128,7 +128,7 @@ void
 _inputstring(Rune *s, void (*push)(Istack*))
 {
 	Istack *is;
-	
+
 	is = emalloc(sizeof *is);
 	is->s = erunestrdup(s);
 	is->p = is->s;
@@ -176,7 +176,7 @@ getrune(void)
 {
 	Rune r;
 	int c;
-	
+
 top:
 	if(istack == nil)
 		return -1;
@@ -199,7 +199,7 @@ top:
 		sysfatal("getrune - can't happen");
 	}
 	if(r == '\n')
-		istack->lineno++;	
+		istack->lineno++;
 	return r;
 }
 
@@ -215,7 +215,7 @@ int
 linefmt(Fmt *f)
 {
 	Istack *is;
-	
+
 	for(is=istack; is && !is->b; is=is->next)
 		;
 	if(is)
@@ -228,7 +228,7 @@ void
 setlinenumber(Rune *s, int n)
 {
 	Istack *is;
-	
+
 	for(is=istack; is && !is->name; is=is->next)
 		;
 	if(is){
blob - b6af1e7b405495ec02c6b434d5aa37df656794c9
blob + bd77a225abf19791619f516192fcda84e5357342
--- src/cmd/htmlroff/main.c
+++ src/cmd/htmlroff/main.c
@@ -23,11 +23,11 @@ main(int argc, char **argv)
 	char *p;
 	Rune *r;
 	Rune buf[2];
-	
+
 	Binit(&bout, 1, OWRITE);
 	fmtinstall('L', linefmt);
 	quotefmtinstall();
-	
+
 	tmacdir = unsharp("#9/tmac");
 	dostdin = 0;
 	ARGBEGIN{
@@ -63,10 +63,9 @@ main(int argc, char **argv)
 	}
 	if(argc == 0 || dostdin)
 		queuestdin();
-	
+
 	run();
 	Bprint(&bout, "\n");
 	Bterm(&bout);
 	exits(nil);
 }
-
blob - bdc51a3e18445698250613de211cc1e9022b92b7
blob + 34b794be7227bb43d8c72a245901d92dd43b83bd
--- src/cmd/htmlroff/roff.c
+++ src/cmd/htmlroff/roff.c
@@ -59,7 +59,7 @@ void
 addraw(Rune *name, void (*f)(Rune*))
 {
 	Raw *r;
-	
+
 	if(nraw >= nelem(raw)){
 		fprint(2, "too many raw requets\n");
 		return;
@@ -73,7 +73,7 @@ void
 delraw(Rune *name)
 {
 	int i;
-	
+
 	for(i=0; i<nraw; i++){
 		if(runestrcmp(raw[i].name, name) == 0){
 			if(i != --nraw){
@@ -89,7 +89,7 @@ void
 renraw(Rune *from, Rune *to)
 {
 	int i;
-	
+
 	delraw(to);
 	for(i=0; i<nraw; i++)
 		if(runestrcmp(raw[i].name, from) == 0){
@@ -135,7 +135,7 @@ void
 renreq(Rune *from, Rune *to)
 {
 	int i;
-	
+
 	delreq(to);
 	for(i=0; i<nreq; i++)
 		if(runestrcmp(req[i].name, from) == 0){
@@ -149,7 +149,7 @@ void
 addesc(Rune r, int (*f)(void), int mode)
 {
 	Esc *e;
-	
+
 	if(nesc >= nelem(esc)){
 		fprint(2, "too many escapes\n");
 		return;
@@ -256,7 +256,7 @@ copyarg(void)
 	static Rune buf[MaxLine];
 	int c;
 	Rune *r;
-	
+
 	if(_readx(buf, sizeof buf, ArgMode, 0) < 0)
 		return nil;
 	r = runestrstr(buf, L("\\\""));
@@ -266,7 +266,7 @@ copyarg(void)
 			;
 		ungetrune('\n');
 	}
-	r = erunestrdup(buf);	
+	r = erunestrdup(buf);
 	return r;
 }
 
@@ -322,7 +322,7 @@ parseargs(Rune *p, Rune **argv)
 						*w++ = *p;
 				}
 				*w = 0;
-			}	
+			}
 		}else{
 			/* unquoted argument - need to watch out for \" comment */
 			for(; *p; p++){
@@ -369,7 +369,7 @@ dotline(int dot)
 			raw[i].f(raw[i].name);
 			free(a);
 			return;
-		}	
+		}
 	}
 
 	/*
@@ -515,7 +515,7 @@ void
 runinput(void)
 {
 	int c;
-	
+
 	bol = 1;
 	for(;;){
 		c = getnext();
@@ -573,7 +573,7 @@ run(void)
 	t20init();
 	htmlinit();
 	hideihtml();
-	
+
 	addreq(L("margin"), r_margin, 1);
 	nr(L(".margin"), 1);
 	nr(L(".paragraph"), 1);
@@ -603,7 +603,7 @@ void
 inroman(Rune r)
 {
 	int f;
-	
+
 	f = getnr(L(".f"));
 	nr(L(".f"), 1);
 	runmacro1(L("font"));
@@ -631,7 +631,7 @@ void
 outhtml(Rune *s)
 {
 	Rune r;
-	
+
 	for(; *s; s++){
 		switch(r = *s){
 		case '<':
blob - 8236694de7c081d02882eb9b403244632fcda360
blob + c68ada77bef70c0912cce1cbd104dca5d6580a8a
--- src/cmd/htmlroff/t1.c
+++ src/cmd/htmlroff/t1.c
@@ -1,5 +1,5 @@
 #include "a.h"
- 
+
 /*
  * Section 1 - General Explanation.
  */
@@ -10,7 +10,7 @@ int
 scale2units(char c)
 {
 	int x;
-	
+
 	switch(c){
 	case 'i':	/* inch */
 		return UPI;
@@ -49,7 +49,7 @@ long
 runestrtol(Rune *a, Rune **p)
 {
 	long n;
-	
+
 	n = 0;
 	while('0' <= *a && *a <= '9'){
 		n = n*10 + *a-'0';
@@ -111,7 +111,7 @@ eval0(Rune **pline, int scale, int recur)
 		*pline = p;
 		return x;
 	}
-	
+
 	while(*p){
 		switch(*p++) {
 		case '+':
@@ -176,11 +176,10 @@ void
 t1init(void)
 {
 	Tm tm;
-	
+
 	tm = *localtime(time(0));
 	nr(L("dw"), tm.wday+1);
 	nr(L("dy"), tm.mday);
 	nr(L("mo"), tm.mon);
 	nr(L("yr"), tm.year%100);
 }
-
blob - 4aa745324101a24e39811b8b3be69b94953f5453
blob + 64d63f41472828f22d09600b3fb23e19cda3f6ae
--- src/cmd/htmlroff/t10.c
+++ src/cmd/htmlroff/t10.c
@@ -58,7 +58,7 @@ int
 e_bang(void)
 {
 	Rune *line;
-	
+
 	line = readline(CopyMode);
 	out(line);
 	outrune('\n');
@@ -70,7 +70,7 @@ int
 e_X(void)
 {
 	int c, c1;
-	
+
 	c1 = getrune();
 	if(c1 < 0 || c1 == '\n') {
 		c = c1;
@@ -119,7 +119,7 @@ void
 r_comment(Rune *name)
 {
 	int c;
-	
+
 	USED(name);
 	while((c = getrune()) >= 0 && c != '\n')
 		;
@@ -136,11 +136,10 @@ t10init(void)
 	addreq(L("tr"), r_warn, -1);
 	addreq(L("ul"), r_nop, -1);
 	addraw(L("\\\""), r_comment);
-	
+
 	addesc('!', e_bang, 0);
 	addesc('X', e_X, 0);
 	addesc('\"', e_quote, CopyMode|ArgMode);
 	addesc('\n', e_newline, CopyMode|ArgMode|HtmlMode);
 	addesc('e', e_e, 0);
 }
-
blob - dd1dd75b78f5dc9e3e3e6a0984dbc13e84dc24c7
blob + 2e273ac4d65facd56276ec1ae925725e7d0ed9ed
--- src/cmd/htmlroff/t11.c
+++ src/cmd/htmlroff/t11.c
@@ -109,4 +109,3 @@ t11init(void)
 	addesc('r', e_r, 0);
 	addesc('k', e_k, 0);
 }
-
blob - 0fadab3ad296a6f1cbe2dcd29706576cdd6596b0
blob + b2922f6a61e7e4a24a7843c27c2f27cb9685961f
--- src/cmd/htmlroff/t13.c
+++ src/cmd/htmlroff/t13.c
@@ -11,7 +11,6 @@ t13init(void)
 	addreq(L("hy"), r_nop, -1);
 	addreq(L("hc"), r_nop, -1);
 	addreq(L("hw"), r_nop, -1);
-	
+
 	addesc('%', e_nop, 0);
 }
-
blob - 1dab3516747297a15609938fe81351338c5b05f4
blob + 4242dd7063a30f34ae6a4eea9f8182e810e37999
--- src/cmd/htmlroff/t14.c
+++ src/cmd/htmlroff/t14.c
@@ -7,7 +7,7 @@ void
 r_lt(int argc, Rune **argv)
 {
 	Rune *p;
-	
+
 	if(argc < 2)
 		nr(L(".lt"), evalscale(L("6.5i"), 'm'));
 	else{
@@ -30,4 +30,3 @@ t14init(void)
 	addreq(L("pc"), r_nop, -1);	/* page number char */
 	addreq(L("lt"), r_lt, -1);
 }
-
blob - fbfd5128fc2cb642890ea0cb1f425f82a8a376a2
blob + 221f642e61167d248ee306062f5a9a9c7c058efb
--- src/cmd/htmlroff/t15.c
+++ src/cmd/htmlroff/t15.c
@@ -10,4 +10,3 @@ t15init(void)
 	addreq(L("nm"), r_warn, -1);
 	addreq(L("nn"), r_warn, -1);
 }
-
blob - 3a9c427e8a4e1d52ec8dac1815f8c832ad6c8020
blob + 9389a59afccc44a79f0dcd51d19ee74821d37337
--- src/cmd/htmlroff/t16.c
+++ src/cmd/htmlroff/t16.c
@@ -24,7 +24,7 @@ void
 startbody(void)
 {
 	int c;
-			
+
 	while((c = getrune()) == ' ' || c == '\t')
 		;
 	ungetrune(c);
@@ -52,7 +52,7 @@ ifeval(void)
 	int c, cc, neg, nc;
 	Rune line[MaxLine], *p, *e, *q;
 	Rune *a;
-	
+
 	while((c = getnext()) == ' ' || c == '\t')
 		;
 	neg = 0;
@@ -68,7 +68,7 @@ ifeval(void)
 		free(a);
 		return c;
 	}
-	
+
 	switch(c){
 	case ' ':
 	case '\n':
@@ -111,12 +111,12 @@ ifeval(void)
 	return (q-line == p-(q+1)
 		&& memcmp(line, q+1, (q-line)*sizeof(Rune))==0) ^ neg;
 }
-	
+
 void
 r_if(Rune *name)
 {
 	int n;
-	
+
 	n = ifeval();
 	if(runestrcmp(name, L("ie")) == 0){
 		if(niftrue >= nelem(iftrue))
@@ -133,7 +133,7 @@ void
 r_el(Rune *name)
 {
 	USED(name);
-	
+
 	if(niftrue <= 0){
 		warn("%Cel underflow", dot);
 		return;
@@ -150,7 +150,7 @@ t16init(void)
 	addraw(L("if"), r_if);
 	addraw(L("ie"), r_if);
 	addraw(L("el"), r_el);
-	
+
 	addesc('{', e_nop, HtmlMode|ArgMode);
 	addesc('}', e_nop, HtmlMode|ArgMode);
 }
blob - bbd095d54250a8ea9b63c1c4f5c88b00ba7929b9
blob + 74096c5ce7b8477472eb3bcd2a006277fd2fad28
--- src/cmd/htmlroff/t17.c
+++ src/cmd/htmlroff/t17.c
@@ -97,7 +97,7 @@ r_ev(int argc, Rune **argv)
 {
 	int i;
 	Env *e;
-	
+
 	if(argc == 1){
 		if(nevstack <= 0){
 			if(verbose) warn(".ev stack underflow");
@@ -123,7 +123,7 @@ void
 t17init(void)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(env); i++)
 		env[i] = defenv;
 
blob - f5c74a1fe4b6a9a8bb113116fd82e7cd2ef35c4e
blob + 51f08219c40aca87d46433bac18b60ab809f390b
--- src/cmd/htmlroff/t18.c
+++ src/cmd/htmlroff/t18.c
@@ -11,7 +11,7 @@ r_rd(int argc, Rune **argv)
 	Fmt fmt;
 	static int didstdin;
 	static Biobuf bstdin;
-	
+
 	/*
 	 * print prompt, then read until double newline,
 	 * then run the text just read as though it were
@@ -23,7 +23,7 @@ r_rd(int argc, Rune **argv)
 		else
 			fprint(2, "%c", 7/*BEL*/);
 	}
-	
+
 	if(!didstdin){
 		Binit(&bstdin, 0, OREAD);
 		didstdin = 1;
@@ -54,7 +54,7 @@ r_ex(int argc, Rune **argv)
 {
 	USED(argc);
 	USED(argv);
-	
+
 	while(popinput())
 		;
 }
blob - a4cc18f443d9c8516e72e8b0d3d5b9172966eaaa
blob + bd633834fc0d012e07866e98be3751ecc31a96ae
--- src/cmd/htmlroff/t19.c
+++ src/cmd/htmlroff/t19.c
@@ -17,7 +17,7 @@ void
 r_nx(int argc, Rune **argv)
 {
 	int n;
-	
+
 	if(argc == 1){
 		while(popinput())
 			;
@@ -74,7 +74,7 @@ r_inputpipe(Rune *name)
 	Rune *cmd, *stop, *line;
 	int n, pid, p[2], len;
 	Waitmsg *w;
-	
+
 	USED(name);
 	if(pipe(p) < 0){
 		warn("pipe: %r");
@@ -104,7 +104,7 @@ r_inputpipe(Rune *name)
 		fprint(p[1], ".ll 8i\n");
 		fprint(p[1], ".pl 30i\n");
 		while((line = readline(~0)) != nil){
-			if(runestrncmp(line, stop, len) == 0 
+			if(runestrncmp(line, stop, len) == 0
 			&& (line[len]==' ' || line[len]==0 || line[len]=='\t'
 				|| (line[len]=='\\' && line[len+1]=='}')))
 				break;
@@ -125,7 +125,7 @@ r_inputpipe(Rune *name)
 		free(cmd);
 		free(w);
 	}
-}	
+}
 
 void
 t19init(void)
@@ -136,7 +136,6 @@ t19init(void)
 	addraw(L("inputpipe"), r_inputpipe);
 	addraw(L("pi"), r_pi);
 	addreq(L("cf"), r_cf, 1);
-	
+
 	nr(L("$$"), getpid());
 }
-
blob - daac3ea120b3c9fe3dc6e81e950d5d7dc4784a8b
blob + 1831660ed46c422d16dff72528d221a221af2184
--- src/cmd/htmlroff/t2.c
+++ src/cmd/htmlroff/t2.c
@@ -3,14 +3,14 @@
 /*
  * Section 2 - Font and character size control.
  */
- 
+
 /* 2.1 - Character set */
 /* XXX
  *
  * \C'name' - character named name
  * \N'n' - character number
  * \(xx - two-letter character
- * \- 
+ * \-
  * \`
  * \'
  * `
@@ -24,10 +24,10 @@ getqarg(void)
 	static Rune buf[MaxLine];
 	int c;
 	Rune *p, *e;
-	
+
 	p = buf;
 	e = p + nelem(buf) - 1;
-	
+
 	if(getrune() != '\'')
 		return nil;
 	while(p < e){
@@ -60,7 +60,7 @@ e_paren(void)
 {
 	int c, cc;
 	Rune buf[2], r;
-	
+
 	if((c = getrune()) < 0 || c == '\n')
 		goto error;
 	if((cc = getrune()) < 0 || cc == '\n')
@@ -71,7 +71,7 @@ e_paren(void)
  	if(r == Runeerror)
 		warn("unknown char %C(%C%C", backslash, c, cc);
 	return r;
-	
+
 error:
 	warn("malformed %C(xx", backslash);
 	return 0;
@@ -92,7 +92,7 @@ ft(Rune *f)
 {
 	int i;
 	int fn;
-	
+
 	if(f && runestrcmp(f, L("P")) == 0)
 		f = nil;
 	if(f == nil)
@@ -131,7 +131,7 @@ fp(int i, Rune *f)
 	}
 	runestrecpy(fonttab[i], fonttab[i]+sizeof fonttab[i], f);
 }
-	
+
 int
 e_f(void)
 {
@@ -177,7 +177,7 @@ void
 r_ps(int argc, Rune **argv)
 {
 	Rune *p;
-	
+
 	if(argc == 1 || argv[1][0] == 0)
 		ps(0);
 	else{
@@ -195,7 +195,7 @@ int
 e_s(void)
 {
 	int c, cc, ccc, n, twodigit;
-	
+
 	c = getnext();
 	if(c < 0)
 		return 0;
@@ -253,7 +253,7 @@ t2init(void)
 	fp(3, L("B"));
 	fp(4, L("BI"));
 	fp(5, L("CW"));
-	
+
 	nr(L(".s"), 10);
 	nr(L(".s0"), 10);
 
@@ -271,4 +271,3 @@ t2init(void)
 	addesc('N', e_N, 0);
 	/* \- \' \` are handled in html.c */
 }
-
blob - 62ea914fc04a0994d371db81aa6d80823615932e
blob + 00e3145567b3fff8dac78789b76de4637d26a282
--- src/cmd/htmlroff/t20.c
+++ src/cmd/htmlroff/t20.c
@@ -13,7 +13,7 @@ void
 r_pm(int argc, Rune **argv)
 {
 	int i;
-	
+
 	if(argc == 1){
 		printds(0);
 		return;
@@ -30,9 +30,9 @@ void
 r_tm(Rune *name)
 {
 	Rune *line;
-	
+
 	USED(name);
-	
+
 	line = readline(CopyMode);
 	fprint(2, "%S\n", line);
 	free(line);
@@ -42,7 +42,7 @@ void
 r_ab(Rune *name)
 {
 	USED(name);
-	
+
 	r_tm(L("ab"));
 	exits(".ab");
 }
@@ -76,4 +76,3 @@ t20init(void)
 	addreq(L("pm"), r_pm, -1);
 	addreq(L("fl"), r_fl, 0);
 }
-
blob - e54573c13b51b8ec618d580dc2f12b45623d458a
blob + 354ffc2a71357d78025c4bbd17365326298b6efe
--- src/cmd/htmlroff/t3.c
+++ src/cmd/htmlroff/t3.c
@@ -37,7 +37,7 @@ t3init(void)
 	nr(L(".o"), eval(L("1i")));
 	nr(L(".o0"), eval(L("1i")));
 	nr(L(".p"), eval(L("11i")));
-	
+
 	addreq(L("pl"), r_warn, -1);
 	addreq(L("bp"), r_nop, -1);
 	addreq(L("pn"), r_warn, -1);
@@ -46,4 +46,3 @@ t3init(void)
 	addreq(L("mk"), r_nop, -1);
 	addreq(L("rt"), r_warn, -1);
 }
-
blob - 157169de6a0b8eaf7bb651f33a168152b9aa7036
blob + 8a30132109110382c32a8021d34fa8d8e70eeb27
--- src/cmd/htmlroff/t4.c
+++ src/cmd/htmlroff/t4.c
@@ -1,7 +1,7 @@
 #include "a.h"
 
 /*
- * 4 - Text filling, centering, and adjusting.  
+ * 4 - Text filling, centering, and adjusting.
  * 	"\ " - unbreakable space
  * 	.n register - length of last line
  *	nl register - text baseline position on this page
@@ -66,7 +66,7 @@ void
 r_ad(int argc, Rune **argv)
 {
 	int c, n;
-	
+
 	nr(L(".j"), getnr(L(".j"))|1);
 	if(argc < 2)
 		return;
@@ -133,10 +133,9 @@ t4init(void)
 	addreq(L("ad"), r_ad, -1);
 	addreq(L("na"), r_na, 0);
 	addreq(L("ce"), r_ce, -1);
-	
+
 	addesc(' ', e_space, 0);
 	addesc('p', e_warn, 0);
 	addesc('&', e_amp, 0);
 	addesc('c', e_c, 0);
 }
-
blob - cb9519514fb2449ec11a6e740cf088278ce6db36
blob + 226da09b35d8edfdfb79a62b002a45871218e083
--- src/cmd/htmlroff/t5.c
+++ src/cmd/htmlroff/t5.c
@@ -49,7 +49,7 @@ sp(int v)
 {
 	Rune buf[100];
 	double fv;
-	
+
 	br();
 	fv = v * 1.0/UPI;
 	if(fv > 5)
@@ -93,7 +93,7 @@ r_rs(int argc, Rune **argv)
 
 void
 t5init(void)
-{	
+{
 	addreq(L("vs"), r_vs, -1);
 	addreq(L("ls"), r_ls, -1);
 	addreq(L("sp"), r_sp, -1);
@@ -107,4 +107,3 @@ t5init(void)
 	nr(L(".ls"), 1);
 	nr(L(".ls0"), 1);
 }
-
blob - 130f535feef3a2f61de218f2e90d04c304985631
blob + 3090cd262d3c60af6decb4e83f8bc9fc3d289926
--- src/cmd/htmlroff/t6.c
+++ src/cmd/htmlroff/t6.c
@@ -71,7 +71,6 @@ t6init(void)
 	addreq(L("ll"), r_ll, -1);
 	addreq(L("in"), r_in, -1);
 	addreq(L("ti"), r_ti, 1);
-	
+
 	nr(L(".l"), eval(L("6.5i")));
 }
-
blob - 9936a44c88f12bff85bf84ee65fa5985be3818ad
blob + cee439277bfacee34f9f3c64e699deecd4d1382c
--- src/cmd/htmlroff/t7.c
+++ src/cmd/htmlroff/t7.c
@@ -36,7 +36,7 @@ runmacro(int dot, int argc, Rune **argv)
 	Rune *p;
 	int i;
 	Mac *m;
-	
+
 if(verbose && isupperrune(argv[0][0])) fprint(2, "run: %S\n", argv[0]);
 	p = getds(argv[0]);
 	if(p == nil){
@@ -71,7 +71,7 @@ popmacro(void)
 {
 	int i;
 	Mac *m;
-	
+
 	if(--nmstack < 0){
 		fprint(2, "%L: macro stack underflow\n");
 		return;
@@ -94,7 +94,7 @@ runmacro1(Rune *name)
 {
 	Rune *argv[2];
 	int obol;
-	
+
 if(verbose) fprint(2, "outcb %p\n", outcb);
 	obol = bol;
 	argv[0] = name;
@@ -134,7 +134,7 @@ popmacro1(void)
 /*
  * diversions
  *
- *	processed output diverted 
+ *	processed output diverted
  *	dn dl registers vertical and horizontal size of last diversion
  *	.z - current diversion name
  */
@@ -195,7 +195,7 @@ void
 r_ch(int argc, Rune **argv)
 {
 	int i;
-	
+
 	if(argc == 2){
 		if(trap0 && runestrcmp(argv[1], trap0) == 0){
 			free(trap0);
@@ -244,7 +244,7 @@ r_de(int argc, Rune **argv)
 		fmtrunestrcpy(&fmt, p);
 	len = runestrlen(end);
 	while((p = readline(CopyMode)) != nil){
-		if(runestrncmp(p, end, len) == 0 
+		if(runestrncmp(p, end, len) == 0
 		&& (p[len]==' ' || p[len]==0 || p[len]=='\t'
 			|| (p[len]=='\\' && p[len+1]=='}'))){
 			free(p);
@@ -270,7 +270,7 @@ void
 r_ds(Rune *cmd)
 {
 	Rune *name, *line, *p;
-	
+
 	name = copyarg();
 	line = readline(CopyMode);
 	if(name == nil || line == nil){
@@ -335,7 +335,7 @@ flushdi(void)
 {
 	int n;
 	Rune *p;
-	
+
 	if(ndi == 0 || difmtinit == 0)
 		return;
 	fmtrune(&difmt, Uunformatted);
@@ -448,7 +448,7 @@ void
 r_em(int argc, Rune **argv)
 {
 	Rune buf[20];
-	
+
 	USED(argc);
 	runesnprint(buf, nelem(buf), ".%S\n", argv[1]);
 	as(L("eof"), buf);
@@ -458,7 +458,7 @@ int
 e_star(void)
 {
 	Rune *p;
-	
+
 	p = getds(getname());
 	if(p)
 		pushinputstring(p);
@@ -514,7 +514,7 @@ e_dollar(void)
 
 void
 t7init(void)
-{	
+{
 	addreq(L("de"), r_de, -1);
 	addreq(L("am"), r_de, -1);
 	addreq(L("ig"), r_de, -1);
@@ -529,15 +529,14 @@ t7init(void)
 	addreq(L("wh"), r_wh, -1);
 	addreq(L("ch"), r_ch, -1);
 	addreq(L("dt"), r_dt, -1);
-	
+
 	addesc('$', e_dollar, CopyMode|ArgMode|HtmlMode);
 	addesc('*', e_star, CopyMode|ArgMode|HtmlMode);
 	addesc('t', e_t, CopyMode|ArgMode);
 	addesc('a', e_a, CopyMode|ArgMode);
 	addesc('\\', e_backslash, ArgMode|CopyMode);
 	addesc('.', e_dot, CopyMode|ArgMode);
-	
+
 	ds(L("eof"), L(".sp 0.5i\n"));
 	ds(L(".."), L(""));
 }
-
blob - ead5a020085382490c43bd76912c418fb7e25cc9
blob + 511737ced29c8a135e285f7d8fea849190b6dc25
--- src/cmd/htmlroff/t8.c
+++ src/cmd/htmlroff/t8.c
@@ -74,7 +74,7 @@ Rune*
 getdsnr(Rune *name, Reg *list)
 {
 	Reg *s;
-	
+
 	for(s=list; s; s=s->next)
 		if(runestrcmp(name, s->name) == 0)
 			return s->val;
@@ -91,7 +91,7 @@ void
 as(Rune *name, Rune *val)
 {
 	Rune *p, *q;
-	
+
 	p = getds(name);
 	if(p == nil)
 		p = L("");
@@ -113,7 +113,7 @@ printds(int t)
 {
 	int n, total;
 	Reg *s;
-	
+
 	total = 0;
 	for(s=dslist; s; s=s->next){
 		if(s->val)
@@ -131,7 +131,7 @@ void
 nr(Rune *name, int val)
 {
 	Rune buf[20];
-	
+
 	runesnprint(buf, nelem(buf), "%d", val);
 	_nr(name, buf);
 }
@@ -152,7 +152,7 @@ Rune*
 getaf(Rune *name)
 {
 	Reg *s;
-	
+
 	for(s=nrlist; s; s=s->next)
 		if(runestrcmp(s->name, name) == 0)
 			return s->fmt;
@@ -163,7 +163,7 @@ void
 printnr(void)
 {
 	Reg *r;
-	
+
 	for(r=nrlist; r; r=r->next)
 		fprint(2, "%S %S %d\n", r->name, r->val, r->inc);
 }
@@ -225,7 +225,7 @@ void
 r_af(int argc, Rune **argv)
 {
 	USED(argc);
-	
+
 	af(argv[1], argv[2]);
 }
 
@@ -234,7 +234,7 @@ void
 r_rr(int argc, Rune **argv)
 {
 	int i;
-	
+
 	for(i=1; i<argc; i++)
 		_nr(argv[i], nil);
 }
@@ -244,7 +244,7 @@ void
 alpha(Rune *buf, int n, int a)
 {
 	int i, v;
-	
+
 	i = 1;
 	for(v=n; v>0; v/=26)
 		i++;
@@ -284,7 +284,7 @@ roman(Rune *buf, int n, int upper)
 	Rune *p;
 	char *q;
 	struct romanv *r;
-	
+
 	if(upper)
 		upper = 'A' - 'a';
 	if(n >= 5000 || n <= 0){
@@ -309,7 +309,7 @@ getname(void)
 {
 	int i, c, cc;
 	static Rune buf[100];
-	
+
 	/* XXX add [name] syntax as in groff */
 	c = getnext();
 	if(c < 0)
@@ -359,7 +359,7 @@ e_n(void)
 	int inc, v, l;
 	Rune *name, *fmt, buf[100];
 	Reg *s;
-	
+
 	inc = getnext();
 	if(inc < 0)
 		return -1;
@@ -442,8 +442,7 @@ t8init(void)
 	addreq(L("af"), r_af, 2);
 	addreq(L("rr"), r_rr, -1);
 	addreq(L("pnr"), r_pnr, 0);
-	
+
 	addesc('n', e_n, CopyMode|ArgMode|HtmlMode);
 	addesc('g', e_g, 0);
 }
-
blob - c9e045642501c87185bd0340dd1c7c9f803428aa
blob + 6f4c4d6c5d7fa49c470b4086cab4b3c947cf040b
--- src/cmd/htmlroff/t9.c
+++ src/cmd/htmlroff/t9.c
@@ -3,4 +3,3 @@
  */
 
 XXX
-
blob - 99e99543f16d229d322dfe99f2f7d194769ec68a
blob + 15dd4c74dfbea7aaa8b2ccdab70fd929ac091056
--- src/cmd/htmlroff/util.c
+++ src/cmd/htmlroff/util.c
@@ -4,7 +4,7 @@ void*
 emalloc(uint n)
 {
 	void *v;
-	
+
 	v = mallocz(n, 1);
 	if(v == nil)
 		sysfatal("out of memory");
@@ -15,7 +15,7 @@ char*
 estrdup(char *s)
 {
 	char *t;
-	
+
 	t = strdup(s);
 	if(t == nil)
 		sysfatal("out of memory");
@@ -38,7 +38,7 @@ void*
 erealloc(void *ov, uint n)
 {
 	void *v;
-	
+
 	v = realloc(ov, n);
 	if(v == nil)
 		sysfatal("out of memory");
@@ -50,7 +50,7 @@ erunesmprint(char *fmt, ...)
 {
 	Rune *s;
 	va_list arg;
-	
+
 	va_start(arg, fmt);
 	s = runevsmprint(fmt, arg);
 	va_end(arg);
@@ -64,7 +64,7 @@ esmprint(char *fmt, ...)
 {
 	char *s;
 	va_list arg;
-	
+
 	va_start(arg, fmt);
 	s = vsmprint(fmt, arg);
 	va_end(arg);
@@ -77,7 +77,7 @@ void
 warn(char *fmt, ...)
 {
 	va_list arg;
-	
+
 	fprint(2, "htmlroff: %L: ");
 	va_start(arg, fmt);
 	vfprint(2, fmt, arg);
@@ -120,4 +120,3 @@ L(char *s)
 	hash[h] = l;
 	return l->r;
 }
-
blob - 6b7152bab60d1d95c4c12b559f6dd4facc70d051
blob + 0be2f5b6f9e28a3fd7e662fa56cd260b0e9ac28c
--- src/cmd/import.c
+++ src/cmd/import.c
@@ -99,10 +99,10 @@ threadmain(int argc, char *argv[])
 		fmtinstall('F', fcallfmt);
 	}
 
-	
+
 	if(rem){
 		netfd[0] = 0;
-		netfd[1] = 1;	
+		netfd[1] = 1;
 		write(1, "OK", 2);
 	}else{
 		if(argc != 1)
@@ -115,7 +115,7 @@ threadmain(int argc, char *argv[])
 	fn = localside;
 	if(rem+export == 1)
 		fn = remoteside;
-	
+
 	if(rem || !dofork)
 		fn(nil);
 	else
blob - 0ca5084fecf65f2aded876fa94f6e20779f31dd7 (mode 755)
blob + d07a2e8ac8655209190a90ff55b12c5bf09e3631 (mode 644)
--- src/cmd/ip/dhcp.h
+++ src/cmd/ip/dhcp.h
@@ -74,7 +74,7 @@ enum
 	OBtcpka=		38,
 	OBtcpkag=		39,
 	OBnisdomain=		40,
-	OBniserver=		41,	
+	OBniserver=		41,
 	OBntpserver=		42,
 	OBvendorinfo=		43,	/* 0x2b */
 	OBnetbiosns=		44,
@@ -127,7 +127,7 @@ enum {
 	Sbound,
 	Srenewing,
 	Srebinding
-};	
+};
 
 typedef struct Bootp	Bootp;
 struct Bootp
blob - aa64deebd6a1cfd1748e5a4c4666e331686e6670 (mode 755)
blob + c69f9f383dd4b88728c8f521a8d5eb9706255493 (mode 644)
--- src/cmd/ip/dhcpd/dat.h
+++ src/cmd/ip/dhcpd/dat.h
@@ -82,4 +82,3 @@ extern char	*blog;
 extern Ipifc	*ipifcs;
 extern long	now;
 extern char	*ndbfile;
-
blob - f4b48552e3b14f4fe0dcf3f73092b52c1651a8a6 (mode 755)
blob + cf245efedd5c6eddba50b36592679cef02c5574c (mode 644)
--- src/cmd/ip/dhcpd/db.c
+++ src/cmd/ip/dhcpd/db.c
@@ -405,7 +405,7 @@ commitbinding(Binding *b)
 	}
 	setbinding(b, b->offeredto, now + b->offer);
 	b->lasttouched = now;
-	
+
 	if(writebinding(fd, b) < 0){
 		close(fd);
 		return -1;
@@ -434,7 +434,7 @@ releasebinding(Binding *b, char *id)
 	}
 	b->lease = 0;
 	b->expoffer = 0;
-	
+
 	if(writebinding(fd, b) < 0){
 		close(fd);
 		return -1;
blob - e28bf3cb6ea283382ab5f2c10d2a516d4aa8eb21 (mode 755)
blob + c5fb06bf185f2afdc72153b92375bab689aa28b3 (mode 644)
--- src/cmd/ip/dhcpd/dhcpd.c
+++ src/cmd/ip/dhcpd/dhcpd.c
@@ -67,7 +67,7 @@ int	pptponly;	/* only answer request that came from th
 int	mute;
 int	minlease = MinLease;
 
-ulong	start;	
+ulong	start;
 
 /* option magic */
 char plan9opt[4] = { 'p', '9', ' ', ' ' };
@@ -502,7 +502,7 @@ rcvrequest(Req *rp)
 				sendnak(rp, "no offer for you");
 			return;
 		}
-	
+
 		/* if not for me, retract offer */
 		if(!forme(rp->server)){
 			b->expoffer = 0;
@@ -1040,7 +1040,7 @@ parseoptions(Req *rp)
 		p += n;
 		if(p > rp->e)
 			return;
-		
+
 		switch(code){
 		case ODipaddr:	/* requested ip address */
 			if(n == IPv4addrlen)
@@ -1506,7 +1506,7 @@ arpenter(uchar *ip, uchar *ether)
 {
 	int pid;
 	char xip[100], xether[100];
-	
+
 	switch(pid=fork()){
 	case -1:
 		break;
blob - 71719649f1aa66cdeb173db4a5e22ff9d2bad0cb (mode 755)
blob + a99b92182c5afff3a1560d3b40b15061cbd5c46b (mode 644)
--- src/cmd/ip/dhcpd/dhcpleases.c
+++ src/cmd/ip/dhcpd/dhcpleases.c
@@ -39,5 +39,5 @@ main(void)
 			continue;
 		if(b.lease > now)
 			print("%I leased by %s until %s", b.ip, b.boundto, ctime(b.lease));
-	}		
+	}
 }
blob - 53ffb58fb287e62ef490349736cf09976425e951 (mode 755)
blob + 97b2284f3d0d9cbdb6ffe4eb79ec3526d1285916 (mode 644)
--- src/cmd/ip/dhcpd/ndb.c
+++ src/cmd/ip/dhcpd/ndb.c
@@ -108,7 +108,7 @@ lookupip(uchar *ipaddr, Info *iip, int gate)
 	t = ndbipinfo(db, "ip", ip, attrs, p - attrs);
 	if(t == nil)
 		return -1;
-	
+
 	for(nt = t; nt != nil; nt = nt->entry){
 		if(strcmp(nt->attr, "ip") == 0)
 			setipaddr(iip->ipaddr, nt->val);
blob - 666bcc410b56dc41418d9e55f0aeb445d1c2d5ad (mode 755)
blob + 666bcc410b56dc41418d9e55f0aeb445d1c2d5ad (mode 644)
blob - 4937e55b6471be280d33dbac2e8765108ff78601 (mode 755)
blob + ac3f44f8b08d0254d424655a0a03aa083e01d206 (mode 644)
--- src/cmd/ip/dhcpd/testlook.c
+++ src/cmd/ip/dhcpd/testlook.c
@@ -188,7 +188,7 @@ ipinfo(Ndb *db, char *etherin, char *ipin, char *name,
 	recursesubnet(db, classmask[CLASS(iip->ipaddr)], iip, fsname, gwname, auname);
 
 	/* lookup fs's and gw's ip addresses */
-	
+
 	if(fsname[0])
 		lookupip(db, fsname, iip->fsip, iip);
 	if(gwname[0])
blob - c69624c5759a8b13da9e65a1835d21637f18aafa (mode 755)
blob + c69624c5759a8b13da9e65a1835d21637f18aafa (mode 644)
blob - b5ca90c5e9ba9ea9f2e37e337b0e04ee94a52c00 (mode 755)
blob + b5ca90c5e9ba9ea9f2e37e337b0e04ee94a52c00 (mode 644)
blob - d317c1bbbd2358ba6ee8b8b6df4a808e58403320 (mode 755)
blob + 7b7fa3181e717ed7630ec4445f1cc4fb854eab19 (mode 644)
--- src/cmd/ip/snoopy/arp.c
+++ src/cmd/ip/snoopy/arp.c
@@ -34,7 +34,7 @@ enum
 	Opa
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"spa",		Fv4ip,	Ospa,	"protocol source",	} ,
 	{"tpa",		Fv4ip,	Otpa,	"protocol target",	} ,
blob - e7ead8637e99bbc2389eda7c3a115e7c39f001b9 (mode 755)
blob + 18350081bb1987d8c8916422dc6895ee127cf849 (mode 644)
--- src/cmd/ip/snoopy/bootp.c
+++ src/cmd/ip/snoopy/bootp.c
@@ -55,7 +55,7 @@ enum
 	Ot
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"ca",		Fv4ip,	Oca,	"client IP addr",	} ,
 	{"sa",		Fv4ip,	Osa,	"server IP addr",	} ,
blob - ba3e446da5a9fdec1d0336f64256d50a9df8b022 (mode 755)
blob + 0ac054c7b2c8e631e23f0a747a7474157316554c (mode 644)
--- src/cmd/ip/snoopy/dat.h
+++ src/cmd/ip/snoopy/dat.h
@@ -60,7 +60,7 @@ struct Msg
 	char	*e;	/* buffer end */
 
 	int	needroot;	/* pr is root, need to see in expression */
-	Proto	*pr;	/* current/next protocol */	
+	Proto	*pr;	/* current/next protocol */
 };
 
 enum
blob - cd976ec0b899f6a113f722ab59e33442b609d5ee (mode 755)
blob + bab0cf8275e8d182935953b39c9ba6e98ec55424 (mode 644)
--- src/cmd/ip/snoopy/dhcp.c
+++ src/cmd/ip/snoopy/dhcp.c
@@ -61,7 +61,7 @@ enum
 	OBtcpka=		38,
 	OBtcpkag=		39,
 	OBnisdomain=		40,
-	OBniserver=		41,	
+	OBniserver=		41,
 	OBntpserver=		42,
 	OBvendorinfo=		43,	/* 0x2b */
 	OBnetbiosns=		44,
@@ -232,7 +232,7 @@ p_seprint(Msg *m)
 		ps += n;
 		if(ps > m->pe)
 			break;
-		
+
 		switch(code){
 		case ODipaddr:	/* requested ip address */
 			p = pserver(p, e, "ipaddr", o, n);
@@ -473,4 +473,3 @@ Proto dhcp =
 	nil,
 	defaultframer
 };
-
blob - 144a494972b10c4261c3979ea040fce4120a5493
blob + c115df17b9e70559f98341b0372f429af71b686f
--- src/cmd/ip/snoopy/dns.c
+++ src/cmd/ip/snoopy/dns.c
@@ -32,7 +32,7 @@ enum
 	/* query types (all RR types are also queries) */
 	Tixfr=	251,	/* incremental zone transfer */
 	Taxfr=	252,	/* zone transfer */
-	Tmailb=	253,	/* { Tmb, Tmg, Tmr } */	
+	Tmailb=	253,	/* { Tmb, Tmg, Tmr } */
 	Tall=	255,	/* all records */
 
 	/* classes */
@@ -87,7 +87,7 @@ getstr(uchar **pp, int *len, uchar *ep)
 {
 	uchar *p;
 	int n;
-	
+
 	p = *pp;
 	n = *p++;
 	if(p+n > ep)
@@ -215,7 +215,7 @@ cname(int class)
 
 	if(class == Cin)
 		return "";
-	
+
 	snprint(buf, sizeof buf, "class=%d", class);
 	return buf;
 }
@@ -236,7 +236,7 @@ p_seprint(Msg *m)
 	char *sym1, *sym2, *sep;
 	int type;
 	static int first = 1;
-	
+
 	if(first){
 		first = 0;
 		quotefmtinstall();
@@ -388,7 +388,7 @@ p_seprint(Msg *m)
 				NetS(p), p[3], p[4], rlen-4, p+4);
 			p += rlen;
 			break;
- 
+
 		case Tsig:
 			if(rlen < 18)
 				goto error;
@@ -408,7 +408,7 @@ p_seprint(Msg *m)
 		}
 		if(p != ep)
 			goto error;
-	}	
+	}
 	return 0;
 
 error:
blob - ec2a3ce7cab4fdb33d0fd7ea299306e3c5db4673 (mode 755)
blob + 3d9451dacd857dc2bee55ff676a216f98da5e31a (mode 644)
--- src/cmd/ip/snoopy/dump.c
+++ src/cmd/ip/snoopy/dump.c
@@ -55,7 +55,7 @@ p_seprint(Msg *m)
 		for(i = 0; i < n && p+1<e; i++){
 			c = ps[i];
 			*p++ = tohex[c>>4];
-			*p++ = tohex[c&0xf]; 
+			*p++ = tohex[c&0xf];
 		}
 	}
 
blob - 9e16579ad7cccb341427b978b858bf581f8a8ae6 (mode 755)
blob + 2b33106e4cecf70c2c64cf71b73df2b8112901d6 (mode 644)
--- src/cmd/ip/snoopy/ether.c
+++ src/cmd/ip/snoopy/ether.c
@@ -35,7 +35,7 @@ enum
 	Ot,	/* type */
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"s",	Fether,	Os,	"source address",	} ,
 	{"d",	Fether,	Od,	"destination address",	} ,
blob - 6808293b74919434a787c15c651b52010a42c430 (mode 755)
blob + 2e744940815722b0f5149ae995d848063ea7eb98 (mode 644)
--- src/cmd/ip/snoopy/gre.c
+++ src/cmd/ip/snoopy/gre.c
@@ -36,7 +36,7 @@ sprintgre(void *a, char *buf, int len)
 	uchar *p = a;
 
 	chksum = offset = key = seq = ack = 0;
-	
+
 	flag = NetS(p);
 	prot = NetS(p+2);
 	p += 4; len -= 4;
@@ -78,6 +78,6 @@ sprintgre(void *a, char *buf, int len)
 		n += sprintppp(p, buf+n, len);
 	else
 		n += sprintx(p, buf+n, len);
-		
+
 	return n;
 }
blob - e7bf37390c62f0e4f83fb75baed197a0640ecf79 (mode 755)
blob + e7bf37390c62f0e4f83fb75baed197a0640ecf79 (mode 644)
blob - 8e528dc96bcc0e793ba5a4b6e79f5f42f64d1e0a (mode 755)
blob + f798e42a32c35848962d5f518e284b5ca510a502 (mode 644)
--- src/cmd/ip/snoopy/icmp.c
+++ src/cmd/ip/snoopy/icmp.c
@@ -23,7 +23,7 @@ enum
 	Op,	/* next protocol */
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"t",		Fnum,	Ot,	"type",	} ,
 	{0}
blob - 9ba74939807545cb77da053aa035791692a2091c (mode 755)
blob + 9ede92a57f3f4a8cef4a7cc90e964c2a3fc47c87 (mode 644)
--- src/cmd/ip/snoopy/icmp6.c
+++ src/cmd/ip/snoopy/icmp6.c
@@ -22,14 +22,14 @@ enum
 	Ot,	/* type */
 	Op,	/* next protocol */};
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"t",		Fnum,	Ot,	"type",	} ,
 	{0}
 };
 
 enum
-{	
+{
 	/* ICMPv6 types */
 	EchoReply	= 0,
 	UnreachableV6	= 1,
@@ -114,7 +114,7 @@ static char *parpcode[] =
 [2]	"unrecognized IPv6 option encountered",
 [3]	"icmp par prob: unknown code"
 };
-enum 
+enum
 {
 	sll	= 1,
 	tll	= 2,
@@ -123,7 +123,7 @@ enum 
 	mtu	= 5
 };
 
-static char *icmp6opts[256] = 
+static char *icmp6opts[256] =
 {
 [0]	"unknown opt",
 [1]	"sll_addr",
@@ -206,7 +206,7 @@ opt_seprint(Msg *m)
 
 		case sll:
 		case tll:
-			if ((pktsz < osz) || (osz != 8)) { 
+			if ((pktsz < osz) || (osz != 8)) {
 				p = seprint(p, e, "\n	  option=%s bad size=%d", opt, osz);
 				m->pr = &dump;
 				return p;
@@ -217,7 +217,7 @@ opt_seprint(Msg *m)
 			break;
 
 		case pref:
-			if ((pktsz < osz) || (osz != 32)) { 
+			if ((pktsz < osz) || (osz != 32)) {
 				p = seprint(p, e, "\n	  option=%s: bad size=%d", opt, osz);
 				m->pr = &dump;
 				return p;
@@ -235,11 +235,11 @@ opt_seprint(Msg *m)
 				NetL(a+12)!=0);
 
 			pktsz -= osz;
-			a += osz;			
+			a += osz;
 			break;
 
 		case redir:
-			if (pktsz < osz) { 
+			if (pktsz < osz) {
 				p = seprint(p, e, "\n	  option=%s: bad size=%d", opt, osz);
 				m->pr = &dump;
 				return p;
@@ -248,11 +248,11 @@ opt_seprint(Msg *m)
 			p = seprint(p, e, "\n	  option=%s len %d", opt, osz);
 			a += osz;
 			m->ps = a;
-			return p;			
+			return p;
 			break;
 
 		case mtu:
-			if ((pktsz < osz) || (osz != 8)) { 
+			if ((pktsz < osz) || (osz != 8)) {
 				p = seprint(p, e, "\n	  option=%s: bad size=%d", opt, osz);
 				m->pr = &dump;
 				return p;
blob - a4ff60eb79d46f4de173884df5ed36c3c21b9251 (mode 755)
blob + 35c43a2419cbe814a2ac1b4f6abc6ecff5d8b62a (mode 644)
--- src/cmd/ip/snoopy/il.c
+++ src/cmd/ip/snoopy/il.c
@@ -29,7 +29,7 @@ enum
 	Osd
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"s",		Fnum,	Os,	"source port",	} ,
 	{"d",		Fnum,	Od,	"dest port",	} ,
@@ -88,9 +88,9 @@ p_filter(Filter *f, Msg *m)
 	return 0;
 }
 
-char *pktnames[] = 
+char *pktnames[] =
 {
-	"Sync",	
+	"Sync",
 	"Data",
 	"Dataquery",
 	"Ack",
@@ -103,7 +103,7 @@ static char*
 pkttype(int t)
 {
 	static char b[10];
-	
+
 	if(t > 6){
 		sprint(b, "%d", t);
 		return b;
blob - 234ca85ff6cc83406378de8049e328f457fedfcd (mode 755)
blob + 045897781e49bb717ae6cb14851afd0d860ab6e1 (mode 644)
--- src/cmd/ip/snoopy/ip.c
+++ src/cmd/ip/snoopy/ip.c
@@ -135,7 +135,7 @@ enum
 	Ot,	/* type */
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"s",	Fv4ip,	Os,	"source address",	} ,
 	{"d",	Fv4ip,	Od,	"destination address",	} ,
blob - 7187cda771661ed9f9f34e4787ea4e12c9bdf441 (mode 755)
blob + ba9be993cd24ccd3904913d322c008f05227c602 (mode 644)
--- src/cmd/ip/snoopy/ip6.c
+++ src/cmd/ip/snoopy/ip6.c
@@ -132,7 +132,7 @@ enum
 	Ot,	/* type */
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"s",	Fv6ip,	Os,	"source address",	} ,
 	{"d",	Fv6ip,	Od,	"destination address",	} ,
@@ -167,7 +167,7 @@ v6hdrlen(Hdr *h)
 	int pktlen = IP6HDR + NetS(h->length);
 	uchar nexthdr = h->proto;
 	uchar *pkt = (uchar*) h;
-	
+
 	pkt += len;
 	plen = len;
 
@@ -176,7 +176,7 @@ v6hdrlen(Hdr *h)
 
 		if (nexthdr == FRAG_HDR)
 			len = FRAG_HSZ;
-		else 
+		else
 			len = ( ((int) *(pkt+1)) + 1) * 8;
 
 		if (plen + len > pktlen)
@@ -226,7 +226,7 @@ v6hdr_seprint(Msg *m)
 	int pktlen = IP6HDR + NetS(h->length);
 	uchar nexthdr = h->proto;
 	int plen;
-	
+
 	pkt += len;
 	plen = len;
 
blob - bbc21986ff98e74cfc5ff55a813d5ea53199b9cb
blob + 09cf022dc677aee6637d1768b456d0ea3c40d951
--- src/cmd/ip/snoopy/llc.c
+++ src/cmd/ip/snoopy/llc.c
@@ -1,4 +1,4 @@
-/* 
+/*
  * LLC.  Only enough to dispatch to SNAP and IP.
  */
 
@@ -17,7 +17,7 @@ enum
 	UPoll = 0x10,
 	IsPoll = 0x100,
 	XidFi = 0x81,
-	
+
 	SapNull = 0,
 	SapGlobal = 0xff,
 	Sap8021BI = 0x02,
@@ -40,7 +40,7 @@ static Mux p_mux[] =
 // Linux gives llc -> snap not llc -> ip.
 // If we don't tell snoopy about llc -> ip, then the default patterns
 // like snoopy -h radiotap -f dns work better.
-//	{ "ip", SapIP },	
+//	{ "ip", SapIP },
 	{ "snap", SapSnap },
 	{ 0 }
 };
@@ -138,7 +138,7 @@ static int
 p_seprint(Msg *m)
 {
 	Hdr h;
-	
+
 	memset(&h, 0, sizeof h);
 	if(unpackhdr(m->ps, m->pe, &h) < 0)
 		return -1;
@@ -156,7 +156,7 @@ p_seprint(Msg *m)
 			m->pr = &snap;
 			break;
 		}
-	}	
+	}
 	return 0;
 }
 
blob - 9c2dad2e8ac9bb237d9bd0e786b82229e89eb371 (mode 755)
blob + 6902797e82706f543e2fea43276b7226bd48413c (mode 644)
--- src/cmd/ip/snoopy/main.c
+++ src/cmd/ip/snoopy/main.c
@@ -290,14 +290,14 @@ struct pcap_file_header {
 };
 
 /*
- *  pcap trace header 
+ *  pcap trace header
  */
 void
 pcaphdr(int fd)
 {
 	if(tiflag){
 		struct pcap_file_header hdr;
-		
+
 		if(readn(fd, &hdr, sizeof hdr) != sizeof hdr)
 			sysfatal("short header");
 		if(hdr.magic != TCPDUMP_MAGIC)
@@ -309,16 +309,16 @@ pcaphdr(int fd)
 	}
 	if(toflag){
 		struct pcap_file_header hdr;
-	
+
 		hdr.magic = TCPDUMP_MAGIC;
 		hdr.version_major = PCAP_VERSION_MAJOR;
 		hdr.version_minor = PCAP_VERSION_MINOR;
-	  
+
 		hdr.thiszone = 0;
 		hdr.snaplen = 1500;
 		hdr.sigfigs = 0;
 		hdr.linktype = 1;
-	
+
 		write(1, &hdr, sizeof(hdr));
 	}
 }
@@ -682,7 +682,7 @@ _compile(Filter *f, Proto *last)
 	case '=':
 		if(last == nil)
 			sysfatal("internal error: compilewalk: badly formed tree");
-		
+
 		if(last->compile == nil)
 			sysfatal("unknown %s field: %s", f->pr->name, f->s);
 		(*last->compile)(f);
@@ -840,7 +840,7 @@ cat(void)
 {
 	char buf[1024];
 	int n;
-	
+
 	while((n = read(0, buf, sizeof buf)) > 0)
 		write(1, buf, n);
 }
@@ -850,10 +850,10 @@ void
 startmc(void)
 {
 	int p[2];
-	
+
 	if(fd1 == -1)
 		fd1 = dup(1, -1);
-	
+
 	if(pipe(p) < 0)
 		return;
 	switch(fork()){
@@ -892,7 +892,7 @@ printhelp(char *name)
 	Mux *m;
 	Field *f;
 	char fmt[40];
-	
+
 	if(name == nil){
 		print("protocols:\n");
 		startmc();
@@ -901,13 +901,13 @@ printhelp(char *name)
 		stopmc();
 		return;
 	}
-	
+
 	pr = findproto(name);
 	if(pr == nil){
 		print("unknown protocol %s\n", name);
 		return;
 	}
-	
+
 	if(pr->field){
 		print("%s's filter attributes:\n", pr->name);
 		len = 0;
blob - eb3eab3906e5ed3f335084167abefdc483ce486c (mode 755)
blob + eb3eab3906e5ed3f335084167abefdc483ce486c (mode 644)
blob - bb4cd893b4dde6b07be03ff7db1bae0ee080c58e (mode 755)
blob + d5871dd9b0ab0ac96f2fe245314a0664ffcdf2a3 (mode 644)
--- src/cmd/ip/snoopy/ospf.c
+++ src/cmd/ip/snoopy/ospf.c
@@ -22,7 +22,7 @@ struct Ospfpkt
 	uchar	auth[8];
 	uchar	data[1];
 };
-#define OSPF_HDRSIZE	24	
+#define OSPF_HDRSIZE	24
 
 enum
 {
@@ -62,15 +62,15 @@ ospfauth(Ospfpkt *ospf)
 	case 0:
 		return "no authentication";
 	case 1:
-		sprint(auth, "password(%8.8ux %8.8ux)", NetL(ospf->auth),	
+		sprint(auth, "password(%8.8ux %8.8ux)", NetL(ospf->auth),
 			NetL(ospf->auth+4));
 		break;
 	case 2:
-		sprint(auth, "crypto(plen %d id %d dlen %d)", NetS(ospf->auth),	
+		sprint(auth, "crypto(plen %d id %d dlen %d)", NetS(ospf->auth),
 			ospf->auth[2], ospf->auth[3]);
 		break;
 	default:
-		sprint(auth, "auth%d(%8.8ux %8.8ux)", NetS(ospf->autype), NetL(ospf->auth),	
+		sprint(auth, "auth%d(%8.8ux %8.8ux)", NetS(ospf->autype), NetL(ospf->auth),
 			NetL(ospf->auth+4));
 	}
 	return auth;
@@ -156,7 +156,7 @@ struct Ospfrt {
 	uchar	typ;
 	uchar	numtos;
 	uchar	metric[2];
-	
+
 };
 
 struct OspfrtLSA {
@@ -348,7 +348,7 @@ p_seprint(Msg *m)
 	x -= OSPF_HDRSIZE;
 
 	p = seprint(p, e, "ver=%d type=%d len=%d r=%V a=%V c=%4.4ux %s ",
-		ospf->version, ospf->type, x, 
+		ospf->version, ospf->type, x,
 		ospf->router, ospf->area, NetS(ospf->sum),
 		ospfauth(ospf));
 
blob - 92ed8aba2fdcabeaa201d0505ae78c7887e312f6
blob + 49fe0245ca0e9b308e2907539513b49b81729fdf
--- src/cmd/ip/snoopy/p80211.c
+++ src/cmd/ip/snoopy/p80211.c
@@ -1,4 +1,4 @@
-/* 
+/*
  * IEEE 802.11.
  */
 
@@ -29,7 +29,7 @@ enum
 	NodataCfAck,
 	NodataCfPoll,
 	NodataCfAckPoll,
-	
+
 	FlagTods = 0x1,
 	FlagFromds = 0x2,
 	FlagMoreflag = 0x4,
@@ -38,7 +38,7 @@ enum
 	FlagMoreData = 0x20,
 	FlagWep = 0x40,
 	FlagOrder = 0x80,
-	
+
 	ProtoNone = 0,
 	ProtoLlc,
 };
@@ -85,7 +85,7 @@ unpackhdr(uchar *p, uchar *ep, Hdr *h)
 
 	if(h->vers != 0)
 		return 0;
-	
+
 	switch(h->type){
 	case Tmgmt:
 		// fc dur da sa bssid seq
@@ -98,7 +98,7 @@ unpackhdr(uchar *p, uchar *ep, Hdr *h)
 		memmove(h->bssid, p+16, 6);
 		h->seq = LittleS(p+22);
 		break;
-	
+
 	case Tctl:
 		switch(h->subtype){
 		case CtlPoll:
@@ -110,7 +110,7 @@ unpackhdr(uchar *p, uchar *ep, Hdr *h)
 			memmove(h->bssid, p+4, 6);
 			memmove(h->ta, p+10, 6);
 			break;
-		
+
 		case CtlRts:
 			// fc dur ra ta
 			if(p+2+2+6+6 > ep)
@@ -120,7 +120,7 @@ unpackhdr(uchar *p, uchar *ep, Hdr *h)
 			memmove(h->ra, p+4, 6);
 			memmove(h->ta, p+10, 6);
 			break;
-		
+
 		case CtlCts:
 		case CtlAck:
 			// fc dur ra
@@ -130,7 +130,7 @@ unpackhdr(uchar *p, uchar *ep, Hdr *h)
 			h->dur = LittleS(p+2);
 			memmove(h->ra, p+4, 6);
 			break;
-		
+
 		case CtlCfEnd:
 		case CtlCfEndAck:
 			// fc dur ra bssid
@@ -143,7 +143,7 @@ unpackhdr(uchar *p, uchar *ep, Hdr *h)
 			break;
 		}
 		break;
-	
+
 	case Tdata:
 		if(p+24 > ep)
 			return -1;
@@ -183,7 +183,7 @@ unpackhdr(uchar *p, uchar *ep, Hdr *h)
 			h->proto = ProtoLlc;
 		break;
 	}
-	return 0;	
+	return 0;
 }
 
 enum
@@ -284,7 +284,7 @@ static int
 p_seprint(Msg *m)
 {
 	Hdr h;
-	
+
 	memset(&h, 0, sizeof h);
 	if(unpackhdr(m->ps, m->pe, &h) < 0)
 		return -1;
blob - 9319cdaec7a5ab795a386dcb08c18fc287cafe00 (mode 755)
blob + 453f711d7b01849a7a57ec285b220961f77e3a0d (mode 644)
--- src/cmd/ip/snoopy/ppp.c
+++ src/cmd/ip/snoopy/ppp.c
@@ -192,7 +192,7 @@ p_seprint(Msg *m)
 	proto = *m->ps++;
 	if((proto&1) == 0)
 		proto = (proto<<8) | *m->ps++;
-	
+
 	m->p = seprint(m->p, m->e, "pr=%ud len=%d", proto, len);
 	demux(p_mux, proto, proto, m, &dump);
 
@@ -384,25 +384,25 @@ seprintipcpopt(char *p, char *e, void *a, int len)
 		default:
 			p = seprint(p, e, " (type=%d len=%d)", o->type, o->len);
 			break;
-		case Oipaddrs:	
+		case Oipaddrs:
 			p = seprint(p, e, " ipaddrs(deprecated)");
 			break;
 		case Oipcompress:
 			p = seprint(p, e, " ipcompress");
 			break;
-		case Oipaddr:	
+		case Oipaddr:
 			p = seprint(p, e, " ipaddr=%V", o->data);
 			break;
-		case Oipdns:	
+		case Oipdns:
 			p = seprint(p, e, " dnsaddr=%V", o->data);
 			break;
-		case Oipwins:	
+		case Oipwins:
 			p = seprint(p, e, " winsaddr=%V", o->data);
 			break;
-		case Oipdns2:	
+		case Oipdns2:
 			p = seprint(p, e, " dns2addr=%V", o->data);
 			break;
-		case Oipwins2:	
+		case Oipwins2:
 			p = seprint(p, e, " wins2addr=%V", o->data);
 			break;
 		}
@@ -430,7 +430,7 @@ p_seprintipcp(Msg *m)
 		m->pe = m->ps+len;
 	else if(m->ps+len > m->pe)
 		return -1;
-		
+
 	p = seprint(p, e, "id=%d code=%d", lcp->id, lcp->code);
 	switch(lcp->code) {
 	default:
@@ -467,13 +467,13 @@ seprintccpopt(char *p, char *e, void *a, int len)
 			p = seprint(p, e, " bad opt len %ux", o->type);
 			return p;
 		}
-		
+
 		switch(o->type){
 		default:
 			p = seprint(p, e, " type=%d ", o->type);
 			break;
 		case 0:
-			p = seprint(p, e, " OUI=(%d %.2ux%.2ux%.2ux) ", o->type, 
+			p = seprint(p, e, " OUI=(%d %.2ux%.2ux%.2ux) ", o->type,
 				o->data[0], o->data[1], o->data[2]);
 			break;
 		case 17:
@@ -507,7 +507,7 @@ p_seprintccp(Msg *m)
 		m->pe = m->ps+len;
 	else if(m->ps+len > m->pe)
 		return -1;
-		
+
 	p = seprint(p, e, "id=%d code=%d", lcp->id, lcp->code);
 	switch(lcp->code) {
 	default:
@@ -528,7 +528,7 @@ p_seprintccp(Msg *m)
 		break;
 	}
 	m->p = seprint(p, e, " len=%d", len);
-	
+
 	return 0;
 }
 
blob - dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 755)
blob + dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 644)
blob - dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 755)
blob + dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 644)
blob - dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 755)
blob + dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 644)
blob - dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 755)
blob + dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 644)
blob - dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 755)
blob + dab65f8f822fad6c6404b6a6ae7d66dfa79603ff (mode 644)
blob - 058f059df039a023c0caa25c34bd6ca640a6f2d9 (mode 755)
blob + ceb84d57e9330e252b60e5157541df8960027470 (mode 644)
--- src/cmd/ip/snoopy/pppoe_disc.c
+++ src/cmd/ip/snoopy/pppoe_disc.c
@@ -30,7 +30,7 @@ enum
 	Osess
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"v",	Fnum,	Overs,	"version",	} ,
 	{"t",	Fnum,	Otype,	"type",	} ,
@@ -171,4 +171,3 @@ Proto pppoe_sess =
 	p_fields,
 	defaultframer
 };
-
blob - 0472a907e0f7c2c3609023734a4bec8faf6a0d94 (mode 755)
blob + 0472a907e0f7c2c3609023734a4bec8faf6a0d94 (mode 644)
blob - 889dc8ab49f89b31ae15777df7196424a9b02b08
blob + 7fa7cc414e27510495edb3d512479398bfda5329
--- src/cmd/ip/snoopy/radiotap.c
+++ src/cmd/ip/snoopy/radiotap.c
@@ -93,7 +93,7 @@ static int
 p_seprint(Msg *m)
 {
 	Hdr h;
-	
+
 	memset(&h, 0, sizeof h);
 	if(unpackhdr(m->ps, m->pe, &h) < 0)
 		return -1;
blob - 149c8207d5bcea2302240931ffaaadf279e0001e (mode 755)
blob + 149c8207d5bcea2302240931ffaaadf279e0001e (mode 644)
blob - 29745d658bdf44f7756b8b99a1626b3e8778cb33 (mode 755)
blob + e764063dae194549fe79b05353c7f676695c3ec6 (mode 644)
--- src/cmd/ip/snoopy/rtcp.c
+++ src/cmd/ip/snoopy/rtcp.c
@@ -55,7 +55,7 @@ p_seprint(Msg *m)
 				(NetS(h->len) + 1) * 4);
 
 	for(i = 0; i < rc; i++){
-		r = (Report*)m->ps;	
+		r = (Report*)m->ps;
 		m->ps += REPORTLEN;
 
 		frac = (int)(((float)r->lost[0] * 100.) / 256.);
@@ -64,7 +64,7 @@ p_seprint(Msg *m)
 
 		m->p = seprint(m->p, m->e, "\n\trr(csrc=%8ux frac=%3d%% cumu=%10d seqhi=%10ud jitter=%10d lsr=%8ux dlsr=%f)",
 				NetL(r->ssrc), frac, NetL(r->lost), NetL(r->seqhi),
-				NetL(r->jitter), NetL(r->lsr), 
+				NetL(r->jitter), NetL(r->lsr),
 				dlsr);
 	}
 	m->pr = nil;
blob - 1aef15fa50b0b2ba00632bf94e588de64d6cf365 (mode 755)
blob + 1aef15fa50b0b2ba00632bf94e588de64d6cf365 (mode 644)
blob - 1854d1d64df90115f79690fa96f99de205658b59
blob + 78a3be09c07db28d1707bedac1aea34303fbc0e4
--- src/cmd/ip/snoopy/snap.c
+++ src/cmd/ip/snoopy/snap.c
@@ -1,4 +1,4 @@
-/* 
+/*
  * SNAP.
  */
 
@@ -12,7 +12,7 @@ enum
 {
 	Oorg,
 	Oet,
-	
+
 	OuiEther = 0,
 	OuiCisco = 0xc,
 	OuiCisco90 = 0xf8,
blob - b8ea7e40ed6cc3488e461d2299317099debf5a64 (mode 755)
blob + 0afbd5450f27cdd4eab2433b1c237a8c308a17b1 (mode 644)
--- src/cmd/ip/snoopy/tcp.c
+++ src/cmd/ip/snoopy/tcp.c
@@ -39,7 +39,7 @@ enum
 	Osd
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"s",		Fnum,	Os,	"source port",	} ,
 	{"d",		Fnum,	Od,	"dest port",	} ,
blob - 3d81f33d3ff2dc551e77a753ee4314707a5b6615 (mode 755)
blob + da9510f6002939d5266cdf084ca7cf6ac4629e63 (mode 644)
--- src/cmd/ip/snoopy/udp.c
+++ src/cmd/ip/snoopy/udp.c
@@ -26,7 +26,7 @@ enum
 	Osetport
 };
 
-static Field p_fields[] = 
+static Field p_fields[] =
 {
 	{"s",		Fnum,	Os,	"source port",	} ,
 	{"d",		Fnum,	Od,	"dest port",	} ,
blob - 6a0a7a00746760d7c79851ede59de066d82675d2
blob + 5ecfc20ad17da1f66c0ef65e34ee654f2d981bb6
--- src/cmd/jpg/jpegdump.c
+++ src/cmd/jpg/jpegdump.c
@@ -134,7 +134,7 @@ void get_sof (int kind) {
 		tab = get1();
 		printf ("\tcomponent %d: %d hsample, %d vsample, quantization table %d\n",
 			id, sf >> 4, sf & 0xf, tab);
-	}		
+	}
 }
 
 void get_com (int kind) {
@@ -301,10 +301,10 @@ marker:
 		case 0xd8:
 			printf ("SOI\n");
 			break;
-		case 0xe0: case 0xe1: case 0xe2: case 0xe3: 
-		case 0xe4: case 0xe5: case 0xe6: case 0xe7: 
-		case 0xe8: case 0xe9: case 0xea: case 0xeb: 
-		case 0xec: case 0xed: case 0xee: case 0xef: 
+		case 0xe0: case 0xe1: case 0xe2: case 0xe3:
+		case 0xe4: case 0xe5: case 0xe6: case 0xe7:
+		case 0xe8: case 0xe9: case 0xea: case 0xeb:
+		case 0xec: case 0xed: case 0xee: case 0xef:
 			get_app(c);
 			break;
 		case 0xda:
blob - f74da4c54b71ff985761e6a02e15a553b10b2e16
blob + 7618c6055801cb4e25756411d150b397903c3bf9
--- src/cmd/jpg/jpg.c
+++ src/cmd/jpg/jpg.c
@@ -225,7 +225,7 @@ vidmerge(Rawimage **aa1, Rawimage **aa2)
 			free(a2->cmap);
 		free(a1);
 		free(a2);
-	}	
+	}
 	if (aa2[i] != nil)
 		fprint(2, "jpg: vidmerge: unequal lengths\n");
 	free(aa1);
blob - ea1c489bec696fabcf1c1b03393488953743a7fb
blob + 9baf366c9cd3533216a65614b3644e30815e76be
--- src/cmd/jpg/onechan.c
+++ src/cmd/jpg/onechan.c
@@ -63,7 +63,7 @@ load(Image *image, Memimage *memimage)
 	dx = Dx(r);
 	dy = Dy(r);
 
-	/* 
+	/*
 	 * Read image data into memory
 	 * potentially one extra byte on each end of each scan line.
 	 */
blob - 154cb48d0531d4a846bcef722be0c69c817be102
blob + 586f63cdac94755eb23191651fb7d41cac1c9e41
--- src/cmd/jpg/readbmp.c
+++ src/cmd/jpg/readbmp.c
@@ -185,7 +185,7 @@ load_4C(Biobuf *b, long width, long height, Rgb* buf, 
 						p = &buf[ix + iy * width];
 						if((1 == (val & 3)) || (2 == (val & 3)))
 							skip = 1;
-						else 
+						else
 							skip = 0;
 
 						while(val--) {
@@ -273,7 +273,7 @@ load_8C(Biobuf *b, long width, long height, Rgb* buf, 
 						p = &buf[ix + iy * width];
 						if(val & 1)
 							skip = 1;
-						else 
+						else
 							skip = 0;
 
 						while(val--) {
@@ -488,7 +488,7 @@ ReadBMP(Biobuf *b, int *width, int *height)
 		num_coltab = 3;
 
 	if(num_coltab) {
-		int i; 
+		int i;
 		Bseek(b, bmih.size + sizeof(Infohdr), 0);
 
 		for(i = 0; i < num_coltab; i++) {
@@ -622,5 +622,3 @@ readbmp(int fd, int colorspace)
 	Bterm(&b);
 	return a;
 }
-
-
blob - 22365669ad0adb7ec2453a4f548a52f07db4c1fb
blob + 092faf0715f1729cf26041783f61705d78db4a14
--- src/cmd/jpg/readgif.c
+++ src/cmd/jpg/readgif.c
@@ -166,7 +166,7 @@ readarray(Header *h)
 	nimages = 0;
 	array[0] = nil;
 	h->array = array;
-		
+
 	for(;;){
 		switch(c = Bgetc(h->fd)){
 		case Beof:
blob - f3ad802e61c6dd7c99f3dfcbf01c79e7742ed31e
blob + c69d043850544ad22baa1e8ec2281d338b24fad9
--- src/cmd/jpg/readjpg.c
+++ src/cmd/jpg/readjpg.c
@@ -78,7 +78,7 @@ struct Header
 	Huffman	acht[4];
 	int		**data[3];
 	int		ndata[3];
-	
+
 	uchar	*sf;	/* start of frame; do better later */
 	uchar	*ss;	/* start of scan; do better later */
 	int		ri;	/* restart interval */
@@ -1484,7 +1484,7 @@ receiveEOB(Header *h, int s)
 	return v;
 }
 
-/* 
+/*
  * return next bit of input
  */
 static
blob - 5fdbc1dbb5600cde822d19c587753cb6dd5b2e16
blob + e327a5729def1f063c62a13778067fc04079ef05
--- src/cmd/jpg/readpng.c
+++ src/cmd/jpg/readpng.c
@@ -11,9 +11,9 @@ int debug;
 enum{  IDATSIZE=1000000,
 	/* filtering algorithms, supposedly increase compression */
 	FilterNone =	0,	/* new[x][y] = buf[x][y] */
-	FilterSub	=	1,	/* new[x][y] = buf[x][y] + new[x-1][y] */ 
-	FilterUp	=	2,	/* new[x][y] = buf[x][y] + new[x][y-1] */ 
-	FilterAvg	=	3,	/* new[x][y] = buf[x][y] + (new[x-1][y]+new[x][y-1])/2 */ 
+	FilterSub	=	1,	/* new[x][y] = buf[x][y] + new[x-1][y] */
+	FilterUp	=	2,	/* new[x][y] = buf[x][y] + new[x][y-1] */
+	FilterAvg	=	3,	/* new[x][y] = buf[x][y] + (new[x-1][y]+new[x][y-1])/2 */
 	FilterPaeth=	4,	/* new[x][y] = buf[x][y] + paeth(new[x-1][y],new[x][y-1],new[x-1][y-1]) */
 	FilterLast	=	5,
 	PropertyBit =	1<<5
@@ -141,11 +141,11 @@ refill_buffer:
 	return *z->b++;
 }
 
-static uchar 
+static uchar
 paeth(uchar a, uchar b, uchar c)
 {
 	int p, pa, pb, pc;
-	
+
 	p = (int)a + (int)b - (int)c;
 	pa = abs(p - (int)a);
 	pb = abs(p - (int)b);
@@ -218,7 +218,7 @@ convertpix(ZlibW *z, uchar *pixel, uchar *r, uchar *g,
 		break;
 	default:
 		sysfatal("bad number of channels: %d", z->nchan);
-	} 
+	}
 }
 
 static void
@@ -234,7 +234,7 @@ scan(ZlibW *z)
 
 	unfilter(p[0], p+1, z->pscan+1, z->scanl-1, (nch*z->bpp+7)/8);
 /*
- *	Adam7 interlace order. 
+ *	Adam7 interlace order.
  *	1 6 4 6 2 6 4 6
  *	7 7 7 7 7 7 7 7
  *	5 6 5 6 5 6 5 6
blob - 073f4436b0640308154a1a964846bf7284cf4ec2
blob + 7067fc15f8de0637340dca8ba4b90ce70649fb59
--- src/cmd/jpg/readppm.c
+++ src/cmd/jpg/readppm.c
@@ -21,7 +21,7 @@ Bgetch(Biobuf *b)
 		while((c = Bgetc(b)) != Beof && c != '\n')
 			;
 	}
-	return c;		
+	return c;
 }
 
 /*
@@ -40,7 +40,7 @@ Bgetint(Biobuf *b)
 		return -1;
 
 	i = 0;
-	do { 
+	do {
 		i = i*10 + (c-'0');
 	} while((c = Bgetch(b)) != Beof && isdigit(c));
 
blob - f90bc2373d04293382342b6bccdeb0054afef59f
blob + 5194d544834c1e0c7b00ec0c8011e8e111c60f83
--- src/cmd/jpg/readyuv.c
+++ src/cmd/jpg/readyuv.c
@@ -29,7 +29,7 @@ enum {
 
 static int lsbtab[] = { 6, 4, 2, 0};
 
-static int 
+static int
 clip(int x)
 {
 	x >>= 18;
@@ -186,5 +186,3 @@ readyuv(int fd, int colorspace)
 	Bterm(&b);
 	return a;
 }
-
-
blob - 08fc4801e040ed5c5a1d07218e0df99919c088a8
blob + 780bf7a503e60270b0dbff6003319a65d30c1fa1
--- src/cmd/jpg/writegif.c
+++ src/cmd/jpg/writegif.c
@@ -281,7 +281,7 @@ writegraphiccontrol(Biobuf *fd, int dt, int trans)
 		Bputc(fd, 0x01);
 	else
 		Bputc(fd, 0x00);
-	
+
 	/* Delay time, in centisec (argument is millisec for sanity) */
 	if(dt < 0)
 		dt = 0;
@@ -345,7 +345,7 @@ writedata(Biobuf *fd, Image *image, Memimage *memimage
 	else
 		Bputc(fd, depth);
 
-	/* 
+	/*
 	 * Read image data into memory
 	 * potentially one extra byte on each end of each scan line
 	 */
blob - 24a61a3661314cc2b551e34b1adf07a4a77bb586
blob + d0baf1223a482f350bf90ae9dd96d55010bebcf8
--- src/cmd/jpg/writepng.c
+++ src/cmd/jpg/writepng.c
@@ -70,7 +70,7 @@ zread(void *va, void *buf, int n)
 	uchar *b = buf, *e = b+n, *img;
 	int pixels;  /* number of pixels in row that can be sent now */
 	int i, a, pixwid;
-	
+
 	pixwid = z->pixwid;
 	while(b+pixwid <= e){ /* loop over image rows */
 		if(z->row >= nrow)
@@ -103,7 +103,7 @@ zread(void *va, void *buf, int n)
 					b[2] = (b[2]*255)/a;
 				}
 			}
-		}else	
+		}else
 			b += pixwid*pixels;
 
 		z->col += pixels;
@@ -148,7 +148,7 @@ memRGBA(Memimage *i)
 	Memimage *ni;
 	char buf[32];
 	ulong dst;
-	
+
 	/*
 	 * [A]BGR because we want R,G,B,[A] in big-endian order.  Sigh.
 	 */
@@ -157,7 +157,7 @@ memRGBA(Memimage *i)
 		dst = ABGR32;
 	else
 		dst = BGR24;
-		
+
 	if(i->chan == dst)
 		return i;
 
@@ -211,7 +211,7 @@ memwritepng(Biobuf *bo, Memimage *r, ImageInfo *II)
 	*h++ = tm->min;
 	*h++ = tm->sec;
 	chunk(bo, "tIME", buf, h-buf);
-	
+
 	if(II->fields_set & II_GAMMA){
 		vgamma = II->gamma*100000;
 		put4(buf, vgamma);
blob - c837865242810f8d735070990ccb2a3b605c1e08
blob + da528a448a34eac6a2fa2f9716bf4ed766450ef8
--- src/cmd/jpg/writeppm.c
+++ src/cmd/jpg/writeppm.c
@@ -30,7 +30,7 @@ writedata(Biobuf *fd, Image *image, Memimage *memimage
 		chan = image->chan;
 	}
 
-	/* 
+	/*
 	 * Read image data into memory
 	 * potentially one extra byte on each end of each scan line
 	 */
blob - dcbbb581aa50c5d81d4bcb03bd1a252374171d7e
blob + b2e6d359c21f5e7c7ed6a606348ee276f304c080
--- src/cmd/lex/sub1.c
+++ src/cmd/lex/sub1.c
@@ -488,7 +488,7 @@ allprint(int c)
 			if(!isprint(c)){
 				print("\\%-3o",c);
 				charc += 3;
-			} else 
+			} else
 				print("%c", c);
 			break;
 	}
@@ -588,7 +588,7 @@ treedump(void)
 				print("final %d",left[t]);
 				break;
 			case S1FINAL:
-				print("s1final %d",left[t]);	
+				print("s1final %d",left[t]);
 				break;
 			case S2FINAL:
 				print("s2final %d",left[t]);
blob - 9221aea7130b04c2d53cc4f20e7cbedb0929edf4
blob + d619abad7a7ff08225f0ae9df0187482892b9d56
--- src/cmd/lex/sub2.c
+++ src/cmd/lex/sub2.c
@@ -51,7 +51,7 @@ cfoll(int v)
 		case CARAT:
 			cfoll(left[v]);
 			break;
-		case STAR: case PLUS: case QUEST: case RSCON: 
+		case STAR: case PLUS: case QUEST: case RSCON:
 			cfoll(left[v]);
 			break;
 		case BAR: case RCAT: case DIV: case RNEWE:
@@ -131,7 +131,7 @@ follow(int v)
 		case BAR: case QUEST: case RNEWE:
 			follow(p);
 			break;
-		case RCAT: case DIV: 
+		case RCAT: case DIV:
 			if(v == left[p]){
 				if(nullstr[right[p]])
 					follow(p);
@@ -139,7 +139,7 @@ follow(int v)
 			}
 			else follow(p);
 			break;
-		case RSCON: case CARAT: 
+		case RSCON: case CARAT:
 			follow(p);
 			break;
 # ifdef DEBUG
@@ -803,7 +803,7 @@ layout(void)
 	Bprint(&fout,"0,\t0,\t0};\n");
 
 	/* put out yymatch */
-	
+
 	Bprint(&fout,"struct yywork *yytop = yycrank+%d;\n",yytop);
 	Bprint(&fout,"struct yysvf *yybgin = yysvec+1;\n");
 	Bprint(&fout,"Uchar yymatch[] = {\n");
blob - 369afe1b32dab5fcea328a47d554a02714ed0488
blob + af40cfcc61016a07814d65da2ae71108d9f20fff
--- src/cmd/look.c
+++ src/cmd/look.c
@@ -90,7 +90,7 @@ main(int argc, char *argv[])
 	case 'f':
 		fold++;
 		break;
-	case 'i': 
+	case 'i':
 		iflag++;
 		break;
 	case 'n':
@@ -118,7 +118,7 @@ main(int argc, char *argv[])
 	if(argc < 1) {
 		direc++;
 		fold++;
-	} else 
+	} else
 		filename = argv[0];
 	if (!iflag)
 		rcanon(orig, key);
blob - 666f64c4f2744f10c82523774fbdce4a47df2538
blob + a07858a8d8d6daefe0519fc0c997be6699a65fdc
--- src/cmd/lp/ipcopen.c
+++ src/cmd/lp/ipcopen.c
@@ -78,7 +78,7 @@ pass(int from, int to)
 {
 	char buf[1024];
 	int ppid, cpid;
-	int n, tot = 0; 
+	int n, tot = 0;
 
 	while ((n=read(from, buf, sizeof(buf))) > 0) {
 		if (n==1 && tot==0 && *buf=='\0')
blob - 0dc70259063357f21a7abf0203e2f60301bc1f21
blob + 363d9501e53c210bed0b7d49c0f55df7545c9dc3
--- src/cmd/lp/lpdsend.c
+++ src/cmd/lp/lpdsend.c
@@ -289,7 +289,7 @@ main(int argc, char *argv[]) {
 			if (statflag) {
 				fprintf(stderr, "cannot have both -k and -q flags\n");
 				exit(1);
-			}	
+			}
 			killflag = 1;
 			killarg = optarg;
 			break;
@@ -297,7 +297,7 @@ main(int argc, char *argv[]) {
 			if (killflag) {
 				fprintf(stderr, "cannot have both -q and -k flags\n");
 				exit(1);
-			}	
+			}
 			statflag = 1;
 			break;
 		case 's':
blob - 4893f4521b85c90567345faa1a92c696c63a0fc8
blob + bcdcfdbb5607ffa71bbf3f63a4615f481601a823
--- src/cmd/lp/lpsend.c
+++ src/cmd/lp/lpsend.c
@@ -154,7 +154,7 @@ pass(int inpfd, int outfd, int bsize)
 	alarm(0);
 	return(bcnt);
 }
-	
+
 /* get whatever stdin has and put it into the temporary file.
  * return the file size.
  */
blob - fca3ee9589ea1c52375386b5176916cdbe932de6
blob + 845532be643aeaf9c9c6f391e01f7eb04c84750a
--- src/cmd/ls.c
+++ src/cmd/ls.c
@@ -249,7 +249,7 @@ growto(long n)
 	if(dirbuf == 0){
 		fprint(2, "ls: malloc fail\n");
 		exits("malloc fail");
-	}		
+	}
 }
 
 int
@@ -305,4 +305,3 @@ asciitime(long l)
 	buf[12] = 0;
 	return buf;
 }
-
blob - 858f0d69c7dcb7e6a28bcdabda61115fea429326
blob + 1c9db868872eaf11801a68aaf61d30d582833340
--- src/cmd/map/libmap/bonne.c
+++ src/cmd/map/libmap/bonne.c
@@ -15,7 +15,7 @@ Xbonne(struct place *place, double *x, double *y)
 			alpha = place->wlon.l;
 		else if(fabs(place->nlat.c)==0)
 			alpha = 0;
-		else 
+		else
 			alpha = place->wlon.l/(1+
 				stdpar.c*stdpar.c*stdpar.c/place->nlat.c/3);
 	else
blob - fd508d2baae56d34302020f5099bc4901aee0a64
blob + abfd6ea093c619c07b2eca1e6505790b28dfb5d9
--- src/cmd/map/libmap/cubrt.c
+++ src/cmd/map/libmap/cubrt.c
@@ -6,7 +6,7 @@ double
 cubrt(double a)
 {
 	double x,y,x1;
-	if(a==0) 
+	if(a==0)
 		return(0.);
 	y = 1;
 	if(a<0) {
blob - b4c9bbf695dbddec867071bc33680cb7c02e7f4b
blob + 6f7d560445f25a2fd2a3f458a3a987f4c580bf0e
--- src/cmd/map/libmap/elco2.c
+++ src/cmd/map/libmap/elco2.c
@@ -76,7 +76,7 @@ elco2(double x, double y, double kc, double a, double 
 
 		cmul(c,dn2,1+e1*m2,e2*m2,&f1,&f2);
 		cdiv(d*x,d*y,f1,f2,&d1[i],&d2[i]);
-		if(k<=CC) 
+		if(k<=CC)
 			break;
 		kc = sqrt(m*kc);
 		f = m2;
blob - 173ffcd34a7ccbb670a27c05f552efa3abcf44e1
blob + f7ee7b6f8497b04db92db4b15d6812c43d451b29
--- src/cmd/map/libmap/gilbert.c
+++ src/cmd/map/libmap/gilbert.c
@@ -47,5 +47,3 @@ gilbert(void)
    use standard formula: tan x/2 = (1-cos x)/sin x = sin x/(1+cos x)
    to show that the right side of the last equation is tan(n/2)
 */
-
-
blob - 366f69fe440bbf95918ce28734151675c986599b
blob + 9678c6810ddc7855c212008dffff24a16a07197e
--- src/cmd/map/libmap/homing.c
+++ src/cmd/map/libmap/homing.c
@@ -94,7 +94,7 @@ hlimb(double *lat, double *lon, double res)
 		return 0;
 	}
 	*lat += res;
-	if(*lat <= 90) 
+	if(*lat <= 90)
 		return 1;
 	if(*lon == 90)
 		return -1;
blob - 6b688aa3d0309b98464f2d5c1afaa97a766037c8
blob + e8037a6c4df473f1659a64ab03607a8c8635307e
--- src/cmd/map/libmap/lambert.c
+++ src/cmd/map/libmap/lambert.c
@@ -34,7 +34,7 @@ lambert(double par0, double par1)
 	}
 	deg2rad(par0, &stdp0);
 	deg2rad(par1, &stdp1);
-	if(fabs(par1+par0)<.1) 
+	if(fabs(par1+par0)<.1)
 		return(mercator());
 	if(fabs(par1-par0)<.1)
 		return(perspective(-1.));
blob - dc58c6f05045d1db2ce452f5fcee4f66fe979240
blob + a3d06d8176eb737c9b873274b324fc370d2e5231
--- src/cmd/map/libmap/lune.c
+++ src/cmd/map/libmap/lune.c
@@ -42,7 +42,7 @@ static int Xlune(struct place *place, double *x, doubl
 	deny = w1y + w2y;
 	cdiv(numx, numy, denx, deny, x, y);
 	return 1;
-}	
+}
 
 proj
 lune(double lat, double theta)
blob - 6bdef49b9e6299c9a3e2388fed0f006cf9d714ba
blob + 31837de287a61e4496354f498703243a037d7f61
--- src/cmd/map/libmap/tetra.c
+++ src/cmd/map/libmap/tetra.c
@@ -66,7 +66,7 @@ static struct tproj {
 {/*30*/	{0.,	-45.,	45.,	-150.},
  /*31*/ {0.,	-135.,	135.,	-30.},
  /*32*/	{-90.,	0.,	0.,	90.},
- /*33*/ {0.} 
+ /*33*/ {0.}
 }};
 static double tx[4] = {	/*where to move facet after final rotation*/
 	0.,	0.,	-1.,	1.	/*-1,1 to be sqrt(3)*/
@@ -136,7 +136,7 @@ Xtetra(struct place *place, double *x, double *y)
 			return 0;
 		vr = fpir - vr;
 		vi = fpii - vi;
-	} else 
+	} else
 		if(!elco2(br,bi,tk,1.,1.,&vr,&vi))
 			return 0;
 	if(si>=0) {
@@ -158,7 +158,7 @@ int
 tetracut(struct place *g, struct place *og, double *cutlon)
 {
 	int i,j,k;
-	if((g->nlat.s<=-rt3inv&&og->nlat.s<=-rt3inv) && 
+	if((g->nlat.s<=-rt3inv&&og->nlat.s<=-rt3inv) &&
 	   (ckcut(g,og,*cutlon=0.)==2||ckcut(g,og,*cutlon=PI)==2))
 		return(2);
 	twhichp(g,&i,&k);
@@ -203,4 +203,3 @@ tetra(void)
 	}
 	return(Xtetra);
 }
-
blob - 0d0e48a4e30419581a27f1e6238053335b9ad648
blob + 9c7b7ec4fd1c15d7a0642414e3036195a62dd1aa
--- src/cmd/map/libmap/twocirc.c
+++ src/cmd/map/libmap/twocirc.c
@@ -44,7 +44,7 @@ twocircles(double m, double p, double p1, double p2, d
 		*y = (*x*a+t/2)/b;
 	}
 	return 1;
-}		
+}
 
 static int
 Xglobular(struct place *place, double *x, double *y)
@@ -52,7 +52,7 @@ Xglobular(struct place *place, double *x, double *y)
 	twocircles(-2*place->wlon.l/PI,
 		2*place->nlat.l/PI, place->nlat.c, place->nlat.s, x, y);
 	return 1;
-}	
+}
 
 proj
 globular(void)
@@ -68,7 +68,7 @@ Xvandergrinten(struct place *place, double *x, double 
 	double pval = abst>=1? 1: abst/(1+sqrt(1-t*t));
 	double p2 = 2*pval/(1+pval);
 	twocircles(-place->wlon.l/PI, pval, sqrt(1-p2*p2), p2, x, y);
-	if(t < 0) 
+	if(t < 0)
 		*y = -*y;
 	return 1;
 }
blob - 74ae79ac314dc9f7bcc9bedbe11760d6ce1b6aab
blob + 5ca1a65c0f5414714408c93b12c8c2464751f473
--- src/cmd/map/map.c
+++ src/cmd/map/map.c
@@ -123,7 +123,7 @@ void	windlim(void);
 void	realcut(void);
 
 int
-option(char *s) 
+option(char *s)
 {
 
 	if(s[0]=='-' && (s[1]<'0'||s[1]>'9'))
@@ -157,7 +157,7 @@ main(int argc, char *argv[])
 	s = getenv("MAPDIR");
 	if(s)
 		mapdir = s;
-	if(argc<=1) 
+	if(argc<=1)
 		error("usage: map projection params options");
 	for(k=0;index[k].name;k++) {
 		s = index[k].name;
@@ -305,7 +305,7 @@ found:
 			argc -= i;
 			break;
 		case 'c':
-			for(i=0;i<3&&argc>i&&!option(argv[i]);i++) 
+			for(i=0;i<3&&argc>i&&!option(argv[i]);i++)
 				center[i] = atof(argv[i]);
 			argc -= i;
 			argv += i;
@@ -315,7 +315,7 @@ found:
 				position[i] = atof(argv[i]);
 			argc -= i;
 			argv += i;
-			if(i!=3||position[2]<=0) 
+			if(i!=3||position[2]<=0)
 				error("incomplete positioning");
 			break;
 		case 'y':
@@ -445,7 +445,7 @@ found:
 	crot.l = center[2]*RAD;
 	sincos(&crot);
 	scaling *= HALFWIDTH*0.9;
-	if(symbolfile) 
+	if(symbolfile)
 		getsyms(symbolfile);
 	if(!s2flag) {
 		openpl();
@@ -457,11 +457,11 @@ found:
 	pen(DOTTED);
 	if(grid[0]>0.)
 		for(lat=ceil(lolat/grid[0])*grid[0];
-		    lat<=hilat;lat+=grid[0]) 
+		    lat<=hilat;lat+=grid[0])
 			dogrid(lat,lat,lolon,hilon);
 	if(grid[1]>0.)
 		for(lon=ceil(lolon/grid[1])*grid[1];
-		    lon<=hilon;lon+=grid[1]) 
+		    lon<=hilon;lon+=grid[1])
 			dogrid(lolat,hilat,lon,lon);
 	comment("border","");
 	colorx(bordcolor);
@@ -520,7 +520,7 @@ normproj(double lat, double lon, double *x, double *y)
 	if(!inwindow(&geog))
 		return(-1);
 	i = fixproj(&geog,x,y);
-	if(rflag) 
+	if(rflag)
 		*x = -*x;
 /*
 	printp(&geog);
@@ -537,7 +537,7 @@ posproj(double lat, double lon, double *x, double *y)
 	latlon(lat,lon,&geog);
 	normalize(&geog);
 	i = fixproj(&geog,x,y);
-	if(rflag) 
+	if(rflag)
 		*x = -*x;
 	return(i);
 }
@@ -1167,7 +1167,7 @@ clipinit(void)
 		nvert = 4;
 		v[2] = v[1];
 		v[1].x=v[0].x, v[1].y=v[2].y, v[3].x=v[2].x, v[3].y=v[0].y;
-	}	
+	}
 	v[nvert] = v[0];
 	v[nvert+1] = v[1];
 	s = 0;
@@ -1208,7 +1208,7 @@ realcut(void)
 {
 	struct place g;
 	double lat;
-	
+
 	if(cut != picut)	/* punt on unusual cuts */
 		return;
 	for(lat=window[0]; lat<=window[1]; lat+=grid[2]) {
blob - c4c67134de7528f8ccc9e00a1bab45787da1c244
blob + 8a6cfccc33385a96de266089e3bbfafb5e021d43
--- src/cmd/map/route.c
+++ src/cmd/map/route.c
@@ -117,7 +117,7 @@ doroute(double dir, double an, double aw, double bn, d
 		dlat = fabs(an-bn);
 		printf("-o %.4f %.4f %.4f -w %.2f %.2f %.2f %.2f \n",
 		  pn,pw,theta, -0.3*cw1, .3*cw1, -.6*cw1, .6*cw1);
-		
+
 	} else {
 		cn1 = 0;
 		n = 1 + fabs(bw1-aw1)/.2;
blob - 11df34e31051127ecc860caeeeb079dce3e24498
blob + d7c6481d7bb4b7a817e17c5255af89e3f1530d1b
--- src/cmd/mk/env.c
+++ src/cmd/mk/env.c
@@ -142,7 +142,7 @@ buildenv(Job *j, int slot)
 	for(i = 0; *p; i++, p++){
 		if((j->r->attr&REGEXP) && j->match[i])
 			envupd(*p, newword(j->match[i]));
-		else 
+		else
 			envupd(*p, newword(""));
 	}
 	return envy;
blob - 30728197e7eea5b6506cf32a1441399f5d261588
blob + 537d2d75a5c2a73e072f2a0afdc07e5ef219e552
--- src/cmd/mk/rule.c
+++ src/cmd/mk/rule.c
@@ -76,7 +76,7 @@ dumpr(char *s, Rule *r)
 {
 	if(r == nil)
 		return;
-	Bprint(&bout, "%s: start=%ld shelltype=%s shellcmd=%s\n", 
+	Bprint(&bout, "%s: start=%ld shelltype=%s shellcmd=%s\n",
 		s, r, r->shellt->name, wtos(r->shellcmd, ' '));
 	for(; r; r = r->next){
 		Bprint(&bout, "\tRule %ld: %s[%d] attr=%x next=%ld chain=%ld alltarget='%s'",
blob - dd225c0d0be0936b6ded1823e79481ebe867d7e8
blob + 6f60cede03081982585aa5924cff978b73a37c0c
--- src/cmd/mk/run.c
+++ src/cmd/mk/run.c
@@ -29,7 +29,7 @@ run(Job *j)
 		for(jj = jobs; jj->next; jj = jj->next)
 			;
 		jj->next = j;
-	} else 
+	} else
 		jobs = j;
 	j->next = 0;
 	/* this code also in waitup after parse redirect */
blob - e25665141637d5fb2df92c167200f7946edb927c
blob + d8f205c8cee84c91a9e6a031cea000dfe12563f9
--- src/cmd/mk/sh.c
+++ src/cmd/mk/sh.c
@@ -203,4 +203,3 @@ Shell shshell = {
 	shcopyq,
 	shmatchname
 };
-
blob - 03a9d058d3eaa9f2055a10476521a55137916d8b
blob + f520b066c2e9c2be32ca0ac0f7f0fe44c44e5642
--- src/cmd/mk/sys.h
+++ src/cmd/mk/sys.h
@@ -2,4 +2,3 @@
 #include <libc.h>
 #include <bio.h>
 #include <regexp.h>
-
blob - c63d3cefd0246d4644ba8a9e2758eb349beea255
blob + 37f05b717f5f54e3cfbc4d5e9fe750352f0b2531
--- src/cmd/mk/unix.c
+++ src/cmd/mk/unix.c
@@ -23,7 +23,7 @@ readenv(void)
 	Word *w;
 
 	for(p = environ; *p; p++){
-/* rsc 5/5/2004 -- This misparses fn#cd={whatever} 
+/* rsc 5/5/2004 -- This misparses fn#cd={whatever}
 		s = shname(*p);
 		if(*s == '=') {
 			*s = 0;
@@ -111,7 +111,7 @@ shargv(Word *cmd, int extra, char ***pargv)
 	n = 0;
 	for(w=cmd; w; w=w->next)
 		n++;
-	
+
 	argv = Malloc((n+extra+1)*sizeof(argv[0]));
 	i = 0;
 	for(w=cmd; w; w=w->next)
@@ -119,7 +119,7 @@ shargv(Word *cmd, int extra, char ***pargv)
 	argv[n] = 0;
 	*pargv = argv;
 	return n;
-}	
+}
 
 int
 execsh(char *args, char *cmd, Bufblock *buf, Envy *e, Shell *sh, Word *shellcmd)
blob - f858a92afe8ef57202d4ae5bc9e04aee62d87623
blob + b6c0ab0f7702cf2bc44fc447b705f87724a1473d
--- src/cmd/mk/varsub.c
+++ src/cmd/mk/varsub.c
@@ -61,7 +61,7 @@ varmatch(char *name)
 {
 	Word *w;
 	Symtab *sym;
-	
+
 	sym = symlook(name, S_VAR, 0);
 	if(sym){
 			/* check for at least one non-NULL value */
@@ -107,7 +107,7 @@ expandvar(char **s)
 	}
 	*end = 0;
 	*s = end+1;
-	
+
 	sym = symlook(buf->start, S_VAR, 0);
 	if(sym == 0 || sym->u.ptr == 0)
 		w = newword(buf->start);
@@ -173,7 +173,7 @@ subsub(Word *v, char *s, char *end)
 				while(w->next)
 					w = w->next;
 			}
-			if(PERCENT(*cp) && nmid > 0){	
+			if(PERCENT(*cp) && nmid > 0){
 				if(w){
 					bufcpy(buf, w->s, strlen(w->s));
 					bufcpy(buf, enda, nmid);
@@ -205,7 +205,7 @@ subsub(Word *v, char *s, char *end)
 		}
 		if(w == 0)
 			h = w = newword(v->s);
-	
+
 		if(head == 0)
 			head = h;
 		else
blob - f94c4fd7960931595d31bbc412354485bf88f4ce
blob + e1e52a1c37c352b3e219549f20f6e727e7ee8ce6
--- src/cmd/mk/word.c
+++ src/cmd/mk/word.c
@@ -29,7 +29,7 @@ stow(char *s)
 			head = w = new;
 		while(w->next)
 			w = w->next;
-		
+
 	}
 	if (!head)
 		head = newword("");
blob - 54994cdd19bcfd600ffb8ae4c622ceb5b9149576
blob + a1d00dfba42899133626ce58b2ab21acb31507a7
--- src/cmd/mpm/range.h
+++ src/cmd/mpm/range.h
@@ -67,7 +67,7 @@ class range {
 class vboxrange : public range {
 	int	dv;		// inherited from slug
 	int	base;		// inherited from slug
-	int	brk;		// 0 => ok to break after, 1 => no break 
+	int	brk;		// 0 => ok to break after, 1 => no break
   public:
 	vboxrange(slug *p) : range(p) { dv = p->dv; base = p->base; brk = p->parm; }
 	void	dump() {
blob - 9dfd3b2a1b4f1cd07277ca9934312f01e54f2b3e
blob + 0f72b931dcd117a513b097e7c015bd55a87ecdc2
--- src/cmd/mpm/slug.h
+++ src/cmd/mpm/slug.h
@@ -32,7 +32,7 @@ enum parmtypes {
 	PL,	// distance of physical page bottom from page top (Page Length)
 	MF,	// minimum fullness required for padding
 	CT,	// tolerance for division into two columns
-	WARN,	// warnings to stderr?	
+	WARN,	// warnings to stderr?
 	DBG	// debugging flag
 };
 
blob - 823e204a640bbb716d3d5696450bcd11ed31b960
blob + ff01450ceca36fa465a0437199241e457be0b299
--- src/cmd/namespace.c
+++ src/cmd/namespace.c
@@ -30,4 +30,3 @@ main(int argc, char **argv)
 	print("%s\n", ns);
 	exits(0);
 }
-
blob - 60fd9402ff488b50bbc2a660a96eb7a66b7db3e8 (mode 755)
blob + 60fd9402ff488b50bbc2a660a96eb7a66b7db3e8 (mode 644)
blob - 8e1fd0ce9464896e62db2a0ad7d62e03bf3b32f1 (mode 755)
blob + 8e1fd0ce9464896e62db2a0ad7d62e03bf3b32f1 (mode 644)
blob - ca73184aab9594550df8ee8499bf3b8af4d6a211 (mode 755)
blob + 067ba4447c2662acad6f07478522af7d1ae63d7b (mode 644)
--- src/cmd/ndb/dblookup.c
+++ src/cmd/ndb/dblookup.c
@@ -463,13 +463,13 @@ soarr(Ndbtuple *entry, Ndbtuple *pair)
 		rp->rmb = dnlookup(mailbox, Cin, 1);
 	}
 
-	/*  hang dns slaves off of the soa.  this is 
+	/*  hang dns slaves off of the soa.  this is
 	 *  for managing the area.
 	 */
 	for(t = entry; t != nil; t = t->entry)
 		if(strcmp(t->attr, "dnsslave") == 0)
 			addserver(&rp->soa->slaves, t->val);
-			
+
 	return rp;
 }
 
@@ -647,11 +647,11 @@ db2cache(int doit)
 			unlock(&dblock);
 			return;
 		}
-	
+
 		/* forget our area definition */
 		freearea(&owned);
 		freearea(&delegated);
-	
+
 		/* reopen all the files (to get oldest for time stamp) */
 		for(ndb = db; ndb; ndb = ndb->next)
 			ndbreopen(ndb);
@@ -659,14 +659,14 @@ db2cache(int doit)
 		if(cachedb){
 			/* mark all db records as timed out */
 			dnagedb();
-	
+
 			/* read in new entries */
 			for(ndb = db; ndb; ndb = ndb->next)
 				dbfile2cache(ndb);
-	
+
 			/* mark as authentic anything in our domain */
 			dnauthdb();
-	
+
 			/* remove old entries */
 			dnageall(1);
 		} else {
@@ -697,7 +697,7 @@ lookupinfo(char *attr)
 
 	snprint(buf, sizeof buf, "%I", ipaddr);
 	a[0] = attr;
-	
+
 	lock(&dblock);
 	if(opendatabase() < 0){
 		unlock(&dblock);
blob - 8b874030d9b35daae17ca13237851a920ba37742 (mode 755)
blob + 5a37eefa951668bd59f0b3b1da27615405f8f123 (mode 644)
--- src/cmd/ndb/dn.c
+++ src/cmd/ndb/dn.c
@@ -67,7 +67,7 @@ char *rrtname[Tall+2] =
 	"cert",
 	nil,
 	nil,
-	
+
 /* 40 */	nil, nil, nil, nil, nil, nil, nil, nil,
 /* 48 */	nil, nil, nil, nil, nil, nil, nil, nil,
 /* 56 */	nil, nil, nil, nil, nil, nil, nil, nil,
@@ -94,7 +94,7 @@ char *rrtname[Tall+2] =
 /* 224 */	nil, nil, nil, nil, nil, nil, nil, nil,
 /* 232 */	nil, nil, nil, nil, nil, nil, nil, nil,
 /* 240 */	nil, nil, nil, nil, nil, nil, nil, nil,
-/* 248 */	nil, nil, nil, 
+/* 248 */	nil, nil, nil,
 
 	"ixfr",
 	"axfr",
@@ -1318,7 +1318,7 @@ randomize(RR *rp)
 		if(x->type != Ta && x->type != Tmx && x->type != Tns)
 			return rp;
 
-	base = rp; 
+	base = rp;
 
 	n = rand();
 	last = first = nil;
@@ -1564,7 +1564,7 @@ copyserverlist(Server *s)
 {
 	Server *ns;
 
-	
+
 	for(ns = nil; s != nil; s = s->next)
 		addserver(&ns, s->name);
 	return ns;
blob - 05c9d0043ccac7da209714661f23d5cf2446e805 (mode 755)
blob + bb4d050cb8c13bfc8850f77043b0592ec7c1cf11 (mode 644)
--- src/cmd/ndb/dnarea.c
+++ src/cmd/ndb/dnarea.c
@@ -96,7 +96,7 @@ refresh_areas(Area *s)
 {
 	Waitmsg *w;
 	char *argv[3];
-	
+
 	argv[0] = zonerefreshprogram;
 	argv[1] = "XXX";
 	argv[2] = nil;
@@ -115,4 +115,3 @@ refresh_areas(Area *s)
 		free(w);
 	}
 }
-
blob - 8e4b307565bcce7432fd1490439e54173ac9051b (mode 755)
blob + 8e4b307565bcce7432fd1490439e54173ac9051b (mode 644)
blob - 979abe4ebda01f13a56daabbfde8dcdbdb56cccc (mode 755)
blob + 366521b686443fcbd979031c1ae051de0a08a346 (mode 644)
--- src/cmd/ndb/dnresolve.c
+++ src/cmd/ndb/dnresolve.c
@@ -71,13 +71,13 @@ dnresolve(char *name, int class, int type, Request *re
 				rp = nil;
 				break;
 			}
-	
+
 			name = rp->host->name;
 			if(cn)
 				rrcat(cn, rp);
 			else
 				rrfreelist(rp);
-	
+
 			rp = dnresolve1(name, class, type, req, depth, recurse);
 		}
 	}
@@ -126,7 +126,7 @@ dnresolve1(char *name, int class, int type, Request *r
 	rrfreelist(rp);
 
 	/*
-	 * try the cache for a canonical name. if found punt 
+	 * try the cache for a canonical name. if found punt
 	 * since we'll find it during the canonical name search
 	 * in dnresolve().
 	 */
@@ -242,7 +242,7 @@ walkup(char *name)
 }
 
 /*
- *  Get a udpport for requests and replies. 
+ *  Get a udpport for requests and replies.
  */
 int
 udpport(void)
@@ -310,7 +310,7 @@ readreply(int fd, DN *dp, int type, ushort req,
 		len = udpreadtimeout(fd, (Udphdr*)ibuf, ibuf+Udphdrsize, Maxudpin, (endtime-now)*1000);
 		if(len < 0)
 			return -1;	/* timed out */
-		
+
 		/* convert into internal format  */
 		memset(mp, 0, sizeof(*mp));
 		err = convM2DNS(&ibuf[Udphdrsize], len, mp);
@@ -357,13 +357,13 @@ udpreadtimeout(int fd, Udphdr *h, void *data, int n, i
 {
 	fd_set rd;
 	struct timeval tv;
-	
+
 	FD_ZERO(&rd);
 	FD_SET(fd, &rd);
-	
+
 	tv.tv_sec = ms/1000;
 	tv.tv_usec = (ms%1000)*1000;
-	
+
 	if(select(fd+1, &rd, 0, 0, &tv) != 1)
 		return -1;
 	return udpread(fd, h, data, n);
@@ -512,7 +512,7 @@ cacheneg(DN *dp, int type, int rcode, RR *soarr)
 			soarr->next = nil;
 		}
 		soaowner = soarr->owner;
-	} else 
+	} else
 		soaowner = nil;
 
 	/* the attach can cause soarr to be freed so mine it now */
blob - 05a5dd45604f09101b241051aa6e045fc413291c (mode 755)
blob + cb3170529338cc65d956250ab577d4966e223ed7 (mode 644)
--- src/cmd/ndb/dns.c
+++ src/cmd/ndb/dns.c
@@ -170,7 +170,7 @@ threadmain(int argc, char *argv[])
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc)
 		usage();
 	if(serveudp && servetcp)
blob - 9825f0bd1734856c449a61f4244714228649f1d1 (mode 755)
blob + fbd114f3aaaa22734a37f5a0f6c61c41700ec5f8 (mode 644)
--- src/cmd/ndb/dns.h
+++ src/cmd/ndb/dns.h
@@ -26,7 +26,7 @@ enum
 	/* query types (all RR types are also queries) */
 	Tixfr=	251,	/* incremental zone transfer */
 	Taxfr=	252,	/* zone transfer */
-	Tmailb=	253,	/* { Tmb, Tmg, Tmr } */	
+	Tmailb=	253,	/* { Tmb, Tmg, Tmr } */
 	Tall=	255,	/* all records */
 
 	/* classes */
blob - 0818b85ff0d20ba48ee5628e7c6732d3f9620eb4 (mode 755)
blob + c3ad3e13ca3733f326c7f747d712198ea6a1e536 (mode 644)
--- src/cmd/ndb/dnsdebug.c
+++ src/cmd/ndb/dnsdebug.c
@@ -331,7 +331,7 @@ void
 preloadserveraddrs(void)
 {
 	RR *rp, **l, *first;
-	
+
 	l = &first;
 	for(rp = serveraddrs; rp != nil; rp = rp->next){
 		rrcopy(rp, l);
blob - 509734b033ce39c3cfd35da475d1ae237cd6a746 (mode 755)
blob + 660006bd79b3c8cd1b740fdf5540cc74c66ba147 (mode 644)
--- src/cmd/ndb/dnserver.c
+++ src/cmd/ndb/dnserver.c
@@ -81,7 +81,7 @@ dnserver(DNSmsg *reqp, DNSmsg *repp, Request *req)
 			nsdp = dnlookup(cp, repp->qd->owner->class, 0);
 			if(nsdp == 0)
 				continue;
-	
+
 			repp->ns = rrlookup(nsdp, Tns, OKneg);
 			if(repp->ns){
 				/* don't pass on anything we know is wrong */
@@ -91,7 +91,7 @@ dnserver(DNSmsg *reqp, DNSmsg *repp, Request *req)
 				}
 				break;
 			}
-	
+
 			repp->ns = dblookup(cp, repp->qd->owner->class, Tns, 0, 0);
 			if(repp->ns)
 				break;
blob - dc7ae06b4c64f0d988f162a1d90317f7ce3ec1f8 (mode 755)
blob + dc7ae06b4c64f0d988f162a1d90317f7ce3ec1f8 (mode 644)
blob - 3d4d1e901c596d8e8894c3274bc93af73642e557 (mode 755)
blob + 3d4d1e901c596d8e8894c3274bc93af73642e557 (mode 644)
blob - 13161548142617471439724ff69d5ba3cc4c9521
blob + 713331f463d4da45a8765dfbeabc6772d891ef6c
--- src/cmd/ndb/dntcpserver.c
+++ src/cmd/ndb/dntcpserver.c
@@ -269,7 +269,7 @@ static int
 tcpannounce(char *mntpt)
 {
 	int fd;
-	
+
 	USED(mntpt);
 	if((fd=announce(tcpaddr, adir)) < 0)
 		warning("announce %s: %r", tcpaddr);
blob - 9f84125cdde6d37e492f6c9df1637390b9e74e35 (mode 755)
blob + a84cd0505ecc426da803660516ebb769701588e6 (mode 644)
--- src/cmd/ndb/dnudpserver.c
+++ src/cmd/ndb/dnudpserver.c
@@ -206,4 +206,3 @@ dnudpserver(void *v)
 	for(i=0; i<Maxactive; i++)
 		proccreate(udpproc, (void*)(uintptr)fd, STACK);
 }
-
blob - 507bd7c7809b9dae8f87b92697855ff84637dd07
blob + ea334bf771b084dcba9367b10c81feda1a95e2b2
--- src/cmd/ndb/ndbmkhash.c
+++ src/cmd/ndb/ndbmkhash.c
@@ -68,7 +68,7 @@ main(int argc, char **argv)
 {
 	Ndbtuple *t, *nt;
 	int n;
-	Dir *d;	
+	Dir *d;
 	uchar buf[8];
 	char file[128];
 	int fd;
blob - 65bc04720bd103d653764dfa648aff0e1808d0b3
blob + 85b72b1ea02ab0be473616151f42d0cf14c9efd2
--- src/cmd/ndb/ndbquery.c
+++ src/cmd/ndb/ndbquery.c
@@ -67,7 +67,7 @@ main(int argc, char **argv)
 	default:
 		usage();
 	}
-	
+
 	db = ndbopen(dbfile);
 	if(db == 0){
 		fprint(2, "no db files\n");
blob - db344f975e5b8cee147fe46066816256cabeffaa
blob + 5d1274af547b38bcf9ef4aae06f6e9cfdd3f78d7
--- src/cmd/ndb/runproc.c
+++ src/cmd/ndb/runproc.c
@@ -34,4 +34,3 @@ runproc(char *file, char **v, int devnull)
 	}
 	return runprocfd(file, v, fd);
 }
-
blob - ddd39284c5d5293800df1d773b2b2133388d0a7f
blob + 0a6b2da891109d9ed9fc630245ddd5cf21f64e27
--- src/cmd/netfiles/acme.c
+++ src/cmd/netfiles/acme.c
@@ -153,7 +153,7 @@ int
 winopenfd(Win *w, char *name, int mode)
 {
 	char buf[100];
-	
+
 	snprint(buf, sizeof buf, "%d/%s", w->id, name);
 	return fsopenfd(acmefs, buf, mode);
 }
@@ -230,7 +230,7 @@ winreadaddr(Win *w, uint *q1)
 	char buf[40], *p;
 	uint q0;
 	int n;
-	
+
 	n = fspread(wfid(w, "addr"), buf, sizeof buf-1, 0);
 	if(n <= 0)
 		return -1;
@@ -258,7 +258,7 @@ fsreadm(CFid *fid)
 {
 	char *buf;
 	int n, tot, m;
-	
+
 	m = 128;
 	buf = emalloc(m+1);
 	tot = 0;
@@ -288,7 +288,7 @@ winindex(void)
 {
 	CFid *fid;
 	char *s;
-	
+
 	mountacme();
 	if((fid = fsopen(acmefs, "index", OREAD)) == nil)
 		return nil;
@@ -595,7 +595,7 @@ eventreader(void *v)
 	Event e[2];
 	Win *w;
 	int i;
-	
+
 	w = v;
 	i = 0;
 	for(;;){
@@ -623,7 +623,7 @@ wingetname(Win *w)
 {
 	int n;
 	char *p;
-	
+
 	n = winread(w, "tag", w->name, sizeof w->name-1);
 	if(n <= 0)
 		return nil;
@@ -633,4 +633,3 @@ wingetname(Win *w)
 		*p = 0;
 	return w->name;
 }
-
blob - 50997e97a728135b44bee4666742ccf1cf1eefc7
blob + c792a9c1e49b9d64007c948cb9915e177bc2e813
--- src/cmd/netfiles/acme.h
+++ src/cmd/netfiles/acme.h
@@ -31,7 +31,7 @@ struct Win
 	Channel *c;	/* chan(Event) */
 	Win *next;
 	Win *prev;
-	
+
 	/* events */
 	int nbuf;
 	char name[1024];
blob - 45e19416316cf9b6bf770002fc8af6b85de5a278
blob + baacb984f5d98e448f08e22aec8454bd9c23f6ff
--- src/cmd/netfiles/main.c
+++ src/cmd/netfiles/main.c
@@ -1,7 +1,7 @@
 /*
  * Remote file system editing client.
  * Only talks to acme - external programs do all the hard work.
- * 
+ *
  * If you add a plumbing rule:
 
 # /n/ paths go to simulator in acme
@@ -80,7 +80,7 @@ Arg*
 arg(char *file, char *addr, Channel *c)
 {
 	Arg *a;
-		
+
 	a = emalloc(sizeof *a);
 	a->file = estrdup(file);
 	a->addr = estrdup(addr);
@@ -92,7 +92,7 @@ Win*
 winbyid(int id)
 {
 	Win *w;
-	
+
 	for(w=windows; w; w=w->next)
 		if(w->id == id)
 			return w;
@@ -139,7 +139,7 @@ int
 lookup(char *s, char **list)
 {
 	int i;
-	
+
 	for(i=0; list[i]; i++)
 		if(strcmp(list[i], s) == 0)
 			return i;
@@ -174,7 +174,7 @@ char*
 expandarg(Win *w, Event *e)
 {
 	uint q0, q1;
-	
+
 	if(e->c2 == 'l')	/* in tag - no choice but to accept acme's expansion */
 		return estrdup(e->text);
 	winaddr(w, ",");
@@ -187,7 +187,7 @@ expandarg(Win *w, Event *e)
 	if(e->oq0 == e->oq1 && e->q0 != e->q1 && !isdot(w, e->q0, e->q1)){
 		winaddr(w, "#%ud+#1-/[^ \t\\n]*/,#%ud-#1+/[^ \t\\n]*/", e->q0, e->q1);
 		q0 = winreadaddr(w, &q1);
-		cprint("\tre-expand to %d-%d\n", q0, q1);	
+		cprint("\tre-expand to %d-%d\n", q0, q1);
 	}else
 		winaddr(w, "#%ud,#%ud", e->q0, e->q1);
 	return winmread(w, "xdata");
@@ -202,7 +202,7 @@ doplumb(void *vm)
 	char *addr;
 	Plumbmsg *m;
 	Win *w;
-	
+
 	m = vm;
 	if(m->ndata >= 1024){
 		fprint(2, "insanely long file name (%d bytes) in plumb message (%.32s...)\n",
@@ -210,7 +210,7 @@ doplumb(void *vm)
 		plumbfree(m);
 		return;
 	}
-	
+
 	addr = plumblookup(m->attr, "addr");
 	w = nametowin(m->data);
 	if(w == nil)
@@ -230,7 +230,7 @@ plumbthread(void *v)
 {
 	CFid *fid;
 	Plumbmsg *m;
-	
+
 	threadsetname("plumbthread");
 	fid = plumbopenfid("netfileedit", OREAD);
 	if(fid == nil){
@@ -249,7 +249,7 @@ int
 parsename(char *name, char **server, char **path)
 {
 	char *p, *nul;
-	
+
 	cleanname(name);
 	if(strncmp(name, "/n/", 3) != 0 && name[3] == 0)
 		return -1;
@@ -326,9 +326,9 @@ filethread(void *v)
 	winname(w, a->file);
 	winprint(w, "tag", "Get Put Look ");
 	c = wineventchan(w);
-	
+
 	goto caseGet;
-	
+
 	while((e=recvp(c)) != nil){
 		if(e->c1!='K')
 			dprint("acme %E\n", e);
@@ -352,7 +352,7 @@ filethread(void *v)
 					winaddr(w, ",");
 					winprint(w, "data", "[reading...]");
 					winaddr(w, ",");
-					cprint("9 netfileget %s%q %q\n", 
+					cprint("9 netfileget %s%q %q\n",
 						strcmp(type, "file") == 0 ? "" : "-d", server, path);
 					if(strcmp(type, "file")==0)
 						twait(pipetowin(w, "data", 2, "9 netfileget %q %q", server, path));
@@ -508,7 +508,7 @@ mkwin(char *name)
 	Arg *a;
 	Channel *c;
 	Win *w;
-	
+
 	c = chancreate(sizeof(void*), 0);
 	a = arg(name, nil, c);
 	threadcreate(filethread, a, STACK);
@@ -521,12 +521,12 @@ void
 loopthread(void *v)
 {
 	QLock lk;
-	
+
 	threadsetname("loopthread");
 	qlock(&lk);
 	qlock(&lk);
 }
-	
+
 void
 threadmain(int argc, char **argv)
 {
@@ -540,7 +540,7 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc)
 		usage();
 
@@ -551,10 +551,9 @@ threadmain(int argc, char **argv)
 	fmtinstall('E', eventfmt);
 	doquote = needsrcquote;
 	quotefmtinstall();
-	
+
 	twaitinit();
 	threadcreate(plumbthread, nil, STACK);
 	threadcreate(loopthread, nil, STACK);
 	threadexits(nil);
 }
-
blob - 3434ebc844d9a890fe7c282bd5d3630eb2f44777
blob + 0d6032978204af401a1f270ed433e29c9acc1df5
--- src/cmd/netfiles/wait.c
+++ src/cmd/netfiles/wait.c
@@ -61,7 +61,7 @@ waitthread(void *v)
 				wq[nwq++] = w;
 			}
 			break;
-		
+
 		case 1:
 			dprint("wait: req for pid %d chan %p\n", r.pid, r.c);
 			for(i=0; i<nwq; i++){
@@ -89,7 +89,7 @@ twaitfor(int pid)
 {
 	Waitreq r;
 	Waitmsg *w;
-	
+
 	r.pid = pid;
 	r.c = chancreate(sizeof(Waitmsg*), 1);
 	send(twaitchan, &r);
@@ -103,7 +103,7 @@ twait(int pid)
 {
 	int x;
 	Waitmsg *w;
-	
+
 	w = twaitfor(pid);
 	x = w->msg[0] != 0 ? -1 : 0;
 	free(w);
@@ -117,4 +117,3 @@ twaitinit(void)
 	twaitchan = chancreate(sizeof(Waitreq), 10);
 	threadcreate(waitthread, nil, 128*1024);
 }
-
blob - 5110840f7e52e3395b5db5170b71510f80e05499
blob + a1083fc77eb4c4c9292c94e6dcf99032329a4bf8
--- src/cmd/page/cache.c
+++ src/cmd/page/cache.c
@@ -29,7 +29,7 @@ questionmark(void)
 	static Image *im;
 
 	if(im)
-		return im;	
+		return im;
 	im = xallocimage(display, Rect(0,0,50,50), GREY1, 1, DBlack);
 	if(im == nil)
 		return nil;
@@ -165,7 +165,7 @@ static void
 raproc(void *a)
 {
 	Cached *c;
-	
+
 	c = a;
 	lockdisplay(display);
 	/*
@@ -187,7 +187,7 @@ cachedpage(Document *doc, int angle, int page)
 	Cached *c;
 	Image *im;
 	int ra;
-	
+
 	if(doc->npage < 1)
 		return display->white;
 
blob - 22e08665fc1a4fa3b77ea20b7d02783fb859aab5
blob + 793d75a41b8ca65b9d139fde2c0a9f2117d98828
--- src/cmd/page/gfx.c
+++ src/cmd/page/gfx.c
@@ -77,7 +77,7 @@ initgfx(Biobuf *b, int argc, char **argv, uchar *buf, 
 	doc = emalloc(sizeof(*doc));
 	gfx = emalloc(sizeof(*gfx));
 	gfx->g = nil;
-	
+
 	doc->npage = 0;
 	doc->drawpage = gfxdrawpage;
 	doc->pagename = gfxpagename;
@@ -141,7 +141,7 @@ genaddpage(Document *doc, char *name, uchar *buf, int 
 	memset(g, 0, sizeof *g);
 	if(memcmp(buf, "GIF", 3) == 0)
 		g->type = Igif;
-	else if(memcmp(buf, "\111\111\052\000", 4) == 0) 
+	else if(memcmp(buf, "\111\111\052\000", 4) == 0)
 		g->type = Itiff;
 	else if(memcmp(buf, "\115\115\000\052", 4) == 0)
 		g->type = Itiff;
@@ -186,7 +186,7 @@ genaddpage(Document *doc, char *name, uchar *buf, int 
 	return doc->npage++;
 }
 
-static int 
+static int
 addpage(Document *doc, char *name)
 {
 	return genaddpage(doc, name, nil, 0);
@@ -257,7 +257,7 @@ convert(Graphic *g)
 		if(fd < 0) {
 			fprint(2, "cannot spawn converter: %r\n");
 			wexits("convert");
-		}	
+		}
 	}
 
 	im = readimage(display, fd, 0);
blob - 5c493b35583d44c8301a1aa3c3b848c6aef2857e
blob + 1d60212a2370e740b669006eaed6d942e372fad2
--- src/cmd/page/gs.c
+++ src/cmd/page/gs.c
@@ -1,8 +1,8 @@
 /*
  * gs interface for page.
  * ps.c and pdf.c both use these routines.
- * a caveat: if you run more than one gs, only the last 
- * one gets killed by killgs 
+ * a caveat: if you run more than one gs, only the last
+ * one gets killed by killgs
  */
 #include <u.h>
 #include <libc.h>
@@ -88,7 +88,7 @@ spawnmonitor(void *cp)
 	threadexits(0);
 }
 
-int 
+int
 spawngs(GSInfo *g, char *safer)
 {
 	Channel *cp;
blob - 96563c3d1663fb7ff179681f39344fa4df6c8533
blob + 00d065ad8d6dda3d45c3a4131d9dc68805e60c49
--- src/cmd/page/nrotate.c
+++ src/cmd/page/nrotate.c
@@ -6,7 +6,7 @@
  * The basic concept is that you can invert an array by
  * inverting the top half, inverting the bottom half, and
  * then swapping them.
- * 
+ *
  * This is usually overkill, but it speeds up slow remote
  * connections quite a bit.
  */
@@ -132,7 +132,7 @@ shuffle(Image *img, Image *tmp, int axis, int imgdim, 
 
 /*
  * Halve the grating period in the mask.
- * The grating currently looks like 
+ * The grating currently looks like
  * ####____####____####____####____
  * where #### is opacity.
  *
@@ -140,7 +140,7 @@ shuffle(Image *img, Image *tmp, int axis, int imgdim, 
  * ##__##__##__##__##__##__##__##__
  * which is achieved by shifting the mask
  * and drawing on itself through itself.
- * Draw doesn't actually allow this, so 
+ * Draw doesn't actually allow this, so
  * we have to copy it first.
  *
  *     ####____####____####____####____ (dst)
@@ -229,7 +229,7 @@ swapadjacent(Image *img, Image *tmp, int axis, int img
 	/*
 	 * r0 is the lower rectangle, while r1 is the upper one.
 	 */
-	draw(tmp, tmp->r, img, nil, 
+	draw(tmp, tmp->r, img, nil,
 }
 
 void
@@ -271,8 +271,7 @@ writefile(char *name, Image *im, int gran)
 	snprint(buf, sizeof buf, "%d%s%d", c++, name, gran);
 	fd = create(buf, OWRITE, 0666);
 	if(fd < 0)
-		return;	
+		return;
 	writeimage(fd, im, 0);
 	close(fd);
 }
-
blob - 041df26bb97440cf74502518d206b91ebdc78a7f
blob + 01ad17ff946e7b36da18598cfb24cd3e682490ce
--- src/cmd/page/page.c
+++ src/cmd/page/page.c
@@ -41,7 +41,7 @@ watcherproc(void *v)
 	for(;;)
 		sleep(1000);
 }
-	
+
 int
 bell(void *u, char *x)
 {
@@ -81,7 +81,7 @@ afmt(Fmt *fmt)
 void
 usage(void)
 {
-	fprint(2, "usage: page [-biRrwf] [-p ppi] file...\n"); 
+	fprint(2, "usage: page [-biRrwf] [-p ppi] file...\n");
 	wexits("usage");
 }
 
@@ -145,7 +145,7 @@ threadmain(int argc, char **argv)
 		break;
 	case 'f':
 		fitwin = 1;
-		break; 
+		break;
 	default:
 		usage();
 	}ARGEND;
@@ -184,13 +184,13 @@ threadmain(int argc, char **argv)
 			fprint(2, "page: short read reading %s\n", argv[0]);
 			wexits("read");
 		}
-		
+
 		atexit(cleanup);
 	}else if(argc != 0){
 		if(!(b = Bopen(argv[0], OREAD))) {
 			fprint(2, "page: cannot open \"%s\"\n", argv[0]);
 			wexits("open");
-		}	
+		}
 
 		if(Bread(b, buf, Ninput) != Ninput) {
 			fprint(2, "page: short read reading %s\n", argv[0]);
@@ -242,7 +242,7 @@ threadmain(int argc, char **argv)
 		wexits("initdraw");
 	}
 	display->locking = 1;
-	
+
 	truecolor = screen->depth > 8;
 	viewer(doc);
 	wexits(0);
blob - 2de67bc7a1a14767b48d97dd02172df6e38bac04
blob + 89df6c5ef67dfb9e70897c07a75f42ce52f4518b
--- src/cmd/page/pdf.c
+++ src/cmd/page/pdf.c
@@ -1,6 +1,6 @@
 /*
  * pdf.c
- * 
+ *
  * pdf file support for page
  */
 
@@ -15,7 +15,7 @@
 static Image*	pdfdrawpage(Document *d, int page);
 static char*	pdfpagename(Document*, int);
 
-char *pdfprolog = 
+char *pdfprolog =
 #include "pdfprolog.c"
 	;
 
@@ -25,7 +25,7 @@ pdfbbox(GSInfo *gs)
 	char *p;
 	char *f[4];
 	Rectangle r;
-	
+
 	r = Rect(0,0,0,0);
 	waitgs(gs);
 	gscmd(gs, "/CropBox knownoget {} {[0 0 0 0]} ifelse PAGE==\n");
@@ -152,7 +152,7 @@ static char*
 pdfpagename(Document *d, int page)
 {
 	static char str[15];
-	
+
 	USED(d);
 	sprint(str, "p %d", page+1);
 	return str;
blob - 846895718caafaa40d16309961cc1b0884793743
blob + eb09cc8f89b45a5bab0ee62425d8a40ce303770a
--- src/cmd/page/ps.c
+++ src/cmd/page/ps.c
@@ -1,6 +1,6 @@
 /*
  * ps.c
- * 
+ *
  * provide postscript file reading support for page
  */
 
@@ -245,10 +245,10 @@ Keepreading:
 		if(!prefix(p, "%%Page:"))
 			continue;
 
-		/* 
+		/*
 		 * figure out of the %%Page: line contains a page number
 		 * or some other page description to use in the menu bar.
-		 * 
+		 *
 		 * lines look like %%Page: x y or %%Page: x
 		 * we prefer just x, and will generate our
 		 * own if necessary.
blob - 3ac83a1fbb8c976c508c38b665e224f4bd32871a
blob + 2c6ea520fcbcb58f74b7dc3ab8c5d0f8e505e445
--- src/cmd/page/rotate.c
+++ src/cmd/page/rotate.c
@@ -1,12 +1,12 @@
 /*
  * rotate an image 180° in O(log Dx + log Dy) /dev/draw writes,
  * using an extra buffer same size as the image.
- * 
+ *
  * the basic concept is that you can invert an array by inverting
  * the top half, inverting the bottom half, and then swapping them.
  * the code does this slightly backwards to ensure O(log n) runtime.
  * (If you do it wrong, you can get O(log² n) runtime.)
- * 
+ *
  * This is usually overkill, but it speeds up slow remote
  * connections quite a bit.
  */
@@ -37,7 +37,7 @@ writefile(char *name, Image *im, int gran)
 	snprint(buf, sizeof buf, "%d%s%d", c++, name, gran);
 	fd = create(buf, OWRITE, 0666);
 	if(fd < 0)
-		return;	
+		return;
 	writeimage(fd, im, 0);
 	close(fd);
 }
@@ -109,7 +109,7 @@ interlace(Image *im, Image *tmp, int axis, int n, Imag
 
 /*
  * Halve the grating period in the mask.
- * The grating currently looks like 
+ * The grating currently looks like
  * ####____####____####____####____
  * where #### is opacity.
  *
@@ -117,7 +117,7 @@ interlace(Image *im, Image *tmp, int axis, int n, Imag
  * ##__##__##__##__##__##__##__##__
  * which is achieved by shifting the mask
  * and drawing on itself through itself.
- * Draw doesn't actually allow this, so 
+ * Draw doesn't actually allow this, so
  * we have to copy it first.
  *
  *     ####____####____####____####____ (dst)
@@ -151,7 +151,7 @@ shuffle(Image *im, Image *tmp, int axis, int n, Image 
 
 	interlace(im, tmp, axis, nn, mask, gran);
 //	writefile("interlace", im, gran);
-	
+
 	gran = nextmask(mask, axis, gran);
 	shuffle(im, tmp, axis, n, mask, gran, nn);
 //	writefile("shuffle", im, gran);
@@ -288,7 +288,7 @@ fac(int L)
 	return f;
 }
 
-/* 
+/*
  * i0(x) is the modified Bessel function, Σ (x/2)^2L / (L!)²
  * There are faster ways to calculate this, but we precompute
  * into a table so let's keep it simple.
blob - f10ef6db3a681a0a9048b1931c4496d7cb650777
blob + 3b4655d1fc3b8bb48222bcde6d59bf4f9e10c701
--- src/cmd/page/util.c
+++ src/cmd/page/util.c
@@ -50,7 +50,7 @@ spooltodisk(uchar *ibuf, int in, char **name)
 {
 	uchar buf[8192];
 	int fd, n;
-	
+
 	strcpy(tempfile, "/tmp/pagespoolXXXXXXXXX");
 	fd = opentemp(tempfile, ORDWR);
 	if(name)
@@ -94,7 +94,7 @@ _stdinpipe(void *a)
 	arg = a;
 
 	if(pipe(p) < 0){
-		fprint(2, "pipe fails: %r\n");	
+		fprint(2, "pipe fails: %r\n");
 		wexits("pipe");
 	}
 
@@ -103,7 +103,7 @@ _stdinpipe(void *a)
 	write(p[1], arg->ibuf, arg->in);
 	while((n = read(stdinfd, buf, sizeof buf)) > 0)
 		write(p[1], buf, n);
-	
+
 	close(p[1]);
 	threadexits(0);
 }
blob - 315a22a80c4196cd826f453643f9259db2556a63
blob + 2696f01fb8f81adb56ea3d2195f2b4ab0ad6fec4
--- src/cmd/page/view.c
+++ src/cmd/page/view.c
@@ -33,25 +33,25 @@ void plumbproc(void*);
 
 Cursor reading={
 	{-1, -1},
-	{0xff, 0x80, 0xff, 0x80, 0xff, 0x00, 0xfe, 0x00, 
-	 0xff, 0x00, 0xff, 0x80, 0xff, 0xc0, 0xef, 0xe0, 
-	 0xc7, 0xf0, 0x03, 0xf0, 0x01, 0xe0, 0x00, 0xc0, 
+	{0xff, 0x80, 0xff, 0x80, 0xff, 0x00, 0xfe, 0x00,
+	 0xff, 0x00, 0xff, 0x80, 0xff, 0xc0, 0xef, 0xe0,
+	 0xc7, 0xf0, 0x03, 0xf0, 0x01, 0xe0, 0x00, 0xc0,
 	 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, },
-	{0x00, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x7c, 0x00, 
-	 0x7e, 0x00, 0x7f, 0x00, 0x6f, 0x80, 0x47, 0xc0, 
-	 0x03, 0xe0, 0x01, 0xf0, 0x00, 0xe0, 0x00, 0x40, 
+	{0x00, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x7c, 0x00,
+	 0x7e, 0x00, 0x7f, 0x00, 0x6f, 0x80, 0x47, 0xc0,
+	 0x03, 0xe0, 0x01, 0xf0, 0x00, 0xe0, 0x00, 0x40,
 	 0x00, 0x00, 0x01, 0xb6, 0x01, 0xb6, 0x00, 0x00, }
 };
 
 Cursor query = {
 	{-7,-7},
-	{0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 
-	 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8, 
-	 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0, 
+	{0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
+	 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8,
+	 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0,
 	 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, },
-	{0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c, 
-	 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0, 
-	 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80, 
+	{0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c,
+	 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0,
+	 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80,
 	 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
 };
 
@@ -79,13 +79,13 @@ unhide(void)
 	USED(nil);
 }
 
-int 
+int
 max(int a, int b)
 {
 	return a > b ? a : b;
 }
 
-int 
+int
 min(int a, int b)
 {
 	return a < b ? a : b;
@@ -130,7 +130,7 @@ showpage(int page, Menu *m)
 		m->lasthit = 0;	/* this page */
 	else
 		m->lasthit = reverse ? doc->npage-1-page : page;
-	
+
 	setcursor(mc, &reading);
 	delayfreeimage(nil);
 	im = cachedpage(doc, angle, page);
@@ -178,7 +178,7 @@ writebitmap(void)
 			q = basename;
 		if(p = strchr(q, '.'))
 			*p = 0;
-		
+
 		memset(name, 0, sizeof name);
 		snprint(name, sizeof(name)-1, "%s.%d.bit", q, page+1);
 		if(access(name, 0) >= 0) {
@@ -241,7 +241,7 @@ enum{
 	Empty3,
 	Exit,
 };
- 
+
 void
 viewer(Document *dd)
 {
@@ -269,13 +269,13 @@ viewer(Document *dd)
  		"next",
  		"prev",
 		"zerox",
- 		"", 
+ 		"",
  		"reverse",
  		"discard",
  		"write",
- 		"", 
- 		"quit", 
- 		0 
+ 		"",
+ 		"quit",
+ 		0
  	};
 	char *s;
 	enum {
@@ -287,7 +287,7 @@ viewer(Document *dd)
 	};
 	Alt alts[CN+1];
 	Plumbmsg *pm;
-	
+
 	cp = chancreate(sizeof pm, 0);
 	assert(cp);
 
@@ -483,7 +483,7 @@ viewer(Document *dd)
 				setcursor(mc, &query);
 				sleep(1000);
 				setcursor(mc, nil);
-				break;	
+				break;
 			}
 			break;
 
@@ -494,7 +494,7 @@ viewer(Document *dd)
 				xy0 = oxy;
 				do {
 					dxy = subpt(m.xy, oxy);
-					oxy = m.xy;	
+					oxy = m.xy;
 					translate(dxy);
 					recv(mc->c, &m);
 				} while(m.buttons == Left);
@@ -503,7 +503,7 @@ viewer(Document *dd)
 					translate(dxy);
 				}
 				break;
-	
+
 			case Middle:
 				if(doc->npage == 0)
 					break;
@@ -524,7 +524,7 @@ viewer(Document *dd)
 
 					if((page >= doc->npage) && !doc->fwdonly)
 						return;
-	
+
 					showpage(page, &menu);
 					nxt = 0;
 					break;
@@ -540,7 +540,7 @@ viewer(Document *dd)
 
 					if((page >= doc->npage) && !doc->fwdonly && !reverse)
 						return;
-	
+
 					showpage(page, &menu);
 					nxt = 0;
 					break;
@@ -565,7 +565,7 @@ viewer(Document *dd)
 							showpage(page, &menu);
 						}
 						break;
-					}				
+					}
 					else{ 	/* image */
 						double delta;
 						Rectangle r;
@@ -581,8 +581,8 @@ viewer(Document *dd)
 							delta = (double)Dy(im->r)/(double)Dy(r);
 
 						setcursor(mc, &reading);
-						tmp = xallocimage(display, 
-								Rect(0, 0, (int)((double)Dx(im->r)*delta), (int)((double)Dy(im->r)*delta)), 
+						tmp = xallocimage(display,
+								Rect(0, 0, (int)((double)Dx(im->r)*delta), (int)((double)Dy(im->r)*delta)),
 								im->chan, 0, DBlack);
 						if(tmp == nil) {
 							fprint(2, "out of memory during zoom: %r\n");
@@ -639,7 +639,7 @@ viewer(Document *dd)
 						break;
 					reverse = !reverse;
 					menu.lasthit = doc->npage-1-menu.lasthit;
-	
+
 					if(page == 0 || page == doc->npage-1) {
 						page = doc->npage-1-page;
 						showpage(page, &menu);
@@ -672,10 +672,10 @@ viewer(Document *dd)
 				case Empty3:
 					break;
 
-				}; 
+				};
 
-	
-	
+
+
 			case Right:
 				if(doc->npage == 0)
 					break;
@@ -684,7 +684,7 @@ viewer(Document *dd)
 				n = menuhit(RMenu, mc, &menu, nil);
 				if(n == -1)
 					break;
-	
+
 				if(doc->fwdonly) {
 					switch(n){
 					case 0:	/* this page */
@@ -697,12 +697,12 @@ viewer(Document *dd)
 					}
 					break;
 				}
-	
+
 				if(n == doc->npage)
 					return;
 				else
 					page = reverse ? doc->npage-1-n : n;
-	
+
 				if(oldpage != page)
 					showpage(page, &menu);
 				nxt = 0;
@@ -753,7 +753,7 @@ Image *gray;
  * mp and sp get aligned with bot.min.
  */
 static void
-gendrawdiff(Image *dst, Rectangle bot, Rectangle top, 
+gendrawdiff(Image *dst, Rectangle bot, Rectangle top,
 	Image *src, Point sp, Image *mask, Point mp, int op)
 {
 	Rectangle r;
@@ -890,7 +890,7 @@ redraw(Image *screen)
 		}
 	}
 	border(screen, r, -4000, gray, ZP);
-//	flushimage(display, 0);	
+//	flushimage(display, 0);
 }
 
 /* clip p to be in r */
@@ -911,7 +911,7 @@ pclip(Point p, Rectangle r)
 }
 
 /*
- * resize is perhaps a misnomer. 
+ * resize is perhaps a misnomer.
  * this really just grows the window to be at least dx across
  * and dy high.  if the window hits the bottom or right edge,
  * it is backed up until it hits the top or left edge.
blob - 6645820c6bc5d57e0e27f27c31b47615804d0b21
blob + 6c84f2fb82806eee1af8a396667a8cd26ba9fa3d
--- src/cmd/paint/eenter.c
+++ src/cmd/paint/eenter.c
@@ -255,4 +255,3 @@ nodraw:
 
 	return n;
 }
-
blob - 7dce3710cad3c4d09d6d4df54e43ac752542abff
blob + e7f502cf7b81ab1c6045d6e674bf64072fcdec9d
--- src/cmd/paint/paint.c
+++ src/cmd/paint/paint.c
@@ -97,7 +97,7 @@ strokedraw(Image *dst, Rectangle r, Image *ink, int br
  * mp and sp get aligned with bot.min.
  */
 static void
-gendrawdiff(Image *dst, Rectangle bot, Rectangle top, 
+gendrawdiff(Image *dst, Rectangle bot, Rectangle top,
 	Image *src, Point sp, Image *mask, Point mp, int op)
 {
 	Rectangle r;
@@ -482,7 +482,7 @@ center(void)
 {
 	cpos = ZP;
 	if(canvas)
-		cpos = addpt(canvas->r.min, 
+		cpos = addpt(canvas->r.min,
 			divpt(subpt(canvas->r.max, canvas->r.min), 2));
 	spos = addpt(screen->r.min,
 		divpt(subpt(screen->r.max, screen->r.min), 2));
@@ -633,7 +633,7 @@ main(int argc, char *argv[])
 	if(argc == 1)
 		filename = strdup(argv[0]);
 	else if(argc != 0)
-		usage();	
+		usage();
 
 	if(initdraw(0, 0, "paint") < 0)
 		sysfatal("initdraw: %r");
blob - 2e859f84874ca7ed564474e690df7a9734ecabba
blob + f4105bf3401a0688f086488b7ea3ab8b11730680
--- src/cmd/pbd.c
+++ src/cmd/pbd.c
@@ -16,4 +16,4 @@ main(void)
 	}
 	write(1, p, strlen(p));
 	exits(0);
-}	
+}
blob - bec41e47a7d930ec79bd12cdedfc421b2e876bd4
blob + 4cb16957be7b3e0785ebfd741fc366f7b0058aaf
--- src/cmd/pic/arcgen.c
+++ src/cmd/pic/arcgen.c
@@ -221,4 +221,3 @@ quadrant(double x, double y)
 	else if( x> 0.0 && y<=0.0) return(4);
 	else			   return 0;	/* shut up lint */
 }
-
blob - e0db5fc6c5502b902f5c259e9aafdbadcaa19a1f
blob + bc7e933515ecee88984552ec7b149b24c3f2025d
--- src/cmd/pic/linegen.c
+++ src/cmd/pic/linegen.c
@@ -225,7 +225,7 @@ obj *linegen(int type)
 			extreme(ex, ey);
 			nx = xi; ny = yi;
 		}
-			
+
 	}
 	p->o_ddval = ddval;
 	if (dbg) {
blob - e888fafc827612055d05f390f5eb05f21508489e
blob + 1e2db1b5218c4bf2d0dab056e2cd012c1833f4c2
--- src/cmd/pic/misc.c
+++ src/cmd/pic/misc.c
@@ -34,7 +34,7 @@ curdir(void)	/* convert current dir (hvmode) to RIGHT,
 	return 0;
 }
 
-double 
+double
 getcomp(obj *p, int t)	/* return component of a position */
 {
 	switch (t) {
blob - 53337117c8f2d28deb1d827ed967ffe35a10c23a
blob + d4b6699fe1e6619b5c39792d1ad6d9673b534b93
--- src/cmd/plot/libplot/circ.c
+++ src/cmd/plot/libplot/circ.c
@@ -4,7 +4,7 @@ void circ(double xc, double yc, double r){
 	int rad;
 	p.x=SCX(xc);
 	p.y=SCY(yc);
-	if (r < 0) 
+	if (r < 0)
 		rad=SCR(-r);
 	else
 		rad=SCR(r);
blob - 47b39012b60ac3c51dd4a663cf63207e9239cab8
blob + 6255efa5ff254debe6756317d804623800ee1cc4
--- src/cmd/plot/libplot/disk.c
+++ src/cmd/plot/libplot/disk.c
@@ -4,7 +4,7 @@ void plotdisc(double xc, double yc, double r){
 	int rad;
 	p.x=SCX(xc);
 	p.y=SCY(yc);
-	if (r < 0) 
+	if (r < 0)
 		rad=SCR(-r);
 	else
 		rad=SCR(r);
blob - 4e60260b6e76a8a8697d0d9371eb17644a66e278
blob + 11cdcfcb68c3944f578563e6a85e6f41e34d579e
--- src/cmd/plot/libplot/move.c
+++ src/cmd/plot/libplot/move.c
@@ -1,5 +1,5 @@
 #include "mplot.h"
 void move(double xx, double yy){
-	e1->copyx = xx;	
+	e1->copyx = xx;
 	e1->copyy = yy;
 }
blob - 212b9c973beb37a1b07f37ee2fb9852b2dc570ef
blob + d8b5ffb20a4ac7fa57ec848636546ab70e0d5349
--- src/cmd/plot/libplot/parabola.c
+++ src/cmd/plot/libplot/parabola.c
@@ -5,13 +5,13 @@ void parabola(double x0, double y0, double x1, double 
 	double	dt, d2, d1;
 	d1 = sqrt((xb - x0) * (xb - x0) + (yb - y0) * (yb - y0));
 	d2 = sqrt((xb - x1) * (xb - x1) + (yb - y1) * (yb - y1));
-	if (d1 <= e1->quantum || d2 <= e1->quantum) { 
-		plotline(x0, y0, x1, y1); 
-		return; 
+	if (d1 <= e1->quantum || d2 <= e1->quantum) {
+		plotline(x0, y0, x1, y1);
+		return;
 	}
-	c0x = x0 + x1 - 2. * xb; 
+	c0x = x0 + x1 - 2. * xb;
 	c1x = 2. * (xb - x0);
-	c0y = y0 + y1 - 2. * yb; 
+	c0y = y0 + y1 - 2. * yb;
 	c1y = 2. * (yb - y0);
 	move(x0, y0);
 	dt = e1->quantum / d1;
blob - 9fb8863d28ca60f812462d1a08182a19f59f2910
blob + 993a7b204d5cac469ed1d1fc1c24d43c2c5d30fa
--- src/cmd/plot/libplot/ppause.c
+++ src/cmd/plot/libplot/ppause.c
@@ -1,7 +1,7 @@
 #include "mplot.h"
-void ppause(void){ 
-	char	aa[4]; 
-	fflush(stdout); 
-	read(0, aa, 4);  
-	erase(); 
+void ppause(void){
+	char	aa[4];
+	fflush(stdout);
+	read(0, aa, 4);
+	erase();
 }
blob - 9c8ccf158dcde9e08e1bc4c4034a0b8b47b791ce
blob + c0c8c6b3a12096e4491b51411bf4967a368c0902
--- src/cmd/plot/libplot/rarc.c
+++ src/cmd/plot/libplot/rarc.c
@@ -12,31 +12,31 @@ void rarc(double x1, double y1, double x2, double y2, 
 	dx = x1 - xc;
 	dy = y1 - yc;
 	rd = sqrt(dx * dx + dy * dy);
-	if (rd / e1->quantum < 1.0) { 
-		move(xc, yc); 
-		vec(xc, yc); 
+	if (rd / e1->quantum < 1.0) {
+		move(xc, yc);
+		vec(xc, yc);
 		return;
 	}
 	dph = acos(1.0 - (e1->quantum / rd));
-	if (dph > PI4) 
+	if (dph > PI4)
 		dph = PI4;
 	ph=atan2((y2-yc),(x2 - xc)) - atan2(dy, dx);
-	if (ph < 0) 
-		ph += 6.2832; 
-	if (rr < 0) 
+	if (ph < 0)
+		ph += 6.2832;
+	if (rr < 0)
 		ph = 6.2832 - ph;
-	if (ph < dph) 
+	if (ph < dph)
 		plotline(x1, y1, x2, y2);
 	else {
-		n = ph / dph; 
-		a = cos(dph); 
-		b = sin(dph); 
-		if (rr < 0) 
+		n = ph / dph;
+		a = cos(dph);
+		b = sin(dph);
+		if (rr < 0)
 			b = -b;
 		move(x1, y1);
 		while ((n--) >= 0) {
-			xnext = dx * a - dy * b; 
-			dy = dx * b + dy * a; 
+			xnext = dx * a - dy * b;
+			dy = dx * b + dy * a;
 			dx = xnext;
 			vec(dx + xc, dy + yc);
 		}
blob - e3dc4058f2b4e2a84cda8bfa7a35d4ba2def2c0f
blob + 0f12b63617e0561d9586afcc73e772f8802e0fda
--- src/cmd/plot/libplot/save.c
+++ src/cmd/plot/libplot/save.c
@@ -1,5 +1,5 @@
 #include "mplot.h"
-void save(void){ 
-	sscpy(e1, e1 + 1); 
-	e1++; 
+void save(void){
+	sscpy(e1, e1 + 1);
+	e1++;
 }
blob - 8cfa83d7a0c93a5be543aee2815fdf2868995c47
blob + 6001bd726f4f785f363c4cb5f12c1e3f42a1ecfa
--- src/cmd/plot/libplot/spline.c
+++ src/cmd/plot/libplot/spline.c
@@ -10,25 +10,25 @@ void splin(int mode, int num[], double *ff[]){
 	np = num;
 	fp = ff;
 	while((n = *np++)){
-		xp = *fp++; 
-		yp = xp + 1; 
-		xp0 = xp; 
+		xp = *fp++;
+		yp = xp + 1;
+		xp0 = xp;
 		yp0 = yp;
-		xpe = xp0 + 2 * (n - 1); 
+		xpe = xp0 + 2 * (n - 1);
 		ype = yp0 + 2 * (n - 1);
-		if (n < 3) { 
-			plotline(*xp, *yp, *(xp + 2), *(yp + 2)); 
+		if (n < 3) {
+			plotline(*xp, *yp, *(xp + 2), *(yp + 2));
 			continue;
 		}
 		if (mode == 4) {	/*closed curve*/
-			xa = 0.5 * (*xpe + *(xpe - 2)); 
+			xa = 0.5 * (*xpe + *(xpe - 2));
 			xc = 0.5 * (*xpe + *xp0);
-			ya = 0.5 * (*ype + *(ype - 2)); 
+			ya = 0.5 * (*ype + *(ype - 2));
 			yc = 0.5 * (*ype + *yp0);
 			parabola(xa, ya, xc, yc, *xpe, *ype);
-			xa = 0.5 * (*xpe + *xp0); 
+			xa = 0.5 * (*xpe + *xp0);
 			xc = 0.5 * (*(xp0 + 2) + *xp0);
-			ya = 0.5 * (*ype + *yp0); 
+			ya = 0.5 * (*ype + *yp0);
 			yc = 0.5 * (*(yp0 + 2) + *yp0);
 			parabola(xa, ya, xc, yc, *xp0, *yp0);
 		}
@@ -36,12 +36,12 @@ void splin(int mode, int num[], double *ff[]){
 			if (mode % 2) /*odd mode makes first point double*/
 				plotline(*xp0,*yp0,0.5*(*xp0+*(xp0+2)),0.5*(*yp0+*(yp0+2)));
 		}
-		xp += 2; 
+		xp += 2;
 		yp += 2;
 		for (i = 1; i < (n - 1); i++, xp += 2, yp += 2) {
-			xa = 0.5 * (*(xp - 2) + *xp); 
+			xa = 0.5 * (*(xp - 2) + *xp);
 			xc = 0.5 * ( *xp + *(xp + 2));
-			ya = 0.5 * (*(yp - 2) + *yp); 
+			ya = 0.5 * (*(yp - 2) + *yp);
 			yc = 0.5 * ( *yp + *(yp + 2));
 			parabola(xa, ya, xc, yc, *xp, *yp);
 		}
blob - 2b41990d4a807869e93f612b0b77412b477826c6
blob + 62333edfd885da297752a01b250654939bdd5c66
--- src/cmd/plot/libplot/subr.c
+++ src/cmd/plot/libplot/subr.c
@@ -22,28 +22,28 @@ bcolor(char *s){
 			return(DBlack);
 		case 'r':
 			return(DRed);
-		case 'g': 
+		case 'g':
 			return(DGreen);
-		case 'b': 
+		case 'b':
 			return(DBlue);
-		case 'm': 
+		case 'm':
 			return(DMagenta);
-		case 'y': 
+		case 'y':
 			return(DYellow);
-		case 'c': 
+		case 'c':
 			return(DCyan);
-		case 'w': 
+		case 'w':
 			return(DWhite);
-		case 'R': 
+		case 'R':
 			return(atoi(s + 1));
-		case 'G': 
-			e1->pgap = atof(s + 1); 
+		case 'G':
+			e1->pgap = atof(s + 1);
 			return(-1);
-		case 'A': 
-			e1->pslant = (180. - atof(s + 1)) / RADIAN; 
+		case 'A':
+			e1->pslant = (180. - atof(s + 1)) / RADIAN;
 			return(-1);
 		}
-		while (*++s != 0) 
+		while (*++s != 0)
 			if (*s == '/') {
 				s++;
 				break;
@@ -52,20 +52,20 @@ bcolor(char *s){
 	return DBlack;
 }
 void sscpy(struct penvir *a, struct penvir *b){ /* copy 'a' onto 'b' */
-	b->left = a->left; 
-	b->bottom = a->bottom; 
-	b->xmin = a->xmin; 
+	b->left = a->left;
+	b->bottom = a->bottom;
+	b->xmin = a->xmin;
 	b->ymin = a->ymin;
-	b->scalex = a->scalex; 
+	b->scalex = a->scalex;
 	b->scaley = a->scaley;
-	b->sidex = a->sidex; 
+	b->sidex = a->sidex;
 	b->sidey = a->sidey;
-	b->copyx = a->copyx; 
+	b->copyx = a->copyx;
 	b->copyy = a->copyy;
 	b->quantum = a->quantum;
 	b->grade = a->grade;
-	b->pmode = a->pmode; 
-	b->foregr = a->foregr; 
+	b->pmode = a->pmode;
+	b->foregr = a->foregr;
 	b->backgr = a->backgr;
 }
 void idle(void){}
blob - 8b62387bb5ccbcc3c25d785eb9e856e62c87f186
blob + f87e228bd13fc6a26deb06b23cb9dd5439c49c05
--- src/cmd/plot/plot.c
+++ src/cmd/plot/plot.c
@@ -559,7 +559,7 @@ void call(char *a){
 		exits("undefined");
 	}
 	*ap = sav;
-	while (isspace((uchar)*ap) || *ap == ',') 
+	while (isspace((uchar)*ap) || *ap == ',')
 		ap++;
 	if (*ap != '\0')
 		SC = atof(ap);
blob - 5a4cd88cef1ec5a8b2d458e933f427ae0df8fbce
blob + 13ebe768f7d1b89469e1be562fd1cc9d0428aeed
--- src/cmd/plumb/match.c
+++ src/cmd/plumb/match.c
@@ -309,7 +309,7 @@ Exec*
 newexec(Plumbmsg *m)
 {
 	Exec *exec;
-	
+
 	exec = emalloc(sizeof(Exec));
 	exec->msg = m;
 	exec->p0 = -1;
@@ -331,7 +331,7 @@ rewrite(Plumbmsg *m, Exec *e)
 				else
 					prev->next = a->next;
 				free(a->name);
-				free(a->value);	
+				free(a->value);
 				free(a);
 				break;
 			}
blob - b6807a4d102cd78628bf2fa62aa0faa4c0abd121
blob + 2dc55cbb46be2c04b6b38c4d638190214af41e17
--- src/cmd/postscript/common/bbox.c
+++ src/cmd/postscript/common/bbox.c
@@ -259,4 +259,3 @@ concat(m1)
 }   /* End of concat */
 
 /*****************************************************************************/
-
blob - 6b409cad163e520b4c607d971b45aa2d7cbc10ee
blob + 0bbf5902070e8661093a1011df83749d4e76b574
--- src/cmd/postscript/common/comments.h
+++ src/cmd/postscript/common/comments.h
@@ -124,4 +124,3 @@
 #define ENDPAGE				"%%EndPage:"
 #define FORMSPERPAGE			"%%FormsPerPage:"
 #define VERSION				"%%Version:"
-
blob - f49f6f1fda8dab462211b09ee244f914687e1c9b
blob + 7b26766885a6e992d471074af0f8075a267369ac
--- src/cmd/postscript/common/common.h
+++ src/cmd/postscript/common/common.h
@@ -45,4 +45,3 @@ void *galloc(void *, int, char *);
 void pagelist(char *);
 
 int safe_tmpnam(char*);
-
blob - 77635b6b5fc471685c4e2e336e8181b8cf65a97b
blob + 75bea5b5517b440a7b613753ce2057a6c8bd983d
--- src/cmd/postscript/common/ext.h
+++ src/cmd/postscript/common/ext.h
@@ -33,7 +33,7 @@ extern void	interrupt(int);
 extern int	cat(char*);
 extern void	concat(double*);
 
-/* 
+/*
  * extern char	*tempnam(char*,char*);
  * extern char	*malloc();
  * extern char	*calloc();
blob - dffeb957861c0424a0191bb69a3a00c35bac1bc3
blob + 1553c2c46d2fc8b093dbad339f9c96d7f6725e65
--- src/cmd/postscript/common/gen.h
+++ src/cmd/postscript/common/gen.h
@@ -66,4 +66,3 @@ extern	char*	safe_tempnam(char*, char*);
 #define ABS(A)		((A) >= 0 ? (A) : -(A))
 #define MIN(A, B)	((A) < (B) ? (A) : (B))
 #define MAX(A, B)	((A) > (B) ? (A) : (B))
-
blob - 2826f4e5fe9f21d7e5e545c93d7c0b20892bdf64
blob + 31de6b4d4808add02af524278873410bf3de56b7
--- src/cmd/postscript/common/glob.c
+++ src/cmd/postscript/common/glob.c
@@ -26,4 +26,3 @@ double	pagewidth = PAGEWIDTH;
 
 int	reading = UTFENCODING;		/* input */
 int	writing = WRITING;		/* and output encoding */
-
blob - 28120ea5d8fa9ed24ae39a68ad67258680067c52
blob + 81444465a7c5f2930d885c9cee802b3578ff8480
--- src/cmd/postscript/common/misc.c
+++ src/cmd/postscript/common/misc.c
@@ -238,4 +238,3 @@ void interrupt(sig)
 }   /* End of interrupt */
 
 /*****************************************************************************/
-
blob - f2019c1e4908b0db47c33c9591a5b9c42798949d
blob + 6e456bb26d1c26ccefa8bb6e52d1738fec15d582
--- src/cmd/postscript/common/path.h
+++ src/cmd/postscript/common/path.h
@@ -29,4 +29,3 @@
 #define FONTDIR		"#9/troff/font"
 #define POSTLIBDIR	"#9/postscript/prologues"
 #define TEMPDIR		"/var/tmp"
-
blob - ba956d574f02f33512244a1b54ced6433fc9b182
blob + 2e96093ba65cc70ea9d0b585e5649b38a7b6319f
--- src/cmd/postscript/common/request.c
+++ src/cmd/postscript/common/request.c
@@ -127,4 +127,3 @@ dumprequest(want, file, fp_out)
 }   /* End of dumprequest */
 
 /*****************************************************************************/
-
blob - 25d94d01a1a26c8acab131e700a41ee6c79b5c08
blob + 6898ffd0433d7ec4c3bcb9f3b6e9dc666508159e
--- src/cmd/postscript/common/request.h
+++ src/cmd/postscript/common/request.h
@@ -19,4 +19,3 @@ typedef struct {
 	int	page;
 	char	*file;
 } Request;
-
blob - 31aa1b3bfb46a8bcc23c269ab121850bafd48571
blob + 4c8f6ffb799f52f41514a52a719bef67fdf9a721
--- src/cmd/postscript/download/download.c
+++ src/cmd/postscript/download/download.c
@@ -565,4 +565,3 @@ Map *allocate(ptr, num)
 }   /* End of allocate */
 
 /*****************************************************************************/
-
blob - f88cc57ad9be1cbeb5a5e49e9149625c05765934
blob + 3e8ac6ff0bbb319c774f5e607643676bdf49dba1
--- src/cmd/postscript/download/download.h
+++ src/cmd/postscript/download/download.h
@@ -11,4 +11,3 @@ typedef struct map {
 } Map;
 
 Map	*allocate();
-
blob - 49736d6f0eaea8c0c1148852039096ac2904a705
blob + 99d2f64c14e5a55b60b6c8a1bdbd0f38644d3263
--- src/cmd/postscript/misc/ibmfont.c
+++ src/cmd/postscript/misc/ibmfont.c
@@ -8,7 +8,7 @@
  *
  * where font.ibm is the font file, exactly as it came over from an IBM PC,
  * and font.unix is equivalent host resident font file usable on Unix systems.
- * 
+ *
  */
 
 #include <stdio.h>
@@ -212,7 +212,7 @@ asciitext(count)
 	    ch = '\n';
 	putc(ch, fp_out);
     }	/* End for */
-	
+
 }   /* End of asciitext */
 
 /*****************************************************************************/
@@ -238,7 +238,7 @@ hexdata(count)
 	if ( (++n % 40) == 0 )
 	    putc('\n', fp_out);
     }	/* End for */
-	
+
 }   /* End of hexdata */
 
 /*****************************************************************************/
@@ -263,7 +263,7 @@ getint()
 
     return(val);
 
-}   /* End of getint */ 
+}   /* End of getint */
 
 /*****************************************************************************/
 
@@ -293,4 +293,3 @@ error(kind, mesg, a1, a2, a3)
 }   /* End of error */
 
 /*****************************************************************************/
-
blob - 7b45e667a16740d81d23717d063cfb59122ed26b
blob + 7818fc1d445934c0b888579e4dca1eb3e12e644d
--- src/cmd/postscript/misc/laserbar.c
+++ src/cmd/postscript/misc/laserbar.c
@@ -13,13 +13,13 @@ static int code39[256] = {
 	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 /*	sp    !     "     #     $     %     &     '	*/
-	0304, 0,    0,    0,    0250, 0052, 0,    0,   
+	0304, 0,    0,    0,    0250, 0052, 0,    0,
 /*	(     )     *     +     ,     -     -     /	*/
 	0,    0,    0224, 0212, 0,    0205, 0604, 0242,
 /*	0     1     2     3     4     5     6     7	*/
 	0064, 0441, 0141, 0540, 0061, 0460, 0160, 0045,
 /*	8     9     :     ;     <     =     >     ?	*/
-	0444, 0144, 0,    0,    0,    0,    0,    0,   
+	0444, 0144, 0,    0,    0,    0,    0,    0,
 /*	@     A     B     C     D     E     F     G	*/
 	0,    0411, 0111, 0510, 0031, 0430, 0130, 0015,
 /*	H     I     J     K     L     M     N     O	*/
blob - 59244a1922d6039c81596b6e8f8cc00a4e3ffe56
blob + d0c9cb78103985d5c0a9412a74f0917b01cb577f
--- src/cmd/postscript/misc/macfont.c
+++ src/cmd/postscript/misc/macfont.c
@@ -8,7 +8,7 @@
  *
  * where font.mac is the font file, exactly as it came over from a Macintosh,
  * and font.unix is equivalent host resident font file usable on Unix systems.
- * 
+ *
  */
 
 #include <stdio.h>
@@ -215,7 +215,7 @@ asciitext(count)
 	    ch = '\n';
 	putc(ch, fp_out);
     }	/* End for */
-	
+
 }   /* End of asciitext */
 
 /*****************************************************************************/
@@ -241,7 +241,7 @@ hexdata(count)
 	if ( (++n % 40) == 0 )
 	    putc('\n', fp_out);
     }	/* End for */
-	
+
 }   /* End of hexdata */
 
 /*****************************************************************************/
@@ -265,7 +265,7 @@ getint()
 
     return(val);
 
-}   /* End of getint */ 
+}   /* End of getint */
 
 /*****************************************************************************/
 
@@ -296,4 +296,3 @@ error(kind, mesg, a1, a2, a3)
 }   /* End of error */
 
 /*****************************************************************************/
-
blob - 1715288ba6559453416f39f6bf47af3bac700c35
blob + 520daf331d3692724f0c9911fe2a0f90601213b3
--- src/cmd/postscript/misc/pscrypt.c
+++ src/cmd/postscript/misc/pscrypt.c
@@ -332,4 +332,3 @@ Getc(fp)
 }   /* End of Getc */
 
 /*****************************************************************************/
-
blob - d99124d58c76072bc62397f2718fe030a0a4d242
blob + 5631052095fbd4c9b6203c447686c4aea79caa37
--- src/cmd/postscript/postreverse/postreverse.c
+++ src/cmd/postscript/postreverse/postreverse.c
@@ -364,7 +364,7 @@ moreprolog(str)
  * up being copied to the output file and FALSE will be returned to the caller.
  * The first call (made from reverse()) looks for ENDPROLOG. Any other call comes
  * from readpages() and will be looking for the ENDSETUP comment.
- * 
+ *
  */
 
     len = strlen(FORMSPERPAGE);
@@ -541,4 +541,3 @@ trailer()
 }   /* End of trailer */
 
 /*****************************************************************************/
-
blob - edae7a277d3a5f883f6a9f1648e2369746d6503f
blob + a78ff4e8bdf7fbd96005dadcb6008b6281aa8226
--- src/cmd/postscript/postreverse/postreverse.h
+++ src/cmd/postscript/postreverse/postreverse.h
@@ -18,4 +18,3 @@ typedef struct {
  */
 
 char	*copystdin();
-
blob - 5e49e55efadd6c0fef35ace3442e9535de0e059d
blob + f9fbfd7696a4e38edf0e5a19b8a844c44b51afcb
--- src/cmd/postscript/tr2post/Bgetfield.c
+++ src/cmd/postscript/tr2post/Bgetfield.c
@@ -22,7 +22,7 @@ Bskipws(Biobuf *bp) {
 	do {
 		r = Bgetrune(bp);
 		if (r == '\n') inputlineno++;
-		sindex++;	
+		sindex++;
 	} while (r>=0 && isspace(r));
 	if (r<0) {
 		return(-1);
@@ -49,7 +49,7 @@ asc2dig(char c, int base) {
 }
 
 /* get a string of type: "d" for decimal integer, "u" for unsigned,
- * "s" for string", "c" for char, 
+ * "s" for string", "c" for char,
  * return the number of characters gotten for the field.  If nothing
  * was gotten and the end of file was reached, a negative value
  * from the Bgetrune is returned.
@@ -86,7 +86,7 @@ Bgetfield(Biobuf *bp, int type, void *thing, int size)
 				case '0':
 					base = 8;
 					continue;
-				default:	
+				default:
 					break;
 				}
 				break;
@@ -96,7 +96,7 @@ Bgetfield(Biobuf *bp, int type, void *thing, int size)
 					continue;
 				}
 			}
-			if ((dig = asc2dig(r, base)) == -1) bailout = TRUE;						
+			if ((dig = asc2dig(r, base)) == -1) bailout = TRUE;
 			else n = dig + (n * base);
 		}
 		if (r < 0) return(-1);
@@ -118,7 +118,7 @@ Bgetfield(Biobuf *bp, int type, void *thing, int size)
 					continue;
 				}
 			}
-			if ((dig = asc2dig(r, base)) == -1) bailout = TRUE;						
+			if ((dig = asc2dig(r, base)) == -1) bailout = TRUE;
 			else u = dig + (n * base);
 		}
 		*(int *)thing = u;
blob - 11d1ae85b179e852f4d3f3992942c49fbd327431
blob + 4b4f4ef003d267860359bed864bd247dda3aff35
--- src/cmd/postscript/tr2post/chartab.c
+++ src/cmd/postscript/tr2post/chartab.c
@@ -272,7 +272,7 @@ readtroffmetric(char *fontname, int trindex) {
 
 			if (*cp == 0) *cp = galloc(0, sizeof(struct charent), "readtroffmetric:charent");
 			(*cp)->postfontid = thisfont;
-			(*cp)->postcharid = thischar; 
+			(*cp)->postcharid = thischar;
 			(*cp)->troffcharwidth = ntoken;
 			(*cp)->name = galloc(0, 2, "readtroffmetric: char name");
 			(*cp)->next = 0;
@@ -283,7 +283,7 @@ readtroffmetric(char *fontname, int trindex) {
 			line++;
 			break;
 		}
-		if (!errorflg) {		
+		if (!errorflg) {
 			line++;
 		}
 	} while(!errorflg && rv>=0);
@@ -351,7 +351,7 @@ flush:
 			}
 		if (*cp == 0) *cp = galloc(0, sizeof(struct charent), "readtroffmetric:charent");
 		(*cp)->postfontid = RUNEGETGROUP(charnum);
-		(*cp)->postcharid = RUNEGETCHAR(charnum); 
+		(*cp)->postcharid = RUNEGETCHAR(charnum);
 		(*cp)->troffcharwidth = width;
 		(*cp)->name = galloc(0, strlen(stoken)+1, "readtroffmetric: char name");
 		(*cp)->next = 0;
blob - f0a9800a027314835aa4868111bf8bc919d642f9
blob + ad3abbaf9f1af1932004bf5b7d8a7b63ecdb9b50
--- src/cmd/postscript/tr2post/devcntl.c
+++ src/cmd/postscript/tr2post/devcntl.c
@@ -175,4 +175,3 @@ devcntl(Biobuf *inp) {
 	while ((c = Bgetc(inp)) != '\n' && c != Beof);
 	inputlineno++;
 }
-
blob - a7f6b2236b62d73193d717dcd4feef07d867098c
blob + b8bda78d389c664c8dd067a1dabeaf754ec5ef1b
--- src/cmd/postscript/tr2post/draw.c
+++ src/cmd/postscript/tr2post/draw.c
@@ -220,7 +220,7 @@ drawpath(char *buf, int copy) {
  * was expected to be legitimate PostScript that manipulated the current path.
  * The old escape sequence will be supported for a while (for Ravi), and always
  * call this routine with copy set to TRUE.
- * 
+ *
  *
  */
 
blob - 366bae70a56b3768b04ca2e70ea9688dd2af1303
blob + 90b7b88255679ccc32e43699cb89c4df6399fddb
--- src/cmd/postscript/tr2post/readDESC.c
+++ src/cmd/postscript/tr2post/readDESC.c
@@ -71,7 +71,7 @@ readDESC(void) {
 			printdesclang=galloc(printdesclang, strlen(token)+1, "readdesc:");
 			strcpy(printdesclang, token);
 			if (debug) Bprint(Bstderr, "PDL %s\n", token);
-			break;	
+			break;
 		case 1:
 			encoding=galloc(encoding, strlen(token)+1, "readdesc:");
 			strcpy(encoding, token);
@@ -85,7 +85,7 @@ readDESC(void) {
 				}
 				fontmnt = atoi(token) + 1;
 				fontmtab = galloc(fontmtab, fontmnt*sizeof(char *), "readdesc:");
-				
+
 				for (i=0; i<fontmnt; i++)
 					fontmtab[i] = 0;
 				fontindex = 0;
blob - 5ca1b3286a85414858ecbcadcaf32d9a39343689
blob + 3f28e8d56f30135736719520ad2ce33302cccade
--- src/cmd/postscript/tr2post/tr2post.c
+++ src/cmd/postscript/tr2post/tr2post.c
@@ -139,7 +139,7 @@ main(int argc, char *argv[]) {
 	}
 	atexit(cleanup);
 	Bstdout = bstdout; /* &bstdout->Biobufhdr; */
-	
+
 	ARGBEGIN{
 		case 'a':			/* aspect ratio */
 			aspectratio = atof(ARGF());
@@ -239,7 +239,7 @@ main(int argc, char *argv[]) {
 		exits("read");
 	}
 	finish();
-		
+
 	exits("");
 	return 0;
 }
blob - f914a1c87209b1be3835b5fd7f2a57ff6866d37c
blob + 7f00dbd4d2966de5afba307a09591306a4287584
--- src/cmd/postscript/tr2post/utils.c
+++ src/cmd/postscript/tr2post/utils.c
@@ -47,7 +47,7 @@ hmot(int x) {
 		if (delta == troffontab[curtrofffontid].spacewidth*fontsize/10 && isinstring()) {
 			if (pageon()) runeout(' ');
 		} else {
-			if (pageon()) {	
+			if (pageon()) {
 				endstring();
 				/* Bprint(Bstdout, " %d 0 rmoveto ", delta); */
 /*				Bprint(Bstdout, " %d %d m ", hpos+x, vpos); */
@@ -160,7 +160,7 @@ if (debug) fprint(2, "	looking through special fonts: 
 			if (*cp != 0) goto foundit;
 		}
 	}
-	
+
 	if (*cp == 0) {
 		error(WARNING, "cannot find glyph, rune=0x%x stoken=<%s> troff font %s\n", rune, stoken,
 			troffontab[curtrofffontid].trfontid);
@@ -174,7 +174,7 @@ foundit:
 		Bprint(Bstderr, "runeout(0x%x)<%C> postfontid=0x%x postcharid=0x%x troffcharwidth=%d\n",
 			rune, rune, (*cp)->postfontid, (*cp)->postcharid, (*cp)->troffcharwidth);
 	}
-		
+
 	tfp = &(troffontab[fontid]);
 	for (i=0; i<tfp->psfmapsize; i++) {
 		psfp = &(tfp->psfmap[i]);
blob - d930f34c5f5a5eb867b67386f831fa15b4930628
blob + 5cd686237aac4ef01d1537da956f87651bdab0fb
--- src/cmd/proof/font.c
+++ src/cmd/proof/font.c
@@ -108,12 +108,12 @@ dochar(Rune r[])
 	string(screen, p, display->black, ZP, f, s);
 }
 
-static int drawlog2[] = { 
-	0, 0, 
-	1, 1, 
-	2, 2, 2, 2, 
-	3, 3, 3, 3, 3, 3, 3, 3, 
-	4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
+static int drawlog2[] = {
+	0, 0,
+	1, 1,
+	2, 2, 2, 2,
+	3, 3, 3, 3, 3, 3, 3, 3,
+	4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 	5
 };
 
blob - d591d38467e5219a08d66e03bd34ac07cd33f718
blob + c12fe91eda6708c5639afa3314d5216c71c4a0a0
--- src/cmd/proof/htroff.c
+++ src/cmd/proof/htroff.c
@@ -302,8 +302,8 @@ readpage(void)
 static void
 spline(Image *b, int n, Point *pp)
 {
-	long w, t1, t2, t3, fac=1000; 
-	int i, j, steps=10; 
+	long w, t1, t2, t3, fac=1000;
+	int i, j, steps=10;
 	Point p, q;
 
 	for (i = n; i > 0; i--)
@@ -321,9 +321,9 @@ spline(Image *b, int n, Point *pp)
 			t2 = 3*fac/4 - w * w / fac;
 			w = w - fac/2;
 			t3 = w * w / (2*fac);
-			q.x = (t1*pp[i+2].x + t2*pp[i+1].x + 
+			q.x = (t1*pp[i+2].x + t2*pp[i+1].x +
 				t3*pp[i].x + fac/2) / fac;
-			q.y = (t1*pp[i+2].y + t2*pp[i+1].y + 
+			q.y = (t1*pp[i+2].y + t2*pp[i+1].y +
 				t3*pp[i].y + fac/2) / fac;
 			line(b, p, q, 0, 0, 0, display->black, ZP);
 			p = q;
blob - 5e0c804c20edb0700cce981e2fbca0e7b56dee1c
blob + e8c18f873754ea109080d21dad68f8a906991aa5
--- src/cmd/proof/main.c
+++ src/cmd/proof/main.c
@@ -43,7 +43,7 @@ main(int argc, char *argv[])
 {
 	char c;
 	int dotrack = 0;
-	
+
 	libfont = unsharp(libfont);
 	ARGBEGIN{
 	case 'm':	/* magnification */
@@ -96,7 +96,7 @@ main(int argc, char *argv[])
 		loadfontname(c, "??");
 	mapscreen();
 	clearscreen();
-	readpage(); 
+	readpage();
 }
 
 /*
blob - 6e00c894b9d001cce3e1c7572d3c8b0e5f8a286e
blob + 42a38e81108293cad8876eb475d7f2deeba95ca6
--- src/cmd/ramfs.c
+++ src/cmd/ramfs.c
@@ -900,4 +900,3 @@ usage(void)
 	fprint(2, "usage: %s [-is] [-m mountpoint]\n", argv0);
 	exits("usage");
 }
-
blob - 03c96d4901e4fbce44d44f51eeaf7d1bc3a25f1b
blob + 172acfa3e008063edfbfa1a72ea424cdf0e07ae1
--- src/cmd/rc/exec.c
+++ src/cmd/rc/exec.c
@@ -135,7 +135,7 @@ main(int argc, char *argv[])
 	code bootstrap[32];
 	char num[12], *rcmain;
 	int i;
-	
+
 	/* needed for rcmain later */
 	putenv("PLAN9", unsharp("#9"));
 
@@ -690,7 +690,7 @@ word*
 copynwords(word *a, word *tail, int n)
 {
 	word *v, **end;
-	
+
 	v = 0;
 	end = &v;
 	while(n-- > 0){
blob - dc0ca2e88c7f1cec38f58894298652481307a682
blob + 63f83354d3509a3e541cff3708c13e747c141b20
--- src/cmd/rc/havefork.c
+++ src/cmd/rc/havefork.c
@@ -37,11 +37,11 @@ Xasync(void)
 		 * ssh foo & will reopen /dev/tty, try to read a password,
 		 * get a signal, and repeat, in a tight loop, forever.
 		 * Arguably this is a bug in ssh (it behaves the same
-		 * way under bash as under rc) but I'm fixing it here 
+		 * way under bash as under rc) but I'm fixing it here
 		 * anyway.  If we dissociate the process from the tty,
 		 * then it won't be able to open /dev/tty ever again.
 		 * The SIG_IGN on SIGTTOU makes writing the tty
-		 * (via fd 1 or 2, for example) succeed even though 
+		 * (via fd 1 or 2, for example) succeed even though
 		 * our pgrp is not the terminal's controlling pgrp.
 		 */
 		if((tty = open("/dev/tty", OREAD)) >= 0){
blob - d9369e5c493048cce062f50e2df1f7b2a6002af6
blob + 973ddee8d97485511025a8935009508f695dbf20
--- src/cmd/rc/lex.c
+++ src/cmd/rc/lex.c
@@ -50,7 +50,7 @@ advance(void)
 }
 /*
  * read a character from the input stream
- */	
+ */
 
 int
 getnext(void)
blob - da9d8679e6794bb6c9040291681aa800139090ac
blob + d52def7d0fa51d73111d732db413766656170bec
--- src/cmd/rc/plan9ish.c
+++ src/cmd/rc/plan9ish.c
@@ -343,7 +343,7 @@ char **mkenv(){
 	}
 	*ep=0;
 	qsort((char *)env, nvar, sizeof ep[0], cmpenv);
-	return env;	
+	return env;
 }
 void Updenv(void){}
 void Execute(word *args, word *path)
@@ -556,7 +556,7 @@ int
 exitcode(char *msg)
 {
 	int n;
-	
+
 	n = atoi(msg);
 	if(n == 0)
 		n = 1;
@@ -579,7 +579,7 @@ void
 delwaitpid(int pid)
 {
 	int r, w;
-	
+
 	for(r=w=0; r<nwaitpids; r++)
 		if(waitpids[r] != pid)
 			waitpids[w++] = waitpids[r];
@@ -596,7 +596,7 @@ int
 havewaitpid(int pid)
 {
 	int i;
-	
+
 	for(i=0; i<nwaitpids; i++)
 		if(waitpids[i] == pid)
 			return 1;
blob - 897597e286bfb90b6c03c128e14d044cb5732d63
blob + 2c3ff6bc715d44bcd3b22452ae1cdde7e956d1d9
--- src/cmd/rc/tree.c
+++ src/cmd/rc/tree.c
@@ -136,7 +136,7 @@ void
 freetree(tree *p)
 {
 	if(p==0)
-		return;	
+		return;
 	freetree(p->child[0]);
 	freetree(p->child[1]);
 	freetree(p->child[2]);
blob - f0f8397f084e0941d0e8c38501717796080a75f9
blob + d9c4a182d15a13abb52ad6293e7616ef48fdd6de
--- src/cmd/readcons.c
+++ src/cmd/readcons.c
@@ -13,7 +13,7 @@ main(int argc, char **argv)
 {
 	char *def, *p;
 	int secret;
-	
+
 	def = nil;
 	secret = 0;
 	ARGBEGIN{
@@ -26,7 +26,7 @@ main(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 1)
 		usage();
 
@@ -36,4 +36,3 @@ main(int argc, char **argv)
 	print("%s\n", p);
 	exits(0);
 }
-
blob - d3208419572986e0139cdb1b07d84ea78f010453 (mode 755)
blob + b882b826ad661bb434bcac481619b0d3960c3367 (mode 644)
--- src/cmd/resample.c
+++ src/cmd/resample.c
@@ -18,7 +18,7 @@ fac(int L)
 	return f;
 }
 
-/* 
+/*
  * i0(x) is the modified Bessel function, Σ (x/2)^2L / (L!)²
  * There are faster ways to calculate this, but we precompute
  * into a table so let's keep it simple.
blob - c3b36df1a2c1180ba174c58d5ad2b55025678f24
blob + 256261cad639ee78aaac4348c2ca83c80a8232ae
--- src/cmd/rio/client.c
+++ src/cmd/rio/client.c
@@ -19,7 +19,7 @@ setactive(Client *c, int on)
 
 	if(c->parent == c->screen->root)
 		return;
-	
+
 	if(on){
 		XUngrabButton(dpy, AnyButton, AnyModifier, c->parent);
 		XSetInputFocus(dpy, c->window, RevertToPointerRoot, timestamp());
@@ -254,7 +254,7 @@ void
 shuffle(int up)
 {
 	Client **l, *c;
-	
+
 	if(clients == 0 || clients->next == 0)
 		return;
 	if(!up){
@@ -282,4 +282,3 @@ shuffle(int up)
 /*	top(clients);	 */
 /*	active(clients); */
 }
-
blob - f1fff54c10ed124563b46d21258dc496547ff786
blob + 489c68e8504fc4ae121e06ba7792c4e4a1efce16
--- src/cmd/rio/color.c
+++ src/cmd/rio/color.c
@@ -42,4 +42,3 @@ colorpixel(Display *dpy, ScreenInfo *s, int depth, uns
 		return rgb;
 	}
 }
-
blob - 33f635224435331e1b3f669aa33cb738df6ba9dd
blob + 3aff91bbc1a9dd21a253ffc27bcb5e1bde1fa270
--- src/cmd/rio/cursor.c
+++ src/cmd/rio/cursor.c
@@ -16,15 +16,15 @@ typedef struct {
 Cursordata bigarrow = {
 	16,
 	{0, 0},
-	{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x3F, 
-	  0xFF, 0x0F, 0xFF, 0x0F, 0xFF, 0x1F, 0xFF, 0x3F, 
-	  0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x3F, 
-	  0xCF, 0x1F, 0x8F, 0x0F, 0x07, 0x07, 0x03, 0x02, 
+	{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x3F,
+	  0xFF, 0x0F, 0xFF, 0x0F, 0xFF, 0x1F, 0xFF, 0x3F,
+	  0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x3F,
+	  0xCF, 0x1F, 0x8F, 0x0F, 0x07, 0x07, 0x03, 0x02,
 	},
-	{ 0x00, 0x00, 0xFE, 0x7F, 0xFE, 0x3F, 0xFE, 0x0F, 
-	  0xFE, 0x07, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x1F, 
-	  0xFE, 0x3F, 0xFE, 0x7F, 0xFE, 0x3F, 0xCE, 0x1F, 
-	  0x86, 0x0F, 0x06, 0x07, 0x02, 0x02, 0x00, 0x00, 
+	{ 0x00, 0x00, 0xFE, 0x7F, 0xFE, 0x3F, 0xFE, 0x0F,
+	  0xFE, 0x07, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x1F,
+	  0xFE, 0x3F, 0xFE, 0x7F, 0xFE, 0x3F, 0xCE, 0x1F,
+	  0x86, 0x0F, 0x06, 0x07, 0x02, 0x02, 0x00, 0x00,
 	}
 };
 
@@ -198,7 +198,7 @@ ScreenInfo *s;
 	s->root_pixmap = XCreatePixmapFromBitmapData(dpy,
 		s->root, grey_bits, grey_width, grey_height,
 		s->black, s->white, s->depth);
-	
+
 	s->bordcurs[BorderN] = XCreateFontCursor(dpy, 138);
 	s->bordcurs[BorderNNE] = XCreateFontCursor(dpy, 136);
 	s->bordcurs[BorderENE] = s->bordcurs[BorderNNE] ;
@@ -254,121 +254,121 @@ Cursor sightcursor = {
 
 Cursor whitearrow = {
 	{0, 0},
-	{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, 
-	 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, 
-	 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, 
+	{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
+	 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC,
+	 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
 	 0xF3, 0xF8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, },
-	{0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C, 
-	 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C, 
-	 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C, 
+	{0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C,
+	 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C,
+	 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C,
 	 0xD3, 0xB8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, }
 };
 
 Cursor query = {
 	{-7,-7},
-	{0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 
-	 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8, 
-	 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0, 
+	{0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
+	 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8,
+	 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0,
 	 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, },
-	{0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c, 
-	 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0, 
-	 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80, 
+	{0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c,
+	 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0,
+	 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80,
 	 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
 };
 
 Cursor tl = {
 	{-4, -4},
-	{0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff, 
-	 0xa0, 0x01, 0xb0, 0x01, 0xd0, 0x01, 0x11, 0xff, 
-	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 
+	{0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff,
+	 0xa0, 0x01, 0xb0, 0x01, 0xd0, 0x01, 0x11, 0xff,
+	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
 	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, },
-	{0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00, 
-	 0x5f, 0xfe, 0x4f, 0xfe, 0x0f, 0xfe, 0x0e, 0x00, 
-	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 
+	{0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00,
+	 0x5f, 0xfe, 0x4f, 0xfe, 0x0f, 0xfe, 0x0e, 0x00,
+	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
 	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, }
 };
 
 Cursor t = {
 	{-7, -8},
-	{0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0, 
-	 0x1c, 0x70, 0x10, 0x10, 0x0c, 0x60, 0xfc, 0x7f, 
-	 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xff, 0xff, 
+	{0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0,
+	 0x1c, 0x70, 0x10, 0x10, 0x0c, 0x60, 0xfc, 0x7f,
+	 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xff, 0xff,
 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 
-	 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 0x03, 0x80, 
-	 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+	 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 0x03, 0x80,
+	 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00,
 	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
 };
 
 Cursor tr = {
 	{-11, -4},
-	{0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1, 
-	 0x80, 0x05, 0x80, 0x0d, 0x80, 0x0b, 0xff, 0x88, 
-	 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, 0x00, 0x88, 
+	{0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1,
+	 0x80, 0x05, 0x80, 0x0d, 0x80, 0x0b, 0xff, 0x88,
+	 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, 0x00, 0x88,
 	 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, },
-	{0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e, 
-	 0x7f, 0xfa, 0x7f, 0xf2, 0x7f, 0xf0, 0x00, 0x70, 
-	 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 
+	{0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e,
+	 0x7f, 0xfa, 0x7f, 0xf2, 0x7f, 0xf0, 0x00, 0x70,
+	 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
 	 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, }
 };
 
 Cursor r = {
 	{-8, -7},
-	{0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58, 
-	 0x04, 0x68, 0x04, 0x6c, 0x04, 0x06, 0x04, 0x02, 
-	 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, 0x04, 0x58, 
+	{0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58,
+	 0x04, 0x68, 0x04, 0x6c, 0x04, 0x06, 0x04, 0x02,
+	 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, 0x04, 0x58,
 	 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x07, 0xc0, },
-	{0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 
-	 0x03, 0x90, 0x03, 0x90, 0x03, 0xf8, 0x03, 0xfc, 
-	 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, 0x03, 0x80, 
+	{0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80,
+	 0x03, 0x90, 0x03, 0x90, 0x03, 0xf8, 0x03, 0xfc,
+	 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, 0x03, 0x80,
 	 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
 };
 
 Cursor br = {
 	{-11, -11},
-	{0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 
-	 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 
-	 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, 0x80, 0x05, 
+	{0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+	 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+	 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, 0x80, 0x05,
 	 0xff, 0xe1, 0x00, 0x31, 0x00, 0x41, 0x00, 0x7f, },
-	{0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 
-	 0x0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 
-	 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, 0x7f, 0xfa, 
+	{0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
+	 0x0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
+	 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, 0x7f, 0xfa,
 	 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x00, }
 };
 
 Cursor b = {
 	{-7, -7},
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-	 0xff, 0xff, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 
-	 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, 0x1c, 0x70, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	 0xff, 0xff, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
+	 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, 0x1c, 0x70,
 	 0x06, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, },
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-	 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 
-	 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe,
+	 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80,
 	 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
 };
 
 Cursor bl = {
 	{-4, -11},
-	{0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 
-	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 
-	 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, 0xa0, 0x01, 
+	{0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
+	 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
+	 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, 0xa0, 0x01,
 	 0x87, 0xff, 0x8c, 0x00, 0x82, 0x00, 0xfe, 0x00, },
-	{0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 
-	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 
-	 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, 0x5f, 0xfe, 
+	{0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
+	 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
+	 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, 0x5f, 0xfe,
 	 0x78, 0x00, 0x70, 0x00, 0x7c, 0x00, 0x00, 0x0, }
 };
 
 Cursor l = {
 	{-7, -7},
-	{0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20, 
-	 0x16, 0x20, 0x36, 0x20, 0x60, 0x20, 0x40, 0x20, 
-	 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, 0x1a, 0x20, 
+	{0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20,
+	 0x16, 0x20, 0x36, 0x20, 0x60, 0x20, 0x40, 0x20,
+	 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, 0x1a, 0x20,
 	 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x03, 0xe0, },
-	{0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 
-	 0x09, 0xc0, 0x09, 0xc0, 0x1f, 0xc0, 0x3f, 0xc0, 
-	 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, 0x01, 0xc0, 
+	{0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0,
+	 0x09, 0xc0, 0x09, 0xc0, 0x1f, 0xc0, 0x3f, 0xc0,
+	 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, 0x01, 0xc0,
 	 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0x00, }
 };
 
blob - 0420c2bdc8025703384b574a60dcb68126521d9f
blob + 0035cf34dbf7df0200b11f37fe4f082c04ce5d12
--- src/cmd/rio/event.c
+++ src/cmd/rio/event.c
@@ -15,7 +15,7 @@ void
 mainloop(int shape_event)
 {
 	XEvent ev;
-	
+
 	for(;;){
 		getevent(&ev);
 
@@ -134,7 +134,7 @@ configurereq(XConfigureRequestEvent *e)
 			c->dy = e->height;
 		if(e->value_mask & CWBorderWidth)
 			c->border = e->border_width;
-	
+
 		if(c->dx >= c->screen->width && c->dy >= c->screen->height)
 			c->border = 0;
 		else
blob - 5aff69c8134c2897e5d1ebaeb42c8532eabab311
blob + 85aa570c8ab64d741e432655c89e3c5833cc59c3
--- src/cmd/rio/grab.c
+++ src/cmd/rio/grab.c
@@ -418,7 +418,7 @@ pullcalc(Client *c, int x, int y, BorderOrient bl, int
 	c->dy = sy*(dy + 2*BORDER );
 	c->x = px;
 	c->y = py;
-	
+
 	/* compensate position for size changed due to size hints */
 	if(spx)
 		c->x -= c->dx - rdx;
@@ -444,7 +444,7 @@ drawbound(Client *c, int drawing)
 	ScreenInfo *s;
 
 	if(debug) fprintf(stderr, "drawbound %d %dx%d+%d+%d\n", drawing, c->dx, c->dy, c->x, c->y);
-	
+
 	s = c->screen;
 	x = c->x;
 	y = c->y;
@@ -466,7 +466,7 @@ drawbound(Client *c, int drawing)
 			XUnmapWindow(dpy, s->sweepwin);
 			return;
 		}
-		
+
 		x += BORDER;
 		y += BORDER;
 		dx -= 2*BORDER;
blob - 5bac1735756dc4f40920786d44be5bf83c7364fc
blob + 40740b05456edcb6c95f637c68fc7354a45d478b
--- src/cmd/rio/key.c
+++ src/cmd/rio/key.c
@@ -64,4 +64,3 @@ alttab(int shift)
 	shuffle(shift);
 /*	fprintf(stderr, "%sTab\n", shift ? "Back" : ""); */
 }
-
blob - 4bf87852e79573958839127241cec5ed9a6a764c
blob + 1e0b3797152589c1e5198d766e93688a224de58f
--- src/cmd/rio/main.c
+++ src/cmd/rio/main.c
@@ -253,7 +253,7 @@ initscreen(ScreenInfo *s, int i, int background)
 	s->min_cmaps = MinCmapsOfScreen(ScreenOfDisplay(dpy, i));
 	s->depth = DefaultDepth(dpy, i);
 
-	/* 
+	/*
 	 * Figure out underlying screen format.
 	 */
 	if(XMatchVisualInfo(dpy, i, 16, TrueColor, &xvi)
@@ -288,7 +288,7 @@ initscreen(ScreenInfo *s, int i, int background)
 		s->vis = DefaultVisual(dpy, i);
 	}
 	if(DefaultDepth(dpy, i) != s->depth){
-		s->def_cmap = XCreateColormap(dpy, s->root, s->vis, AllocNone); 
+		s->def_cmap = XCreateColormap(dpy, s->root, s->vis, AllocNone);
 	}
 
 	ds = DisplayString(dpy);
@@ -344,7 +344,7 @@ initscreen(ScreenInfo *s, int i, int background)
 	attr.cursor = s->arrow;
 	attr.event_mask = SubstructureRedirectMask
 		| SubstructureNotifyMask | ColormapChangeMask
-		| ButtonPressMask | ButtonReleaseMask | PropertyChangeMask 
+		| ButtonPressMask | ButtonReleaseMask | PropertyChangeMask
 		| KeyPressMask | EnterWindowMask;
 	mask = CWCursor|CWEventMask;
 	XChangeWindowAttributes(dpy, s->root, mask, &attr);
blob - dc23f1c3b046bc8f010229ed73c39eafed86a732
blob + e7a37c68681a530e115dec52c2b69a9db42c43f7
--- src/cmd/rio/menu.c
+++ src/cmd/rio/menu.c
@@ -46,7 +46,7 @@ char	*b2items[NUMVIRTUALS+1] =
 	0
 };
 
-Menu b2menu = 
+Menu b2menu =
 {
 	b2items
 };
@@ -116,7 +116,7 @@ button(XButtonEvent *e)
 				e->x, e->y);
 		XTranslateCoordinates(dpy, e->window, s->root, e->x, e->y,
 				&e->x, &e->y, &dw);
-	}		
+	}
 	switch (e->button){
 	case Button1:
 		if(c){
@@ -132,7 +132,7 @@ button(XButtonEvent *e)
 			XAllowEvents (dpy, ReplayPointer, curtime);
 		} else if((e->state&(ShiftMask|ControlMask))==(ShiftMask|ControlMask)){
 			menuhit(e, &egg);
-		} else if(numvirtuals > 1 && (n = menuhit(e, &b2menu)) > -1) 
+		} else if(numvirtuals > 1 && (n = menuhit(e, &b2menu)) > -1)
 				button2(n);
 		return;
 	case Button3:
@@ -389,7 +389,7 @@ switch_to_c(int n, Client *c)
 		int i;
 
 		for(i = 0; i < numhidden; i++)
-			if(c == hiddenc[i]) 
+			if(c == hiddenc[i])
 				break;
 
 		if(i == numhidden){
@@ -397,7 +397,7 @@ switch_to_c(int n, Client *c)
 			XMapWindow(dpy, c->parent);
 			setstate(c, NormalState);
 			if(currents[virt] == c)
-				active(c); 
+				active(c);
 		}
 	}
 }
@@ -421,6 +421,6 @@ switch_to(int n)
 
 void
 initb2menu(int n)
-{ 
+{
 	b2items[n] = 0;
 }
blob - 05cc5ad7b55f7aaf1e04d9669e6aeeb0b64569df
blob + 927ea85f864af7446e9f2a5df07717de8979f04d
--- src/cmd/rio/printevent.c
+++ src/cmd/rio/printevent.c
@@ -20,9 +20,9 @@ Archive-name: showevent/part01
 
 
 There are times during debugging when it would be real useful to be able to
-print the fields of an event in a human readable form.  Too many times I found 
-myself scrounging around in section 8 of the Xlib manual looking for the valid 
-fields for the events I wanted to see, then adding printf's to display the 
+print the fields of an event in a human readable form.  Too many times I found
+myself scrounging around in section 8 of the Xlib manual looking for the valid
+fields for the events I wanted to see, then adding printf's to display the
 numeric values of the fields, and then scanning through X.h trying to decode
 the cryptic detail and state fields.  After playing with xev, I decided to
 write a couple of standard functions that I could keep in a library and call
@@ -35,9 +35,9 @@ spend the time writing functions like this, they just 
 they need them.
 
 A simple, sample program is included which does little else but to demonstrate
-the use of these two functions.  These functions have saved me many an hour 
+the use of these two functions.  These functions have saved me many an hour
 during debugging and I hope you find some benefit to these.  If you have any
-comments, suggestions, improvements, or if you find any blithering errors you 
+comments, suggestions, improvements, or if you find any blithering errors you
 can get it touch with me at the following location:
 
 			ken@richsun.UUCP
@@ -129,7 +129,7 @@ ServerTime(Time time)
 if(0)
     sprintf(buffer, "%lu day%s %02lu:%02lu:%02lu.%03lu",
       day, day == 1 ? "" : "(s)", hr, min, sec, msec);
-      
+
     sprintf(buffer, "%lud%luh%lum%lu.%03lds", day, hr, min, sec, msec);
     return (buffer);
 }
@@ -770,7 +770,7 @@ VerbVisibility(XVisibilityEvent *ev)
 char *eventtype(XEvent *ev)
 {
     static char buffer[20];
-    
+
     switch (ev->type) {
     case KeyPress:
 	return ("KeyPress");
@@ -983,4 +983,3 @@ void printevent(XEvent *e)
 	break;
     }
 }
-
blob - 7b22e970ef6e7a2c2473298cfcf3fe0d9dbef87c
blob + 9ad8c639068fc8479471bf758663681a9877d23c
--- src/cmd/rio/showevent/sample.c
+++ src/cmd/rio/showevent/sample.c
@@ -45,4 +45,3 @@ char **argv;
 	printf("\n\n");
     }
 }
-
blob - d42ddbabfe85a5d2c9c58dec3c424b4fedce0e59
blob + c4d368d8080fca28ba7cf6ea61c7fcadcdfc8407
--- src/cmd/rio/xevents.c
+++ src/cmd/rio/xevents.c
@@ -15,12 +15,12 @@ main(int argc, char **argv)
 	Display *dpy;
 	Window window;
 	XEvent event;
-	
+
 	if (!(dpy = XOpenDisplay(""))) {
 		printf("Failed to open display...\n");
 		exit(1);
 	}
-	
+
 	screen = DefaultScreen(dpy);
 
 	window = XCreateSimpleWindow(dpy, RootWindow(dpy, screen), 100, 100,
@@ -42,4 +42,3 @@ main(int argc, char **argv)
 		printevent(&event);
 	}
 }
-
blob - 180eada41b49468bcc8407a6d09e97678fa07321
blob + e235874eb8b55bac8c89b32f984aeb972d38eabc
--- src/cmd/rio/xshove.c
+++ src/cmd/rio/xshove.c
@@ -55,7 +55,7 @@ void
 main(int argc, char **argv)
 {
 	int screen;
-	
+
 	screen = 0;
 	ARGBEGIN{
 	case 's':
@@ -65,7 +65,7 @@ main(int argc, char **argv)
 		usage();
 		break;
 	}ARGEND
-	
+
 	dpy = XOpenDisplay("");
 	if(dpy == nil)
 		sysfatal("open display: %r");
@@ -93,7 +93,7 @@ getproperty(Window w, Atom a)
 
 	n = 100;
 	p = nil;
-	XGetWindowProperty(dpy, w, a, 0, 100L, 0, 
+	XGetWindowProperty(dpy, w, a, 0, 100L, 0,
 		AnyPropertyType, &type, &fmt,
 		&n, &dummy, &p);
 	if(p == nil || *p == 0)
@@ -132,7 +132,7 @@ getinfo(void)
 	w = mallocz(nxwin*sizeof w[0], 1);
 	if(w == 0)
 		sysfatal("malloc: %r");
-	
+
 	Win *ww = w;
 	for(i=0; i<nxwin; i++){
 		memset(&attr, 0, sizeof attr);
@@ -157,7 +157,7 @@ getinfo(void)
 		ww++;
 	}
 	nw = ww - w;
-}		
+}
 
 void
 listwindows(void)
@@ -169,7 +169,7 @@ listwindows(void)
 		char rect[50];
 		snprint(rect, sizeof rect, "%d,%d,%d,%d", ww->x, ww->y, ww->x+ww->dx, ww->y+ww->dy);
 		print("%08x %-20s %-10s %s\n",
-			(uint)ww->xw, 
+			(uint)ww->xw,
 			rect,
 			ww->instance,
 			ww->class);
blob - 12510689daf638433011cf7f481a585ad46f4024
blob + 386fe8d479dd70ecb8a50239407df79b99a31225
--- src/cmd/sam/cmd.c
+++ src/cmd/sam/cmd.c
@@ -446,7 +446,7 @@ parsecmd(int nest)
 						if(nextc() == 'g')
 							cmd.flag = getch();
 					}
-			
+
 				}
 			}
 		}
@@ -537,7 +537,7 @@ simpleaddr(void)
 		addr.num = getnum(1);
 		break;
 	case '0': case '1': case '2': case '3': case '4':
-	case '5': case '6': case '7': case '8': case '9': 
+	case '5': case '6': case '7': case '8': case '9':
 		addr.num = getnum(1);
 		addr.type='l';
 		break;
blob - d9dd42ac5b48de641499908eb8e73d9a4c43a9b0
blob + 2899f28ea7d853077171588110c7550b055e4d13
--- src/cmd/sam/mesg.c
+++ src/cmd/sam/mesg.c
@@ -615,7 +615,7 @@ vlong
 invlong(void)
 {
 	vlong v;
-	
+
 	v = (inp[7]<<24) | (inp[6]<<16) | (inp[5]<<8) | inp[4];
 	v = (v<<16) | (inp[3]<<8) | inp[2];
 	v = (v<<16) | (inp[1]<<8) | inp[0];
@@ -778,7 +778,7 @@ void
 outshort(int s)
 {
 	*outp++ = s;
-	*outp++ = s>>8; 
+	*outp++ = s>>8;
 }
 
 void
blob - 234414998eaddd945b0a79a6cb5f198f7e121a4d
blob + 0acf861c818d4a1549a4847badcf75b2a142056e
--- src/cmd/sam/mesg.h
+++ src/cmd/sam/mesg.h
@@ -79,27 +79,27 @@ typedef struct Header{
 /*
  * File transfer protocol schematic, a la Holzmann
  * #define N	6
- * 
+ *
  * chan h = [4] of { mtype };
  * chan t = [4] of { mtype };
- * 
+ *
  * mtype = {	Hgrow, Hdata,
  * 		Hcheck, Hcheck0,
  * 		Trequest, Tcheck,
  * 	};
- * 
+ *
  * active proctype host()
  * {	byte n;
- * 
+ *
  * 	do
  * 	:: n <  N -> n++; t!Hgrow
  * 	:: n == N -> n++; t!Hcheck0
- * 
+ *
  * 	:: h?Trequest -> t!Hdata
  * 	:: h?Tcheck   -> t!Hcheck
  * 	od
  * }
- * 
+ *
  * active proctype term()
  * {
  * 	do
@@ -118,14 +118,14 @@ typedef struct Header{
  * From: gerard@research.bell-labs.com
  * Date: Tue Jul 17 13:47:23 EDT 2001
  * To: rob@research.bell-labs.com
- * 
+ *
  * spin -c 	(or -a) spec
  * pcc -DNP -o pan pan.c
  * pan -l
- * 
+ *
  * proves that there are no non-progress cycles
  * (infinite executions *not* passing through
  * the statement marked with a label starting
  * with the prefix "progress")
- * 
+ *
  */
blob - 94fad3e7e16fadb0360f9aef7479bf632b8f35f4
blob + 68207cd6fe647700c289aa118f4b4b492d1c0292
--- src/cmd/sam/moveto.c
+++ src/cmd/sam/moveto.c
@@ -170,4 +170,3 @@ doubleclick(File *f, Posn p1)
 	while(--p >= 0 && alnum(filereadc(f, p)))
 		f->dot.r.p1--;
 }
-
blob - d376acd0abc6ff518380fef76fe8d54eba199e9e
blob + f11586217489449d960d49fb84e5ded83836c574
--- src/cmd/sam/plumb.h
+++ src/cmd/sam/plumb.h
@@ -14,4 +14,3 @@ char *plumbunpackattr(char*);
 char *plumbpack(Plumbmsg *, int *);
 int plumbfree(Plumbmsg *);
 char *cleanname(char*);
-
blob - 0bce4141da124a761156c175593301ab0927d078
blob + c96101df6d44c301a4910815ed5a6dffe05cd0f1
--- src/cmd/sam/rasp.c
+++ src/cmd/sam/rasp.c
@@ -337,4 +337,3 @@ rdata(List *r, Posn p1, Posn n)
 	}
 	return rg;
 }
-
blob - f180290bbe650cff628a8f8f4104d514e9568a87
blob + 84e015f51cc30ea3522feadfa1ebec866b7c0c05
--- src/cmd/sam/sam.c
+++ src/cmd/sam/sam.c
@@ -44,7 +44,7 @@ main(int _argc, char **_argv)
 	char **volatile argv;
 	String *t;
 	char *termargs[10], **ap;
-	
+
 	argc = _argc;
 	argv = _argv;
 	ap = termargs;
blob - a745a5bc378990173de7cfc838cb1de06e82dd68
blob + 97f2fce81b1061e5b7dcafdc013d1b47414391d2
--- src/cmd/sam/unix.c
+++ src/cmd/sam/unix.c
@@ -10,7 +10,7 @@
 #include "sam.h"
 
 Rune    samname[] = { '~', '~', 's', 'a', 'm', '~', '~', 0 };
- 
+
 static Rune l1[] = { '{', '[', '(', '<', 0253, 0};
 static Rune l2[] = { '\n', 0};
 static Rune l3[] = { '\'', '"', '`', 0};
@@ -85,15 +85,15 @@ getuser(void)
 	return user;
 }
 
-int     
-statfile(char *name, ulong *dev, uvlong *id, long *time, long *length, long *appendonly) 
+int
+statfile(char *name, ulong *dev, uvlong *id, long *time, long *length, long *appendonly)
 {
         struct stat dirb;
 
         if (stat(name, &dirb) == -1)
                 return -1;
         if (dev)
-                *dev = dirb.st_dev;   
+                *dev = dirb.st_dev;
         if (id)
                 *id = dirb.st_ino;
         if (time)
@@ -110,11 +110,11 @@ statfd(int fd, ulong *dev, uvlong *id, long *time, lon
 {
         struct stat dirb;
 
-        if (fstat(fd, &dirb) == -1)   
+        if (fstat(fd, &dirb) == -1)
                 return -1;
         if (dev)
                 *dev = dirb.st_dev;
-        if (id) 
+        if (id)
                 *id = dirb.st_ino;
         if (time)
                 *time = dirb.st_mtime;
@@ -174,11 +174,11 @@ tempdisk(void)
         int fd = temp_file(buf, sizeof buf);
         if (fd >= 0)
                 remove(buf);
-        return fd; 
+        return fd;
 }
 
 #undef waitfor
-int     
+int
 samwaitfor(int pid)
 {
 	int r;
@@ -218,5 +218,3 @@ erealloc(void *p, ulong n)
 		panic("realloc fails");
 	return p;
 }
-
-
blob - 5ccd999ae3e68b23175c7f535d93d03842641239
blob + 0b04d0b066928a83604d794948ae333e98f4848e
--- src/cmd/samterm/icons.c
+++ src/cmd/samterm/icons.c
@@ -22,13 +22,13 @@ Cursor bullseye={
 };
 Cursor deadmouse={
 	{-7, -7},
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	 0x00, 0x00, 0x00, 0x0C, 0x00, 0x8E, 0x1D, 0xC7,
-	 0xFF, 0xE3, 0xFF, 0xF3, 0xFF, 0xFF, 0x7F, 0xFE, 
+	 0xFF, 0xE3, 0xFF, 0xF3, 0xFF, 0xFF, 0x7F, 0xFE,
 	 0x3F, 0xF8, 0x17, 0xF0, 0x03, 0xE0, 0x00, 0x00,},
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x82,
-	 0x04, 0x41, 0xFF, 0xE1, 0x5F, 0xF1, 0x3F, 0xFE, 
+	 0x04, 0x41, 0xFF, 0xE1, 0x5F, 0xF1, 0x3F, 0xFE,
 	 0x17, 0xF0, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00,}
 };
 Cursor lockarrow={
blob - 7c653aa4837f8e23dcc766bdc767bb7239826c55
blob + e1dd148adb00fa99a3be28c9932b7d0b10954325
--- src/cmd/samterm/io.c
+++ src/cmd/samterm/io.c
@@ -170,7 +170,7 @@ again:
 		goto again;
 	}
 	got |= 1<<type;
-	return got; 
+	return got;
 }
 
 int
blob - 5fc42908e1d380dd036c6f87888bbccfb4f2cff1
blob + de9518456f12ebb4652e68e800c09f313fcdca15
--- src/cmd/samterm/main.c
+++ src/cmd/samterm/main.c
@@ -464,7 +464,7 @@ flushtyping(int clearesc)
 	ulong n;
 
 	if(clearesc)
-		typeesc = -1;	
+		typeesc = -1;
 	if(typestart == typeend) {
 		modified = 0;
 		return;
@@ -514,7 +514,7 @@ nontypingkey(int c)
 	case SCROLLKEY:
 	case CUT:
 	case COPY:
-	case PASTE:    
+	case PASTE:
 		return 1;
 	}
 	return 0;
blob - 1e9cd5612be1aef9a0dbe13241cf6ddf9e6452b3
blob + 32478ea2870cb44dfcf7004424ed370c499aee39
--- src/cmd/samterm/mesg.c
+++ src/cmd/samterm/mesg.c
@@ -472,7 +472,7 @@ void
 outcopy(int count, uchar *data)
 {
 	while(count--)
-		outdata[HSIZE+outcount++] = *data++;	
+		outdata[HSIZE+outcount++] = *data++;
 }
 
 void
blob - ac564ecff9932b33cf7cb29ca27b3b25a17ebccf
blob + 2e1a645d64d5e96905b00dd08ae9fd4b523e82e9
--- src/cmd/samterm/samterm.h
+++ src/cmd/samterm/samterm.h
@@ -181,4 +181,3 @@ void	outshort(int);
 void	outlong(long);
 void	outvlong(vlong);
 void	outsend(void);
-
blob - 9af012eaa56ab636c90685e1272977ca769c58f5
blob + 9219ee51bac07ce89e3e46105f8d1240267ec585
--- src/cmd/scat/display.c
+++ src/cmd/scat/display.c
@@ -10,8 +10,8 @@ displaypic(Picture *pic)
 	int p[2];
 	int i, n;
 	uchar *a;
-	
 
+
 	if(pipe(p) < 0){
 		fprint(2, "pipe failed: %r\n");
 		return;
@@ -58,7 +58,7 @@ displaypic(Picture *pic)
 void
 displayimage(Image *im)
 {
-	int p[2];	
+	int p[2];
 
 	if(pipe(p) < 0){
 		fprint(2, "pipe failed: %r\n");
blob - 519d98f9aa8fa081d4c40739bc2427ddea137f89
blob + 4cd03d02257ae6c4729933cc5cb77fab74096301
--- src/cmd/scat/header.c
+++ src/cmd/scat/header.c
@@ -244,4 +244,3 @@ dssmount(int dskno)
 	Bprint(&bout, "not mounting dss\n");
 	return "/n/dss";
 }
-
blob - ade4ac5b36b8d78792c304e8c833533fb10ddb6a
blob + c8c743a5d6594b7791e3464aab28ebb8c85fd008
--- src/cmd/scat/plot.c
+++ src/cmd/scat/plot.c
@@ -407,22 +407,22 @@ drawplanet(Image *scr, Planetrec *p, Point pt)
 	}
 	if(strcmp(p->name, "saturn") == 0){
 		drawdisc(scr, p->semidiam, 1, saturncolor, pt, "S");
-		
+
 		return;
 	}
 	if(strcmp(p->name, "uranus") == 0){
 		drawdisc(scr, p->semidiam, 0, uranuscolor, pt, "U");
-		
+
 		return;
 	}
 	if(strcmp(p->name, "neptune") == 0){
 		drawdisc(scr, p->semidiam, 0, neptunecolor, pt, "N");
-		
+
 		return;
 	}
 	if(strcmp(p->name, "pluto") == 0){
 		drawdisc(scr, p->semidiam, 0, plutocolor, pt, "P");
-		
+
 		return;
 	}
 	if(strcmp(p->name, "comet") == 0){
blob - 35b7e7aa0fa161044db83b750f8f80f68265addd
blob + dff596b17eecd9f7a86b9608b9fe00b4b8691f04
--- src/cmd/scat/scat.c
+++ src/cmd/scat/scat.c
@@ -531,7 +531,7 @@ alpha(char *s, char *t)
 	if(strncmp(s, t, n)==0 && (s[n]<'a' || 'z'<s[n]))
 		return skipbl(s+n);
 	return 0;
-	
+
 }
 
 char*
@@ -543,7 +543,7 @@ text(char *s, char *t)
 	if(strncmp(s, t, n)==0 && (s[n]==0 || s[n]==' ' || s[n]=='\t'))
 		return skipbl(s+n);
 	return 0;
-	
+
 }
 
 int
blob - 6be98145788e9c2baf81aea577ad7e6f3e28e4cb
blob + bc55fbfcb761258e76641af0bed92e052a870c8e
--- src/cmd/scat/sky.h
+++ src/cmd/scat/sky.h
@@ -22,7 +22,7 @@
  *			The BB field is a dreg, and correct only for SAO and NGC.
  *			IC(n) is just NGC(n+7840)
  *		Others should be self-explanatory.
- *	
+ *
  *	Records:
  *
  *	Star is an SAOrec
blob - a78c9c66496d54118c6f150daf516610e6982faf
blob + 23615cf22bf78a95b54d4a952fa6fd95c9d112b7
--- src/cmd/sed.c
+++ src/cmd/sed.c
@@ -81,7 +81,7 @@ typedef struct	SEDCOM {
 #define	YCOM	026
 #define XCOM	033
 
-	
+
 typedef struct label {			/* Label symbol table */
 	Rune	asc[9];			/* Label name */
 	SedCom	*chain;
@@ -632,7 +632,7 @@ compsub(Rune *rhs, Rune *end)
 		}
 		if (rhs < end)
 			*rhs++ = r;
-		else	
+		else
 			return 0;
 
 	}
@@ -725,7 +725,7 @@ getrune(void)
 				c = '\n';	/* fake an end-of-line */
 				prog.pctl.curr = 0;
 			}
-		} else 
+		} else
 			c = -1;
 	} else if ((c = Bgetrune(prog.pctl.bp)) < 0)
 			Bterm(prog.pctl.bp);
@@ -992,7 +992,7 @@ match(Reprog *pattern, Rune *buf)
 {
 	if (!pattern)
 		return 0;
-	subexp[0].s.rsp = buf; 
+	subexp[0].s.rsp = buf;
 	subexp[0].e.rep = 0;
 	if (rregexec(pattern, linebuf, subexp, MAXSUB) > 0) {
 		loc1 = subexp[0].s.rsp;
blob - 3f8ea16554beca72061f5fcd47003c65432db85e
blob + b21e8a7e594734a6c63d27450de63fae3444c140
--- src/cmd/sftpcache.c
+++ src/cmd/sftpcache.c
@@ -5,9 +5,9 @@
  *
  * Stupid sftp bug: sftp invokes ssh, which always set O_NONBLOCK
  * on 0, 1, and 2.  Ssh inherits sftp's 2, so we can't use the output pipe
- * on fd 2, since it will get set O_NONBLOCK, sftp won't notice, and 
+ * on fd 2, since it will get set O_NONBLOCK, sftp won't notice, and
  * writes will be lost.  So instead we use a separate pipe for errors
- * and consult it after each command.  Assume the pipe buffer is 
+ * and consult it after each command.  Assume the pipe buffer is
  * big enough to hold the error output.
  */
 #include <u.h>
@@ -35,7 +35,7 @@ Brd(Biobuf *bin)
 {
 	static char buf[1000];
 	int c, tot;
-	
+
 	tot = 0;
 	while((c = Bgetc(bin)) >= 0 && tot<sizeof buf){
 		buf[tot++] = c;
@@ -59,7 +59,7 @@ int
 readstr(int fd, char *a, int n)
 {
 	int i;
-	
+
 	for(i=0; i<n; i++){
 		if(read(fd, a+i, 1) != 1)
 			return -1;
@@ -76,7 +76,7 @@ doerrors(int fd)
 {
 	char buf[100];
 	int n, first;
-	
+
 	first = 1;
 	while((n = read(sftperr, buf, sizeof buf)) > 0){
 		if(debug){
@@ -106,7 +106,7 @@ main(int argc, char **argv)
 	char buf[200], cmd[1000], *q, *s;
 	char dir[100], ndir[100];
 	int p[2], px[2], pe[2], pid, ctl, nctl, fd, n;
-	
+
 	notify(bell);
 	fmtinstall('H', encodefmt);
 
@@ -117,10 +117,10 @@ main(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 1)
 		usage();
-	
+
 	if(pipe(p) < 0 || pipe(px) < 0 || pipe(pe) < 0)
 		sysfatal("pipe: %r");
 	pid = fork();
@@ -169,7 +169,7 @@ main(int argc, char **argv)
 		sysfatal("fork");
 	if(pid != 0)
 		exits(nil);
-		
+
 	for(;;){
 		nctl = listen(dir, ndir);
 		if(nctl < 0)
@@ -215,4 +215,3 @@ main(int argc, char **argv)
 		close(fd);
 	}
 }
-
blob - fa65002d7867e67a0b664a08d7c1478a12196832
blob + 4b42f140ae1080655b75ad4c60f3a47e8c51f9fb
--- src/cmd/smugfs/a.h
+++ src/cmd/smugfs/a.h
@@ -187,4 +187,3 @@ enum
 };
 
 extern int printerrors;
-
blob - 2adf8b9b62d6583f2ba7db8abfb509810740d01d
blob + afce6ba7179a7a5344098ab16a89d2ccdb468e23
--- src/cmd/smugfs/cache.c
+++ src/cmd/smugfs/cache.c
@@ -78,14 +78,14 @@ static void
 movetofront(Cache *c, CEntry *e)
 {
 	popout(c, e);
-	insertfront(c, e);	
+	insertfront(c, e);
 }
 
 static CEntry*
 evict(Cache *c)
 {
 	CEntry *e;
-	
+
 	e = c->tail;
 	popout(c, e);
 	c->cefree(e);
@@ -101,7 +101,7 @@ cachelookup(Cache *c, char *name, int create)
 {
 	int h;
 	CEntry *e;
-	
+
 	h = hash(name) % c->nhash;
 	for(e=c->hash[h]; e; e=e->hash.next){
 		if(strcmp(name, e->name) == 0){
@@ -109,10 +109,10 @@ cachelookup(Cache *c, char *name, int create)
 			return e;
 		}
 	}
-	
+
 	if(!create)
 		return nil;
-	
+
 	if(c->nentry >= c->maxentry)
 		e = evict(c);
 	else{
@@ -124,7 +124,7 @@ cachelookup(Cache *c, char *name, int create)
 	h = hash(name) % c->nhash;
 	e->hash.next = c->hash[h];
 	c->hash[h] = e;
-	return e;	
+	return e;
 }
 
 void
@@ -132,7 +132,7 @@ cacheflush(Cache *c, char *substr)
 {
 	CEntry **l, *e;
 	int i;
-	
+
 	for(i=0; i<c->nhash; i++){
 		for(l=&c->hash[i]; (e=*l); ){
 			if(substr == nil || strstr(e->name, substr)){
blob - e23d49e145a8cb77a08df7d0e9cf82370891149c
blob + 82a2c753b9707a2dcf24f3c22471196e2700c57a
--- src/cmd/smugfs/download.c
+++ src/cmd/smugfs/download.c
@@ -13,7 +13,7 @@ static void
 dfree(CEntry *ce)
 {
 	DEntry *d;
-	
+
 	d = (DEntry*)ce;
 	if(d->tmpfile){
 		remove(d->tmpfile);
@@ -61,7 +61,7 @@ download(char *url, HTTPHeader *hdr)
 	host = parseurl(url, &path);
 	if(host == nil)
 		return -1;
-	
+
 	d = (DEntry*)cachelookup(downloadcache, url, 1);
 	if(d->tmpfile){
 		free(host);
@@ -81,7 +81,7 @@ download(char *url, HTTPHeader *hdr)
 	fmtprint(&fmt, "User-Agent: " USER_AGENT "\r\n");
 	fmtprint(&fmt, "\r\n");
 	req = fmtstrflush(&fmt);
-	
+
 	fprint(2, "Get %s\n", url);
 
 	if(httptofile(&http, host, req, hdr, fd) < 0){
blob - a57b96d11d58938578d99dfa505394a27cc7ffa0
blob + 47e0a47b45c5f4c295ad400ede95891a973c2700
--- src/cmd/smugfs/fs.c
+++ src/cmd/smugfs/fs.c
@@ -94,7 +94,7 @@ newupload(SmugFid *sf, char *name)
 	Upload *u;
 	int fd, i;
 	char tmp[] = "/var/tmp/smugfs.XXXXXX";
-	
+
 	if((fd = opentemp(tmp, ORDWR)) < 0)
 		return nil;
 	qlock(&uploadlock);
@@ -192,7 +192,7 @@ getuploadname(SmugFid *sf, char *name)
 {
 	int i;
 	Upload *u;
-	
+
 	qlock(&uploadlock);
 	for(i=0; i<nup; i++){
 		u = up[i];
@@ -280,7 +280,7 @@ doupload(Upload *u)
 	}
 	datalen = d->length;
 	free(d);
-	
+
 	memset(&ds, 0, sizeof ds);
 	seek(u->fd, 0, 0);
 	total = 0;
@@ -306,7 +306,7 @@ doupload(Upload *u)
 	fmtprint(&fmt, "X-Smug-FileName: %s\r\n", u->name);
 	fmtprint(&fmt, "\r\n");
 	req = fmtstrflush(&fmt);
-	
+
 	seek(u->fd, 0, 0);
 	jv = jsonupload(&http, UPLOAD_HOST, req, u->fd, datalen);
 	free(req);
@@ -330,7 +330,7 @@ nickindex(char *name)
 {
 	int i;
 	Json *v;
-	
+
 	for(i=0; i<nnick; i++)
 		if(strcmp(nick[i], name) == 0)
 			return i;
@@ -354,7 +354,7 @@ void
 responderrstr(Req *r)
 {
 	char err[ERRMAX];
-	
+
 	rerrstr(err, sizeof err);
 	respond(r, err);
 }
@@ -363,7 +363,7 @@ static char*
 xclone(Fid *oldfid, Fid *newfid)
 {
 	SmugFid *sf;
-	
+
 	if(oldfid->aux == nil)
 		return nil;
 
@@ -402,7 +402,7 @@ static Json*
 getcategories(SmugFid *sf)
 {
 	Json *v, *w;
-	
+
 	v = smug("smugmug.categories.get", "NickName", nickname(sf->nickid), nil);
 	w = jincref(jwalk(v, "Categories"));
 	jclose(v);
@@ -413,7 +413,7 @@ static Json*
 getcategorytree(SmugFid *sf)
 {
 	Json *v, *w;
-	
+
 	v = smug("smugmug.users.getTree", "NickName", nickname(sf->nickid), nil);
 	w = jincref(jwalk(v, "Categories"));
 	jclose(v);
@@ -425,7 +425,7 @@ getcategory(SmugFid *sf, vlong id)
 {
 	int i;
 	Json *v, *w;
-	
+
 	v = getcategorytree(sf);
 	if(v == nil)
 		return nil;
@@ -446,7 +446,7 @@ getcategoryid(SmugFid *sf, char *name)
 	int i;
 	vlong id;
 	Json *v;
-	
+
 	v = getcategories(sf);
 	if(v == nil)
 		return -1;
@@ -470,7 +470,7 @@ getcategoryindex(SmugFid *sf, int i)
 {
 	Json *v;
 	vlong id;
-	
+
 	v = getcategories(sf);
 	if(v == nil)
 		return -1;
@@ -510,7 +510,7 @@ getalbums(SmugFid *sf)
 			"NickName", nickname(sf->nickid), nil);
 	w = jincref(jwalk(v, "Albums"));
 	jclose(v);
-	return w;	
+	return w;
 }
 
 static vlong
@@ -520,7 +520,7 @@ getalbumid(SmugFid *sf, char *name, char **keyp)
 	vlong id;
 	Json *v;
 	char *key;
-	
+
 	v = getalbums(sf);
 	if(v == nil)
 		return -1;
@@ -548,7 +548,7 @@ getalbumindex(SmugFid *sf, int i, char **keyp)
 	vlong id;
 	Json *v;
 	char *key;
-	
+
 	v = getalbums(sf);
 	if(v == nil)
 		return -1;
@@ -591,7 +591,7 @@ getimageid(SmugFid *sf, char *name, char **keyp)
 	Json *v;
 	char *p;
 	char *key;
-	
+
 	id = strtol(name, &p, 10);
 	if(*p != 0 || *name == 0)
 		return -1;
@@ -652,7 +652,7 @@ getimageindex(SmugFid *sf, int i, char **keyp)
 	vlong id;
 	Json *v;
 	char *key;
-	
+
 	v = getimages(sf, sf->album, sf->albumkey);
 	if(v == nil)
 		return -1;
@@ -677,7 +677,7 @@ categoryname(SmugFid *sf)
 {
 	Json *v;
 	char *s;
-	
+
 	v = getcategory(sf, sf->category);
 	s = jstring(jwalk(v, "Name"));
 	if(s)
@@ -691,7 +691,7 @@ albumname(SmugFid *sf)
 {
 	Json *v;
 	char *s;
-	
+
 	v = getalbum(sf, sf->album, sf->albumkey);
 	s = jstring(jwalk(v, "Title"));
 	if(s)
@@ -705,7 +705,7 @@ imagename(SmugFid *sf)
 {
 	char *s;
 	Json *v;
-	
+
 	v = getimageinfo(sf, sf->image, sf->imagekey);
 	s = jstring(jwalk(v, "FileName"));
 	if(s && s[0])
@@ -721,7 +721,7 @@ imagelength(SmugFid *sf)
 {
 	vlong length;
 	Json *v;
-	
+
 	v = getimageinfo(sf, sf->image, sf->imagekey);
 	length = jint(jwalk(v, "Size"));
 	jclose(v);
@@ -763,7 +763,7 @@ imageurl(SmugFid *sf)
 	return nil;
 }
 
-static char* imagestrings[] = 
+static char* imagestrings[] =
 {
 	"Caption",
 	"LastUpdated",
@@ -786,7 +786,7 @@ static char* imagestrings[] = 
 	"Album",
 };
 
-static char* albumbools[] = 
+static char* albumbools[] =
 {
 	"Public",
 	"Printable",
@@ -810,7 +810,7 @@ static char* albumbools[] = 
 	"X3Larges",
 };
 
-static char* albumstrings[] = 
+static char* albumstrings[] =
 {
 	"Description"
 	"Keywords",
@@ -866,7 +866,7 @@ readctl(SmugFid *sf)
 	case Qimagectl:
 		v = getimageinfo(sf, sf->image, sf->imagekey);
 		break;
-	
+
 	case Qimageurl:
 		v = getimageinfo(sf, sf->image, sf->imagekey);
 		fmtstrinit(&fmt);
@@ -875,11 +875,11 @@ readctl(SmugFid *sf)
 				fmtprint(&fmt, "%s %s\n", urls[i].name, s);
 		jclose(v);
 		return fmtstrflush(&fmt);
-	
+
 	case Qimageexif:
 		v = getimageexif(sf, sf->image, sf->imagekey);
 		break;
-	
+
 	case Qalbumsettings:
 		v = getalbum(sf, sf->album, sf->albumkey);
 		fmtstrinit(&fmt);
@@ -946,7 +946,7 @@ dostat(SmugFid *sf, Qid *qid, Dir *dir)
 	char *uid;
 	char *s;
 	vlong length;
-	
+
 	memset(&q, 0, sizeof q);
 	name = nil;
 	freename = 0;
@@ -1106,7 +1106,7 @@ xwalk1(Fid *fid, char *name, Qid *qid)
 	SmugFid *sf;
 	char *x;
 	Upload *u;
-	
+
 	dotdot = strcmp(name, "..") == 0;
 	sf = fid->aux;
 	switch(sf->type){
@@ -1157,7 +1157,7 @@ xwalk1(Fid *fid, char *name, Qid *qid)
 			break;
 		}
 		goto NotFound;
-	
+
 	case Qalbums:
 	case Qcategory:
 		if(dotdot){
@@ -1208,7 +1208,7 @@ xwalk1(Fid *fid, char *name, Qid *qid)
 			break;
 		}
 		goto NotFound;
-	
+
 	case Qimage:
 		if(dotdot){
 			free(sf->imagekey);
@@ -1279,7 +1279,7 @@ dodirgen(int i, Dir *d, void *v)
 		xsf.nickid = i;
 		dostat(&xsf, nil, d);
 		return 0;
-	
+
 	case Qnick:
 		if(i-- == 0){
 			xsf.type = Qalbums;
@@ -1292,7 +1292,7 @@ dodirgen(int i, Dir *d, void *v)
 		xsf.category = id;
 		dostat(&xsf, nil, d);
 		return 0;
-	
+
 	case Qalbums:
 	case Qcategory:
 		if((id = getalbumindex(sf, i, &key)) < 0)
@@ -1303,7 +1303,7 @@ dodirgen(int i, Dir *d, void *v)
 		dostat(&xsf, nil, d);
 		free(key);
 		return 0;
-	
+
 	case Qalbum:
 		if(i-- == 0){
 			xsf.type = Qalbumsettings;
@@ -1325,7 +1325,7 @@ dodirgen(int i, Dir *d, void *v)
 		dostat(&xsf, nil, d);
 		free(key);
 		return 0;
-	
+
 	case Qimage:
 		if(i-- == 0){
 			xsf.type = Qimagefile;
@@ -1394,13 +1394,13 @@ xwstat(Req *r)
 		}
 	}
 	respond(r, "invalid wstat");
-}			
+}
 
 static void
 xattach(Req *r)
 {
 	SmugFid *sf;
-	
+
 	sf = emalloc(sizeof *sf);
 	r->fid->aux = sf;
 	sf->type = Qroot;
@@ -1430,7 +1430,7 @@ xopen(Req *r)
 	case Qalbumsettings:
 	case Qimagesettings:
 		break;
-	
+
 	case Quploadfile:
 		if(r->ifcall.mode != OREAD){
 			lock(&sf->upload->lk);
@@ -1444,7 +1444,7 @@ xopen(Req *r)
 			unlock(&sf->upload->lk);
 		}
 		break;
-	
+
 	default:
 		if(r->ifcall.mode != OREAD){
 			respond(r, "permission denied");
@@ -1492,7 +1492,7 @@ xcreate(Req *r)
 		dostat(sf, &r->ofcall.qid, nil);
 		respond(r, nil);
 		return;
-		
+
 	case Qcategory:
 		// Create new album.
 		if(!(r->ifcall.perm&DMDIR))
@@ -1500,7 +1500,7 @@ xcreate(Req *r)
 		snprint(strid, sizeof strid, "%lld", sf->category);
 		// Start with most restrictive settings.
 		v = ncsmug("smugmug.albums.create",
-			"Title", r->ifcall.name, 
+			"Title", r->ifcall.name,
 			"CategoryID", strid,
 			"Public", "0",
 			"WorldSearchable", "0",
@@ -1526,7 +1526,7 @@ xcreate(Req *r)
 		dostat(sf, &r->ofcall.qid, nil);
 		respond(r, nil);
 		return;
-		
+
 	case Qalbum:
 		// Upload image to album.
 		if(r->ifcall.perm&DMDIR)
@@ -1543,14 +1543,14 @@ xcreate(Req *r)
 		respond(r, nil);
 		return;
 	}
-	respond(r, "permission denied");	
+	respond(r, "permission denied");
 }
 
 static int
 writetofd(Req *r, int fd)
 {
 	int total, n;
-	
+
 	total = 0;
 	while(total < r->ifcall.count){
 		n = pwrite(fd, (char*)r->ifcall.data+total, r->ifcall.count-total, r->ifcall.offset+total);
@@ -1580,7 +1580,7 @@ xread(Req *r)
 	int fd;
 	HTTPHeader hdr;
 	char *url;
-	
+
 	sf = r->fid->aux;
 	r->ofcall.count = 0;
 	switch(sf->type){
@@ -1640,7 +1640,7 @@ xwrite(Req *r)
 	Json *v;
 	char strid[50];
 	SmugFid *sf;
-	
+
 	sf = r->fid->aux;
 	r->ofcall.count = r->ifcall.count;
 	sync = (r->ifcall.count==4 && memcmp(r->ifcall.data, "sync", 4) == 0);
@@ -1660,7 +1660,7 @@ xwrite(Req *r)
 			respond(r, nil);
 			return;
 		}
-		break;		
+		break;
 	case Qalbumsctl:
 	case Qcategoryctl:
 		jcacheflush("smugmug.categories.get");
@@ -1740,7 +1740,7 @@ xwrite(Req *r)
 	}
 	respond(r, "invalid control message");
 	return;
-}	
+}
 
 void
 xremove(Req *r)
@@ -1803,7 +1803,7 @@ xremove(Req *r)
 			respond(r, nil);
 		}
 		return;
-		
+
 	case Qimage:
 		snprint(id, sizeof id, "%lld", sf->image);
 		v = ncsmug("smugmug.images.delete",
@@ -1832,7 +1832,7 @@ Srv xsrv;
 
 void
 xinit(void)
-{	
+{
 	xsrv.attach = xattach;
 	xsrv.open = xopen;
 	xsrv.create = xcreate;
blob - 9cf7f1d0729290ee40ac16f0d3e944dc165238a6
blob + c6c117fcab8b1e2d85b6179f5ae2cc683dd4deb8
--- src/cmd/smugfs/http.c
+++ src/cmd/smugfs/http.c
@@ -21,7 +21,7 @@ parseheader(char *buf, int n, HTTPHeader *hdr)
 {
 	int nline;
 	char *data, *ebuf, *p, *q, *next;
-	
+
 	memset(hdr, 0, sizeof *hdr);
 	ebuf = buf+n;
 	data = haveheader(buf, n);
@@ -78,7 +78,7 @@ parseheader(char *buf, int n, HTTPHeader *hdr)
 				q++;
 			strncpy(hdr->codedesc, q, sizeof hdr->codedesc);
 			hdr->codedesc[sizeof hdr->codedesc-1] = 0;
-			continue;				
+			continue;
 		}
 		q = strchr(p, ':');
 		if(q == nil)
@@ -103,7 +103,7 @@ parseheader(char *buf, int n, HTTPHeader *hdr)
 
 	memmove(buf, data, ebuf - data);
 	return ebuf - data;
-} 
+}
 
 static char*
 genhttp(Protocol *proto, char *host, char *req, HTTPHeader *hdr, int wfd, int rfd, vlong rtotal)
@@ -131,7 +131,7 @@ genhttp(Protocol *proto, char *host, char *req, HTTPHe
 		proto->close(fd);
 		return nil;
 	}
-	
+
 	if(rfd >= 0){
 		while(rtotal > 0){
 			m = sizeof buf;
blob - 750f232c069e7a7ff386a4da1a02fdc7fc7e799a
blob + 026aa59e86403530a2d2a46b3b3822caf5ca2317
--- src/cmd/smugfs/icache.c
+++ src/cmd/smugfs/icache.c
@@ -30,7 +30,7 @@ icachefind(char *url)
 {
 	int h;
 	Icache *ic;
-	
+
 	h = hash(url) % NHASH;
 	for(ic=icache.hash[h]; ic; ic=ic->hash){
 		if(strcmp(ic->url, url) == 0){
@@ -82,7 +82,7 @@ icacheinsert(char *url, HTTPHeader *hdr, char *file, i
 		ic = emalloc(sizeof *ic);
 		icache.n++;
 	}
-	
+
 	ic->url = estrdup(url);
 	ic->fd = dup(fd, -1);
 	ic->file = estrdup(file);
@@ -103,7 +103,7 @@ void
 icacheflush(char *substr)
 {
 	Icache **l, *ic;
-	
+
 	for(l=&icache.head; (ic=*l); ) {
 		if(substr == nil || strstr(ic->url, substr)) {
 			icache.n--;
@@ -116,7 +116,7 @@ icacheflush(char *substr)
 		}else
 			l = &ic->next;
 	}
-	
+
 	if(icache.head) {
 		icache.head->prev = nil;
 		for(ic=icache.head; ic; ic=ic->next){
@@ -168,4 +168,3 @@ urlfetch(char *url, HTTPHeader hdr)
 	icacheinsert(url, &hdr, buf, fd);
 	return fd;
 }
-
blob - d6472b4db0a71cb7d11413ecea566cf11a82bc63
blob + c79c189c767c461874fb66ec026c0f706ec4682d
--- src/cmd/smugfs/json.c
+++ src/cmd/smugfs/json.c
@@ -22,7 +22,7 @@ static Json*
 newjval(int type)
 {
 	Json *v;
-	
+
 	v = emalloc(sizeof *v);
 	v->ref = 1;
 	v->type = type;
@@ -142,7 +142,7 @@ parsenumber(char **pp)
 	double d;
 	Json *v;
 
-	/* -?(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))?([Ee][-+]?[0-9]+) */	
+	/* -?(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))?([Ee][-+]?[0-9]+) */
 	p = wskip(*pp);
 	q = p;
 	if(*q == '-')
@@ -171,7 +171,7 @@ parsenumber(char **pp)
 		while('0' <= *q && *q <= '9')
 			q++;
 	}
-	
+
 	t = emalloc(q-p+1);
 	memmove(t, p, q-p);
 	t[q-p] = 0;
@@ -185,7 +185,7 @@ parsenumber(char **pp)
 	v = newjval(Jnumber);
 	v->number = d;
 	*pp = q;
-	return v;			
+	return v;
 }
 
 static Json*
@@ -335,7 +335,7 @@ Json*
 parsejson(char *text)
 {
 	Json *v;
-	
+
 	v = parsevalue(&text);
 	if(v && text && *wskip(text) != 0){
 		jclose(v);
@@ -417,7 +417,7 @@ printjval(Json *v)
 {
 	Fmt fmt;
 	char buf[256];
-	
+
 	fmtfdinit(&fmt, 1, buf, sizeof buf);
 	_printjval(&fmt, v, 0);
 	fmtprint(&fmt, "\n");
@@ -429,7 +429,7 @@ int
 jsonfmt(Fmt *fmt)
 {
 	Json *v;
-	
+
 	v = va_arg(fmt->args, Json*);
 	if(fmt->flags&FmtSharp)
 		_printjval(fmt, v, 0);
@@ -484,7 +484,7 @@ Json*
 jlookup(Json *v, char *name)
 {
 	int i;
-	
+
 	if(v->type != Jobject)
 		return nil;
 	for(i=0; i<v->len; i++)
@@ -498,7 +498,7 @@ jwalk(Json *v, char *path)
 {
 	char elem[128], *p, *next;
 	int n;
-	
+
 	for(p=path; *p && v; p=next){
 		next = strchr(p, '/');
 		if(next == nil)
@@ -547,7 +547,7 @@ int
 jstrcmp(Json *jv, char *s)
 {
 	char *t;
-	
+
 	t = jstring(jv);
 	if(t == nil)
 		return -2;
blob - 92490e775a5e696bf24ceaa7969f76e603872ac0
blob + f0043bb392b686a424d6b3a536120f2142b70158
--- src/cmd/smugfs/jsonrpc.c
+++ src/cmd/smugfs/jsonrpc.c
@@ -17,7 +17,7 @@ static void
 jfree(CEntry *ce)
 {
 	JEntry *j;
-	
+
 	j = (JEntry*)ce;
 	jclose(j->reply);
 }
@@ -45,7 +45,7 @@ static char*
 makehttprequest(char *host, char *path, char *postdata)
 {
 	Fmt fmt;
-	
+
 	fmtstrinit(&fmt);
 	fmtprint(&fmt, "POST %s HTTP/1.0\r\n", path);
 	fmtprint(&fmt, "Host: %s\r\n", host);
@@ -87,7 +87,7 @@ dojsonhttp(Protocol *proto, char *host, char *request,
 {
 	char *data;
 	HTTPHeader hdr;
-	
+
 	data = httpreq(proto, host, request, &hdr, rfd, rlength);
 	if(data == nil){
 		fprint(2, "httpreq: %r\n");
@@ -184,7 +184,7 @@ ncsmug(char *method, char *name1, ...)
 {
 	Json *jv;
 	va_list arg;
-	
+
 	va_start(arg, name1);
 	// TODO: Could use https only for login.
 	jv = jsonrpc(&https, HOST, PATH, method, name1, arg, 0);
@@ -198,7 +198,7 @@ smug(char *method, char *name1, ...)
 {
 	Json *jv;
 	va_list arg;
-	
+
 	va_start(arg, name1);
 	jv = jsonrpc(&http, HOST, PATH, method, name1, arg, 1);
 	va_end(arg);
@@ -241,4 +241,3 @@ jsonupload(Protocol *proto, char *host, char *req, int
 	jclose(jv);
 	return nil;
 }
-
blob - 5603211e317f4f3bbec3319233d6316b81a7d5a8
blob + 5e2f015a2909c9d599fce616801f21fec29c6c6d
--- src/cmd/smugfs/log.c
+++ src/cmd/smugfs/log.c
@@ -117,4 +117,3 @@ rpclog(char *fmt, ...)
 	lbvappend(&rpclogbuf, fmt, arg);
 	va_end(arg);
 }
-
blob - 6be0ca42d339a0377bdca16452a2eb5926f37542
blob + e1c2745f6549ad4038c27a13c3976f5689e1c12c
--- src/cmd/smugfs/main.c
+++ src/cmd/smugfs/main.c
@@ -32,7 +32,7 @@ smuglogin(void)
 		nil);
 	if(v == nil)
 		sysfatal("login failed: %r");
-	
+
 	memset(up->user, 'X', strlen(up->user));
 	memset(up->passwd, 'X', strlen(up->passwd));
 	free(up);
@@ -80,13 +80,13 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 0)
 		usage();
 
 	if(name == nil && mtpt == nil)
 		mtpt = "/n/smug";
-	
+
 	/*
 	 * Check twice -- if there is an exited smugfs instance
 	 * mounted there, the first access will fail but unmount it.
blob - baccd3acd7eb8db99a4b26aa5f624d0a24eb936c
blob + 01b169c8e92bab6d6f94a5a912913051acd46065
--- src/cmd/smugfs/openssl.c
+++ src/cmd/smugfs/openssl.c
@@ -39,10 +39,10 @@ opensslconnect(char *host)
 	sbio = BIO_new_ssl_connect(ctx);
 	BIO_get_ssl(sbio, &ssl);
 	SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
-	
+
 	snprint(buf, sizeof buf, "%s:https", host);
 	BIO_set_conn_hostname(sbio, buf);
-	
+
 	if(BIO_do_connect(sbio) <= 0 || BIO_do_handshake(sbio) <= 0){
 		ERR_error_string_n(ERR_get_error(), buf, sizeof buf);
 		BIO_free_all(sbio);
@@ -69,7 +69,7 @@ opensslwrite(Pfd *pfd, void *v, int n)
 {
 	int m, total;
 	char *p;
-	
+
 	p = v;
 	total = 0;
 	while(total < n){
@@ -80,7 +80,7 @@ opensslwrite(Pfd *pfd, void *v, int n)
 		}
 		total += m;
 	}
-	return total;	
+	return total;
 }
 
 static int
blob - a203ece937e37e8a341a53b7997ed9cc5198fb51
blob + b8b9511277294ab5bba38e98ec230a7e4ed2e7bb
--- src/cmd/smugfs/tcp.c
+++ src/cmd/smugfs/tcp.c
@@ -47,4 +47,3 @@ Protocol http = {
 	httpwrite,
 	httpclose,
 };
-
blob - b4a649d83180a51aa45940f38b1c658ce2d26f24
blob + 90a12cb9a31e0269001f3bb100b3ca5542696e37
--- src/cmd/smugfs/util.c
+++ src/cmd/smugfs/util.c
@@ -4,7 +4,7 @@ void*
 emalloc(int n)
 {
 	void *v;
-	
+
 	v = mallocz(n, 1);
 	if(v == nil)
 		sysfatal("out of memory");
@@ -34,9 +34,9 @@ timefmt(Fmt *f)
 {
 	Tm tm;
 	vlong ms;
-	
+
 	ms = nsec()/1000000;
-	
+
 	tm = *localtime(ms/1000);
 	fmtprint(f, "%02d:%02d:%02d.%03d",
 		tm.hour, tm.min, tm.sec,
@@ -64,7 +64,7 @@ urlencodefmt(Fmt *fmt)
 {
 	int x;
 	char *s;
-	
+
 	s = va_arg(fmt->args, char*);
 	for(; *s; s++){
 		x = (uchar)*s;
@@ -78,4 +78,3 @@ urlencodefmt(Fmt *fmt)
 	}
 	return 0;
 }
-
blob - 20f5b6ad10491e02fcc5a17c2b630009a28b54d4
blob + 613a8cc519b4b465a863c277c0337e3c1f37132f
--- src/cmd/snarfer/osx-cocoa-snarfer.c
+++ src/cmd/snarfer/osx-cocoa-snarfer.c
@@ -1,2 +1 @@
 #include "snarfer.c"
-
blob - 20f5b6ad10491e02fcc5a17c2b630009a28b54d4
blob + 613a8cc519b4b465a863c277c0337e3c1f37132f
--- src/cmd/snarfer/osx-snarfer.c
+++ src/cmd/snarfer/osx-snarfer.c
@@ -1,2 +1 @@
 #include "snarfer.c"
-
blob - 9477f0420951bb79e220344c7b46c48f8074f0de
blob + d09b2f44b360dd8abe9f94c6a1b5949f18060485
--- src/cmd/snarfer/snarfer.c
+++ src/cmd/snarfer/snarfer.c
@@ -89,7 +89,7 @@ void
 main(int argc, char **argv)
 {
 	XEvent xevent;
-	
+
 	ARGBEGIN{
 	default:
 		usage();
@@ -100,14 +100,14 @@ main(int argc, char **argv)
 
 	if((xdisplay = XOpenDisplay(nil)) == nil)
 		sysfatal("XOpenDisplay: %r");
-	drawable = XCreateWindow(xdisplay, DefaultRootWindow(xdisplay), 
-		0, 0, 1, 1, 0, 0, 
-		InputOutput, DefaultVisual(xdisplay, DefaultScreen(xdisplay)), 
+	drawable = XCreateWindow(xdisplay, DefaultRootWindow(xdisplay),
+		0, 0, 1, 1, 0, 0,
+		InputOutput, DefaultVisual(xdisplay, DefaultScreen(xdisplay)),
 		0, 0);
 	if(drawable == None)
 		sysfatal("XCreateWindow: %r");
 	XFlush(xdisplay);
-	
+
 	xclipboard = XInternAtom(xdisplay, "CLIPBOARD", False);
 	xutf8string = XInternAtom(xdisplay, "UTF8_STRING", False);
 	xtargets = XInternAtom(xdisplay, "TARGETS", False);
@@ -122,7 +122,7 @@ main(int argc, char **argv)
 	xgetsnarf();
 	appleputsnarf();
 	xputsnarf();
-	
+
 	for(;;){
 		XNextEvent(xdisplay, &xevent);
 		switch(xevent.type){
@@ -150,9 +150,9 @@ xselectionrequest(XEvent *e)
 	XEvent r;
 	XSelectionRequestEvent *xe;
 	XDisplay *xd;
-	
+
 	xd = xdisplay;
-	
+
 	memset(&r, 0, sizeof r);
 	xe = (XSelectionRequestEvent*)e;
 if(0) fprint(2, "xselect target=%d requestor=%d property=%d selection=%d\n",
@@ -198,7 +198,7 @@ xgetsnarf(void)
 	int fmt, i;
 	XWindow w;
 	XDisplay *xd;
-	
+
 	xd = xdisplay;
 
 	w = None;
@@ -229,7 +229,7 @@ xgetsnarf(void)
 	 */
 	if(w == None)
 		return nil;
-		
+
 	/*
 	 * We should be waiting for SelectionNotify here, but it might never
 	 * come, and we have no way to time out.  Instead, we will clear
@@ -256,7 +256,7 @@ xgetsnarf(void)
 		return nil;
 	/* get the property */
 	data = nil;
-	XGetWindowProperty(xd, drawable, prop, 0, SnarfSize/sizeof(ulong), 0, 
+	XGetWindowProperty(xd, drawable, prop, 0, SnarfSize/sizeof(ulong), 0,
 		AnyPropertyType, &type, &fmt, &len, &dummy, &xdata);
 	if(xdata == nil || (type != XA_STRING && type != xutf8string) || len == 0){
 		if(xdata)
@@ -297,7 +297,7 @@ appleputsnarf(void)
 		fprint(2, "apple pasteboard cannot assert ownership\n");
 		return;
 	}
-	cfdata = CFDataCreate(kCFAllocatorDefault, 
+	cfdata = CFDataCreate(kCFAllocatorDefault,
 		(uchar*)rsnarf, runestrlen(rsnarf)*2);
 	if(cfdata == nil){
 		fprint(2, "apple pasteboard cfdatacreate failed\n");
@@ -312,5 +312,3 @@ appleputsnarf(void)
 	CFRelease(cfdata);
 #endif
 }
-
-
blob - 73fff2e2bea52e71b48b2a54311e8cb56be38f9f
blob + 35b59804e0ebe95c87fa6bdb5275f66cb0be3a3a
--- src/cmd/spell/code.h
+++ src/cmd/spell/code.h
@@ -4,7 +4,7 @@
  */
 
 #define	ED		(1<<0)	/* +ed, +ing */
-#define	ADJ		(1<<1)	/* (nce)-t_ce, +ize,+al, +ness, -t+cy, +ity, +ly */	
+#define	ADJ		(1<<1)	/* (nce)-t_ce, +ize,+al, +ness, -t+cy, +ity, +ly */
 #define	NOUN		(1<<2)	/* +s (+es), +make, +hood, +ship +less  */
 #define PROP_COLLECT	(1<<3)	/* +'s,  +an, +ship(for -manship) +less */
 #define ACTOR		(1<<4)	/* +er  */
@@ -15,7 +15,7 @@
 #define	N_AFFIX		(1<<8) 	/* +ic, +ive, +ize, +like, +al, +ful, +ism, +ist, -t+cy, +c (maniac) */
 #define	V_AFFIX		(1<<9)	/* +able, +ive, +ity((bility), +ment */
 #define	V_IRREG		(1<<10)	/* +ing +es +s*/
-#define	VERB		(V_IRREG|ED) 
+#define	VERB		(V_IRREG|ED)
 #define MAN		(1<<11)	/* +man, +men, +women, +woman */
 #define	ADV		(1<<12)	/* +hood, +ness */
 #define STOP		(1<<14)	/* stop list */
blob - 6eaa026f8a3245e9aaf94e77f356be1d0305d2a2
blob + 1627829c0b875383177a7d27c7f73a6466ebeb42
--- src/cmd/spell/sprog.c
+++ src/cmd/spell/sprog.c
@@ -580,7 +580,7 @@ main(int argc, char *argv[])
 				print("-");
 			else if(!vflag)
 				print("+");
-			else 
+			else
 				print("%c",'0' + (suffcount>0) +
 				   (prefcount>4? 8: 2*prefcount));
 		} else if(!h || Set(h,STOP)) {
@@ -1122,7 +1122,7 @@ dict(char* bp, char* ep)
 
 loop:
 	if(bp >= ep) {
-		if(xflag) 
+		if(xflag)
 			fprint(2, "=%.*s\n", utfnlen(w, n), w);
 		return 0;
 	}
blob - e758786ce8c65abd7d7572ab9ae2f042a5b43970
blob + 14d55ef74363bcb35ca2279a7f1871bcc96c5318
--- src/cmd/split.c
+++ src/cmd/split.c
@@ -97,7 +97,7 @@ main(int argc, char *argv[])
 		}
 
 		/*
-		 * in case we didn't end with a newline, tack whatever's 
+		 * in case we didn't end with a newline, tack whatever's
 		 * left onto the last file
 		 */
 		while((n = Bread(b, buf, sizeof(buf))) > 0)
@@ -119,7 +119,7 @@ nextfile(void)
 	} else {
 		strcpy(name, stem);
 		strcat(name, suff);
-		if(++suff[1] > 'z') 
+		if(++suff[1] > 'z')
 			suff[1] = 'a', ++suff[0];
 		openf();
 	}
@@ -135,7 +135,7 @@ matchfile(Resub *match)
 		strcpy(name+len, suffix);
 		openf();
 		return 1;
-	} 
+	}
 	return nextfile();
 }
 
blob - e53c99c88e9c874339b04656fa6c798d7cae0f56
blob + c4e79cc44eb1714242d6b39bf2b75d3cc701c975
--- src/cmd/srv.c
+++ src/cmd/srv.c
@@ -30,7 +30,7 @@ threadmain(int argc, char **argv)
 
 	fmtinstall('F', fcallfmt);
 	fmtinstall('M', dirmodefmt);
-	
+
 	ARGBEGIN{
 	case 'D':
 		debug = 1;
@@ -51,7 +51,7 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 1 && argc != 2)
 		usage();
 
@@ -80,7 +80,7 @@ do9p(Fcall *tx, Fcall *rx)
 	static uchar buf[9000];
 	static char ebuf[200];
 	int n;
-	
+
 	n = convS2M(tx, buf, sizeof buf);
 	if(n == BIT16SZ){
 		werrstr("convS2M failed");
@@ -133,7 +133,7 @@ xauth(void)
 	if(rx.type == Rerror)
 		sysfatal("Tversion: %s", rx.ename);
 	msize = rx.msize;
-	
+
 	tx.type = Tauth;
 	tx.tag = 1;
 	tx.afid = afid;
@@ -154,7 +154,7 @@ int
 xread(void *buf, int n)
 {
 	Fcall tx, rx;
-	
+
 	tx.type = Tread;
 	tx.tag = 1;
 	tx.fid = 0;	/* afid above */
@@ -165,7 +165,7 @@ xread(void *buf, int n)
 		werrstr("%s", rx.ename);
 		return -1;
 	}
-	
+
 	if(rx.count > n){
 		werrstr("too much data returned");
 		return -1;
@@ -178,7 +178,7 @@ int
 xwrite(void *buf, int n)
 {
 	Fcall tx, rx;
-	
+
 	tx.type = Twrite;
 	tx.tag = 1;
 	tx.fid = 0;	/* afid above */
@@ -354,4 +354,3 @@ xauth_proxy(AuthGetkey *getkey, char *fmt, ...)
 	auth_freerpc(rpc);
 	return ai;
 }
-
blob - 6e7748baa5f8fb728526dd46499e3e6e197d394d
blob + 1fdbec1d38a704108b89e22d5df9e8f699121a50
--- src/cmd/strings.c
+++ src/cmd/strings.c
@@ -69,7 +69,7 @@ stringit(char *str)
 			}
 			start = 0;
 			cnt = 0;
-		}	
+		}
 		posn = Boffset(fin);
 	}
 
blob - bec41e47a7d930ec79bd12cdedfc421b2e876bd4
blob + 4cb16957be7b3e0785ebfd741fc366f7b0058aaf
--- src/cmd/svgpic/arcgen.c
+++ src/cmd/svgpic/arcgen.c
@@ -221,4 +221,3 @@ quadrant(double x, double y)
 	else if( x> 0.0 && y<=0.0) return(4);
 	else			   return 0;	/* shut up lint */
 }
-
blob - e0db5fc6c5502b902f5c259e9aafdbadcaa19a1f
blob + bc7e933515ecee88984552ec7b149b24c3f2025d
--- src/cmd/svgpic/linegen.c
+++ src/cmd/svgpic/linegen.c
@@ -225,7 +225,7 @@ obj *linegen(int type)
 			extreme(ex, ey);
 			nx = xi; ny = yi;
 		}
-			
+
 	}
 	p->o_ddval = ddval;
 	if (dbg) {
blob - e888fafc827612055d05f390f5eb05f21508489e
blob + 1e2db1b5218c4bf2d0dab056e2cd012c1833f4c2
--- src/cmd/svgpic/misc.c
+++ src/cmd/svgpic/misc.c
@@ -34,7 +34,7 @@ curdir(void)	/* convert current dir (hvmode) to RIGHT,
 	return 0;
 }
 
-double 
+double
 getcomp(obj *p, int t)	/* return component of a position */
 {
 	switch (t) {
blob - 7f6db9d49d41cf0f47f01f2a0d024526560e02f6
blob + 575dc356f1cdbdd399afd08bf3c16240db5168f7
--- src/cmd/svgpic/plsvg.c
+++ src/cmd/svgpic/plsvg.c
@@ -232,7 +232,7 @@ void arrow(double x0, double y0, double x1, double y1,
 		if(i == 1)
 			printf("M %.3f %.3f L %.3f %.3f", xconv(x1+dx), yconv(y1+dy), xconv(x1), yconv(y1));
 		else
-			printf(" L %.3f %.3f", xconv(x1+dx), yconv(y1+dy)); 
+			printf(" L %.3f %.3f", xconv(x1+dx), yconv(y1+dy));
 	}
 	if (nhead > 2)
 		printf(" Z");
blob - b40552bfd98cb6fe699e82e68d77e4cd82a016de
blob + 68f7c5eb83f57e4902606135fb66de230d08c848
--- src/cmd/tail.c
+++ src/cmd/tail.c
@@ -343,9 +343,9 @@ getnumber(char *s)
 	if(count < 0 || (int)count != count)
 		fatal("too big");
 	return 1;
-}	
+}
 
-void		
+void
 fatal(char *s)
 {
 	char buf[ERRMAX];
blob - 1d917f82c877b7712f068f4918196fcd17bc87de
blob + af5f520032f494d247624f49fe116673ddf4233b
--- src/cmd/tapefs/32vfs.c
+++ src/cmd/tapefs/32vfs.c
@@ -177,7 +177,7 @@ iget(int ino)
 	if ((flags&VFMT)==VIFDIR)
 		f.mode |= DMDIR;
 	f.uid = g2byte(dp->uid);
-	f.gid = g2byte(dp->gid);	
+	f.gid = g2byte(dp->gid);
 	f.mdate = g4byte(dp->mtime);
 	return f;
 }
blob - 199235f386d27713b5801031b4324740b54c87c9
blob + a166dcd0f068eb834f9f28d7ee0d067dd190f384
--- src/cmd/tapefs/util.c
+++ src/cmd/tapefs/util.c
@@ -34,7 +34,7 @@ getpass(char *file)
 		up[nid].id = atoi(line[2]);
 		up[nid].name = strdup(line[0]);
 		nid++;
-	}		
+	}
 	Bterm(bp);
 	up[nid].name = 0;
 	return up;
blob - c2875b845a21a8706c46b36a23e0b3fb59b248e4
blob + 0b695dba15c3e74391133e375f9391bad25b00b1
--- src/cmd/tapefs/v10fs.c
+++ src/cmd/tapefs/v10fs.c
@@ -168,7 +168,7 @@ iget(int ino)
 	if ((flags&VFMT)==VIFDIR)
 		f.mode |= DMDIR;
 	f.uid = g2byte(dp->uid);
-	f.gid = g2byte(dp->gid);	
+	f.gid = g2byte(dp->gid);
 	f.mdate = g4byte(dp->mtime);
 	return f;
 }
blob - 74c6737c7e6f70c25769216648d567ad2ddf5c7d
blob + 43de410c1e0ac7b2be60bb73498d0ec6ecc5c010
--- src/cmd/tapefs/v6fs.c
+++ src/cmd/tapefs/v6fs.c
@@ -169,7 +169,7 @@ iget(int ino)
 	if ((flags&V6FMT)==V6IFDIR)
 		f.mode |= DMDIR;
 	f.uid = dp->uid;
-	f.gid = dp->gid;	
+	f.gid = dp->gid;
 	f.mdate = (dp->mtime[2]<<0) + (dp->mtime[3]<<8)
 	     +(dp->mtime[0]<<16) + (dp->mtime[1]<<24);
 	return f;
blob - e9354f7b4f80daa4b10e09b11d736624deba022b
blob + 8725e0c94fa847352dfe3a25daabf1ecf7ee4e40
--- src/cmd/tapefs/zipfs.c
+++ src/cmd/tapefs/zipfs.c
@@ -154,7 +154,7 @@ doread(Ram *r, vlong off, long cnt)
 		sysfatal("%d - unsupported compression method", zh.meth);
 		break;
 	}
-	
+
 	return buf;
 }
 
@@ -382,4 +382,3 @@ msdos2time(int time, int date)
 
 	return tm2sec(&tm);
 }
-
blob - 934fba9d98f6c38da4bd590d8cf508737beefe79
blob + 61e9c4a63c62216e12cd1d7376f181acb7c51d84
--- src/cmd/tar.c
+++ src/cmd/tar.c
@@ -98,7 +98,7 @@ typedef struct Hdr {
 	char	devmajor[8];
 	char	devminor[8];
 	char	prefix[Maxpfx]; /* if non-null, path= prefix "/" name */
-	
+
 	char pad[12];
 } Hdr;
 
blob - 1e6cbf1140ce358f8c5f800685cb984bff664afd
blob + 6cb7ada10591a4a2455ca0015f69f0e5a7ba0d54
--- src/cmd/tbl/t1.c
+++ src/cmd/tbl/t1.c
@@ -41,7 +41,7 @@ setinp(int argc, char **argv)
 {
 	sargc = argc;
 	sargv = argv;
-	sargc--; 
+	sargc--;
 	sargv++;
 	if (sargc > 0)
 		swapin();
@@ -69,10 +69,10 @@ swapin(void)
 			pr1403 = 1;
 		if (match("-", *sargv))
 			break;
-		sargc--; 
+		sargc--;
 		sargv++;
 	}
-	if (sargc <= 0) 
+	if (sargc <= 0)
 		return(0);
 	/* file closing is done by GCOS troff preprocessor */
 	if(tabin)
blob - 6d2d7414a77b3275a4860b7d23ffe7095454c534
blob + c3ecce7d905dde302b8a60c56caaa8b04344fd0d
--- src/cmd/tbl/t2.c
+++ src/cmd/tbl/t2.c
@@ -21,5 +21,3 @@ tableput(void)
 	freearr();
 	restline();
 }
-
-
blob - a4dc9f9f536e615eef305576b3e84837c7549b90
blob + f2f81309e1e0baf4459b69d8f7bd7c2a6f1364ae
--- src/cmd/tbl/t3.c
+++ src/cmd/tbl/t3.c
@@ -1,7 +1,7 @@
 /* t3.c: interpret commands affecting whole table */
 # include "t.h"
 struct optstr {
-	char	*optnam; 
+	char	*optnam;
 	int	*optadd;
 } options [] = {
 	"expand", &expflg,
@@ -46,7 +46,7 @@ getcomm(void)
 		return;
 	}
 	for (cp = line; (c = *cp) != ';'; cp++) {
-		if (!letter(c)) 
+		if (!letter(c))
 			continue;
 		found = 0;
 		for (lp = options; lp->optadd; lp++) {
@@ -61,9 +61,9 @@ getcomm(void)
 				if ( *cp == '(')
 					while ((ci = *++cp) != ')')
 						*t++ = ci;
-				else 
+				else
 					cp--;
-				*t++ = 0; 
+				*t++ = 0;
 				*t = 0;
 				if (lp->optadd == &tab) {
 					if (nb[0])
@@ -100,5 +100,3 @@ backrest(char *cp)
 		un1getc(*--s);
 	return;
 }
-
-
blob - 558d3ba3ab9246e78901081cf0b6159f69d12343
blob + 21fd82c67c473dde42a9ac409622134bc9a7a6e3
--- src/cmd/tbl/t4.c
+++ src/cmd/tbl/t4.c
@@ -53,13 +53,13 @@ readspec(void)
 		case ' ': /* note this is also case tab */
 			continue;
 		case '\n':
-			if (sawchar == 0) 
+			if (sawchar == 0)
 				continue;
 		case ',':
 		case '.': /* end of table specification */
 			ncol = max(ncol, icol);
 			if (lefline[ncol][nclin] > 0) {
-				ncol++; 
+				ncol++;
 				rightl++;
 			};
 			if (sawchar)
@@ -85,24 +85,24 @@ readspec(void)
 			}
 			sawchar = 0;
 			continue;
-		case 'C': 
-		case 'S': 
-		case 'R': 
-		case 'N': 
-		case 'L':  
+		case 'C':
+		case 'S':
+		case 'R':
+		case 'N':
+		case 'L':
 		case 'A':
 			c += ('a' - 'A');
-		case '_': 
-			if (c == '_') 
+		case '_':
+			if (c == '_')
 				c = '-';
-		case '=': 
+		case '=':
 		case '-':
 		case '^':
-		case 'c': 
-		case 's': 
-		case 'n': 
-		case 'r': 
-		case 'l':  
+		case 'c':
+		case 's':
+		case 'n':
+		case 'r':
+		case 'l':
 		case 'a':
 			style[icol][nclin] = c;
 			if (c == 's' && icol <= 0)
@@ -122,30 +122,30 @@ readspec(void)
 				error("too many columns in table");
 			sawchar = 1;
 			continue;
-		case 'b': 
+		case 'b':
 		case 'i':
 			c += 'A' - 'a';
-		case 'B': 
+		case 'B':
 		case 'I':
-			if (icol == 0) 
+			if (icol == 0)
 				continue;
 			snp = font[icol-1][nclin];
 			snp[0] = (c == 'I' ? '2' : '3');
 			snp[1] = 0;
 			continue;
-		case 't': 
+		case 't':
 		case 'T':
 			if (icol > 0)
 				flags[icol-1][nclin] |= CTOP;
 			continue;
-		case 'd': 
+		case 'd':
 		case 'D':
 			if (icol > 0)
 				flags[icol-1][nclin] |= CDOWN;
 			continue;
-		case 'f': 
+		case 'f':
 		case 'F':
-			if (icol == 0) 
+			if (icol == 0)
 				continue;
 			snp = font[icol-1][nclin];
 			snp[0] = snp[1] = stopc = 0;
@@ -155,34 +155,34 @@ readspec(void)
 					stopc = ')';
 					c = get1char();
 				}
-				if (c == 0) 
+				if (c == 0)
 					break;
 				if (c == stopc) {
-					stopc = 0; 
+					stopc = 0;
 					break;
 				}
-				if (stopc == 0)  
-					if (c == ' ' || c == tab ) 
+				if (stopc == 0)
+					if (c == ' ' || c == tab )
 						break;
 				if (c == '\n' || c == '|') {
-					un1getc(c); 
+					un1getc(c);
 					break;
 				}
 				snp[i] = c;
-				if (c >= '0' && c <= '9') 
+				if (c >= '0' && c <= '9')
 					break;
 			}
-			if (stopc) 
+			if (stopc)
 				if (get1char() != stopc)
 					error("Nonterminated font name");
 			continue;
-		case 'P': 
+		case 'P':
 		case 'p':
-			if (icol <= 0) 
+			if (icol <= 0)
 				continue;
 			temp = snp = csize[icol-1][nclin];
 			while (c = get1char()) {
-				if (c == ' ' || c == tab || c == '\n') 
+				if (c == ' ' || c == tab || c == '\n')
 					break;
 				if (c == '-' || c == '+')
 					if (snp > temp)
@@ -191,7 +191,7 @@ readspec(void)
 						*snp++ = c;
 				else if (digit(c))
 					*snp++ = c;
-				else 
+				else
 					break;
 				if (snp - temp > 4)
 					error("point size too large");
@@ -201,13 +201,13 @@ readspec(void)
 				error("point size unreasonable");
 			un1getc (c);
 			continue;
-		case 'V': 
+		case 'V':
 		case 'v':
-			if (icol <= 0) 
+			if (icol <= 0)
 				continue;
 			temp = snp = vsize[icol-1][nclin];
 			while (c = get1char()) {
-				if (c == ' ' || c == tab || c == '\n') 
+				if (c == ' ' || c == tab || c == '\n')
 					break;
 				if (c == '-' || c == '+')
 					if (snp > temp)
@@ -216,7 +216,7 @@ readspec(void)
 						*snp++ = c;
 				else if (digit(c))
 					*snp++ = c;
-				else 
+				else
 					break;
 				if (snp - temp > 4)
 					error("vertical spacing value too large");
@@ -224,7 +224,7 @@ readspec(void)
 			*snp = 0;
 			un1getc(c);
 			continue;
-		case 'w': 
+		case 'w':
 		case 'W':
 			snp = cll [icol-1];
 			/* Dale Smith didn't like this check - possible to have two text blocks
@@ -253,34 +253,34 @@ readspec(void)
 			if (!stopc)
 				un1getc(c);
 			continue;
-		case 'e': 
+		case 'e':
 		case 'E':
-			if (icol < 1) 
+			if (icol < 1)
 				continue;
 			evenup[icol-1] = 1;
 			evenflg = 1;
 			continue;
-		case 'z': 
+		case 'z':
 		case 'Z': /* zero width-ignre width this item */
-			if (icol < 1) 
+			if (icol < 1)
 				continue;
 			flags[icol-1][nclin] |= ZEROW;
 			continue;
-		case 'u': 
+		case 'u':
 		case 'U': /* half line up */
-			if (icol < 1) 
+			if (icol < 1)
 				continue;
 			flags[icol-1][nclin] |= HALFUP;
 			continue;
-		case '0': 
-		case '1': 
-		case '2': 
-		case '3': 
+		case '0':
+		case '1':
+		case '2':
+		case '3':
 		case '4':
-		case '5': 
-		case '6': 
-		case '7': 
-		case '8': 
+		case '5':
+		case '6':
+		case '7':
+		case '8':
 		case '9':
 			sn[0] = c;
 			snp = sn + 1;
@@ -291,7 +291,7 @@ readspec(void)
 			continue;
 		case '|':
 			lefline[icol][nclin]++;
-			if (icol == 0) 
+			if (icol == 0)
 				left1flg = 1;
 			continue;
 		}
@@ -313,9 +313,9 @@ findcol(void)
 	if (c != '\n')
 		un1getc(c);
 	for (s = line; *s = c = get1char(); s++) {
-		if (c == ')') 
+		if (c == ')')
 			inpar = 0;
-		if (inpar) 
+		if (inpar)
 			continue;
 		if (c == '\n' || c == 0 || c == '.' || c == ',')
 			break;
@@ -326,20 +326,20 @@ findcol(void)
 	}
 	for (p = line; p < s; p++)
 		switch (*p) {
-		case 'l': 
-		case 'r': 
-		case 'c': 
-		case 'n': 
-		case 'a': 
+		case 'l':
+		case 'r':
+		case 'c':
+		case 'n':
+		case 'a':
 		case 's':
-		case 'L': 
-		case 'R': 
-		case 'C': 
-		case 'N': 
-		case 'A': 
+		case 'L':
+		case 'R':
+		case 'C':
+		case 'N':
+		case 'A':
 		case 'S':
-		case '-': 
-		case '=': 
+		case '-':
+		case '=':
 		case '_':
 			n++;
 		}
@@ -401,5 +401,3 @@ freearr(void)
 	free(acase);
 	free(topat);
 }
-
-
blob - e23784be2c7e13d1dd82e21cb0db57ec2ea21178
blob + c50077e7c1ff2cc13501f6f3d2e09988b5d6def3
--- src/cmd/tbl/t5.c
+++ src/cmd/tbl/t5.c
@@ -28,7 +28,7 @@ gettbl(void)
 			while (*cstore++)
 				;
 			continue;
-		} else 
+		} else
 			instead[nlin] = 0;
 		if (nodata(nlin)) {
 			if (ch = oneh(nlin))
@@ -46,11 +46,11 @@ gettbl(void)
 		table[nlin] = (struct colstr *) alocv((ncol + 2) * sizeof(table[0][0]));
 		if (cstore[1] == 0)
 			switch (cstore[0]) {
-			case '_': 
-				fullbot[nlin] = '-'; 
+			case '_':
+				fullbot[nlin] = '-';
 				continue;
-			case '=': 
-				fullbot[nlin] = '='; 
+			case '=':
+				fullbot[nlin] = '=';
 				continue;
 			}
 		stynum[nlin] = nslin;
@@ -60,7 +60,7 @@ gettbl(void)
 			table[nlin][icol].rcol = 0;
 			ch = 1;
 			if (match(cstore, "T{")) { /* text follows */
-				table[nlin][icol].col = 
+				table[nlin][icol].col =
 				    (char *)(uintptr)gettext(cstore, nlin, icol,
 				    font[icol][stynum[nlin]],
 				    csize[icol][stynum[nlin]]);
@@ -81,7 +81,7 @@ gettbl(void)
 			}
 			while (ctype(nlin, icol + 1) == 's') /* spanning */
 				table[nlin][++icol].col = "";
-			if (ch == '\0') 
+			if (ch == '\0')
 				break;
 		}
 		while (++icol < ncol + 2) {
@@ -95,7 +95,7 @@ gettbl(void)
 	}
 	last = cstore;
 	permute();
-	if (textflg) 
+	if (textflg)
 		untext();
 	return;
 }
@@ -108,11 +108,11 @@ nodata(int il)
 
 	for (c = 0; c < ncol; c++) {
 		switch (ctype(il, c)) {
-		case 'c': 
-		case 'n': 
-		case 'r': 
-		case 'l': 
-		case 's': 
+		case 'c':
+		case 'n':
+		case 'r':
+		case 'l':
+		case 's':
 		case 'a':
 			return(0);
 		}
@@ -169,17 +169,17 @@ permute(void)
 int
 vspand(int ir, int ij, int ifform)
 {
-	if (ir < 0) 
+	if (ir < 0)
 		return(0);
 	if (ir >= nlin)
 		return(0);
-	if (instead[ir]) 
+	if (instead[ir])
 		return(0);
-	if (ifform == 0 && ctype(ir, ij) == '^') 
+	if (ifform == 0 && ctype(ir, ij) == '^')
 		return(1);
-	if (table[ir][ij].rcol != 0) 
+	if (table[ir][ij].rcol != 0)
 		return(0);
-	if (fullbot[ir]) 
+	if (fullbot[ir])
 		return(0);
 	return(vspen(table[ir][ij].col));
 }
@@ -188,11 +188,9 @@ vspand(int ir, int ij, int ifform)
 int
 vspen(char *s)
 {
-	if (s == 0) 
+	if (s == 0)
 		return(0);
-	if (!point(s)) 
+	if (!point(s))
 		return(0);
 	return(match(s, SPAN));
 }
-
-
blob - 463bfa1070d4f8246644c028d7a0ae6548d2907f
blob + aed42a071da23aae9d9ac5f5ce739c3a73a9bead
--- src/cmd/tbl/t6.c
+++ src/cmd/tbl/t6.c
@@ -20,16 +20,16 @@ maktab(void)			/* define the tab stops of the table */
 				Bprint(&tabout, ".%2s\n.rm %2s\n", reg(icol, CRIGHT),
 				    reg(icol, CRIGHT));
 			for (ilin = 0; ilin < nlin; ilin++) {
-				if (instead[ilin] || fullbot[ilin]) 
+				if (instead[ilin] || fullbot[ilin])
 					continue;
 				vforml = ilin;
 				for (il = prev(ilin); il >= 0 && vspen(table[il][icol].col); il = prev(il))
 					vforml = il;
-				if (fspan(vforml, icol)) 
+				if (fspan(vforml, icol))
 					continue;
-				if (filler(table[ilin][icol].col)) 
+				if (filler(table[ilin][icol].col))
 					continue;
-				if ((flags[icol][stynum[ilin]] & ZEROW) != 0) 
+				if ((flags[icol][stynum[ilin]] & ZEROW) != 0)
 					continue;
 				switch (ctype(vforml, icol)) {
 				case 'a':
@@ -52,10 +52,10 @@ maktab(void)			/* define the tab stops of the table */
 						doubled[icol] = 1;
 						if (real(ss = table[ilin][icol].col) && !vspen(ss)) {
 							s = (int)(uintptr)ss;
-							if (tx(s) != text) 
+							if (tx(s) != text)
 								continue;
 							Bprint(&tabout, ".nr %d ", TMP);
-							wide(ss, FN(vforml, icol), SZ(vforml, icol)); 
+							wide(ss, FN(vforml, icol), SZ(vforml, icol));
 							Bprint(&tabout, "\n");
 							Bprint(&tabout, ".if \\n(%d<\\n(%d .nr %d \\n(%d\n",
 							    S1, TMP, S1, TMP);
@@ -73,10 +73,10 @@ maktab(void)			/* define the tab stops of the table */
 				case 'l':
 					if (real(ss = table[ilin][icol].col) && !vspen(ss)) {
 						s = (int)(uintptr)ss;
-						if (tx(s) != text) 
+						if (tx(s) != text)
 							continue;
 						Bprint(&tabout, ".nr %d ", TMP);
-						wide(ss, FN(vforml, icol), SZ(vforml, icol)); 
+						wide(ss, FN(vforml, icol), SZ(vforml, icol));
 						Bprint(&tabout, "\n");
 						Bprint(&tabout, ".if \\n(%2s<\\n(%d .nr %2s \\n(%d\n",
 						     reg(icol, CRIGHT), TMP, reg(icol, CRIGHT), TMP);
@@ -85,7 +85,7 @@ maktab(void)			/* define the tab stops of the table */
 			}
 		}
 		if (acase[icol]) {
-			Bprint(&tabout, ".if \\n(%d>=\\n(%2s .nr %2s \\n(%du+2n\n", 
+			Bprint(&tabout, ".if \\n(%d>=\\n(%2s .nr %2s \\n(%du+2n\n",
 			     S2, reg(icol, CRIGHT), reg(icol, CRIGHT), S2);
 		}
 		if (doubled[icol]) {
@@ -104,13 +104,13 @@ maktab(void)			/* define the tab stops of the table */
 		for (ilin = 0; ilin < nlin; ilin++)
 			if (k = lspan(ilin, icol)) {
 				ss = table[ilin][icol-k].col;
-				if (!real(ss) || barent(ss) || vspen(ss) ) 
+				if (!real(ss) || barent(ss) || vspen(ss) )
 					continue;
 				Bprint(&tabout, ".nr %d ", TMP);
 				wide(table[ilin][icol-k].col, FN(ilin, icol - k), SZ(ilin, icol - k));
 				for (ik = k; ik >= 0; ik--) {
 					Bprint(&tabout, "-\\n(%2s", reg(icol - ik, CRIGHT));
-					if (!expflg && ik > 0) 
+					if (!expflg && ik > 0)
 						Bprint(&tabout, "-%dn", sep[icol-ik]);
 				}
 				Bprint(&tabout, "\n");
@@ -126,13 +126,13 @@ maktab(void)			/* define the tab stops of the table */
 				}
 			}
 	}
-	if (textflg) 
+	if (textflg)
 		untext();
 				/* if even requested, make all columns widest width */
 	if (evenflg) {
 		Bprint(&tabout, ".nr %d 0\n", TMP);
 		for (icol = 0; icol < ncol; icol++) {
-			if (evenup[icol] == 0) 
+			if (evenup[icol] == 0)
 				continue;
 			Bprint(&tabout, ".if \\n(%2s>\\n(%d .nr %d \\n(%2s\n",
 			    reg(icol, CRIGHT), TMP, TMP, reg(icol, CRIGHT));
@@ -169,7 +169,7 @@ maktab(void)			/* define the tab stops of the table */
 		Bprint(&tabout, ".nr %d 1n\n", TMP);
 	Bprint(&tabout, ".nr %2s 0\n", reg(-1, CRIGHT));
 	tsep = (boxflg || allflg || dboxflg || left1flg) ? 2 : 0;
-	if (sep[-1] >= 0) 
+	if (sep[-1] >= 0)
 		tsep = sep[-1];
 	for (icol = 0; icol < ncol; icol++) {
 		Bprint(&tabout, ".nr %2s \\n(%2s+((%d*\\n(%d)/2)\n", reg(icol, CLEFT),
@@ -202,14 +202,14 @@ wide(char *s, char *fn, char *size)
 {
 	if (point(s)) {
 		Bprint(&tabout, "\\w%c", F1);
-		if (*fn > 0) 
+		if (*fn > 0)
 			putfont(fn);
-		if (*size) 
+		if (*size)
 			putsize(size);
 		Bprint(&tabout, "%s", s);
-		if (*fn > 0) 
+		if (*fn > 0)
 			putfont("P");
-		if (*size) 
+		if (*size)
 			putsize("0");
 		Bprint(&tabout, "%c", F1);
 	} else
@@ -222,5 +222,3 @@ filler(char *s)
 {
 	return (point(s) && s[0] == '\\' && s[1] == 'R');
 }
-
-
blob - 2fa9de53bbfcc30b7b04135f7d22bf590983795f
blob + 6a873d617abcecb7aab65717378d84aeeffdb919
--- src/cmd/tbl/t7.c
+++ src/cmd/tbl/t7.c
@@ -7,7 +7,7 @@ runout(void)
 {
 	int	i;
 
-	if (boxflg || allflg || dboxflg) 
+	if (boxflg || allflg || dboxflg)
 		need();
 	if (ctrflg) {
 		Bprint(&tabout, ".nr #I \\n(.i\n");
@@ -65,15 +65,15 @@ runtabs(int lform, int ldata)
 int
 ifline(char *s)
 {
-	if (!point(s)) 
+	if (!point(s))
 		return(0);
-	if (s[0] == '\\') 
+	if (s[0] == '\\')
 		s++;
-	if (s[1] ) 
+	if (s[1] )
 		return(0);
-	if (s[0] == '_') 
+	if (s[0] == '_')
 		return('-');
-	if (s[0] == '=') 
+	if (s[0] == '=')
 		return('=');
 	return(0);
 }
@@ -124,7 +124,7 @@ deftail(void)
 			Bprint(&tabout, ".if \\n(T. ");
 			drawline(nlin, 0, ncol, dboxflg ? '=' : '-', 1, 0);
 			Bprint(&tabout, "\n.if \\n(T. .vs\n");
-			/* T. is really an argument to a macro but because of 
+			/* T. is really an argument to a macro but because of
 		   eqn we don't dare pass it as an argument and reference by $1 */
 		}
 	for (c = 0; c < ncol; c++) {
@@ -146,5 +146,3 @@ deftail(void)
 	Bprint(&tabout, "..\n");
 	Bprint(&tabout, ".ec\n");
 }
-
-
blob - bfa21ecffee60452851ca7c81923daf7f5e46729
blob + 26375df5a71854ad8c8dca5b4c469c86c0d2644b
--- src/cmd/tbl/t8.c
+++ src/cmd/tbl/t8.c
@@ -14,25 +14,25 @@ putline(int i, int nl)
 	char	*ss, *size, *fn, *rct;
 
 	cmidx = watchout = vspf = exvspen = 0;
-	if (i == 0) 
+	if (i == 0)
 		once = 0;
 	if (i == 0 && ( allflg || boxflg || dboxflg))
 		fullwide(0,   dboxflg ? '=' : '-');
 	if (instead[nl] == 0 && fullbot[nl] == 0)
 		for (c = 0; c < ncol; c++) {
 			ss = table[nl][c].col;
-			if (ss == 0) 
+			if (ss == 0)
 				continue;
 			if (vspen(ss)) {
 				for (ip = nl; ip < nlin; ip = next(ip))
-					if (!vspen(ss = table[ip][c].col)) 
+					if (!vspen(ss = table[ip][c].col))
 						break;
 				s = (int)(uintptr)ss;
 				if (s > 0 && s < 128)
 					Bprint(&tabout, ".ne \\n(%c|u+\\n(.Vu\n", (int)s);
 				continue;
 			}
-			if (point(ss)) 
+			if (point(ss))
 				continue;
 			s = (int)(uintptr)ss;
 			Bprint(&tabout, ".ne \\n(%c|u+\\n(.Vu\n", s);
@@ -55,10 +55,10 @@ putline(int i, int nl)
 	}
 	for (c = 0; c < ncol; c++) {
 		if (instead[nl] == 0 && fullbot[nl] == 0)
-			if (vspen(table[nl][c].col)) 
+			if (vspen(table[nl][c].col))
 				vspf = 1;
 		if (lf >= 0)
-			if (vspen(table[lf][c].col)) 
+			if (vspen(table[lf][c].col))
 				vspf = 1;
 	}
 	if (vspf) {
@@ -69,7 +69,7 @@ putline(int i, int nl)
 	chfont = 0;
 	for (c = 0; c < ncol; c++) {
 		ss = table[nl][c].col;
-		if (ss == 0) 
+		if (ss == 0)
 			continue;
 		if(font[c][stynum[nl]])
 			chfont = 1;
@@ -107,7 +107,7 @@ putline(int i, int nl)
 			drawvert(lf, i, c, lwid);
 			vct += 2;
 		}
-		if (rightl && c + 1 == ncol) 
+		if (rightl && c + 1 == ncol)
 			continue;
 		vforml = i;
 		for (lf = prev(nl); lf >= 0 && vspen(table[lf][c].col); lf = prev(lf))
@@ -115,9 +115,9 @@ putline(int i, int nl)
 		form = ctype(vforml, c);
 		if (form != 's') {
 			rct = reg(c, CLEFT);
-			if (form == 'a') 
+			if (form == 'a')
 				rct = reg(c, CMID);
-			if (form == 'n' && table[nl][c].rcol && lused[c] == 0) 
+			if (form == 'n' && table[nl][c].rcol && lused[c] == 0)
 				rct = reg(c, CMID);
 			Bprint(&tabout, "\\h'|\\n(%2su'", rct);
 		}
@@ -152,10 +152,10 @@ putline(int i, int nl)
 							}
 						}
 					Bprint(&tabout, "%c%c", F1, F2);
-					if (uphalf) 
+					if (uphalf)
 						Bprint(&tabout, "\\u");
 					puttext(ss, fn, size);
-					if (uphalf) 
+					if (uphalf)
 						Bprint(&tabout, "\\d");
 					Bprint(&tabout, "%c", F1);
 				}
@@ -164,13 +164,13 @@ putline(int i, int nl)
 				break;
 			}
 		case 'c':
-			form = 3; 
+			form = 3;
 			break;
 		case 'r':
-			form = 2; 
+			form = 2;
 			break;
 		case 'l':
-			form = 1; 
+			form = 1;
 			break;
 		case '-':
 		case '=':
@@ -212,10 +212,10 @@ putline(int i, int nl)
 				vspf = 1;
 			else
 			 {
-				if (uphalf) 
+				if (uphalf)
 					Bprint(&tabout, "\\u");
 				puttext(ss, fn, size);
-				if (uphalf) 
+				if (uphalf)
 					Bprint(&tabout, "\\d");
 			}
 			if (form != 2)
@@ -225,8 +225,8 @@ putline(int i, int nl)
 		ip = prev(nl);
 		if (ip >= 0)
 			if (vspen(table[ip][c].col)) {
-				exvspen = (c + 1 < ncol) && vspen(table[ip][c+1].col) && 
-				    (topat[c] == topat[c+1]) && 
+				exvspen = (c + 1 < ncol) && vspen(table[ip][c+1].col) &&
+				    (topat[c] == topat[c+1]) &&
 				    (cmidx == (flags[c+1] [stynum[nl]] & (CTOP | CDOWN) == 0))
 				     && (left(i, c + 1, &lwid) < 0);
 				if (exvspen == 0) {
@@ -248,7 +248,7 @@ putline(int i, int nl)
 		}
 	}
 	Bprint(&tabout, "\n");
-	if (allh(i) && !pr1403) 
+	if (allh(i) && !pr1403)
 		Bprint(&tabout, ".vs \\n(%du\n", SVS);
 	if (watchout)
 		funnies(i, nl);
@@ -270,9 +270,9 @@ puttext(char *s, char *fn, char *size)
 		putfont(fn);
 		putsize(size);
 		Bprint(&tabout, "%s", s);
-		if (*fn > 0) 
+		if (*fn > 0)
 			Bprint(&tabout, "\\f\\n(%2d", S1);
-		if (size != 0) 
+		if (size != 0)
 			putsize("0");
 	}
 }
@@ -289,9 +289,9 @@ funnies(int stl, int lin)
 	Bprint(&tabout, ".nr %d \\n(##\n", S1);		 /* bottom position */
 	for (c = 0; c < ncol; c++) {
 		ss = table[lin][c].col;
-		if (point(ss)) 
+		if (point(ss))
 			continue;
-		if (ss == 0) 
+		if (ss == 0)
 			continue;
 		s = (int)(uintptr)ss;
 		Bprint(&tabout, ".sp |\\n(##u-1v\n");
@@ -333,7 +333,7 @@ funnies(int stl, int lin)
 		}
 		Bprint(&tabout, ".%c+\n", s);
 		Bprint(&tabout, ".in -\\n(%du\n", SIND);
-		if (*fn > 0) 
+		if (*fn > 0)
 			putfont("P");
 		Bprint(&tabout, ".mk %d\n", S2);
 		Bprint(&tabout, ".if \\n(%d>\\n(%d .nr %d \\n(%d\n", S2, S1, S1, S2);
@@ -367,5 +367,3 @@ putsize(char *s)
 	if (s && *s)
 		Bprint(&tabout, "\\s%s", s);
 }
-
-
blob - 69e9d6c776fd3b20c403e8f9b523545c8eff05be
blob + db3a4d11692b389256bf218061b2377764fe7717
--- src/cmd/tbl/t9.c
+++ src/cmd/tbl/t9.c
@@ -37,13 +37,13 @@ domore(char *dataln)
 	instead[0] = (char *)0;
 	if (dataln[1] == 0)
 		switch (dataln[0]) {
-		case '_': 
-			fullbot[0] = '-'; 
-			putline(useln, 0);  
+		case '_':
+			fullbot[0] = '-';
+			putline(useln, 0);
 			return(1);
-		case '=': 
-			fullbot[0] = '='; 
-			putline(useln, 0); 
+		case '=':
+			fullbot[0] = '=';
+			putline(useln, 0);
 			return(1);
 		}
 	for (icol = 0; icol < ncol; icol++) {
@@ -63,7 +63,7 @@ domore(char *dataln)
 		}
 		while (ctype(useln, icol + 1) == 's') /* spanning */
 			table[0][++icol].col = "";
-		if (ch == '\0') 
+		if (ch == '\0')
 			break;
 	}
 	while (++icol < ncol)
@@ -72,5 +72,3 @@ domore(char *dataln)
 	exstore = exspace;		 /* reuse space for numerical items */
 	return(1);
 }
-
-
blob - 5cc59880165974a8ef51d2d1af76c235754e3869
blob + 213d371c243247223ceef18ae6330d44f4b24d32
--- src/cmd/tbl/tb.c
+++ src/cmd/tbl/tb.c
@@ -9,10 +9,10 @@ checkuse(void)
 	for (c = 0; c < ncol; c++) {
 		used[c] = lused[c] = rused[c] = 0;
 		for (i = 0; i < nlin; i++) {
-			if (instead[i] || fullbot[i]) 
+			if (instead[i] || fullbot[i])
 				continue;
 			k = ctype(i, c);
-			if (k == '-' || k == '=') 
+			if (k == '-' || k == '=')
 				continue;
 			if ((k == 'n' || k == 'a')) {
 				rused[c] |= real(table[i][c].rcol);
@@ -30,11 +30,11 @@ checkuse(void)
 int
 real(char *s)
 {
-	if (s == 0) 
+	if (s == 0)
 		return(0);
-	if (!point(s)) 
+	if (!point(s))
 		return(1);
-	if (*s == 0) 
+	if (*s == 0)
 		return(0);
 	return(1);
 }
@@ -97,5 +97,3 @@ release(void)
 	tpcount = -1;
 	exstore = 0;
 }
-
-
blob - a89fc0f0415ac4d31b5b9c357981bf666e139a31
blob + 0b9d196100561dadf217daad581d57b1ffa49753
--- src/cmd/tbl/tc.c
+++ src/cmd/tbl/tc.c
@@ -12,9 +12,9 @@ choochar(void)
 		had[icol] = 0;
 	F1 = F2 = 0;
 	for (ilin = 0; ilin < nlin; ilin++) {
-		if (instead[ilin]) 
+		if (instead[ilin])
 			continue;
-		if (fullbot[ilin]) 
+		if (fullbot[ilin])
 			continue;
 		for (icol = 0; icol < ncol; icol++) {
 			k = ctype(ilin, icol);
@@ -32,7 +32,7 @@ choochar(void)
 	}
 				/* choose first funny character */
 	for (
-	    s = "\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz"; 
+	    s = "\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz";
 	    *s; s++) {
 		if (had[(unsigned char)*s] == 0) {
 			F1 = (unsigned char)*s;
@@ -42,7 +42,7 @@ choochar(void)
 	}
 				/* choose second funny character */
 	for (
-	    s = "\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz"; 
+	    s = "\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz";
 	    *s; s++) {
 		if (had[(unsigned char)*s] == 0) {
 			F2 = (unsigned char)*s;
@@ -61,5 +61,3 @@ point(char *ss)
 	int	s = (int)(uintptr)ss;
 	return(s >= 128 || s < 0);
 }
-
-
blob - 3df8d445d4463329c46b451afbc6a8ea99279f0b
blob + 54df7e82e1b1da992d59ac4237273af4db49dd0c
--- src/cmd/tbl/te.c
+++ src/cmd/tbl/te.c
@@ -71,5 +71,3 @@ get1char(void)
 		iline++;
 	return(c);
 }
-
-
blob - 3791c32fe25ffc0804444615064a174ec1b81ad5
blob + 097dfe36a5b2315f911090bc5c4d839ce3347c12
--- src/cmd/tbl/tf.c
+++ src/cmd/tbl/tf.c
@@ -70,5 +70,3 @@ cleanfc(void)
 {
 	Bprint(&tabout, ".fc\n");
 }
-
-
blob - 3afc88c688965e62c8ea9812285d3afcb70ae691
blob + 7b5374bde1b708d6960636709dfb72c7d835e7b6
--- src/cmd/tbl/tg.c
+++ src/cmd/tbl/tg.c
@@ -10,7 +10,7 @@ gettext(char *sp, int ilin, int icol, char *fn, char *
 	char	*vs;
 
 	startline = iline;
-	if (texname == 0) 
+	if (texname == 0)
 		error("Too many text block diversions");
 	if (textflg == 0) {
 		Bprint(&tabout, ".nr %d \\n(.lu\n", SL); /* remember old line length */
@@ -21,13 +21,13 @@ gettext(char *sp, int ilin, int icol, char *fn, char *
 	Bprint(&tabout, ".br\n");
 	Bprint(&tabout, ".di %c+\n", texname);
 	rstofill();
-	if (fn && *fn) 
+	if (fn && *fn)
 		Bprint(&tabout, ".nr %d \\n(.f\n.ft %s\n", S1, fn);
 	Bprint(&tabout, ".ft \\n(.f\n"); /* protect font */
 	vs = vsize[icol][stynum[ilin]];
 	if ((sz && *sz) || (vs && *vs)) {
 		Bprint(&tabout, ".nr %d \\n(.v\n", S9);
-		if (vs == 0 || *vs == 0) 
+		if (vs == 0 || *vs == 0)
 			vs = "\\n(.s+2";
 		if (sz && *sz)
 			Bprint(&tabout, ".ps %s\n", sz);
@@ -48,15 +48,15 @@ gettext(char *sp, int ilin, int icol, char *fn, char *
 			iline = startline;
 			error("missing closing T}");
 		}
-		if (line[0] == 'T' && line[1] == '}' && line[2] == tab) 
+		if (line[0] == 'T' && line[1] == '}' && line[2] == tab)
 			break;
-		if (match("T}", line)) 
+		if (match("T}", line))
 			break;
 		Bprint(&tabout, "%s\n", line);
 	}
-	if (fn && *fn) 
+	if (fn && *fn)
 		Bprint(&tabout, ".ft \\n(%d\n", S1);
-	if (sz && *sz) 
+	if (sz && *sz)
 		Bprint(&tabout, ".br\n.ps\n.vs\n");
 	Bprint(&tabout, ".br\n");
 	Bprint(&tabout, ".di\n");
@@ -82,5 +82,3 @@ untext(void)
 	Bprint(&tabout, ".nf\n");
 	Bprint(&tabout, ".ll \\n(%du\n", SL);
 }
-
-
blob - ef995bbb35e0237a497ced61647d691de3c7f3fd
blob + d4a2ab4db46a15706c6a082ef8db2d267fd2c8cc
--- src/cmd/tbl/ti.c
+++ src/cmd/tbl/ti.c
@@ -9,9 +9,9 @@ interv(int i, int c)
 
 	if (c >= ncol || c == 0) {
 		if (dboxflg) {
-			if (i == 0) 
+			if (i == 0)
 				return(BOT);
-			if (i >= nlin) 
+			if (i >= nlin)
 				return(TOP);
 			return(THRU);
 		}
@@ -23,11 +23,11 @@ interv(int i, int c)
 		kl = 0;
 	else
 		kl = lefdata(allh(i) ? i + 1 : i, c);
-	if (ku == 2 && kl == 2) 
+	if (ku == 2 && kl == 2)
 		return(THRU);
-	if (ku == 2) 
+	if (ku == 2)
 		return(TOP);
-	if (kl == BOT) 
+	if (kl == BOT)
 		return(2);
 	return(0);
 }
@@ -45,7 +45,7 @@ interh(int i, int c)
 			return(RIGHT);
 		return(THRU);
 	}
-	if (i >= nlin) 
+	if (i >= nlin)
 		return(0);
 	kl = c > 0 ? thish (i, c - 1) : 0;
 	if (kl <= 1 && i > 0 && allh(up1(i)))
@@ -53,11 +53,11 @@ interh(int i, int c)
 	kr = thish(i, c);
 	if (kr <= 1 && i > 0 && allh(up1(i)))
 		kr = c > 0 ? thish(up1(i), c) : 0;
-	if (kl == '=' && kr ==  '=') 
+	if (kl == '=' && kr ==  '=')
 		return(THRU);
-	if (kl == '=') 
+	if (kl == '=')
 		return(LEFT);
-	if (kr == '=') 
+	if (kr == '=')
 		return(RIGHT);
 	return(0);
 }
@@ -67,9 +67,7 @@ int
 up1(int i)
 {
 	i--;
-	while (instead[i] && i > 0) 
+	while (instead[i] && i > 0)
 		i--;
 	return(i);
 }
-
-
blob - 5b58f0d1bb82e806a4ed42aab6f4f63aa4b36805
blob + cee294c4fe462c6c4a58abdd0693a41d11343628
--- src/cmd/tbl/tm.c
+++ src/cmd/tbl/tm.c
@@ -15,8 +15,8 @@ maknew(char *str)
 	str = p;
 	if (ba == 0) {
 		for (dpoint = 0; *str; str++) {
-			if (*str == '.' && !ineqn(str, p) && 
-			    (str > p && digit(*(str - 1)) || 
+			if (*str == '.' && !ineqn(str, p) &&
+			    (str > p && digit(*(str - 1)) ||
 			    digit(*(str + 1))))
 				dpoint = str;
 		}
@@ -27,7 +27,7 @@ maknew(char *str)
 			}
 		if (!dpoint && p == str) /* not numerical, don't split */
 			return(0);
-		if (dpoint) 
+		if (dpoint)
 			str = dpoint;
 	} else
 		str = ba;
@@ -61,5 +61,3 @@ ineqn (char *s, char *p)
 	}
 	return(0);
 }
-
-
blob - 7d586e8b8388622eb1f651460a936bb16da1dcdc
blob + 6a626115332f05b4b7dfb579f4cc1abae10d274a
--- src/cmd/tbl/tr.c
+++ src/cmd/tbl/tr.c
@@ -24,5 +24,3 @@ reg(int col, int place)
 		error("Too many columns for registers");
 	return (nregs[qcol*place+col]);
 }
-
-
blob - 43cc84ecdf85ab5021de973c4d5e28572364d073
blob + 2a98b5d639a1101c688c700ad1236e888f3a05fb
--- src/cmd/tbl/ts.c
+++ src/cmd/tbl/ts.c
@@ -19,7 +19,7 @@ prefix(char *small, char *big)
 	int	c;
 
 	while ((c = *small++) == *big++)
-		if (c == 0) 
+		if (c == 0)
 			return(1);
 	return(c == 0);
 }
@@ -67,5 +67,3 @@ tcopy (char *s, char *t)
 	while (*s++ = *t++)
 		;
 }
-
-
blob - 96270b7580ae4955da049991ce787dc831ca9895
blob + 54c6180e8515876023ebfdfa2cad6a8300d8f1a9
--- src/cmd/tbl/tt.c
+++ src/cmd/tbl/tt.c
@@ -33,7 +33,7 @@ lspan(int i, int c)
 {
 	int	k;
 
-	if (ctype(i, c) != 's') 
+	if (ctype(i, c) != 's')
 		return(0);
 	c++;
 	if (c < ncol && ctype(i, c) == 's')
@@ -73,15 +73,15 @@ allh(int i)
 				/* also at least one must be horizontl */
 	int	c, one, k;
 
-	if (fullbot[i]) 
+	if (fullbot[i])
 		return(1);
-	if (i >= nlin) 
+	if (i >= nlin)
 		return(dboxflg || boxflg);
 	for (one = c = 0; c < ncol; c++) {
 		k = thish(i, c);
-		if (k == 0) 
+		if (k == 0)
 			return(0);
-		if (k == 1) 
+		if (k == 1)
 			continue;
 		one = 1;
 	}
@@ -98,30 +98,28 @@ thish(int i, int c)
 
 	if (c < 0)
 		return(0);
-	if (i < 0) 
+	if (i < 0)
 		return(0);
 	t = ctype(i, c);
 	if (t == '_' || t == '-')
 		return('-');
 	if (t == '=')
 		return('=');
-	if (t == '^') 
+	if (t == '^')
 		return(1);
 	if (fullbot[i] )
 		return(fullbot[i]);
-	if (t == 's') 
+	if (t == 's')
 		return(thish(i, c - 1));
-	if (t == 0) 
+	if (t == 0)
 		return(1);
 	pc = &table[i][c];
 	s = (t == 'a' ? pc->rcol : pc->col);
 	if (s == 0 || (point(s) && *s == 0))
 		return(1);
-	if (vspen(s)) 
+	if (vspen(s))
 		return(1);
 	if (t = barent( s))
 		return(t);
 	return(0);
 }
-
-
blob - 217869e1a46759cae0e91957d6043354f0e03b90
blob + 940895775a60290d4618207830d88bc5723ef88e
--- src/cmd/tbl/tu.c
+++ src/cmd/tbl/tu.c
@@ -7,7 +7,7 @@ makeline(int i, int c, int lintype)
 	int	cr, type, shortl;
 
 	type = thish(i, c);
-	if (type == 0) 
+	if (type == 0)
 		return;
 	shortl = (table[i][c].col[0] == '\\');
 	if (c > 0 && !shortl && thish(i, c - 1) == type)
@@ -55,17 +55,17 @@ drawline(int i, int cl, int cr, int lintype, int nohei
 	lcount = 0;
 	exhr = exhl = "";
 	switch (lintype) {
-	case '-': 
+	case '-':
 		lcount = 1;
 		break;
-	case '=': 
-		lcount = pr1403 ? 1 : 2; 
+	case '=':
+		lcount = pr1403 ? 1 : 2;
 		break;
-	case SHORTLINE: 
-		lcount = 1; 
+	case SHORTLINE:
+		lcount = 1;
 		break;
 	}
-	if (lcount <= 0) 
+	if (lcount <= 0)
 		return;
 	nodata = cr - cl >= ncol || noheight || allh(i);
 	if (!nodata)
@@ -79,26 +79,26 @@ drawline(int i, int cl, int cr, int lintype, int nohei
 			tohcol(cl);
 			if (lcount > 1) {
 				switch (interv(i, cl)) {
-				case TOP: 
-					exhl = ln == 0 ? "1p" : "-1p"; 
+				case TOP:
+					exhl = ln == 0 ? "1p" : "-1p";
 					break;
-				case BOT: 
-					exhl = ln == 1 ? "1p" : "-1p"; 
+				case BOT:
+					exhl = ln == 1 ? "1p" : "-1p";
 					break;
-				case THRU: 
-					exhl = "1p"; 
+				case THRU:
+					exhl = "1p";
 					break;
 				}
 				if (exhl[0])
 					Bprint(&tabout, "\\h'%s'", exhl);
 			} else if (lcount == 1) {
 				switch (interv(i, cl)) {
-				case TOP: 
-				case BOT: 
-					exhl = "-1p"; 
+				case TOP:
+				case BOT:
+					exhl = "-1p";
 					break;
-				case THRU: 
-					exhl = "1p"; 
+				case THRU:
+					exhl = "1p";
 					break;
 				}
 				if (exhl[0])
@@ -106,24 +106,24 @@ drawline(int i, int cl, int cr, int lintype, int nohei
 			}
 			if (lcount > 1) {
 				switch (interv(i, cr + 1)) {
-				case TOP: 
-					exhr = ln == 0 ? "-1p" : "+1p"; 
-					break;
-				case BOT: 
-					exhr = ln == 1 ? "-1p" : "+1p"; 
+				case TOP:
+					exhr = ln == 0 ? "-1p" : "+1p";
 					break;
-				case THRU: 
-					exhr = "-1p"; 
+				case BOT:
+					exhr = ln == 1 ? "-1p" : "+1p";
 					break;
+				case THRU:
+					exhr = "-1p";
+					break;
 				}
 			} else if (lcount == 1) {
 				switch (interv(i, cr + 1)) {
-				case TOP: 
-				case BOT: 
-					exhr = "+1p"; 
+				case TOP:
+				case BOT:
+					exhr = "+1p";
 					break;
-				case THRU: 
-					exhr = "-1p"; 
+				case THRU:
+					exhr = "-1p";
 					break;
 				}
 			}
@@ -183,18 +183,18 @@ left(int i, int c, int *lwidp)
 					/* returns number of line where it starts */
 					/* stores into lwid the kind of line */
 	*lwidp = 0;
-	if (i < 0) 
+	if (i < 0)
 		return(-1);
 	kind = lefdata(i, c);
-	if (kind == 0) 
+	if (kind == 0)
 		return(-1);
 	if (i + 1 < nlin)
-		if (lefdata(next(i), c) == kind) 
+		if (lefdata(next(i), c) == kind)
 			return(-1);
 	li = i;
 	while (i >= 0 && lefdata(i, c) == kind)
 		i = prev(li = i);
-	if (prev(li) == -1) 
+	if (prev(li) == -1)
 		li = 0;
 	*lwidp = kind;
 	for (lj = i + 1; lj < li; lj++)
@@ -212,7 +212,7 @@ lefdata(int i, int c)
 {
 	int	ck;
 
-	if (i >= nlin) 
+	if (i >= nlin)
 		i = nlin - 1;
 	if (ctype(i, c) == 's') {
 		for (ck = c; ctype(i, ck) == 's'; ck--)
@@ -222,13 +222,13 @@ lefdata(int i, int c)
 	}
 	i = stynum[i];
 	i = lefline[c][i];
-	if (i > 0) 
+	if (i > 0)
 		return(i);
-	if (dboxflg && c == 0) 
+	if (dboxflg && c == 0)
 		return(2);
 	if (allflg)
 		return(1);
-	if (boxflg && c == 0) 
+	if (boxflg && c == 0)
 		return(1);
 	return(0);
 }
@@ -239,7 +239,7 @@ next(int i)
 {
 	while (i + 1 < nlin) {
 		i++;
-		if (!fullbot[i] && !instead[i]) 
+		if (!fullbot[i] && !instead[i])
 			break;
 	}
 	return(i);
@@ -253,5 +253,3 @@ prev(int i)
 		;
 	return(i);
 }
-
-
blob - 19a4b03fda16cf4977869fc761af16e0a159c98b
blob + 0fb330cc3db36e690552985089108d923f9e9945
--- src/cmd/tbl/tv.c
+++ src/cmd/tbl/tv.c
@@ -10,12 +10,12 @@ drawvert(int start, int end, int c, int lwid)
 	end++;
 	vm = 'v';
 				/* note: nr 35 has value of 1m outside of linesize */
-	while (instead[end]) 
+	while (instead[end])
 		end++;
 	for (ln = 0; ln < lwid; ln++) {
 		epb = ept = 0;
 		pos = 2 * ln - lwid + 1;
-		if (pos != tp) 
+		if (pos != tp)
 			Bprint(&tabout, "\\h'%dp'", pos - tp);
 		tp = pos;
 		if (end < nlin) {
@@ -24,53 +24,53 @@ drawvert(int start, int end, int c, int lwid)
 			else
 				switch (midbar(end, c)) {
 				case '-':
-					exb = "1v-.5m"; 
+					exb = "1v-.5m";
 					break;
 				case '=':
 					exb = "1v-.5m";
-					epb = 1; 
+					epb = 1;
 					break;
 				}
 		}
 		if (lwid > 1)
 			switch (interh(end, c)) {
-			case THRU: 
-				epb -= 1; 
+			case THRU:
+				epb -= 1;
 				break;
-			case RIGHT: 
-				epb += (ln == 0 ? 1 : -1); 
+			case RIGHT:
+				epb += (ln == 0 ? 1 : -1);
 				break;
-			case LEFT: 
-				epb += (ln == 1 ? 1 : -1); 
+			case LEFT:
+				epb += (ln == 1 ? 1 : -1);
 				break;
 			}
 		if (lwid == 1)
 			switch (interh(end, c)) {
-			case THRU: 
-				epb -= 1; 
+			case THRU:
+				epb -= 1;
 				break;
-			case RIGHT: 
-			case LEFT: 
-				epb += 1; 
+			case RIGHT:
+			case LEFT:
+				epb += 1;
 				break;
 			}
 		if (start > 0) {
 			sl = start - 1;
-			while (sl >= 0 && instead[sl]) 
+			while (sl >= 0 && instead[sl])
 				sl--;
 			if (sl >= 0 && (fullbot[sl] || allh(sl)))
 				ept = 0;
 			else if (sl >= 0)
 				switch (midbar(sl, c)) {
 				case '-':
-					ext = ".5m"; 
+					ext = ".5m";
 					break;
 				case '=':
-					ext = ".5m"; 
-					ept = -1; 
+					ext = ".5m";
+					ept = -1;
 					break;
 				default:
-					vm = 'm'; 
+					vm = 'm';
 					break;
 				}
 			else
@@ -81,24 +81,24 @@ drawvert(int start, int end, int c, int lwid)
 		}
 		if (lwid > 1)
 			switch (interh(start, c)) {
-			case THRU: 
-				ept += 1; 
+			case THRU:
+				ept += 1;
 				break;
-			case LEFT: 
-				ept += (ln == 0 ? 1 : -1); 
+			case LEFT:
+				ept += (ln == 0 ? 1 : -1);
 				break;
-			case RIGHT: 
-				ept += (ln == 1 ? 1 : -1); 
+			case RIGHT:
+				ept += (ln == 1 ? 1 : -1);
 				break;
 			}
 		else if (lwid == 1)
 			switch (interh(start, c)) {
-			case THRU: 
-				ept += 1; 
+			case THRU:
+				ept += 1;
 				break;
-			case LEFT: 
-			case RIGHT: 
-				ept -= 1; 
+			case LEFT:
+			case RIGHT:
+				ept -= 1;
 				break;
 			}
 		if (exb)
@@ -163,11 +163,11 @@ midbcol(int i, int c)
 int
 barent(char *s)
 {
-	if (s == 0) 
+	if (s == 0)
 		return (1);
-	if (!point(s)) 
+	if (!point(s))
 		return(0);
-	if (s[0] == '\\') 
+	if (s[0] == '\\')
 		s++;
 	if (s[1] != 0)
 		return(0);
@@ -179,5 +179,3 @@ barent(char *s)
 	}
 	return(0);
 }
-
-
blob - 293ffad1afc9cdcf4c6608578a3c8ec4f0c5a2a2
blob + da1ebe0a3a1908e9a644677c537e80fe29e79cb3
--- src/cmd/tcs/conv_ksc.c
+++ src/cmd/tcs/conv_ksc.c
@@ -158,4 +158,3 @@ uksc_out(Rune *base, int n, long *notused)
 	if(p > obuf)
 		write(1, obuf, p-obuf);
 }
-
blob - e488033694d619ebb7ef6621aa4aa38a56f85893
blob + feb2d755ff6278b1a7cddb498af3c25cd97465ba
--- src/cmd/tcs/font/bbits.c
+++ src/cmd/tcs/font/bbits.c
@@ -7,7 +7,7 @@
 enum {
 	Charsperfont	= 157,
 	Void1b		= (0xC6-0xA2)*Charsperfont+0x3f,
-	Void1e		= (0xC9-0xA2)*Charsperfont - 1 
+	Void1e		= (0xC9-0xA2)*Charsperfont - 1
 };
 
 Bitmap *
blob - 93bd9e5ad61aa02ae5eb886474cfa3bbee0eb4fb
blob + be71c0800bda584ec877cec6f9a9137f66fc443a
--- src/cmd/tcs/html.c
+++ src/cmd/tcs/html.c
@@ -294,7 +294,7 @@ static int
 hnamecmp(const void *va, const void *vb)
 {
 	Hchar *a, *b;
-	
+
 	a = (Hchar*)va;
 	b = (Hchar*)vb;
 	return strcmp(a->s, b->s);
@@ -304,7 +304,7 @@ static int
 hrunecmp(const void *va, const void *vb)
 {
 	Hchar *a, *b;
-	
+
 	a = (Hchar*)va;
 	b = (Hchar*)vb;
 	return a->r - b->r;
@@ -315,12 +315,12 @@ html_init(void)
 {
 	static int init;
 	int i;
-	
+
 	if(init)
 		return;
 	init = 1;
 	memmove(byrune, byname, sizeof byrune);
-	
+
 	/* Eliminate names we aren't allowed to generate. */
 	for(i=0; i<nelem(byrune); i++){
 		if(byrune[i].s[0] == '_'){
@@ -328,7 +328,7 @@ html_init(void)
 			byname[i].s++;
 		}
 	}
-	
+
 	qsort(byname, nelem(byname), sizeof byname[0], hnamecmp);
 	qsort(byrune, nelem(byrune), sizeof byrune[0], hrunecmp);
 }
@@ -338,7 +338,7 @@ findbyname(char *s)
 {
 	Hchar *h;
 	int n, m, x;
-	
+
 	h = byname;
 	n = nelem(byname);
 	while(n > 0){
@@ -386,9 +386,9 @@ html_in(int fd, long *x, struct convert *out)
 	Rune rbuf[N];
 	Rune *r, *er;
 	int c, i;
-	
+
 	USED(x);
-	
+
 	html_init();
 	r = rbuf;
 	er = rbuf+N;
@@ -453,7 +453,7 @@ html_out(Rune *r, int n, long *x)
 	char *s;
 	Biobuf b;
 	Rune *er;
-	
+
 	USED(x);
 	html_init();
 	Binit(&b, 1, OWRITE);
@@ -468,4 +468,3 @@ html_out(Rune *r, int n, long *x)
 	}
 	Bflush(&b);
 }
-
blob - 9b6d1dcc6465c665d593c3aab939d85959acbf91
blob + 9c726ee26c79e84a94e620704c6afa1d04f2f4c6
--- src/cmd/tcs/jis.h
+++ src/cmd/tcs/jis.h
@@ -104,4 +104,3 @@
  *	Returns 1 if they are, or 0 otherwise.
  */
 #define CANJ2S(_h, _l)	(CANJ2SB(_h) && CANJ2SB(_l))
-
blob - 90d6793bb3e1c399500a84a5005525507b6906ee
blob + 05b0ecafa11b7b39f6064668dbb434b1a0356e04
--- src/cmd/tcs/ksc.c
+++ src/cmd/tcs/ksc.c
@@ -1,7 +1,7 @@
 #include	"ksc.h"
 
 /* KSC5601 -> Unicode mapping table, compressed for the 94*94 codeset. */
-/* 
+/*
  * Unlike kuten-table, needed offset is 33 (0x21) instead of
  * 32 for 7-bit portion of each byte.  i.e., a Unicode
  * codepoint for KSC's codepoint (n, m) would be found at
@@ -9,978 +9,978 @@
  */
 long tabksc5601[] = {
 /* KSC 5601 -> Unicode mapping table; max codepoint = 0x7d7e */
-	0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, 0x00ad, 
-	0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014, 
-	0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 
-	0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, 0x2260, 0x2264, 0x2265, 0x221e, 
-	0x2234, 0x00b0, 0x2032, 0x2033, 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 
-	0x2642, 0x2640, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 
-	0x00a7, 0x203b, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 
-	0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191, 
-	0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 
-	0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 
-	0x2229, 0x2227, 0x2228, 0xffe2, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 
-	0xff5e, 0x02c7, 0x02d8, 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 
-	0x00bf, 0x02d0, 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, 
-	0x25c0, 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663, 
-	0x25c9, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5, 0x25a8, 
-	0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c, 0x261e, 0x00b6, 
-	0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196, 0x2198, 0x266d, 0x2669, 
-	0x266a, 0x266c, 0x327f, 0x321c, 0x2116, 0x33c7, 0x2122, 0x33c2, 0x33d8, 
-	0x2121,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 0xff01, 
-	0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09, 0xff0a, 
-	0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, 0xff11, 0xff12, 0xff13, 
-	0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, 
-	0xff1d, 0xff1e, 0xff1f, 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 
-	0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 
-	0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 
-	0xff38, 0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40, 
-	0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 
-	0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 
-	0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5b, 
-	0xff5c, 0xff5d, 0xffe3, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 
-	0x3137, 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 
-	0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 
-	0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, 0x3151, 
-	0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, 
-	0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163, 
-	0x3164, 0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 
-	0x316d, 0x316e, 0x316f, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 
-	0x3176, 0x3177, 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 
-	0x317f, 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, 
-	0x3188, 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, 0x2170, 0x2171, 
-	0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179,     -1, 
-	    -1,     -1,     -1,     -1, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 
-	0x2165, 0x2166, 0x2167, 0x2168, 0x2169,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 
-	0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 
-	0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 0x03b1, 
-	0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 
-	0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 
-	0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,     -1,     -1,     -1,     -1, 
-	    -1,     -1, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 
-	0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 
-	0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, 
-	0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x2512, 0x2511, 
-	0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d, 0x251e, 0x251f, 0x2521, 
-	0x2522, 0x2526, 0x2527, 0x2529, 0x252a, 0x252d, 0x252e, 0x2531, 0x2532, 
-	0x2535, 0x2536, 0x2539, 0x253a, 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 
-	0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1, 0x3395, 0x3396, 0x3397, 
-	0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4, 0x33a5, 0x33a6, 0x3399, 0x339a, 
-	0x339b, 0x339c, 0x339d, 0x339e, 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 
-	0x338d, 0x338e, 0x338f, 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 
-	0x33b0, 0x33b1, 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 
-	0x33b9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc, 
-	0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394, 0x2126, 
-	0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5, 0x33ad, 0x33ae, 
-	0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac, 0x33dd, 0x33d0, 0x33d3, 
-	0x33c3, 0x33c9, 0x33dc, 0x33c6,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1, 0x00c6, 0x00d0, 0x00aa, 0x0126,     -1, 0x0132,     -1, 0x013f, 
-	0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a,     -1, 0x3260, 
-	0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 
-	0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272, 
-	0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a, 0x327b, 
-	0x24d0, 0x24d1, 0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 
-	0x24d9, 0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 
-	0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, 
-	0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 
-	0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154, 0x00bc, 
-	0x00be, 0x215b, 0x215c, 0x215d, 0x215e, 0x00e6, 0x0111, 0x00f0, 0x0127, 
-	0x0131, 0x0133, 0x0138, 0x0140, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 
-	0x0167, 0x014b, 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 
-	0x3206, 0x3207, 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, 
-	0x320f, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217, 
-	0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f, 0x24a0, 
-	0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, 0x24a8, 0x24a9, 
-	0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, 0x24b0, 0x24b1, 0x24b2, 
-	0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 
-	0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 
-	0x00b9, 0x00b2, 0x00b3, 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084, 
-	0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 
-	0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 
-	0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 
-	0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 
-	0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 
-	0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 
-	0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 
-	0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 
-	0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 
-	0x3092, 0x3093,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 
-	0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 
-	0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 
-	0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 
-	0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 
-	0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 
-	0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 
-	0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 
-	0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 
-	0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 0x0410, 
-	0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 
-	0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 
-	0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 
-	0x042b, 0x042c, 0x042d, 0x042e, 0x042f,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 
-	0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 
-	0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1, 0x3400, 0x3401, 0x3402, 
-	0x3403, 0x3404, 0x3405, 0x3406, 0x3407, 0x3408, 0x3409, 0x340a, 0x340b, 
-	0x340c, 0x340d, 0x340e, 0x340f, 0x3410, 0x3411, 0x3412, 0x3413, 0x3414, 
-	0x3415, 0x3416, 0x3417, 0x3418, 0x3419, 0x341a, 0x341b, 0x341c, 0x341d, 
-	0x341e, 0x341f, 0x3420, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426, 
-	0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e, 0x342f, 
-	0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3437, 0x3438, 
-	0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e, 0x343f, 0x3440, 0x3441, 
-	0x3442, 0x3443, 0x3444, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, 0x344a, 
-	0x344b, 0x344c, 0x344d, 0x344e, 0x344f, 0x3450, 0x3451, 0x3452, 0x3453, 
-	0x3454, 0x3455, 0x3456, 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, 
-	0x345d, 0x345e, 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, 
-	0x3466, 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e, 
-	0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476, 0x3477, 
-	0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e, 0x347f, 0x3480, 
-	0x3481, 0x3482, 0x3483, 0x3484, 0x3485, 0x3486, 0x3487, 0x3488, 0x3489, 
-	0x348a, 0x348b, 0x348c, 0x348d, 0x348e, 0x348f, 0x3490, 0x3491, 0x3492, 
-	0x3493, 0x3494, 0x3495, 0x3496, 0x3497, 0x3498, 0x3499, 0x349a, 0x349b, 
-	0x349c, 0x349d, 0x349e, 0x349f, 0x34a0, 0x34a1, 0x34a2, 0x34a3, 0x34a4, 
-	0x34a5, 0x34a6, 0x34a7, 0x34a8, 0x34a9, 0x34aa, 0x34ab, 0x34ac, 0x34ad, 
-	0x34ae, 0x34af, 0x34b0, 0x34b1, 0x34b2, 0x34b3, 0x34b4, 0x34b5, 0x34b6, 
-	0x34b7, 0x34b8, 0x34b9, 0x34ba, 0x34bb, 0x34bc, 0x34bd, 0x34be, 0x34bf, 
-	0x34c0, 0x34c1, 0x34c2, 0x34c3, 0x34c4, 0x34c5, 0x34c6, 0x34c7, 0x34c8, 
-	0x34c9, 0x34ca, 0x34cb, 0x34cc, 0x34cd, 0x34ce, 0x34cf, 0x34d0, 0x34d1, 
-	0x34d2, 0x34d3, 0x34d4, 0x34d5, 0x34d6, 0x34d7, 0x34d8, 0x34d9, 0x34da, 
-	0x34db, 0x34dc, 0x34dd, 0x34de, 0x34df, 0x34e0, 0x34e1, 0x34e2, 0x34e3, 
-	0x34e4, 0x34e5, 0x34e6, 0x34e7, 0x34e8, 0x34e9, 0x34ea, 0x34eb, 0x34ec, 
-	0x34ed, 0x34ee, 0x34ef, 0x34f0, 0x34f1, 0x34f2, 0x34f3, 0x34f4, 0x34f5, 
-	0x34f6, 0x34f7, 0x34f8, 0x34f9, 0x34fa, 0x34fb, 0x34fc, 0x34fd, 0x34fe, 
-	0x34ff, 0x3500, 0x3501, 0x3502, 0x3503, 0x3504, 0x3505, 0x3506, 0x3507, 
-	0x3508, 0x3509, 0x350a, 0x350b, 0x350c, 0x350d, 0x350e, 0x350f, 0x3510, 
-	0x3511, 0x3512, 0x3513, 0x3514, 0x3515, 0x3516, 0x3517, 0x3518, 0x3519, 
-	0x351a, 0x351b, 0x351c, 0x351d, 0x351e, 0x351f, 0x3520, 0x3521, 0x3522, 
-	0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528, 0x3529, 0x352a, 0x352b, 
-	0x352c, 0x352d, 0x352e, 0x352f, 0x3530, 0x3531, 0x3532, 0x3533, 0x3534, 
-	0x3535, 0x3536, 0x3537, 0x3538, 0x3539, 0x353a, 0x353b, 0x353c, 0x353d, 
-	0x353e, 0x353f, 0x3540, 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 
-	0x3547, 0x3548, 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, 
-	0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558, 
-	0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560, 0x3561, 
-	0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, 0x356a, 
-	0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571, 0x3572, 0x3573, 
-	0x3574, 0x3575, 0x3576, 0x3577, 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, 
-	0x357d, 0x357e, 0x357f, 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585, 
-	0x3586, 0x3587, 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e, 
-	0x358f, 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597, 
-	0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, 0x35a0, 
-	0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, 0x35a8, 0x35a9, 
-	0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x35af, 0x35b0, 0x35b1, 0x35b2, 
-	0x35b3, 0x35b4, 0x35b5, 0x35b6, 0x35b7, 0x35b8, 0x35b9, 0x35ba, 0x35bb, 
-	0x35bc, 0x35bd, 0x35be, 0x35bf, 0x35c0, 0x35c1, 0x35c2, 0x35c3, 0x35c4, 
-	0x35c5, 0x35c6, 0x35c7, 0x35c8, 0x35c9, 0x35ca, 0x35cb, 0x35cc, 0x35cd, 
-	0x35ce, 0x35cf, 0x35d0, 0x35d1, 0x35d2, 0x35d3, 0x35d4, 0x35d5, 0x35d6, 
-	0x35d7, 0x35d8, 0x35d9, 0x35da, 0x35db, 0x35dc, 0x35dd, 0x35de, 0x35df, 
-	0x35e0, 0x35e1, 0x35e2, 0x35e3, 0x35e4, 0x35e5, 0x35e6, 0x35e7, 0x35e8, 
-	0x35e9, 0x35ea, 0x35eb, 0x35ec, 0x35ed, 0x35ee, 0x35ef, 0x35f0, 0x35f1, 
-	0x35f2, 0x35f3, 0x35f4, 0x35f5, 0x35f6, 0x35f7, 0x35f8, 0x35f9, 0x35fa, 
-	0x35fb, 0x35fc, 0x35fd, 0x35fe, 0x35ff, 0x3600, 0x3601, 0x3602, 0x3603, 
-	0x3604, 0x3605, 0x3606, 0x3607, 0x3608, 0x3609, 0x360a, 0x360b, 0x360c, 
-	0x360d, 0x360e, 0x360f, 0x3610, 0x3611, 0x3612, 0x3613, 0x3614, 0x3615, 
-	0x3616, 0x3617, 0x3618, 0x3619, 0x361a, 0x361b, 0x361c, 0x361d, 0x361e, 
-	0x361f, 0x3620, 0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, 
-	0x3628, 0x3629, 0x362a, 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, 
-	0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, 
-	0x363a, 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642, 
-	0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a, 0x364b, 
-	0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652, 0x3653, 0x3654, 
-	0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a, 0x365b, 0x365c, 0x365d, 
-	0x365e, 0x365f, 0x3660, 0x3661, 0x3662, 0x3663, 0x3664, 0x3665, 0x3666, 
-	0x3667, 0x3668, 0x3669, 0x366a, 0x366b, 0x366c, 0x366d, 0x366e, 0x366f, 
-	0x3670, 0x3671, 0x3672, 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, 
-	0x3679, 0x367a, 0x367b, 0x367c, 0x367d, 0x367e, 0x367f, 0x3680, 0x3681, 
-	0x3682, 0x3683, 0x3684, 0x3685, 0x3686, 0x3687, 0x3688, 0x3689, 0x368a, 
-	0x368b, 0x368c, 0x368d, 0x368e, 0x368f, 0x3690, 0x3691, 0x3692, 0x3693, 
-	0x3694, 0x3695, 0x3696, 0x3697, 0x3698, 0x3699, 0x369a, 0x369b, 0x369c, 
-	0x369d, 0x369e, 0x369f, 0x36a0, 0x36a1, 0x36a2, 0x36a3, 0x36a4, 0x36a5, 
-	0x36a6, 0x36a7, 0x36a8, 0x36a9, 0x36aa, 0x36ab, 0x36ac, 0x36ad, 0x36ae, 
-	0x36af, 0x36b0, 0x36b1, 0x36b2, 0x36b3, 0x36b4, 0x36b5, 0x36b6, 0x36b7, 
-	0x36b8, 0x36b9, 0x36ba, 0x36bb, 0x36bc, 0x36bd, 0x36be, 0x36bf, 0x36c0, 
-	0x36c1, 0x36c2, 0x36c3, 0x36c4, 0x36c5, 0x36c6, 0x36c7, 0x36c8, 0x36c9, 
-	0x36ca, 0x36cb, 0x36cc, 0x36cd, 0x36ce, 0x36cf, 0x36d0, 0x36d1, 0x36d2, 
-	0x36d3, 0x36d4, 0x36d5, 0x36d6, 0x36d7, 0x36d8, 0x36d9, 0x36da, 0x36db, 
-	0x36dc, 0x36dd, 0x36de, 0x36df, 0x36e0, 0x36e1, 0x36e2, 0x36e3, 0x36e4, 
-	0x36e5, 0x36e6, 0x36e7, 0x36e8, 0x36e9, 0x36ea, 0x36eb, 0x36ec, 0x36ed, 
-	0x36ee, 0x36ef, 0x36f0, 0x36f1, 0x36f2, 0x36f3, 0x36f4, 0x36f5, 0x36f6, 
-	0x36f7, 0x36f8, 0x36f9, 0x36fa, 0x36fb, 0x36fc, 0x36fd, 0x36fe, 0x36ff, 
-	0x3700, 0x3701, 0x3702, 0x3703, 0x3704, 0x3705, 0x3706, 0x3707, 0x3708, 
-	0x3709, 0x370a, 0x370b, 0x370c, 0x370d, 0x370e, 0x370f, 0x3710, 0x3711, 
-	0x3712, 0x3713, 0x3714, 0x3715, 0x3716, 0x3717, 0x3718, 0x3719, 0x371a, 
-	0x371b, 0x371c, 0x371d, 0x371e, 0x371f, 0x3720, 0x3721, 0x3722, 0x3723, 
-	0x3724, 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c, 
-	0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, 0x3735, 
-	0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c, 0x373d, 0x373e, 
-	0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744, 0x3745, 0x3746, 0x3747, 
-	0x3748, 0x3749, 0x374a, 0x374b, 0x374c, 0x374d, 0x374e, 0x374f, 0x3750, 
-	0x3751, 0x3752, 0x3753, 0x3754, 0x3755, 0x3756, 0x3757, 0x3758, 0x3759, 
-	0x375a, 0x375b, 0x375c, 0x375d, 0x375e, 0x375f, 0x3760, 0x3761, 0x3762, 
-	0x3763, 0x3764, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, 
-	0x376c, 0x376d, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774, 
-	0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c, 0x377d, 
-	0x377e, 0x377f, 0x3780, 0x3781, 0x3782, 0x3783, 0x3784, 0x3785, 0x3786, 
-	0x3787, 0x3788, 0x3789, 0x378a, 0x378b, 0x378c, 0x378d, 0x378e, 0x378f, 
-	0x3790, 0x3791, 0x3792, 0x3793, 0x3794, 0x3795, 0x3796, 0x3797, 0x3798, 
-	0x3799, 0x379a, 0x379b, 0x379c, 0x379d, 0x379e, 0x379f, 0x37a0, 0x37a1, 
-	0x37a2, 0x37a3, 0x37a4, 0x37a5, 0x37a6, 0x37a7, 0x37a8, 0x37a9, 0x37aa, 
-	0x37ab, 0x37ac, 0x37ad, 0x37ae, 0x37af, 0x37b0, 0x37b1, 0x37b2, 0x37b3, 
-	0x37b4, 0x37b5, 0x37b6, 0x37b7, 0x37b8, 0x37b9, 0x37ba, 0x37bb, 0x37bc, 
-	0x37bd, 0x37be, 0x37bf, 0x37c0, 0x37c1, 0x37c2, 0x37c3, 0x37c4, 0x37c5, 
-	0x37c6, 0x37c7, 0x37c8, 0x37c9, 0x37ca, 0x37cb, 0x37cc, 0x37cd, 0x37ce, 
-	0x37cf, 0x37d0, 0x37d1, 0x37d2, 0x37d3, 0x37d4, 0x37d5, 0x37d6, 0x37d7, 
-	0x37d8, 0x37d9, 0x37da, 0x37db, 0x37dc, 0x37dd, 0x37de, 0x37df, 0x37e0, 
-	0x37e1, 0x37e2, 0x37e3, 0x37e4, 0x37e5, 0x37e6, 0x37e7, 0x37e8, 0x37e9, 
-	0x37ea, 0x37eb, 0x37ec, 0x37ed, 0x37ee, 0x37ef, 0x37f0, 0x37f1, 0x37f2, 
-	0x37f3, 0x37f4, 0x37f5, 0x37f6, 0x37f7, 0x37f8, 0x37f9, 0x37fa, 0x37fb, 
-	0x37fc, 0x37fd, 0x37fe, 0x37ff, 0x3800, 0x3801, 0x3802, 0x3803, 0x3804, 
-	0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 0x380a, 0x380b, 0x380c, 0x380d, 
-	0x380e, 0x380f, 0x3810, 0x3811, 0x3812, 0x3813, 0x3814, 0x3815, 0x3816, 
-	0x3817, 0x3818, 0x3819, 0x381a, 0x381b, 0x381c, 0x381d, 0x381e, 0x381f, 
-	0x3820, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826, 0x3827, 0x3828, 
-	0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e, 0x382f, 0x3830, 0x3831, 
-	0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, 0x383a, 
-	0x383b, 0x383c, 0x383d, 0x383e, 0x383f, 0x3840, 0x3841, 0x3842, 0x3843, 
-	0x3844, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, 
-	0x384d, 0x384e, 0x384f, 0x3850, 0x3851, 0x3852, 0x3853, 0x3854, 0x3855, 
-	0x3856, 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e, 
-	0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3866, 0x3867, 
-	0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f, 0x3870, 
-	0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, 0x3879, 
-	0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x387f, 0x3880, 0x3881, 0x3882, 
-	0x3883, 0x3884, 0x3885, 0x3886, 0x3887, 0x3888, 0x3889, 0x388a, 0x388b, 
-	0x388c, 0x388d, 0x388e, 0x388f, 0x3890, 0x3891, 0x3892, 0x3893, 0x3894, 
-	0x3895, 0x3896, 0x3897, 0x3898, 0x3899, 0x389a, 0x389b, 0x389c, 0x389d, 
-	0x389e, 0x389f, 0x38a0, 0x38a1, 0x38a2, 0x38a3, 0x38a4, 0x38a5, 0x38a6, 
-	0x38a7, 0x38a8, 0x38a9, 0x38aa, 0x38ab, 0x38ac, 0x38ad, 0x38ae, 0x38af, 
-	0x38b0, 0x38b1, 0x38b2, 0x38b3, 0x38b4, 0x38b5, 0x38b6, 0x38b7, 0x38b8, 
-	0x38b9, 0x38ba, 0x38bb, 0x38bc, 0x38bd, 0x38be, 0x38bf, 0x38c0, 0x38c1, 
-	0x38c2, 0x38c3, 0x38c4, 0x38c5, 0x38c6, 0x38c7, 0x38c8, 0x38c9, 0x38ca, 
-	0x38cb, 0x38cc, 0x38cd, 0x38ce, 0x38cf, 0x38d0, 0x38d1, 0x38d2, 0x38d3, 
-	0x38d4, 0x38d5, 0x38d6, 0x38d7, 0x38d8, 0x38d9, 0x38da, 0x38db, 0x38dc, 
-	0x38dd, 0x38de, 0x38df, 0x38e0, 0x38e1, 0x38e2, 0x38e3, 0x38e4, 0x38e5, 
-	0x38e6, 0x38e7, 0x38e8, 0x38e9, 0x38ea, 0x38eb, 0x38ec, 0x38ed, 0x38ee, 
-	0x38ef, 0x38f0, 0x38f1, 0x38f2, 0x38f3, 0x38f4, 0x38f5, 0x38f6, 0x38f7, 
-	0x38f8, 0x38f9, 0x38fa, 0x38fb, 0x38fc, 0x38fd, 0x38fe, 0x38ff, 0x3900, 
-	0x3901, 0x3902, 0x3903, 0x3904, 0x3905, 0x3906, 0x3907, 0x3908, 0x3909, 
-	0x390a, 0x390b, 0x390c, 0x390d, 0x390e, 0x390f, 0x3910, 0x3911, 0x3912, 
-	0x3913, 0x3914, 0x3915, 0x3916, 0x3917, 0x3918, 0x3919, 0x391a, 0x391b, 
-	0x391c, 0x391d, 0x391e, 0x391f, 0x3920, 0x3921, 0x3922, 0x3923, 0x3924, 
-	0x3925, 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, 0x392b, 0x392c, 0x392d, 
-	0x392e, 0x392f, 0x3930, 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 
-	0x3937, 0x3938, 0x3939, 0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, 
-	0x3940, 0x3941, 0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, 
-	0x3949, 0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951, 
-	0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, 0x395a, 
-	0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, 0x3963, 
-	0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, 0x396b, 0x396c, 
-	0x396d, 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, 0x3973, 0x3974, 0x3975, 
-	0x3976, 0x3977, 0x3978, 0x3979, 0x397a, 0x397b, 0x397c, 0x397d, 0x397e, 
-	0x397f, 0x3980, 0x3981, 0x3982, 0x3983, 0x3984, 0x3985, 0x3986, 0x3987, 
-	0x3988, 0x3989, 0x398a, 0x398b, 0x398c, 0x398d, 0x398e, 0x398f, 0x3990, 
-	0x3991, 0x3992, 0x3993, 0x3994, 0x3995, 0x3996, 0x3997, 0x3998, 0x3999, 
-	0x399a, 0x399b, 0x399c, 0x399d, 0x399e, 0x399f, 0x39a0, 0x39a1, 0x39a2, 
-	0x39a3, 0x39a4, 0x39a5, 0x39a6, 0x39a7, 0x39a8, 0x39a9, 0x39aa, 0x39ab, 
-	0x39ac, 0x39ad, 0x39ae, 0x39af, 0x39b0, 0x39b1, 0x39b2, 0x39b3, 0x39b4, 
-	0x39b5, 0x39b6, 0x39b7, 0x39b8, 0x39b9, 0x39ba, 0x39bb, 0x39bc, 0x39bd, 
-	0x39be, 0x39bf, 0x39c0, 0x39c1, 0x39c2, 0x39c3, 0x39c4, 0x39c5, 0x39c6, 
-	0x39c7, 0x39c8, 0x39c9, 0x39ca, 0x39cb, 0x39cc, 0x39cd, 0x39ce, 0x39cf, 
-	0x39d0, 0x39d1, 0x39d2, 0x39d3, 0x39d4, 0x39d5, 0x39d6, 0x39d7, 0x39d8, 
-	0x39d9, 0x39da, 0x39db, 0x39dc, 0x39dd, 0x39de, 0x39df, 0x39e0, 0x39e1, 
-	0x39e2, 0x39e3, 0x39e4, 0x39e5, 0x39e6, 0x39e7, 0x39e8, 0x39e9, 0x39ea, 
-	0x39eb, 0x39ec, 0x39ed, 0x39ee, 0x39ef, 0x39f0, 0x39f1, 0x39f2, 0x39f3, 
-	0x39f4, 0x39f5, 0x39f6, 0x39f7, 0x39f8, 0x39f9, 0x39fa, 0x39fb, 0x39fc, 
-	0x39fd, 0x39fe, 0x39ff, 0x3a00, 0x3a01, 0x3a02, 0x3a03, 0x3a04, 0x3a05, 
-	0x3a06, 0x3a07, 0x3a08, 0x3a09, 0x3a0a, 0x3a0b, 0x3a0c, 0x3a0d, 0x3a0e, 
-	0x3a0f, 0x3a10, 0x3a11, 0x3a12, 0x3a13, 0x3a14, 0x3a15, 0x3a16, 0x3a17, 
-	0x3a18, 0x3a19, 0x3a1a, 0x3a1b, 0x3a1c, 0x3a1d, 0x3a1e, 0x3a1f, 0x3a20, 
-	0x3a21, 0x3a22, 0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 
-	0x3a2a, 0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a32, 
-	0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a39, 0x3a3a, 0x3a3b, 
-	0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44, 
-	0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, 0x3a4d, 
-	0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, 0x3a55, 0x3a56, 
-	0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, 
-	0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68, 
-	0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 
-	0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a, 
-	0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3a7f, 0x3a80, 0x3a81, 0x3a82, 0x3a83, 
-	0x3a84, 0x3a85, 0x3a86, 0x3a87, 0x3a88, 0x3a89, 0x3a8a, 0x3a8b, 0x3a8c, 
-	0x3a8d, 0x3a8e, 0x3a8f, 0x3a90, 0x3a91, 0x3a92, 0x3a93, 0x3a94, 0x3a95, 
-	0x3a96, 0x3a97, 0x3a98, 0x3a99, 0x3a9a, 0x3a9b, 0x3a9c, 0x3a9d, 0x3a9e, 
-	0x3a9f, 0x3aa0, 0x3aa1, 0x3aa2, 0x3aa3, 0x3aa4, 0x3aa5, 0x3aa6, 0x3aa7, 
-	0x3aa8, 0x3aa9, 0x3aaa, 0x3aab, 0x3aac, 0x3aad, 0x3aae, 0x3aaf, 0x3ab0, 
-	0x3ab1, 0x3ab2, 0x3ab3, 0x3ab4, 0x3ab5, 0x3ab6, 0x3ab7, 0x3ab8, 0x3ab9, 
-	0x3aba, 0x3abb, 0x3abc, 0x3abd, 0x3abe, 0x3abf, 0x3ac0, 0x3ac1, 0x3ac2, 
-	0x3ac3, 0x3ac4, 0x3ac5, 0x3ac6, 0x3ac7, 0x3ac8, 0x3ac9, 0x3aca, 0x3acb, 
-	0x3acc, 0x3acd, 0x3ace, 0x3acf, 0x3ad0, 0x3ad1, 0x3ad2, 0x3ad3, 0x3ad4, 
-	0x3ad5, 0x3ad6, 0x3ad7, 0x3ad8, 0x3ad9, 0x3ada, 0x3adb, 0x3adc, 0x3add, 
-	0x3ade, 0x3adf, 0x3ae0, 0x3ae1, 0x3ae2, 0x3ae3, 0x3ae4, 0x3ae5, 0x3ae6, 
-	0x3ae7, 0x3ae8, 0x3ae9, 0x3aea, 0x3aeb, 0x3aec, 0x3aed, 0x3aee, 0x3aef, 
-	0x3af0, 0x3af1, 0x3af2, 0x3af3, 0x3af4, 0x3af5, 0x3af6, 0x3af7, 0x3af8, 
-	0x3af9, 0x3afa, 0x3afb, 0x3afc, 0x3afd, 0x3afe, 0x3aff, 0x3b00, 0x3b01, 
-	0x3b02, 0x3b03, 0x3b04, 0x3b05, 0x3b06, 0x3b07, 0x3b08, 0x3b09, 0x3b0a, 
-	0x3b0b, 0x3b0c, 0x3b0d, 0x3b0e, 0x3b0f, 0x3b10, 0x3b11, 0x3b12, 0x3b13, 
-	0x3b14, 0x3b15, 0x3b16, 0x3b17, 0x3b18, 0x3b19, 0x3b1a, 0x3b1b, 0x3b1c, 
-	0x3b1d, 0x3b1e, 0x3b1f, 0x3b20, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25, 
-	0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e, 
-	0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 
-	0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3c, 0x3b3d, 0x3b3e, 0x3b3f, 0x3b40, 
-	0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49, 
-	0x3b4a, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52, 
-	0x3b53, 0x3b54, 0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, 
-	0x3b5c, 0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64, 
-	0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d, 
-	0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x3b73, 0x3b74, 0x3b75, 0x3b76, 
-	0x3b77, 0x3b78, 0x3b79, 0x3b7a, 0x3b7b, 0x3b7c, 0x3b7d, 0x3b7e, 0x3b7f, 
-	0x3b80, 0x3b81, 0x3b82, 0x3b83, 0x3b84, 0x3b85, 0x3b86, 0x3b87, 0x3b88, 
-	0x3b89, 0x3b8a, 0x3b8b, 0x3b8c, 0x3b8d, 0x3b8e, 0x3b8f, 0x3b90, 0x3b91, 
-	0x3b92, 0x3b93, 0x3b94, 0x3b95, 0x3b96, 0x3b97, 0x3b98, 0x3b99, 0x3b9a, 
-	0x3b9b, 0x3b9c, 0x3b9d, 0x3b9e, 0x3b9f, 0x3ba0, 0x3ba1, 0x3ba2, 0x3ba3, 
-	0x3ba4, 0x3ba5, 0x3ba6, 0x3ba7, 0x3ba8, 0x3ba9, 0x3baa, 0x3bab, 0x3bac, 
-	0x3bad, 0x3bae, 0x3baf, 0x3bb0, 0x3bb1, 0x3bb2, 0x3bb3, 0x3bb4, 0x3bb5, 
-	0x3bb6, 0x3bb7, 0x3bb8, 0x3bb9, 0x3bba, 0x3bbb, 0x3bbc, 0x3bbd, 0x3bbe, 
-	0x3bbf, 0x3bc0, 0x3bc1, 0x3bc2, 0x3bc3, 0x3bc4, 0x3bc5, 0x3bc6, 0x3bc7, 
-	0x3bc8, 0x3bc9, 0x3bca, 0x3bcb, 0x3bcc, 0x3bcd, 0x3bce, 0x3bcf, 0x3bd0, 
-	0x3bd1, 0x3bd2, 0x3bd3, 0x3bd4, 0x3bd5, 0x3bd6, 0x3bd7, 0x3bd8, 0x3bd9, 
-	0x3bda, 0x3bdb, 0x3bdc, 0x3bdd, 0x3bde, 0x3bdf, 0x3be0, 0x3be1, 0x3be2, 
-	0x3be3, 0x3be4, 0x3be5, 0x3be6, 0x3be7, 0x3be8, 0x3be9, 0x3bea, 0x3beb, 
-	0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0, 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, 
-	0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8, 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, 
-	0x3bfe, 0x3bff, 0x3c00, 0x3c01, 0x3c02, 0x3c03, 0x3c04, 0x3c05, 0x3c06, 
-	0x3c07, 0x3c08, 0x3c09, 0x3c0a, 0x3c0b, 0x3c0c, 0x3c0d, 0x3c0e, 0x3c0f, 
-	0x3c10, 0x3c11, 0x3c12, 0x3c13, 0x3c14, 0x3c15, 0x3c16, 0x3c17, 0x3c18, 
-	0x3c19, 0x3c1a, 0x3c1b, 0x3c1c, 0x3c1d, 0x3c1e, 0x3c1f, 0x3c20, 0x3c21, 
-	0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26, 0x3c27, 0x3c28, 0x3c29, 0x3c2a, 
-	0x3c2b, 0x3c2c, 0x3c2d, 0x3c2e, 0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33, 
-	0x3c34, 0x3c35, 0x3c36, 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, 
-	0x3c3d, 0x3c3e, 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, 
-	0x3c46, 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e, 
-	0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, 0x3c54, 0x3c55, 0x3c56, 0x3c57, 
-	0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, 0x3c60, 
-	0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66, 0x3c67, 0x3c68, 0x3c69, 
-	0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, 0x3c70, 0x3c71, 0x3c72, 
-	0x3c73, 0x3c74, 0x3c75, 0x3c76, 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, 
-	0x3c7c, 0x3c7d, 0x3c7e, 0x3c7f, 0x3c80, 0x3c81, 0x3c82, 0x3c83, 0x3c84, 
-	0x3c85, 0x3c86, 0x3c87, 0x3c88, 0x3c89, 0x3c8a, 0x3c8b, 0x3c8c, 0x3c8d, 
-	0x3c8e, 0x3c8f, 0x3c90, 0x3c91, 0x3c92, 0x3c93, 0x3c94, 0x3c95, 0x3c96, 
-	0x3c97, 0x3c98, 0x3c99, 0x3c9a, 0x3c9b, 0x3c9c, 0x3c9d, 0x3c9e, 0x3c9f, 
-	0x3ca0, 0x3ca1, 0x3ca2, 0x3ca3, 0x3ca4, 0x3ca5, 0x3ca6, 0x3ca7, 0x3ca8, 
-	0x3ca9, 0x3caa, 0x3cab, 0x3cac, 0x3cad, 0x3cae, 0x3caf, 0x3cb0, 0x3cb1, 
-	0x3cb2, 0x3cb3, 0x3cb4, 0x3cb5, 0x3cb6, 0x3cb7, 0x3cb8, 0x3cb9, 0x3cba, 
-	0x3cbb, 0x3cbc, 0x3cbd, 0x3cbe, 0x3cbf, 0x3cc0, 0x3cc1, 0x3cc2, 0x3cc3, 
-	0x3cc4, 0x3cc5, 0x3cc6, 0x3cc7, 0x3cc8, 0x3cc9, 0x3cca, 0x3ccb, 0x3ccc, 
-	0x3ccd, 0x3cce, 0x3ccf, 0x3cd0, 0x3cd1, 0x3cd2, 0x3cd3, 0x3cd4, 0x3cd5, 
-	0x3cd6, 0x3cd7, 0x3cd8, 0x3cd9, 0x3cda, 0x3cdb, 0x3cdc, 0x3cdd, 0x3cde, 
-	0x3cdf, 0x3ce0, 0x3ce1, 0x3ce2, 0x3ce3, 0x3ce4, 0x3ce5, 0x3ce6, 0x3ce7, 
-	0x3ce8, 0x3ce9, 0x3cea, 0x3ceb, 0x3cec, 0x3ced, 0x3cee, 0x3cef, 0x3cf0, 
-	0x3cf1, 0x3cf2, 0x3cf3, 0x3cf4, 0x3cf5, 0x3cf6, 0x3cf7, 0x3cf8, 0x3cf9, 
-	0x3cfa, 0x3cfb, 0x3cfc, 0x3cfd, 0x3cfe, 0x3cff, 0x3d00, 0x3d01, 0x3d02, 
-	0x3d03, 0x3d04, 0x3d05, 0x3d06, 0x3d07, 0x3d08, 0x3d09, 0x3d0a, 0x3d0b, 
-	0x3d0c, 0x3d0d, 0x3d0e, 0x3d0f, 0x3d10, 0x3d11, 0x3d12, 0x3d13, 0x3d14, 
-	0x3d15, 0x3d16, 0x3d17, 0x3d18, 0x3d19, 0x3d1a, 0x3d1b, 0x3d1c, 0x3d1d, 
-	0x3d1e, 0x3d1f, 0x3d20, 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, 
-	0x3d27, 0x3d28, 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 
-	    -1,     -1, 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, 
-	0x54e5, 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c, 
-	0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36, 0x8cc8, 
-	0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404, 0x606a, 0x6164, 
-	0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3, 0x4f83, 0x520a, 0x58be, 
-	0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7, 0x63c0, 0x6746, 0x67ec, 0x687f, 
-	0x6f97, 0x764e, 0x770b, 0x78f5, 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 
-	0x8271, 0x8aeb, 0x9593, 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 
-	0x845b, 0x8910, 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, 
-	0x61be, 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3, 
-	0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, 0x5323, 0x5cac, 0x7532, 
-	0x80db, 0x9240, 0x9598, 0x525b, 0x5808, 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 
-	0x5f3a, 0x5f4a, 0x6177, 0x6c5f, 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 
-	0x7f8c, 0x8154, 0x8221, 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 
-	0x4ecb, 0x4ef7, 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, 
-	0x69ea, 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900, 
-	0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9, 0x91b5, 
-	0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da, 0x64e7, 0x6e20, 
-	0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d, 0x9245, 0x92f8, 0x4e7e, 
-	0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106, 0x6957, 0x8171, 0x8654, 0x8e47, 
-	0x9375, 0x9a2b, 0x4e5e, 0x5091, 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 
-	0x6aa2, 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9, 
-	0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694, 0x5805, 
-	0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b, 0x8b74, 0x9063, 
-	0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a, 0x8a23, 0x517c, 0x614a, 
-	0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac, 0x4fd3, 0x501e, 0x50be, 0x5106, 
-	0x52c1, 0x52cd, 0x537f, 0x5770, 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 
-	0x64ce, 0x656c, 0x666f, 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 
-	0x749f, 0x74a5, 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, 
-	0x7d93, 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1, 
-	0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951, 0x5b63, 
-	0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, 0x68e8, 0x6eaa, 0x754c, 0x7678, 
-	0x78ce, 0x7a3d, 0x7cfb, 0x7e6b, 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 
-	0x9dc4, 0x53e4, 0x53e9, 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 
-	0x5eab, 0x62f7, 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, 
-	0x75fc, 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6, 
-	0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c, 0x932e, 
-	0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2, 0x688f, 0x7a40, 
-	0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606, 0x68b1, 0x68cd, 0x6efe, 
-	0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904, 0x9aa8, 0x4f9b, 0x516c, 0x5171, 
-	0x529f, 0x5b54, 0x5de5, 0x6050, 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 
-	0x7a7a, 0x86a3, 0x8ca2, 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc, 
-	0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846, 0x5ed3, 
-	0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec, 0x6163, 0x68fa, 
-	0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50, 0x83c5, 0x89c0, 0x8cab, 
-	0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec, 0x9002, 0x4f8a, 0x5149, 0x5321, 
-	0x58d9, 0x5ee3, 0x66e0, 0x6d38, 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 
-	0x945b, 0x5366, 0x639b, 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 
-	0x6127, 0x62d0, 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, 
-	0x50d1, 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821, 
-	0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e, 0x86df, 
-	0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18, 0x4e45, 0x4e5d, 
-	0x4ec7, 0x4ff1, 0x5177, 0x52fe, 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 
-	0x5775, 0x57a2, 0x5bc7, 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 
-	0x67e9, 0x69cb, 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, 
-	0x7396, 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205, 
-	0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1, 0x9264, 
-	0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b, 0x5c40, 0x83ca, 
-	0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4, 0x88d9, 0x8ecd, 0x90e1, 
-	0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae, 0x5f13, 0x7a79, 0x7aae, 0x828e, 
-	0x8eac, 0x5026, 0x5238, 0x52f8, 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 
-	0x6dc3, 0x7737, 0x53a5, 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 
-	0x6f70, 0x8a6d, 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, 0x9b3c, 
-	0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea, 0x7845, 0x7aba, 
-	0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035, 0x95a8, 0x52fb, 0x5747, 
-	0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908, 0x6a58, 0x514b, 0x524b, 0x5287, 
-	0x621f, 0x68d8, 0x6975, 0x9699, 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 
-	0x6839, 0x69ff, 0x747e, 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 
-	0x9949, 0xf909, 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, 
-	0x79bd, 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca, 
-	0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc, 0x80af, 
-	0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b, 0x57fa, 0x57fc, 
-	0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e, 0x5df1, 0x5e7e, 0x5fcc, 
-	0x6280, 0x65d7, 0x65e3, 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 
-	0x6b3a, 0x6c23, 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, 
-	0x74a3, 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a, 
-	0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18, 0x8b4f, 
-	0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e, 0x9a0f, 0x9a65, 
-	0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854, 0x91d1, 0x55ab, 0x513a, 
-	0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d, 0x62cf, 0x62ff, 0xf90e, 0xf90f, 
-	0xf910, 0xf911, 0xf912, 0xf913, 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 
-	0xf918, 0x8afe, 0xf919, 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 
-	0xf91e, 0xf91f, 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, 
-	0x6960, 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, 0x7d0d, 0xf926, 
-	0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929, 0xf92a, 0xf92b, 0xf92c, 
-	0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0, 0x8010, 0xf92e, 0x5973, 0x5e74, 
-	0x649a, 0x79ca, 0x5ff5, 0x606c, 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 
-	0xf92f, 0x5974, 0x5f29, 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 
-	0xf934, 0xf935, 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, 
-	0xf93c, 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3, 
-	0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166, 0xf948, 
-	0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 
-	0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952, 0xf953, 0xf954, 0xf955, 
-	0xf956, 0xf957, 0x80fd, 0xf958, 0xf959, 0x5c3c, 0x6ce5, 0x533f, 0x6eba, 
-	0x591a, 0x8336, 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, 
-	0x65b7, 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde, 
-	0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8, 0x9054, 
-	0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b, 0x6f6d, 0x6fb9, 
-	0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7, 0x8b5a, 0x931f, 0x6c93, 
-	0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510, 0x5802, 0x5858, 0x5e62, 0x6207, 
-	0x649e, 0x68e0, 0x7576, 0x7cd6, 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 
-	0x5927, 0x5c0d, 0x5cb1, 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 
-	0x888b, 0x8cb8, 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, 
-	0x5230, 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6, 
-	0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, 0x68f9, 0x6ac2, 0x6dd8, 
-	0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc, 0x7779, 0x79b1, 0x7a3b, 0x8404, 
-	0x89a9, 0x8ced, 0x8df3, 0x8e48, 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 
-	0x9676, 0x97dc, 0x6bd2, 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 
-	0x7be4, 0x7e9b, 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, 
-	0x711e, 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd, 
-	0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c, 0x75bc, 
-	0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597, 0x675c, 0x6793, 
-	0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017, 0x982d, 0x5c6f, 0x81c0, 
-	0x829a, 0x9041, 0x906f, 0x920d, 0x5f97, 0x5d9d, 0x6a59, 0x71c8, 0x767b, 
-	0x7b49, 0x85e4, 0x8b04, 0x9127, 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 
-	0x7f85, 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de, 
-	0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375, 0x6b04, 
-	0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3, 0x5d50, 0x64e5, 
-	0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd, 0x8964, 0x89bd, 0x62c9, 
-	0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a, 0x72fc, 0x7405, 0x746f, 0x8782, 
-	0x90de, 0x4f86, 0x5d0d, 0x5fa0, 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 
-	0x5006, 0x5169, 0x51c9, 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 
-	0x8ad2, 0x8f1b, 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, 
-	0x623e, 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62, 
-	0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b, 0x8f62, 
-	0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, 0x7149, 0x7489, 0x7df4, 0x806f, 
-	0x84ee, 0x8f26, 0x9023, 0x934a, 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 
-	0x88c2, 0x5ec9, 0x6582, 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 
-	0x56f9, 0xf95f, 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, 
-	0x8046, 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7, 
-	0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3, 0x6f5e, 
-	0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def, 0x8f05, 0x9732, 
-	0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0, 0x83c9, 0x9304, 0x9e7f, 
-	0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727, 0x7027, 0x74cf, 0x7c60, 0x807e, 
-	0x5121, 0x7028, 0x7262, 0x78ca, 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 
-	0x50da, 0x5bee, 0x5ed6, 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc, 
-	0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda, 0x6f0f, 
-	0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b, 0x5289, 0x65d2, 
-	0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409, 0x7460, 0x7559, 0x7624, 
-	0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e, 0x9678, 0x4f96, 0x502b, 0x5d19, 
-	0x6dea, 0x7db8, 0x8f2a, 0x5f8b, 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 
-	0x808b, 0x51dc, 0x51cc, 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 
-	0x5229, 0x5398, 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, 
-	0x7281, 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8, 
-	0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d, 0x6f7e, 
-	0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f, 0x6797, 0x6dcb, 
-	0x7433, 0x81e8, 0x9716, 0x782c, 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 
-	0x75f2, 0x78bc, 0x78e8, 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 
-	0x819c, 0x83ab, 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, 
-	0x633d, 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513, 
-	0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab, 0x8309, 
-	0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b, 0x7db2, 0x7f54, 
-	0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb, 0x59b9, 0x5a92, 0x5bd0, 
-	0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164, 0x7f75, 0x8cb7, 0x8ce3, 0x9081, 
-	0x9b45, 0x8108, 0x8c8a, 0x964c, 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 
-	0x76f2, 0x76df, 0x840c, 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 
-	0x6c94, 0x7704, 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, 0x8511, 
-	0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f, 0x76bf, 0x7791, 
-	0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4, 0x8882, 0x4fae, 0x5192, 
-	0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478, 0x6479, 0x66ae, 0x67d0, 0x6a21, 
-	0x6bcd, 0x6bdb, 0x725f, 0x7261, 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 
-	0x8305, 0x8b00, 0x8b28, 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 
-	0x7a46, 0x9da9, 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, 
-	0x5999, 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7, 
-	0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab, 0x65e0, 
-	0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46, 0x821e, 0x8302, 
-	0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8, 0x9ed8, 0x5011, 0x520e, 
-	0x543b, 0x554f, 0x6587, 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 
-	0x96ef, 0x52ff, 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, 
-	0x5fae, 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e, 
-	0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d, 0x61ab, 
-	0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9, 0x7de1, 0x9594, 
-	0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd, 0x640f, 0x64b2, 0x6734, 
-	0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94, 0x7c95, 0x7e1b, 0x818a, 0x8236, 
-	0x8584, 0x8feb, 0x96f9, 0x99c1, 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 
-	0x642c, 0x6500, 0x6591, 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 
-	0x76e4, 0x76fc, 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, 
-	0x9812, 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, 0x767c, 0x8dcb, 
-	0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d, 0x574a, 0x59a8, 0x5c28, 
-	0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9, 0x65c1, 0x6609, 0x678b, 0x699c, 
-	0x6ec2, 0x78c5, 0x7d21, 0x80aa, 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 
-	0x8a2a, 0x8b17, 0x90a6, 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 
-	0x5f98, 0x62dc, 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, 
-	0x88f4, 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70, 
-	0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a, 0x7169, 
-	0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc, 0x4f10, 0x7b4f, 
-	0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e, 0x6c4e, 0x6cdb, 0x72af, 
-	0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb, 0x5288, 0x58c1, 0x64d8, 0x6a97, 
-	0x74a7, 0x7656, 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, 
-	0x8b8a, 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19, 
-	0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5, 0x70b3, 
-	0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08, 0x4fdd, 0x5821, 
-	0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a, 0x6f7d, 0x73e4, 0x752b, 
-	0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14, 0x4f0f, 0x50d5, 0x5310, 0x535c, 
-	0x5b93, 0x5fa9, 0x670d, 0x798f, 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 
-	0x8f39, 0x8f3b, 0x99a5, 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 
-	0x5cef, 0x5cf0, 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, 
-	0x8702, 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256, 
-	0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, 0x5b5a, 0x5b75, 0x5bcc, 
-	0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7, 0x6d6e, 0x6ea5, 0x7236, 0x7b26, 
-	0x7c3f, 0x7f36, 0x8150, 0x8151, 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 
-	0x8ca0, 0x8ce6, 0x8cfb, 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 
-	0x99d9, 0x9ce7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, 
-	0x5fff, 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde, 
-	0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f, 0x62c2, 
-	0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15, 0x5099, 0x5315, 
-	0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2, 0x618a, 0x6249, 0x6279, 
-	0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6, 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 
-	0x7435, 0x75fa, 0x7812, 0x7891, 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 
-	0x80a5, 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb, 
-	0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c, 0x6ab3, 
-	0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7, 0x8cd3, 0x983b, 
-	0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b, 0x4e9b, 0x4ed5, 0x4f3a, 
-	0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2, 0x53f8, 0x5506, 0x55e3, 0x56db, 
-	0x58eb, 0x5962, 0x5a11, 0x5beb, 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 
-	0x601d, 0x6368, 0x659c, 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 
-	0x6cd7, 0x6e23, 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, 
-	0x7be9, 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df, 
-	0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc, 0x99df, 
-	0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, 0x5098, 0x522a, 0x5c71, 0x6563, 
-	0x6c55, 0x73ca, 0x7523, 0x759d, 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 
-	0x6492, 0x6bba, 0x715e, 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 
-	0x829f, 0x8518, 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, 
-	0x50cf, 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38, 
-	0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d, 0x7240, 
-	0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4, 0x8a73, 0x8c61, 
-	0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7, 0xf96c, 0x7a61, 0x7d22, 
-	0x8272, 0x7272, 0x751f, 0x7525, 0xf96d, 0x7b19, 0x5885, 0x58fb, 0x5dbc, 
-	0x5e8f, 0x5eb6, 0x5f90, 0x6055, 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 
-	0x66f8, 0x6816, 0x68f2, 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72, 
-	0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd, 0x9f20, 
-	0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790, 0x6c50, 0x6dc5, 
-	0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b, 0x4ed9, 0x50ca, 0x5148, 
-	0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e, 0x65cb, 0x6e32, 0x717d, 0x7401, 
-	0x7444, 0x7487, 0x74bf, 0x766c, 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 
-	0x81b3, 0x8239, 0x861a, 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 
-	0x994d, 0x9bae, 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, 
-	0x859b, 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2, 
-	0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee, 0xf96e, 
-	0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f, 0x665f, 0x7329, 
-	0x73f9, 0x76db, 0x7701, 0x7b6c, 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 
-	0x4e16, 0x52e2, 0x6b72, 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 
-	0x53ec, 0x562f, 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, 
-	0x6414, 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2, 
-	0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20, 0x7d39, 
-	0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5, 0x92b7, 0x97f6, 
-	0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f, 0x7e8c, 0x8b16, 0x8d16, 
-	0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0, 0x905c, 0x98e1, 0x7387, 0x5b8b, 
-	0x609a, 0x677e, 0x6dde, 0x8a1f, 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 
-	0x7051, 0x788e, 0x9396, 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 
-	0x5782, 0x58fd, 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, 0x620d, 
-	0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a, 0x6c34, 0x6d19, 
-	0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2, 0x7626, 0x7761, 0x79c0, 
-	0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac, 0x7e61, 0x7f9e, 0x8129, 0x8331, 
-	0x8490, 0x84da, 0x85ea, 0x8896, 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 
-	0x916c, 0x9296, 0x92b9, 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 
-	0x9996, 0x9ad3, 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, 
-	0x6f5a, 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa, 
-	0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3, 0x73e3, 
-	0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340, 0x84f4, 0x8563, 
-	0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4, 0x620c, 0x8853, 0x8ff0, 
-	0x9265, 0x5d07, 0x5d27, 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 
-	0x7fd2, 0x8936, 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, 
-	0x6607, 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4, 
-	0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f, 0x6642, 
-	0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494, 0x84cd, 0x8996, 
-	0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4, 0x5bd4, 0x5f0f, 0x606f, 
-	0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184, 0x7bd2, 0x8755, 0x8b58, 0x8efe, 
-	0x98df, 0x98fe, 0x4f38, 0x4f81, 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 
-	0x65b0, 0x6668, 0x71fc, 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 
-	0x85aa, 0x85ce, 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, 
-	0x5ba4, 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, 0xf972, 0x6df1, 
-	0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341, 0xf973, 0x96d9, 0x6c0f, 
-	0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25, 0x5ce8, 0x6211, 0x7259, 0x82bd, 
-	0x83aa, 0x86fe, 0x8859, 0x8a1d, 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 
-	0x580a, 0x5cb3, 0x5dbd, 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 
-	0x9102, 0x9354, 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, 
-	0x6848, 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb, 
-	0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4, 0x95c7, 
-	0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f, 0x663b, 0x6b83, 
-	0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16, 0x611b, 0x66d6, 0x6daf, 
-	0x788d, 0x827e, 0x9698, 0x9744, 0x5384, 0x627c, 0x6396, 0x6db2, 0x7e0a, 
-	0x814b, 0x984d, 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, 
-	0x591c, 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31, 
-	0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d, 0xf977, 
-	0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da, 0x6518, 0x656d, 
-	0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001, 0x716c, 0x75d2, 0x760d, 
-	0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c, 0x8944, 0xf97d, 0x8b93, 0x91c0, 
-	0x967d, 0xf97e, 0x990a, 0x5704, 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 
-	0x8a9e, 0x99ad, 0x9b5a, 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 
-	0x5043, 0x5830, 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, 
-	0x513c, 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88, 
-	0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, 0xf983, 0x6b5f, 0x6c5d, 
-	0xf984, 0x74b5, 0x7916, 0xf985, 0x8207, 0x8245, 0x8339, 0x8f3f, 0x8f5d, 
-	0xf986, 0x9918, 0xf987, 0xf988, 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 
-	0x6613, 0xf98b, 0xf98c, 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 
-	0x56a5, 0x5827, 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, 
-	0x6350, 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5, 
-	0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5, 0xf994, 
-	0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f, 0xf997, 0x884d, 
-	0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b, 0x9cf6, 0xf99c, 0xf99d, 
-	0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1, 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 
-	0xf9a2, 0xf9a3, 0xf9a4, 0x67d3, 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 
-	0x82d2, 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449, 
-	0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac, 0x6620, 
-	0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41, 0x6fda, 0x701b, 
-	0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b, 0xf9ae, 0x74d4, 0x76c8, 
-	0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1, 0x8a60, 0x8fce, 0xf9b1, 0x9348, 
-	0xf9b2, 0x9719, 0xf9b3, 0xf9b4, 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 
-	0x66f3, 0x6c6d, 0x6fca, 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 
-	0xf9b6, 0x88d4, 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, 
-	0x9810, 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da, 
-	0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca, 0x6556, 
-	0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, 0x70cf, 0x71ac, 0x7352, 0x7b7d, 
-	0x8708, 0x8aa4, 0x9c32, 0x9f07, 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 
-	0x6eab, 0x7465, 0x761f, 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 
-	0x74ee, 0x7515, 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, 
-	0x7aa9, 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b, 
-	0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9, 0x7feb, 
-	0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0, 0x5f80, 0x65fa, 
-	0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a, 0x77ee, 0x5916, 0x5d6c, 
-	0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb, 0x50e5, 0x51f9, 0x582f, 0x592d, 
-	0x5996, 0x59da, 0x5be5, 0xf9bc, 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 
-	0x64fe, 0xf9be, 0x66dc, 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1, 
-	0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef, 0x8981, 
-	0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32, 0x6d74, 0x7e1f, 
-	0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7, 0x57c7, 0x5889, 0x5bb9, 
-	0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67, 0x6eb6, 0x7194, 0x7462, 0x7528, 
-	0x752c, 0x8073, 0x8338, 0x84c9, 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 
-	0x4f51, 0x5076, 0x512a, 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 
-	0x611a, 0x6182, 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, 
-	0x79b9, 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5, 
-	0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631, 0x682f, 
-	0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52, 0x6b9e, 0x6f90, 
-	0x7189, 0x8018, 0x82b8, 0x8553, 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 
-	0x9b31, 0x4e90, 0x718a, 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 
-	0x57a3, 0x5a9b, 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, 
-	0x6e72, 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060, 
-	0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d, 0x5049, 
-	0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170, 0x6690, 0x6e2d, 
-	0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466, 0x853f, 0x875f, 0x885b, 
-	0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f, 0x4e73, 0x4f91, 0x5112, 0x516a, 
-	0xf9c7, 0x552f, 0x55a9, 0x5b7a, 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 
-	0x60df, 0x6108, 0x6109, 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 
-	0xf9c9, 0x6961, 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, 0x6fe1, 
-	0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652, 0xf9ce, 0xf9cf, 
-	0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb, 0x8aed, 0x8e30, 0x8e42, 
-	0x904a, 0x903e, 0x907a, 0x9149, 0x91c9, 0x936e, 0xf9d0, 0xf9d1, 0x5809, 
-	0xf9d2, 0x6bd3, 0x8089, 0x80b2, 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 
-	0xf9d5, 0xf9d6, 0x6f64, 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 
-	0xf9d8, 0xf9d9, 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, 
-	0xf9dc, 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59, 
-	0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3, 0x9091, 
-	0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100, 0x5b9c, 0x610f, 
-	0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3, 0x7fa9, 0x8264, 0x858f, 
-	0x87fb, 0x8863, 0x8abc, 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 
-	0xf9de, 0x5937, 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, 
-	0xf9e1, 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5, 
-	0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7, 0xf9e8, 
-	0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c, 0xf9eb, 0xf9ec, 
-	0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a, 0x4eba, 0x4ec1, 0x5203, 
-	0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb, 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 
-	0xf9ee, 0xf9ef, 0x7d6a, 0x8335, 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 
-	0x9777, 0xf9f2, 0xf9f3, 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 
-	0x9038, 0x93b0, 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, 
-	0xf9f5, 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, 0xf9f7, 0xf9f8, 
-	0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4, 0x523a, 0x54a8, 0x59c9, 
-	0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063, 0x6148, 0x6ecb, 0x7099, 0x716e, 
-	0x7386, 0x74f7, 0x75b5, 0x78c1, 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 
-	0x85c9, 0x8aee, 0x8cc7, 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 
-	0x707c, 0x70b8, 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, 
-	0x68e7, 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a, 
-	0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef, 0x596c, 
-	0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756, 0x6a1f, 0x6aa3, 
-	0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b, 0x7ae0, 0x7ca7, 0x8178, 
-	0x81df, 0x81e7, 0x838a, 0x846c, 0x8523, 0x8594, 0x85cf, 0x88dd, 0x8d13, 
-	0x91ac, 0x9577, 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, 
-	0x683d, 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09, 
-	0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e, 0x5132, 
-	0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17, 0x6cae, 0x6e1a, 
-	0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7, 0x83f9, 0x8457, 0x85f7, 
-	0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8, 0x96ce, 0x9f5f, 0x52e3, 0x540a, 
-	0x5ae1, 0x5bc2, 0x6458, 0x6575, 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 
-	0x7b1b, 0x7c4d, 0x7e3e, 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 
-	0x8e5f, 0x8fea, 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, 
-	0x5178, 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb, 
-	0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, 0x714e, 0x7420, 0x7530, 
-	0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b, 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 
-	0x8f3e, 0x8f49, 0x923f, 0x9293, 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 
-	0x991e, 0x5207, 0x622a, 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 
-	0x5360, 0x5cbe, 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, 
-	0x63a5, 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448, 
-	0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a, 0x653f, 
-	0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89, 0x6b63, 0x6c40, 
-	0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1, 0x738e, 0x73fd, 0x753a, 
-	0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d, 0x7cbe, 0x7d8e, 0x8247, 0x8a02, 
-	0x8aea, 0x8c9e, 0x912d, 0x914a, 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 
-	0x9756, 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d, 
-	0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd, 0x85ba, 
-	0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d, 0x984c, 0x9f4a, 
-	0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14, 0x5f6b, 0x63aa, 0x64cd, 
-	0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d, 0x689d, 0x68d7, 0x69fd, 0x6f15, 
-	0x6f6e, 0x7167, 0x71e5, 0x722a, 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 
-	0x7a20, 0x7a95, 0x7c97, 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 
-	0x8a54, 0x8abf, 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, 
-	0x9ce5, 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9, 
-	0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9, 0x742e, 
-	0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, 0x8e2a, 0x8e35, 0x937e, 0x9418, 
-	0x4f50, 0x5750, 0x5de6, 0x5ea7, 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 
-	0x505a, 0x59dd, 0x80c4, 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 
-	0x5eda, 0x665d, 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, 
-	0x70b7, 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db, 
-	0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152, 0x9444, 
-	0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8, 0x5bef, 0x5cfb, 
-	0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c, 0x756f, 0x7ae3, 0x8822, 
-	0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301, 0x4e2d, 0x4ef2, 0x8846, 0x91cd, 
-	0x537d, 0x6adb, 0x696b, 0x6c41, 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 
-	0x70dd, 0x7511, 0x75c7, 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea, 
-	0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f, 0x65e8, 
-	0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c, 0x77e5, 0x7825, 
-	0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3, 0x829d, 0x82b7, 0x8718, 
-	0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072, 0x76f4, 0x7a19, 0x7a37, 0x7e54, 
-	0x8077, 0x5507, 0x55d4, 0x5875, 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 
-	0x699b, 0x6b84, 0x6d25, 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 
-	0x76e1, 0x771e, 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, 
-	0x8a3a, 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707, 
-	0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be, 0x79e9, 
-	0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f, 0x6715, 0xf9fd, 
-	0x57f7, 0x6f57, 0x7ddd, 0x8f2f, 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 
-	0x4e14, 0x4f98, 0x501f, 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 
-	0x78cb, 0x7b9a, 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, 
-	0x7a84, 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da, 
-	0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d, 0x9910, 
-	0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed, 0x53c3, 0x5879, 
-	0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92, 0x8b96, 0x5009, 0x5021, 
-	0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70, 0x6134, 0x655e, 0x660c, 0x6636, 
-	0x66a2, 0x69cd, 0x6ec4, 0x6f32, 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 
-	0x83d6, 0x84bc, 0x50b5, 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 
-	0x7db5, 0x83dc, 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, 0x8cac, 
-	0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254, 0x5c3a, 0x617d, 
-	0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620, 0x810a, 0x8e60, 0x965f, 
-	0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929, 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 
-	0x7394, 0x7a7f, 0x821b, 0x85a6, 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 
-	0x9621, 0x97c6, 0x51f8, 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 
-	0x8f1f, 0x8f4d, 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, 
-	0x7c3d, 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252, 
-	0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8, 0x807d, 
-	0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff, 0x6d95, 0x6eef, 
-	0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d, 0x527f, 0x54e8, 0x6194, 
-	0x6284, 0x62db, 0x68a2, 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 
-	0x7901, 0x790e, 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, 
-	0x8c82, 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7, 
-	0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a, 0x5bf5, 
-	0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283, 0x64ae, 0x50ac, 
-	0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e, 0x6978, 0x6a1e, 0x6e6b, 
-	0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf, 0x8da8, 0x8ffd, 0x9112, 0x914b, 
-	0x919c, 0x9310, 0x9318, 0x939a, 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 
-	0x795d, 0x7afa, 0x7b51, 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 
-	0x9010, 0x6625, 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, 
-	0x6c96, 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, 0x8d05, 0x53d6, 
-	0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0, 0x805a, 0x8106, 0x81ed, 
-	0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074, 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 
-	0x5c64, 0x4f88, 0x5024, 0x55e4, 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 
-	0x6dc4, 0x71be, 0x75d4, 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 
-	0x7f6e, 0x81f4, 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, 
-	0x98ed, 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88, 
-	0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31, 0x5feb, 
-	0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253, 0x62d6, 0x6736, 
-	0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c, 0x5353, 0x5544, 0x577c, 
-	0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b, 0x67dd, 0x6fc1, 0x6fef, 0x7422, 
-	0x7438, 0x8a17, 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, 
-	0x7058, 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d, 
-	0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03, 0x8569, 
-	0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70, 0x6cf0, 0x7b1e, 
-	0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04, 0x64c7, 0x6fa4, 0x6491, 
-	0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e, 0x615f, 0x6876, 0xfa05, 0x75db, 
-	0x7b52, 0x7d71, 0x901a, 0x5806, 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 
-	0x5078, 0x5957, 0x59ac, 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 
-	0x5761, 0x5a46, 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, 
-	0x722c, 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742, 
-	0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, 0x962a, 0x516b, 0x53ed, 
-	0x634c, 0x4f69, 0x5504, 0x6096, 0x6557, 0x6c9b, 0x6d7f, 0x724c, 0x72fd, 
-	0x7a17, 0x8987, 0x8c9d, 0x5f6d, 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 
-	0x504f, 0x6241, 0x7247, 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 
-	0x8cb6, 0x576a, 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, 
-	0x5ee2, 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305, 
-	0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b, 0x62b1, 
-	0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de, 0x812f, 0x82de, 
-	0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea, 0x98fd, 0x9b91, 0x5e45, 
-	0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07, 0x4ff5, 0x527d, 0x5f6a, 0x6153, 
-	0x6753, 0x6a19, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 
-	0x9a43, 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c, 
-	0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c, 0x5fc5, 
-	0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d, 0x4e4f, 0x903c, 
-	0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630, 0x6cb3, 0x7455, 0x8377, 
-	0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15, 0x58d1, 0x5b78, 0x8650, 0x8b14, 
-	0x9db4, 0x5bd2, 0x6068, 0x608d, 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 
-	0x7f55, 0x7ff0, 0x9591, 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 
-	0x542b, 0x54b8, 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, 
-	0x9677, 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c, 
-	0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d, 0x6841, 
-	0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, 0xfa08, 0xfa09, 0x9805, 0x4ea5, 
-	0x5055, 0x54b3, 0x5793, 0x595a, 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 
-	0x7023, 0x87f9, 0x89e3, 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 
-	0x6838, 0x5016, 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, 
-	0x73e6, 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b, 
-	0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57, 0x5955, 
-	0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8, 0x665b, 0x6ceb, 
-	0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d, 0x7d43, 0x7d62, 0x7e23, 
-	0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249, 0x986f, 0x5b51, 0x7a74, 0x8840, 
-	0x9801, 0x5acc, 0x4fe0, 0x5354, 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 
-	0x8105, 0x8107, 0x83a2, 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b, 
-	0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9, 0x7469, 
-	0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8, 0x516e, 0x5f57, 
-	0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af, 0x978b, 0x4e4e, 0x4e92, 
-	0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5, 0x5f27, 0x6236, 0x6248, 0x660a, 
-	0x6667, 0x6beb, 0x6d69, 0x6dcf, 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 
-	0x705d, 0x72d0, 0x7425, 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 
-	0x80e1, 0x82a6, 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, 
-	0x93ac, 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7, 
-	0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18, 0x6c5e, 
-	0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b, 0x5316, 0x548c, 
-	0x5b05, 0x6a3a, 0x706b, 0x7575, 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 
-	0x8b41, 0x8ca8, 0x9774, 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 
-	0x4e38, 0x559a, 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, 
-	0x6853, 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b, 
-	0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d, 0x60f6, 
-	0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f, 0x6ec9, 0x6f62, 
-	0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352, 0x8757, 0x9051, 0x968d, 
-	0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a, 0x6062, 0x6094, 0x61f7, 0x6666, 
-	0x6703, 0x6a9c, 0x6dee, 0x6fae, 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 
-	0x86d4, 0x8aa8, 0x8cc4, 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 
-	0x5686, 0x5b5d, 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, 0x723b, 
-	0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e, 0x543c, 0x5589, 
-	0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd, 0x9005, 0x52db, 0x52f3, 
-	0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb, 0x85b0, 0x8a13, 0x6688, 0x85a8, 
-	0x55a7, 0x6684, 0x714a, 0x8431, 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 
-	0x63ee, 0x6689, 0x7147, 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 
-	0x7566, 0x8667, 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, 
-	0x80f8, 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07, 
-	0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5, 0x8208, 
-	0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09, 0x5e0c, 0x6199, 
-	0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9, 0x71ba, 0x72a7, 0x79a7, 
-	0x7a00, 0x7fb2, 0x8a70, 
+	0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, 0x00ad,
+	0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014,
+	0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f,
+	0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, 0x2260, 0x2264, 0x2265, 0x221e,
+	0x2234, 0x00b0, 0x2032, 0x2033, 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5,
+	0x2642, 0x2640, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252,
+	0x00a7, 0x203b, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6,
+	0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191,
+	0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235,
+	0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a,
+	0x2229, 0x2227, 0x2228, 0xffe2, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4,
+	0xff5e, 0x02c7, 0x02d8, 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1,
+	0x00bf, 0x02d0, 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1,
+	0x25c0, 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663,
+	0x25c9, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5, 0x25a8,
+	0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c, 0x261e, 0x00b6,
+	0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196, 0x2198, 0x266d, 0x2669,
+	0x266a, 0x266c, 0x327f, 0x321c, 0x2116, 0x33c7, 0x2122, 0x33c2, 0x33d8,
+	0x2121,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 0xff01,
+	0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09, 0xff0a,
+	0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, 0xff11, 0xff12, 0xff13,
+	0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c,
+	0xff1d, 0xff1e, 0xff1f, 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25,
+	0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e,
+	0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37,
+	0xff38, 0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40,
+	0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49,
+	0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52,
+	0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5b,
+	0xff5c, 0xff5d, 0xffe3, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136,
+	0x3137, 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f,
+	0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
+	0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, 0x3151,
+	0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a,
+	0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163,
+	0x3164, 0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 0x316a, 0x316b, 0x316c,
+	0x316d, 0x316e, 0x316f, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175,
+	0x3176, 0x3177, 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e,
+	0x317f, 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187,
+	0x3188, 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, 0x2170, 0x2171,
+	0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179,     -1,
+	    -1,     -1,     -1,     -1, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164,
+	0x2165, 0x2166, 0x2167, 0x2168, 0x2169,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396,
+	0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
+	0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 0x03b1,
+	0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba,
+	0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4,
+	0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,     -1,     -1,     -1,     -1,
+	    -1,     -1, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c,
+	0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
+	0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528,
+	0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x2512, 0x2511,
+	0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d, 0x251e, 0x251f, 0x2521,
+	0x2522, 0x2526, 0x2527, 0x2529, 0x252a, 0x252d, 0x252e, 0x2531, 0x2532,
+	0x2535, 0x2536, 0x2539, 0x253a, 0x253d, 0x253e, 0x2540, 0x2541, 0x2543,
+	0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1, 0x3395, 0x3396, 0x3397,
+	0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4, 0x33a5, 0x33a6, 0x3399, 0x339a,
+	0x339b, 0x339c, 0x339d, 0x339e, 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca,
+	0x338d, 0x338e, 0x338f, 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8,
+	0x33b0, 0x33b1, 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8,
+	0x33b9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc,
+	0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394, 0x2126,
+	0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5, 0x33ad, 0x33ae,
+	0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac, 0x33dd, 0x33d0, 0x33d3,
+	0x33c3, 0x33c9, 0x33dc, 0x33c6,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1, 0x00c6, 0x00d0, 0x00aa, 0x0126,     -1, 0x0132,     -1, 0x013f,
+	0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a,     -1, 0x3260,
+	0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269,
+	0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272,
+	0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a, 0x327b,
+	0x24d0, 0x24d1, 0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8,
+	0x24d9, 0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1,
+	0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460,
+	0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
+	0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154, 0x00bc,
+	0x00be, 0x215b, 0x215c, 0x215d, 0x215e, 0x00e6, 0x0111, 0x00f0, 0x0127,
+	0x0131, 0x0133, 0x0138, 0x0140, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe,
+	0x0167, 0x014b, 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205,
+	0x3206, 0x3207, 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e,
+	0x320f, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217,
+	0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f, 0x24a0,
+	0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, 0x24a8, 0x24a9,
+	0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, 0x24b0, 0x24b1, 0x24b2,
+	0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479,
+	0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482,
+	0x00b9, 0x00b2, 0x00b3, 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084,
+	0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049,
+	0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052,
+	0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b,
+	0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064,
+	0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d,
+	0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076,
+	0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f,
+	0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
+	0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091,
+	0x3092, 0x3093,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5,
+	0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae,
+	0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7,
+	0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
+	0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9,
+	0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2,
+	0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db,
+	0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4,
+	0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed,
+	0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1, 0x0410,
+	0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418,
+	0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421,
+	0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a,
+	0x042b, 0x042c, 0x042d, 0x042e, 0x042f,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451,
+	0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+	0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1, 0x3400, 0x3401, 0x3402,
+	0x3403, 0x3404, 0x3405, 0x3406, 0x3407, 0x3408, 0x3409, 0x340a, 0x340b,
+	0x340c, 0x340d, 0x340e, 0x340f, 0x3410, 0x3411, 0x3412, 0x3413, 0x3414,
+	0x3415, 0x3416, 0x3417, 0x3418, 0x3419, 0x341a, 0x341b, 0x341c, 0x341d,
+	0x341e, 0x341f, 0x3420, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426,
+	0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e, 0x342f,
+	0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3437, 0x3438,
+	0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e, 0x343f, 0x3440, 0x3441,
+	0x3442, 0x3443, 0x3444, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, 0x344a,
+	0x344b, 0x344c, 0x344d, 0x344e, 0x344f, 0x3450, 0x3451, 0x3452, 0x3453,
+	0x3454, 0x3455, 0x3456, 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c,
+	0x345d, 0x345e, 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465,
+	0x3466, 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e,
+	0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476, 0x3477,
+	0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e, 0x347f, 0x3480,
+	0x3481, 0x3482, 0x3483, 0x3484, 0x3485, 0x3486, 0x3487, 0x3488, 0x3489,
+	0x348a, 0x348b, 0x348c, 0x348d, 0x348e, 0x348f, 0x3490, 0x3491, 0x3492,
+	0x3493, 0x3494, 0x3495, 0x3496, 0x3497, 0x3498, 0x3499, 0x349a, 0x349b,
+	0x349c, 0x349d, 0x349e, 0x349f, 0x34a0, 0x34a1, 0x34a2, 0x34a3, 0x34a4,
+	0x34a5, 0x34a6, 0x34a7, 0x34a8, 0x34a9, 0x34aa, 0x34ab, 0x34ac, 0x34ad,
+	0x34ae, 0x34af, 0x34b0, 0x34b1, 0x34b2, 0x34b3, 0x34b4, 0x34b5, 0x34b6,
+	0x34b7, 0x34b8, 0x34b9, 0x34ba, 0x34bb, 0x34bc, 0x34bd, 0x34be, 0x34bf,
+	0x34c0, 0x34c1, 0x34c2, 0x34c3, 0x34c4, 0x34c5, 0x34c6, 0x34c7, 0x34c8,
+	0x34c9, 0x34ca, 0x34cb, 0x34cc, 0x34cd, 0x34ce, 0x34cf, 0x34d0, 0x34d1,
+	0x34d2, 0x34d3, 0x34d4, 0x34d5, 0x34d6, 0x34d7, 0x34d8, 0x34d9, 0x34da,
+	0x34db, 0x34dc, 0x34dd, 0x34de, 0x34df, 0x34e0, 0x34e1, 0x34e2, 0x34e3,
+	0x34e4, 0x34e5, 0x34e6, 0x34e7, 0x34e8, 0x34e9, 0x34ea, 0x34eb, 0x34ec,
+	0x34ed, 0x34ee, 0x34ef, 0x34f0, 0x34f1, 0x34f2, 0x34f3, 0x34f4, 0x34f5,
+	0x34f6, 0x34f7, 0x34f8, 0x34f9, 0x34fa, 0x34fb, 0x34fc, 0x34fd, 0x34fe,
+	0x34ff, 0x3500, 0x3501, 0x3502, 0x3503, 0x3504, 0x3505, 0x3506, 0x3507,
+	0x3508, 0x3509, 0x350a, 0x350b, 0x350c, 0x350d, 0x350e, 0x350f, 0x3510,
+	0x3511, 0x3512, 0x3513, 0x3514, 0x3515, 0x3516, 0x3517, 0x3518, 0x3519,
+	0x351a, 0x351b, 0x351c, 0x351d, 0x351e, 0x351f, 0x3520, 0x3521, 0x3522,
+	0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528, 0x3529, 0x352a, 0x352b,
+	0x352c, 0x352d, 0x352e, 0x352f, 0x3530, 0x3531, 0x3532, 0x3533, 0x3534,
+	0x3535, 0x3536, 0x3537, 0x3538, 0x3539, 0x353a, 0x353b, 0x353c, 0x353d,
+	0x353e, 0x353f, 0x3540, 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546,
+	0x3547, 0x3548, 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f,
+	0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558,
+	0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560, 0x3561,
+	0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, 0x356a,
+	0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571, 0x3572, 0x3573,
+	0x3574, 0x3575, 0x3576, 0x3577, 0x3578, 0x3579, 0x357a, 0x357b, 0x357c,
+	0x357d, 0x357e, 0x357f, 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585,
+	0x3586, 0x3587, 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e,
+	0x358f, 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597,
+	0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, 0x35a0,
+	0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, 0x35a8, 0x35a9,
+	0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x35af, 0x35b0, 0x35b1, 0x35b2,
+	0x35b3, 0x35b4, 0x35b5, 0x35b6, 0x35b7, 0x35b8, 0x35b9, 0x35ba, 0x35bb,
+	0x35bc, 0x35bd, 0x35be, 0x35bf, 0x35c0, 0x35c1, 0x35c2, 0x35c3, 0x35c4,
+	0x35c5, 0x35c6, 0x35c7, 0x35c8, 0x35c9, 0x35ca, 0x35cb, 0x35cc, 0x35cd,
+	0x35ce, 0x35cf, 0x35d0, 0x35d1, 0x35d2, 0x35d3, 0x35d4, 0x35d5, 0x35d6,
+	0x35d7, 0x35d8, 0x35d9, 0x35da, 0x35db, 0x35dc, 0x35dd, 0x35de, 0x35df,
+	0x35e0, 0x35e1, 0x35e2, 0x35e3, 0x35e4, 0x35e5, 0x35e6, 0x35e7, 0x35e8,
+	0x35e9, 0x35ea, 0x35eb, 0x35ec, 0x35ed, 0x35ee, 0x35ef, 0x35f0, 0x35f1,
+	0x35f2, 0x35f3, 0x35f4, 0x35f5, 0x35f6, 0x35f7, 0x35f8, 0x35f9, 0x35fa,
+	0x35fb, 0x35fc, 0x35fd, 0x35fe, 0x35ff, 0x3600, 0x3601, 0x3602, 0x3603,
+	0x3604, 0x3605, 0x3606, 0x3607, 0x3608, 0x3609, 0x360a, 0x360b, 0x360c,
+	0x360d, 0x360e, 0x360f, 0x3610, 0x3611, 0x3612, 0x3613, 0x3614, 0x3615,
+	0x3616, 0x3617, 0x3618, 0x3619, 0x361a, 0x361b, 0x361c, 0x361d, 0x361e,
+	0x361f, 0x3620, 0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627,
+	0x3628, 0x3629, 0x362a, 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630,
+	0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639,
+	0x363a, 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642,
+	0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a, 0x364b,
+	0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652, 0x3653, 0x3654,
+	0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a, 0x365b, 0x365c, 0x365d,
+	0x365e, 0x365f, 0x3660, 0x3661, 0x3662, 0x3663, 0x3664, 0x3665, 0x3666,
+	0x3667, 0x3668, 0x3669, 0x366a, 0x366b, 0x366c, 0x366d, 0x366e, 0x366f,
+	0x3670, 0x3671, 0x3672, 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678,
+	0x3679, 0x367a, 0x367b, 0x367c, 0x367d, 0x367e, 0x367f, 0x3680, 0x3681,
+	0x3682, 0x3683, 0x3684, 0x3685, 0x3686, 0x3687, 0x3688, 0x3689, 0x368a,
+	0x368b, 0x368c, 0x368d, 0x368e, 0x368f, 0x3690, 0x3691, 0x3692, 0x3693,
+	0x3694, 0x3695, 0x3696, 0x3697, 0x3698, 0x3699, 0x369a, 0x369b, 0x369c,
+	0x369d, 0x369e, 0x369f, 0x36a0, 0x36a1, 0x36a2, 0x36a3, 0x36a4, 0x36a5,
+	0x36a6, 0x36a7, 0x36a8, 0x36a9, 0x36aa, 0x36ab, 0x36ac, 0x36ad, 0x36ae,
+	0x36af, 0x36b0, 0x36b1, 0x36b2, 0x36b3, 0x36b4, 0x36b5, 0x36b6, 0x36b7,
+	0x36b8, 0x36b9, 0x36ba, 0x36bb, 0x36bc, 0x36bd, 0x36be, 0x36bf, 0x36c0,
+	0x36c1, 0x36c2, 0x36c3, 0x36c4, 0x36c5, 0x36c6, 0x36c7, 0x36c8, 0x36c9,
+	0x36ca, 0x36cb, 0x36cc, 0x36cd, 0x36ce, 0x36cf, 0x36d0, 0x36d1, 0x36d2,
+	0x36d3, 0x36d4, 0x36d5, 0x36d6, 0x36d7, 0x36d8, 0x36d9, 0x36da, 0x36db,
+	0x36dc, 0x36dd, 0x36de, 0x36df, 0x36e0, 0x36e1, 0x36e2, 0x36e3, 0x36e4,
+	0x36e5, 0x36e6, 0x36e7, 0x36e8, 0x36e9, 0x36ea, 0x36eb, 0x36ec, 0x36ed,
+	0x36ee, 0x36ef, 0x36f0, 0x36f1, 0x36f2, 0x36f3, 0x36f4, 0x36f5, 0x36f6,
+	0x36f7, 0x36f8, 0x36f9, 0x36fa, 0x36fb, 0x36fc, 0x36fd, 0x36fe, 0x36ff,
+	0x3700, 0x3701, 0x3702, 0x3703, 0x3704, 0x3705, 0x3706, 0x3707, 0x3708,
+	0x3709, 0x370a, 0x370b, 0x370c, 0x370d, 0x370e, 0x370f, 0x3710, 0x3711,
+	0x3712, 0x3713, 0x3714, 0x3715, 0x3716, 0x3717, 0x3718, 0x3719, 0x371a,
+	0x371b, 0x371c, 0x371d, 0x371e, 0x371f, 0x3720, 0x3721, 0x3722, 0x3723,
+	0x3724, 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c,
+	0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, 0x3735,
+	0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c, 0x373d, 0x373e,
+	0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744, 0x3745, 0x3746, 0x3747,
+	0x3748, 0x3749, 0x374a, 0x374b, 0x374c, 0x374d, 0x374e, 0x374f, 0x3750,
+	0x3751, 0x3752, 0x3753, 0x3754, 0x3755, 0x3756, 0x3757, 0x3758, 0x3759,
+	0x375a, 0x375b, 0x375c, 0x375d, 0x375e, 0x375f, 0x3760, 0x3761, 0x3762,
+	0x3763, 0x3764, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b,
+	0x376c, 0x376d, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774,
+	0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c, 0x377d,
+	0x377e, 0x377f, 0x3780, 0x3781, 0x3782, 0x3783, 0x3784, 0x3785, 0x3786,
+	0x3787, 0x3788, 0x3789, 0x378a, 0x378b, 0x378c, 0x378d, 0x378e, 0x378f,
+	0x3790, 0x3791, 0x3792, 0x3793, 0x3794, 0x3795, 0x3796, 0x3797, 0x3798,
+	0x3799, 0x379a, 0x379b, 0x379c, 0x379d, 0x379e, 0x379f, 0x37a0, 0x37a1,
+	0x37a2, 0x37a3, 0x37a4, 0x37a5, 0x37a6, 0x37a7, 0x37a8, 0x37a9, 0x37aa,
+	0x37ab, 0x37ac, 0x37ad, 0x37ae, 0x37af, 0x37b0, 0x37b1, 0x37b2, 0x37b3,
+	0x37b4, 0x37b5, 0x37b6, 0x37b7, 0x37b8, 0x37b9, 0x37ba, 0x37bb, 0x37bc,
+	0x37bd, 0x37be, 0x37bf, 0x37c0, 0x37c1, 0x37c2, 0x37c3, 0x37c4, 0x37c5,
+	0x37c6, 0x37c7, 0x37c8, 0x37c9, 0x37ca, 0x37cb, 0x37cc, 0x37cd, 0x37ce,
+	0x37cf, 0x37d0, 0x37d1, 0x37d2, 0x37d3, 0x37d4, 0x37d5, 0x37d6, 0x37d7,
+	0x37d8, 0x37d9, 0x37da, 0x37db, 0x37dc, 0x37dd, 0x37de, 0x37df, 0x37e0,
+	0x37e1, 0x37e2, 0x37e3, 0x37e4, 0x37e5, 0x37e6, 0x37e7, 0x37e8, 0x37e9,
+	0x37ea, 0x37eb, 0x37ec, 0x37ed, 0x37ee, 0x37ef, 0x37f0, 0x37f1, 0x37f2,
+	0x37f3, 0x37f4, 0x37f5, 0x37f6, 0x37f7, 0x37f8, 0x37f9, 0x37fa, 0x37fb,
+	0x37fc, 0x37fd, 0x37fe, 0x37ff, 0x3800, 0x3801, 0x3802, 0x3803, 0x3804,
+	0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 0x380a, 0x380b, 0x380c, 0x380d,
+	0x380e, 0x380f, 0x3810, 0x3811, 0x3812, 0x3813, 0x3814, 0x3815, 0x3816,
+	0x3817, 0x3818, 0x3819, 0x381a, 0x381b, 0x381c, 0x381d, 0x381e, 0x381f,
+	0x3820, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826, 0x3827, 0x3828,
+	0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e, 0x382f, 0x3830, 0x3831,
+	0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, 0x383a,
+	0x383b, 0x383c, 0x383d, 0x383e, 0x383f, 0x3840, 0x3841, 0x3842, 0x3843,
+	0x3844, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c,
+	0x384d, 0x384e, 0x384f, 0x3850, 0x3851, 0x3852, 0x3853, 0x3854, 0x3855,
+	0x3856, 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e,
+	0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3866, 0x3867,
+	0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f, 0x3870,
+	0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, 0x3879,
+	0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x387f, 0x3880, 0x3881, 0x3882,
+	0x3883, 0x3884, 0x3885, 0x3886, 0x3887, 0x3888, 0x3889, 0x388a, 0x388b,
+	0x388c, 0x388d, 0x388e, 0x388f, 0x3890, 0x3891, 0x3892, 0x3893, 0x3894,
+	0x3895, 0x3896, 0x3897, 0x3898, 0x3899, 0x389a, 0x389b, 0x389c, 0x389d,
+	0x389e, 0x389f, 0x38a0, 0x38a1, 0x38a2, 0x38a3, 0x38a4, 0x38a5, 0x38a6,
+	0x38a7, 0x38a8, 0x38a9, 0x38aa, 0x38ab, 0x38ac, 0x38ad, 0x38ae, 0x38af,
+	0x38b0, 0x38b1, 0x38b2, 0x38b3, 0x38b4, 0x38b5, 0x38b6, 0x38b7, 0x38b8,
+	0x38b9, 0x38ba, 0x38bb, 0x38bc, 0x38bd, 0x38be, 0x38bf, 0x38c0, 0x38c1,
+	0x38c2, 0x38c3, 0x38c4, 0x38c5, 0x38c6, 0x38c7, 0x38c8, 0x38c9, 0x38ca,
+	0x38cb, 0x38cc, 0x38cd, 0x38ce, 0x38cf, 0x38d0, 0x38d1, 0x38d2, 0x38d3,
+	0x38d4, 0x38d5, 0x38d6, 0x38d7, 0x38d8, 0x38d9, 0x38da, 0x38db, 0x38dc,
+	0x38dd, 0x38de, 0x38df, 0x38e0, 0x38e1, 0x38e2, 0x38e3, 0x38e4, 0x38e5,
+	0x38e6, 0x38e7, 0x38e8, 0x38e9, 0x38ea, 0x38eb, 0x38ec, 0x38ed, 0x38ee,
+	0x38ef, 0x38f0, 0x38f1, 0x38f2, 0x38f3, 0x38f4, 0x38f5, 0x38f6, 0x38f7,
+	0x38f8, 0x38f9, 0x38fa, 0x38fb, 0x38fc, 0x38fd, 0x38fe, 0x38ff, 0x3900,
+	0x3901, 0x3902, 0x3903, 0x3904, 0x3905, 0x3906, 0x3907, 0x3908, 0x3909,
+	0x390a, 0x390b, 0x390c, 0x390d, 0x390e, 0x390f, 0x3910, 0x3911, 0x3912,
+	0x3913, 0x3914, 0x3915, 0x3916, 0x3917, 0x3918, 0x3919, 0x391a, 0x391b,
+	0x391c, 0x391d, 0x391e, 0x391f, 0x3920, 0x3921, 0x3922, 0x3923, 0x3924,
+	0x3925, 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, 0x392b, 0x392c, 0x392d,
+	0x392e, 0x392f, 0x3930, 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, 0x3936,
+	0x3937, 0x3938, 0x3939, 0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f,
+	0x3940, 0x3941, 0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948,
+	0x3949, 0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951,
+	0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, 0x395a,
+	0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, 0x3963,
+	0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, 0x396b, 0x396c,
+	0x396d, 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, 0x3973, 0x3974, 0x3975,
+	0x3976, 0x3977, 0x3978, 0x3979, 0x397a, 0x397b, 0x397c, 0x397d, 0x397e,
+	0x397f, 0x3980, 0x3981, 0x3982, 0x3983, 0x3984, 0x3985, 0x3986, 0x3987,
+	0x3988, 0x3989, 0x398a, 0x398b, 0x398c, 0x398d, 0x398e, 0x398f, 0x3990,
+	0x3991, 0x3992, 0x3993, 0x3994, 0x3995, 0x3996, 0x3997, 0x3998, 0x3999,
+	0x399a, 0x399b, 0x399c, 0x399d, 0x399e, 0x399f, 0x39a0, 0x39a1, 0x39a2,
+	0x39a3, 0x39a4, 0x39a5, 0x39a6, 0x39a7, 0x39a8, 0x39a9, 0x39aa, 0x39ab,
+	0x39ac, 0x39ad, 0x39ae, 0x39af, 0x39b0, 0x39b1, 0x39b2, 0x39b3, 0x39b4,
+	0x39b5, 0x39b6, 0x39b7, 0x39b8, 0x39b9, 0x39ba, 0x39bb, 0x39bc, 0x39bd,
+	0x39be, 0x39bf, 0x39c0, 0x39c1, 0x39c2, 0x39c3, 0x39c4, 0x39c5, 0x39c6,
+	0x39c7, 0x39c8, 0x39c9, 0x39ca, 0x39cb, 0x39cc, 0x39cd, 0x39ce, 0x39cf,
+	0x39d0, 0x39d1, 0x39d2, 0x39d3, 0x39d4, 0x39d5, 0x39d6, 0x39d7, 0x39d8,
+	0x39d9, 0x39da, 0x39db, 0x39dc, 0x39dd, 0x39de, 0x39df, 0x39e0, 0x39e1,
+	0x39e2, 0x39e3, 0x39e4, 0x39e5, 0x39e6, 0x39e7, 0x39e8, 0x39e9, 0x39ea,
+	0x39eb, 0x39ec, 0x39ed, 0x39ee, 0x39ef, 0x39f0, 0x39f1, 0x39f2, 0x39f3,
+	0x39f4, 0x39f5, 0x39f6, 0x39f7, 0x39f8, 0x39f9, 0x39fa, 0x39fb, 0x39fc,
+	0x39fd, 0x39fe, 0x39ff, 0x3a00, 0x3a01, 0x3a02, 0x3a03, 0x3a04, 0x3a05,
+	0x3a06, 0x3a07, 0x3a08, 0x3a09, 0x3a0a, 0x3a0b, 0x3a0c, 0x3a0d, 0x3a0e,
+	0x3a0f, 0x3a10, 0x3a11, 0x3a12, 0x3a13, 0x3a14, 0x3a15, 0x3a16, 0x3a17,
+	0x3a18, 0x3a19, 0x3a1a, 0x3a1b, 0x3a1c, 0x3a1d, 0x3a1e, 0x3a1f, 0x3a20,
+	0x3a21, 0x3a22, 0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29,
+	0x3a2a, 0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a32,
+	0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a39, 0x3a3a, 0x3a3b,
+	0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44,
+	0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, 0x3a4d,
+	0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, 0x3a55, 0x3a56,
+	0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f,
+	0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68,
+	0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71,
+	0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a,
+	0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3a7f, 0x3a80, 0x3a81, 0x3a82, 0x3a83,
+	0x3a84, 0x3a85, 0x3a86, 0x3a87, 0x3a88, 0x3a89, 0x3a8a, 0x3a8b, 0x3a8c,
+	0x3a8d, 0x3a8e, 0x3a8f, 0x3a90, 0x3a91, 0x3a92, 0x3a93, 0x3a94, 0x3a95,
+	0x3a96, 0x3a97, 0x3a98, 0x3a99, 0x3a9a, 0x3a9b, 0x3a9c, 0x3a9d, 0x3a9e,
+	0x3a9f, 0x3aa0, 0x3aa1, 0x3aa2, 0x3aa3, 0x3aa4, 0x3aa5, 0x3aa6, 0x3aa7,
+	0x3aa8, 0x3aa9, 0x3aaa, 0x3aab, 0x3aac, 0x3aad, 0x3aae, 0x3aaf, 0x3ab0,
+	0x3ab1, 0x3ab2, 0x3ab3, 0x3ab4, 0x3ab5, 0x3ab6, 0x3ab7, 0x3ab8, 0x3ab9,
+	0x3aba, 0x3abb, 0x3abc, 0x3abd, 0x3abe, 0x3abf, 0x3ac0, 0x3ac1, 0x3ac2,
+	0x3ac3, 0x3ac4, 0x3ac5, 0x3ac6, 0x3ac7, 0x3ac8, 0x3ac9, 0x3aca, 0x3acb,
+	0x3acc, 0x3acd, 0x3ace, 0x3acf, 0x3ad0, 0x3ad1, 0x3ad2, 0x3ad3, 0x3ad4,
+	0x3ad5, 0x3ad6, 0x3ad7, 0x3ad8, 0x3ad9, 0x3ada, 0x3adb, 0x3adc, 0x3add,
+	0x3ade, 0x3adf, 0x3ae0, 0x3ae1, 0x3ae2, 0x3ae3, 0x3ae4, 0x3ae5, 0x3ae6,
+	0x3ae7, 0x3ae8, 0x3ae9, 0x3aea, 0x3aeb, 0x3aec, 0x3aed, 0x3aee, 0x3aef,
+	0x3af0, 0x3af1, 0x3af2, 0x3af3, 0x3af4, 0x3af5, 0x3af6, 0x3af7, 0x3af8,
+	0x3af9, 0x3afa, 0x3afb, 0x3afc, 0x3afd, 0x3afe, 0x3aff, 0x3b00, 0x3b01,
+	0x3b02, 0x3b03, 0x3b04, 0x3b05, 0x3b06, 0x3b07, 0x3b08, 0x3b09, 0x3b0a,
+	0x3b0b, 0x3b0c, 0x3b0d, 0x3b0e, 0x3b0f, 0x3b10, 0x3b11, 0x3b12, 0x3b13,
+	0x3b14, 0x3b15, 0x3b16, 0x3b17, 0x3b18, 0x3b19, 0x3b1a, 0x3b1b, 0x3b1c,
+	0x3b1d, 0x3b1e, 0x3b1f, 0x3b20, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25,
+	0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e,
+	0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, 0x3b37,
+	0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3c, 0x3b3d, 0x3b3e, 0x3b3f, 0x3b40,
+	0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49,
+	0x3b4a, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52,
+	0x3b53, 0x3b54, 0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b,
+	0x3b5c, 0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64,
+	0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d,
+	0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x3b73, 0x3b74, 0x3b75, 0x3b76,
+	0x3b77, 0x3b78, 0x3b79, 0x3b7a, 0x3b7b, 0x3b7c, 0x3b7d, 0x3b7e, 0x3b7f,
+	0x3b80, 0x3b81, 0x3b82, 0x3b83, 0x3b84, 0x3b85, 0x3b86, 0x3b87, 0x3b88,
+	0x3b89, 0x3b8a, 0x3b8b, 0x3b8c, 0x3b8d, 0x3b8e, 0x3b8f, 0x3b90, 0x3b91,
+	0x3b92, 0x3b93, 0x3b94, 0x3b95, 0x3b96, 0x3b97, 0x3b98, 0x3b99, 0x3b9a,
+	0x3b9b, 0x3b9c, 0x3b9d, 0x3b9e, 0x3b9f, 0x3ba0, 0x3ba1, 0x3ba2, 0x3ba3,
+	0x3ba4, 0x3ba5, 0x3ba6, 0x3ba7, 0x3ba8, 0x3ba9, 0x3baa, 0x3bab, 0x3bac,
+	0x3bad, 0x3bae, 0x3baf, 0x3bb0, 0x3bb1, 0x3bb2, 0x3bb3, 0x3bb4, 0x3bb5,
+	0x3bb6, 0x3bb7, 0x3bb8, 0x3bb9, 0x3bba, 0x3bbb, 0x3bbc, 0x3bbd, 0x3bbe,
+	0x3bbf, 0x3bc0, 0x3bc1, 0x3bc2, 0x3bc3, 0x3bc4, 0x3bc5, 0x3bc6, 0x3bc7,
+	0x3bc8, 0x3bc9, 0x3bca, 0x3bcb, 0x3bcc, 0x3bcd, 0x3bce, 0x3bcf, 0x3bd0,
+	0x3bd1, 0x3bd2, 0x3bd3, 0x3bd4, 0x3bd5, 0x3bd6, 0x3bd7, 0x3bd8, 0x3bd9,
+	0x3bda, 0x3bdb, 0x3bdc, 0x3bdd, 0x3bde, 0x3bdf, 0x3be0, 0x3be1, 0x3be2,
+	0x3be3, 0x3be4, 0x3be5, 0x3be6, 0x3be7, 0x3be8, 0x3be9, 0x3bea, 0x3beb,
+	0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0, 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4,
+	0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8, 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd,
+	0x3bfe, 0x3bff, 0x3c00, 0x3c01, 0x3c02, 0x3c03, 0x3c04, 0x3c05, 0x3c06,
+	0x3c07, 0x3c08, 0x3c09, 0x3c0a, 0x3c0b, 0x3c0c, 0x3c0d, 0x3c0e, 0x3c0f,
+	0x3c10, 0x3c11, 0x3c12, 0x3c13, 0x3c14, 0x3c15, 0x3c16, 0x3c17, 0x3c18,
+	0x3c19, 0x3c1a, 0x3c1b, 0x3c1c, 0x3c1d, 0x3c1e, 0x3c1f, 0x3c20, 0x3c21,
+	0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26, 0x3c27, 0x3c28, 0x3c29, 0x3c2a,
+	0x3c2b, 0x3c2c, 0x3c2d, 0x3c2e, 0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33,
+	0x3c34, 0x3c35, 0x3c36, 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c,
+	0x3c3d, 0x3c3e, 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45,
+	0x3c46, 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e,
+	0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, 0x3c54, 0x3c55, 0x3c56, 0x3c57,
+	0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, 0x3c60,
+	0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66, 0x3c67, 0x3c68, 0x3c69,
+	0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, 0x3c70, 0x3c71, 0x3c72,
+	0x3c73, 0x3c74, 0x3c75, 0x3c76, 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b,
+	0x3c7c, 0x3c7d, 0x3c7e, 0x3c7f, 0x3c80, 0x3c81, 0x3c82, 0x3c83, 0x3c84,
+	0x3c85, 0x3c86, 0x3c87, 0x3c88, 0x3c89, 0x3c8a, 0x3c8b, 0x3c8c, 0x3c8d,
+	0x3c8e, 0x3c8f, 0x3c90, 0x3c91, 0x3c92, 0x3c93, 0x3c94, 0x3c95, 0x3c96,
+	0x3c97, 0x3c98, 0x3c99, 0x3c9a, 0x3c9b, 0x3c9c, 0x3c9d, 0x3c9e, 0x3c9f,
+	0x3ca0, 0x3ca1, 0x3ca2, 0x3ca3, 0x3ca4, 0x3ca5, 0x3ca6, 0x3ca7, 0x3ca8,
+	0x3ca9, 0x3caa, 0x3cab, 0x3cac, 0x3cad, 0x3cae, 0x3caf, 0x3cb0, 0x3cb1,
+	0x3cb2, 0x3cb3, 0x3cb4, 0x3cb5, 0x3cb6, 0x3cb7, 0x3cb8, 0x3cb9, 0x3cba,
+	0x3cbb, 0x3cbc, 0x3cbd, 0x3cbe, 0x3cbf, 0x3cc0, 0x3cc1, 0x3cc2, 0x3cc3,
+	0x3cc4, 0x3cc5, 0x3cc6, 0x3cc7, 0x3cc8, 0x3cc9, 0x3cca, 0x3ccb, 0x3ccc,
+	0x3ccd, 0x3cce, 0x3ccf, 0x3cd0, 0x3cd1, 0x3cd2, 0x3cd3, 0x3cd4, 0x3cd5,
+	0x3cd6, 0x3cd7, 0x3cd8, 0x3cd9, 0x3cda, 0x3cdb, 0x3cdc, 0x3cdd, 0x3cde,
+	0x3cdf, 0x3ce0, 0x3ce1, 0x3ce2, 0x3ce3, 0x3ce4, 0x3ce5, 0x3ce6, 0x3ce7,
+	0x3ce8, 0x3ce9, 0x3cea, 0x3ceb, 0x3cec, 0x3ced, 0x3cee, 0x3cef, 0x3cf0,
+	0x3cf1, 0x3cf2, 0x3cf3, 0x3cf4, 0x3cf5, 0x3cf6, 0x3cf7, 0x3cf8, 0x3cf9,
+	0x3cfa, 0x3cfb, 0x3cfc, 0x3cfd, 0x3cfe, 0x3cff, 0x3d00, 0x3d01, 0x3d02,
+	0x3d03, 0x3d04, 0x3d05, 0x3d06, 0x3d07, 0x3d08, 0x3d09, 0x3d0a, 0x3d0b,
+	0x3d0c, 0x3d0d, 0x3d0e, 0x3d0f, 0x3d10, 0x3d11, 0x3d12, 0x3d13, 0x3d14,
+	0x3d15, 0x3d16, 0x3d17, 0x3d18, 0x3d19, 0x3d1a, 0x3d1b, 0x3d1c, 0x3d1d,
+	0x3d1e, 0x3d1f, 0x3d20, 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26,
+	0x3d27, 0x3d28, 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,     -1,
+	    -1,     -1, 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475,
+	0x54e5, 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c,
+	0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36, 0x8cc8,
+	0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404, 0x606a, 0x6164,
+	0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3, 0x4f83, 0x520a, 0x58be,
+	0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7, 0x63c0, 0x6746, 0x67ec, 0x687f,
+	0x6f97, 0x764e, 0x770b, 0x78f5, 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e,
+	0x8271, 0x8aeb, 0x9593, 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed,
+	0x845b, 0x8910, 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f,
+	0x61be, 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3,
+	0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, 0x5323, 0x5cac, 0x7532,
+	0x80db, 0x9240, 0x9598, 0x525b, 0x5808, 0x59dc, 0x5ca1, 0x5d17, 0x5eb7,
+	0x5f3a, 0x5f4a, 0x6177, 0x6c5f, 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1,
+	0x7f8c, 0x8154, 0x8221, 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47,
+	0x4ecb, 0x4ef7, 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539,
+	0x69ea, 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900,
+	0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9, 0x91b5,
+	0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da, 0x64e7, 0x6e20,
+	0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d, 0x9245, 0x92f8, 0x4e7e,
+	0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106, 0x6957, 0x8171, 0x8654, 0x8e47,
+	0x9375, 0x9a2b, 0x4e5e, 0x5091, 0x6770, 0x6840, 0x5109, 0x528d, 0x5292,
+	0x6aa2, 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9,
+	0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694, 0x5805,
+	0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b, 0x8b74, 0x9063,
+	0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a, 0x8a23, 0x517c, 0x614a,
+	0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac, 0x4fd3, 0x501e, 0x50be, 0x5106,
+	0x52c1, 0x52cd, 0x537f, 0x5770, 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac,
+	0x64ce, 0x656c, 0x666f, 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1,
+	0x749f, 0x74a5, 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45,
+	0x7d93, 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1,
+	0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951, 0x5b63,
+	0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, 0x68e8, 0x6eaa, 0x754c, 0x7678,
+	0x78ce, 0x7a3d, 0x7cfb, 0x7e6b, 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e,
+	0x9dc4, 0x53e4, 0x53e9, 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b,
+	0x5eab, 0x62f7, 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd,
+	0x75fc, 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6,
+	0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c, 0x932e,
+	0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2, 0x688f, 0x7a40,
+	0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606, 0x68b1, 0x68cd, 0x6efe,
+	0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904, 0x9aa8, 0x4f9b, 0x516c, 0x5171,
+	0x529f, 0x5b54, 0x5de5, 0x6050, 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9,
+	0x7a7a, 0x86a3, 0x8ca2, 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc,
+	0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846, 0x5ed3,
+	0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec, 0x6163, 0x68fa,
+	0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50, 0x83c5, 0x89c0, 0x8cab,
+	0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec, 0x9002, 0x4f8a, 0x5149, 0x5321,
+	0x58d9, 0x5ee3, 0x66e0, 0x6d38, 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1,
+	0x945b, 0x5366, 0x639b, 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a,
+	0x6127, 0x62d0, 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4,
+	0x50d1, 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821,
+	0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e, 0x86df,
+	0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18, 0x4e45, 0x4e5d,
+	0x4ec7, 0x4ff1, 0x5177, 0x52fe, 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614,
+	0x5775, 0x57a2, 0x5bc7, 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8,
+	0x67e9, 0x69cb, 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7,
+	0x7396, 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205,
+	0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1, 0x9264,
+	0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b, 0x5c40, 0x83ca,
+	0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4, 0x88d9, 0x8ecd, 0x90e1,
+	0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae, 0x5f13, 0x7a79, 0x7aae, 0x828e,
+	0x8eac, 0x5026, 0x5238, 0x52f8, 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a,
+	0x6dc3, 0x7737, 0x53a5, 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3,
+	0x6f70, 0x8a6d, 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, 0x9b3c,
+	0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea, 0x7845, 0x7aba,
+	0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035, 0x95a8, 0x52fb, 0x5747,
+	0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908, 0x6a58, 0x514b, 0x524b, 0x5287,
+	0x621f, 0x68d8, 0x6975, 0x9699, 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4,
+	0x6839, 0x69ff, 0x747e, 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1,
+	0x9949, 0xf909, 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981,
+	0x79bd, 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca,
+	0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc, 0x80af,
+	0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b, 0x57fa, 0x57fc,
+	0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e, 0x5df1, 0x5e7e, 0x5fcc,
+	0x6280, 0x65d7, 0x65e3, 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f,
+	0x6b3a, 0x6c23, 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482,
+	0x74a3, 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a,
+	0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18, 0x8b4f,
+	0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e, 0x9a0f, 0x9a65,
+	0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854, 0x91d1, 0x55ab, 0x513a,
+	0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d, 0x62cf, 0x62ff, 0xf90e, 0xf90f,
+	0xf910, 0xf911, 0xf912, 0xf913, 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917,
+	0xf918, 0x8afe, 0xf919, 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156,
+	0xf91e, 0xf91f, 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f,
+	0x6960, 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, 0x7d0d, 0xf926,
+	0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929, 0xf92a, 0xf92b, 0xf92c,
+	0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0, 0x8010, 0xf92e, 0x5973, 0x5e74,
+	0x649a, 0x79ca, 0x5ff5, 0x606c, 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa,
+	0xf92f, 0x5974, 0x5f29, 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933,
+	0xf934, 0xf935, 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b,
+	0xf93c, 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3,
+	0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166, 0xf948,
+	0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950,
+	0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952, 0xf953, 0xf954, 0xf955,
+	0xf956, 0xf957, 0x80fd, 0xf958, 0xf959, 0x5c3c, 0x6ce5, 0x533f, 0x6eba,
+	0x591a, 0x8336, 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56,
+	0x65b7, 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde,
+	0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8, 0x9054,
+	0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b, 0x6f6d, 0x6fb9,
+	0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7, 0x8b5a, 0x931f, 0x6c93,
+	0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510, 0x5802, 0x5858, 0x5e62, 0x6207,
+	0x649e, 0x68e0, 0x7576, 0x7cd6, 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e,
+	0x5927, 0x5c0d, 0x5cb1, 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa,
+	0x888b, 0x8cb8, 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200,
+	0x5230, 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6,
+	0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, 0x68f9, 0x6ac2, 0x6dd8,
+	0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc, 0x7779, 0x79b1, 0x7a3b, 0x8404,
+	0x89a9, 0x8ced, 0x8df3, 0x8e48, 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d,
+	0x9676, 0x97dc, 0x6bd2, 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf,
+	0x7be4, 0x7e9b, 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c,
+	0x711e, 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd,
+	0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c, 0x75bc,
+	0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597, 0x675c, 0x6793,
+	0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017, 0x982d, 0x5c6f, 0x81c0,
+	0x829a, 0x9041, 0x906f, 0x920d, 0x5f97, 0x5d9d, 0x6a59, 0x71c8, 0x767b,
+	0x7b49, 0x85e4, 0x8b04, 0x9127, 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669,
+	0x7f85, 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de,
+	0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375, 0x6b04,
+	0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3, 0x5d50, 0x64e5,
+	0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd, 0x8964, 0x89bd, 0x62c9,
+	0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a, 0x72fc, 0x7405, 0x746f, 0x8782,
+	0x90de, 0x4f86, 0x5d0d, 0x5fa0, 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae,
+	0x5006, 0x5169, 0x51c9, 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f,
+	0x8ad2, 0x8f1b, 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e,
+	0x623e, 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62,
+	0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b, 0x8f62,
+	0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, 0x7149, 0x7489, 0x7df4, 0x806f,
+	0x84ee, 0x8f26, 0x9023, 0x934a, 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8,
+	0x88c2, 0x5ec9, 0x6582, 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36,
+	0x56f9, 0xf95f, 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce,
+	0x8046, 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7,
+	0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3, 0x6f5e,
+	0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def, 0x8f05, 0x9732,
+	0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0, 0x83c9, 0x9304, 0x9e7f,
+	0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727, 0x7027, 0x74cf, 0x7c60, 0x807e,
+	0x5121, 0x7028, 0x7262, 0x78ca, 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86,
+	0x50da, 0x5bee, 0x5ed6, 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc,
+	0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda, 0x6f0f,
+	0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b, 0x5289, 0x65d2,
+	0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409, 0x7460, 0x7559, 0x7624,
+	0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e, 0x9678, 0x4f96, 0x502b, 0x5d19,
+	0x6dea, 0x7db8, 0x8f2a, 0x5f8b, 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2,
+	0x808b, 0x51dc, 0x51cc, 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda,
+	0x5229, 0x5398, 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c,
+	0x7281, 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8,
+	0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d, 0x6f7e,
+	0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f, 0x6797, 0x6dcb,
+	0x7433, 0x81e8, 0x9716, 0x782c, 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a,
+	0x75f2, 0x78bc, 0x78e8, 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20,
+	0x819c, 0x83ab, 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162,
+	0x633d, 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513,
+	0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab, 0x8309,
+	0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b, 0x7db2, 0x7f54,
+	0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb, 0x59b9, 0x5a92, 0x5bd0,
+	0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164, 0x7f75, 0x8cb7, 0x8ce3, 0x9081,
+	0x9b45, 0x8108, 0x8c8a, 0x964c, 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b,
+	0x76f2, 0x76df, 0x840c, 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9,
+	0x6c94, 0x7704, 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, 0x8511,
+	0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f, 0x76bf, 0x7791,
+	0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4, 0x8882, 0x4fae, 0x5192,
+	0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478, 0x6479, 0x66ae, 0x67d0, 0x6a21,
+	0x6bcd, 0x6bdb, 0x725f, 0x7261, 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc,
+	0x8305, 0x8b00, 0x8b28, 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766,
+	0x7a46, 0x9da9, 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893,
+	0x5999, 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7,
+	0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab, 0x65e0,
+	0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46, 0x821e, 0x8302,
+	0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8, 0x9ed8, 0x5011, 0x520e,
+	0x543b, 0x554f, 0x6587, 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580,
+	0x96ef, 0x52ff, 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c,
+	0x5fae, 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e,
+	0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d, 0x61ab,
+	0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9, 0x7de1, 0x9594,
+	0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd, 0x640f, 0x64b2, 0x6734,
+	0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94, 0x7c95, 0x7e1b, 0x818a, 0x8236,
+	0x8584, 0x8feb, 0x96f9, 0x99c1, 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc,
+	0x642c, 0x6500, 0x6591, 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622,
+	0x76e4, 0x76fc, 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4,
+	0x9812, 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, 0x767c, 0x8dcb,
+	0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d, 0x574a, 0x59a8, 0x5c28,
+	0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9, 0x65c1, 0x6609, 0x678b, 0x699c,
+	0x6ec2, 0x78c5, 0x7d21, 0x80aa, 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c,
+	0x8a2a, 0x8b17, 0x90a6, 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9,
+	0x5f98, 0x62dc, 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da,
+	0x88f4, 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70,
+	0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a, 0x7169,
+	0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc, 0x4f10, 0x7b4f,
+	0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e, 0x6c4e, 0x6cdb, 0x72af,
+	0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb, 0x5288, 0x58c1, 0x64d8, 0x6a97,
+	0x74a7, 0x7656, 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01,
+	0x8b8a, 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19,
+	0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5, 0x70b3,
+	0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08, 0x4fdd, 0x5821,
+	0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a, 0x6f7d, 0x73e4, 0x752b,
+	0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14, 0x4f0f, 0x50d5, 0x5310, 0x535c,
+	0x5b93, 0x5fa9, 0x670d, 0x798f, 0x8179, 0x832f, 0x8514, 0x8907, 0x8986,
+	0x8f39, 0x8f3b, 0x99a5, 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01,
+	0x5cef, 0x5cf0, 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec,
+	0x8702, 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256,
+	0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, 0x5b5a, 0x5b75, 0x5bcc,
+	0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7, 0x6d6e, 0x6ea5, 0x7236, 0x7b26,
+	0x7c3f, 0x7f36, 0x8150, 0x8151, 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03,
+	0x8ca0, 0x8ce6, 0x8cfb, 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644,
+	0x99d9, 0x9ce7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e,
+	0x5fff, 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde,
+	0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f, 0x62c2,
+	0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15, 0x5099, 0x5315,
+	0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2, 0x618a, 0x6249, 0x6279,
+	0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6, 0x6bd7, 0x6bd8, 0x6cb8, 0xf968,
+	0x7435, 0x75fa, 0x7812, 0x7891, 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1,
+	0x80a5, 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb,
+	0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c, 0x6ab3,
+	0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7, 0x8cd3, 0x983b,
+	0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b, 0x4e9b, 0x4ed5, 0x4f3a,
+	0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2, 0x53f8, 0x5506, 0x55e3, 0x56db,
+	0x58eb, 0x5962, 0x5a11, 0x5beb, 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99,
+	0x601d, 0x6368, 0x659c, 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99,
+	0x6cd7, 0x6e23, 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1,
+	0x7be9, 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df,
+	0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc, 0x99df,
+	0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, 0x5098, 0x522a, 0x5c71, 0x6563,
+	0x6c55, 0x73ca, 0x7523, 0x759d, 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77,
+	0x6492, 0x6bba, 0x715e, 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17,
+	0x829f, 0x8518, 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7,
+	0x50cf, 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38,
+	0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d, 0x7240,
+	0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4, 0x8a73, 0x8c61,
+	0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7, 0xf96c, 0x7a61, 0x7d22,
+	0x8272, 0x7272, 0x751f, 0x7525, 0xf96d, 0x7b19, 0x5885, 0x58fb, 0x5dbc,
+	0x5e8f, 0x5eb6, 0x5f90, 0x6055, 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9,
+	0x66f8, 0x6816, 0x68f2, 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72,
+	0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd, 0x9f20,
+	0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790, 0x6c50, 0x6dc5,
+	0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b, 0x4ed9, 0x50ca, 0x5148,
+	0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e, 0x65cb, 0x6e32, 0x717d, 0x7401,
+	0x7444, 0x7487, 0x74bf, 0x766c, 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a,
+	0x81b3, 0x8239, 0x861a, 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425,
+	0x994d, 0x9bae, 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c,
+	0x859b, 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2,
+	0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee, 0xf96e,
+	0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f, 0x665f, 0x7329,
+	0x73f9, 0x76db, 0x7701, 0x7b6c, 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192,
+	0x4e16, 0x52e2, 0x6b72, 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0,
+	0x53ec, 0x562f, 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383,
+	0x6414, 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2,
+	0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20, 0x7d39,
+	0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5, 0x92b7, 0x97f6,
+	0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f, 0x7e8c, 0x8b16, 0x8d16,
+	0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0, 0x905c, 0x98e1, 0x7387, 0x5b8b,
+	0x609a, 0x677e, 0x6dde, 0x8a1f, 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970,
+	0x7051, 0x788e, 0x9396, 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da,
+	0x5782, 0x58fd, 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, 0x620d,
+	0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a, 0x6c34, 0x6d19,
+	0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2, 0x7626, 0x7761, 0x79c0,
+	0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac, 0x7e61, 0x7f9e, 0x8129, 0x8331,
+	0x8490, 0x84da, 0x85ea, 0x8896, 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083,
+	0x916c, 0x9296, 0x92b9, 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808,
+	0x9996, 0x9ad3, 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1,
+	0x6f5a, 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa,
+	0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3, 0x73e3,
+	0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340, 0x84f4, 0x8563,
+	0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4, 0x620c, 0x8853, 0x8ff0,
+	0x9265, 0x5d07, 0x5d27, 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe,
+	0x7fd2, 0x8936, 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f,
+	0x6607, 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4,
+	0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f, 0x6642,
+	0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494, 0x84cd, 0x8996,
+	0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4, 0x5bd4, 0x5f0f, 0x606f,
+	0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184, 0x7bd2, 0x8755, 0x8b58, 0x8efe,
+	0x98df, 0x98fe, 0x4f38, 0x4f81, 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c,
+	0x65b0, 0x6668, 0x71fc, 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398,
+	0x85aa, 0x85ce, 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931,
+	0x5ba4, 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, 0xf972, 0x6df1,
+	0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341, 0xf973, 0x96d9, 0x6c0f,
+	0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25, 0x5ce8, 0x6211, 0x7259, 0x82bd,
+	0x83aa, 0x86fe, 0x8859, 0x8a1d, 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d,
+	0x580a, 0x5cb3, 0x5dbd, 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25,
+	0x9102, 0x9354, 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f,
+	0x6848, 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb,
+	0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4, 0x95c7,
+	0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f, 0x663b, 0x6b83,
+	0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16, 0x611b, 0x66d6, 0x6daf,
+	0x788d, 0x827e, 0x9698, 0x9744, 0x5384, 0x627c, 0x6396, 0x6db2, 0x7e0a,
+	0x814b, 0x984d, 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6,
+	0x591c, 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31,
+	0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d, 0xf977,
+	0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da, 0x6518, 0x656d,
+	0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001, 0x716c, 0x75d2, 0x760d,
+	0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c, 0x8944, 0xf97d, 0x8b93, 0x91c0,
+	0x967d, 0xf97e, 0x990a, 0x5704, 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6,
+	0x8a9e, 0x99ad, 0x9b5a, 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6,
+	0x5043, 0x5830, 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa,
+	0x513c, 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88,
+	0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, 0xf983, 0x6b5f, 0x6c5d,
+	0xf984, 0x74b5, 0x7916, 0xf985, 0x8207, 0x8245, 0x8339, 0x8f3f, 0x8f5d,
+	0xf986, 0x9918, 0xf987, 0xf988, 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79,
+	0x6613, 0xf98b, 0xf98c, 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b,
+	0x56a5, 0x5827, 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990,
+	0x6350, 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5,
+	0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5, 0xf994,
+	0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f, 0xf997, 0x884d,
+	0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b, 0x9cf6, 0xf99c, 0xf99d,
+	0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1, 0xf9a0, 0xf9a1, 0x95b1, 0x53ad,
+	0xf9a2, 0xf9a3, 0xf9a4, 0x67d3, 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276,
+	0x82d2, 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449,
+	0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac, 0x6620,
+	0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41, 0x6fda, 0x701b,
+	0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b, 0xf9ae, 0x74d4, 0x76c8,
+	0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1, 0x8a60, 0x8fce, 0xf9b1, 0x9348,
+	0xf9b2, 0x9719, 0xf9b3, 0xf9b4, 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1,
+	0x66f3, 0x6c6d, 0x6fca, 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602,
+	0xf9b6, 0x88d4, 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713,
+	0x9810, 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da,
+	0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca, 0x6556,
+	0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, 0x70cf, 0x71ac, 0x7352, 0x7b7d,
+	0x8708, 0x8aa4, 0x9c32, 0x9f07, 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a,
+	0x6eab, 0x7465, 0x761f, 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1,
+	0x74ee, 0x7515, 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6,
+	0x7aa9, 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b,
+	0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9, 0x7feb,
+	0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0, 0x5f80, 0x65fa,
+	0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a, 0x77ee, 0x5916, 0x5d6c,
+	0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb, 0x50e5, 0x51f9, 0x582f, 0x592d,
+	0x5996, 0x59da, 0x5be5, 0xf9bc, 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493,
+	0x64fe, 0xf9be, 0x66dc, 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1,
+	0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef, 0x8981,
+	0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32, 0x6d74, 0x7e1f,
+	0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7, 0x57c7, 0x5889, 0x5bb9,
+	0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67, 0x6eb6, 0x7194, 0x7462, 0x7528,
+	0x752c, 0x8073, 0x8338, 0x84c9, 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e,
+	0x4f51, 0x5076, 0x512a, 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24,
+	0x611a, 0x6182, 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991,
+	0x79b9, 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5,
+	0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631, 0x682f,
+	0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52, 0x6b9e, 0x6f90,
+	0x7189, 0x8018, 0x82b8, 0x8553, 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a,
+	0x9b31, 0x4e90, 0x718a, 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712,
+	0x57a3, 0x5a9b, 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39,
+	0x6e72, 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060,
+	0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d, 0x5049,
+	0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170, 0x6690, 0x6e2d,
+	0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466, 0x853f, 0x875f, 0x885b,
+	0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f, 0x4e73, 0x4f91, 0x5112, 0x516a,
+	0xf9c7, 0x552f, 0x55a9, 0x5b7a, 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0,
+	0x60df, 0x6108, 0x6109, 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da,
+	0xf9c9, 0x6961, 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, 0x6fe1,
+	0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652, 0xf9ce, 0xf9cf,
+	0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb, 0x8aed, 0x8e30, 0x8e42,
+	0x904a, 0x903e, 0x907a, 0x9149, 0x91c9, 0x936e, 0xf9d0, 0xf9d1, 0x5809,
+	0xf9d2, 0x6bd3, 0x8089, 0x80b2, 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39,
+	0xf9d5, 0xf9d6, 0x6f64, 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f,
+	0xf9d8, 0xf9d9, 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d,
+	0xf9dc, 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59,
+	0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3, 0x9091,
+	0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100, 0x5b9c, 0x610f,
+	0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3, 0x7fa9, 0x8264, 0x858f,
+	0x87fb, 0x8863, 0x8abc, 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd,
+	0xf9de, 0x5937, 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0,
+	0xf9e1, 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5,
+	0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7, 0xf9e8,
+	0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c, 0xf9eb, 0xf9ec,
+	0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a, 0x4eba, 0x4ec1, 0x5203,
+	0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb, 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e,
+	0xf9ee, 0xf9ef, 0x7d6a, 0x8335, 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d,
+	0x9777, 0xf9f2, 0xf9f3, 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2,
+	0x9038, 0x93b0, 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4,
+	0xf9f5, 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, 0xf9f7, 0xf9f8,
+	0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4, 0x523a, 0x54a8, 0x59c9,
+	0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063, 0x6148, 0x6ecb, 0x7099, 0x716e,
+	0x7386, 0x74f7, 0x75b5, 0x78c1, 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517,
+	0x85c9, 0x8aee, 0x8cc7, 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628,
+	0x707c, 0x70b8, 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71,
+	0x68e7, 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a,
+	0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef, 0x596c,
+	0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756, 0x6a1f, 0x6aa3,
+	0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b, 0x7ae0, 0x7ca7, 0x8178,
+	0x81df, 0x81e7, 0x838a, 0x846c, 0x8523, 0x8594, 0x85cf, 0x88dd, 0x8d13,
+	0x91ac, 0x9577, 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750,
+	0x683d, 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09,
+	0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e, 0x5132,
+	0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17, 0x6cae, 0x6e1a,
+	0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7, 0x83f9, 0x8457, 0x85f7,
+	0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8, 0x96ce, 0x9f5f, 0x52e3, 0x540a,
+	0x5ae1, 0x5bc2, 0x6458, 0x6575, 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d,
+	0x7b1b, 0x7c4d, 0x7e3e, 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1,
+	0x8e5f, 0x8fea, 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168,
+	0x5178, 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb,
+	0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, 0x714e, 0x7420, 0x7530,
+	0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b, 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e,
+	0x8f3e, 0x8f49, 0x923f, 0x9293, 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b,
+	0x991e, 0x5207, 0x622a, 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76,
+	0x5360, 0x5cbe, 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede,
+	0x63a5, 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448,
+	0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a, 0x653f,
+	0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89, 0x6b63, 0x6c40,
+	0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1, 0x738e, 0x73fd, 0x753a,
+	0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d, 0x7cbe, 0x7d8e, 0x8247, 0x8a02,
+	0x8aea, 0x8c9e, 0x912d, 0x914a, 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706,
+	0x9756, 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d,
+	0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd, 0x85ba,
+	0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d, 0x984c, 0x9f4a,
+	0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14, 0x5f6b, 0x63aa, 0x64cd,
+	0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d, 0x689d, 0x68d7, 0x69fd, 0x6f15,
+	0x6f6e, 0x7167, 0x71e5, 0x722a, 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df,
+	0x7a20, 0x7a95, 0x7c97, 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4,
+	0x8a54, 0x8abf, 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5,
+	0x9ce5, 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9,
+	0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9, 0x742e,
+	0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, 0x8e2a, 0x8e35, 0x937e, 0x9418,
+	0x4f50, 0x5750, 0x5de6, 0x5ea7, 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f,
+	0x505a, 0x59dd, 0x80c4, 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde,
+	0x5eda, 0x665d, 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d,
+	0x70b7, 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db,
+	0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152, 0x9444,
+	0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8, 0x5bef, 0x5cfb,
+	0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c, 0x756f, 0x7ae3, 0x8822,
+	0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301, 0x4e2d, 0x4ef2, 0x8846, 0x91cd,
+	0x537d, 0x6adb, 0x696b, 0x6c41, 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef,
+	0x70dd, 0x7511, 0x75c7, 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea,
+	0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f, 0x65e8,
+	0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c, 0x77e5, 0x7825,
+	0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3, 0x829d, 0x82b7, 0x8718,
+	0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072, 0x76f4, 0x7a19, 0x7a37, 0x7e54,
+	0x8077, 0x5507, 0x55d4, 0x5875, 0x632f, 0x6422, 0x6649, 0x664b, 0x686d,
+	0x699b, 0x6b84, 0x6d25, 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9,
+	0x76e1, 0x771e, 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897,
+	0x8a3a, 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707,
+	0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be, 0x79e9,
+	0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f, 0x6715, 0xf9fd,
+	0x57f7, 0x6f57, 0x7ddd, 0x8f2f, 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84,
+	0x4e14, 0x4f98, 0x501f, 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64,
+	0x78cb, 0x7b9a, 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740,
+	0x7a84, 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da,
+	0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d, 0x9910,
+	0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed, 0x53c3, 0x5879,
+	0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92, 0x8b96, 0x5009, 0x5021,
+	0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70, 0x6134, 0x655e, 0x660c, 0x6636,
+	0x66a2, 0x69cd, 0x6ec4, 0x6f32, 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259,
+	0x83d6, 0x84bc, 0x50b5, 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826,
+	0x7db5, 0x83dc, 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, 0x8cac,
+	0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254, 0x5c3a, 0x617d,
+	0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620, 0x810a, 0x8e60, 0x965f,
+	0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929, 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa,
+	0x7394, 0x7a7f, 0x821b, 0x85a6, 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1,
+	0x9621, 0x97c6, 0x51f8, 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4,
+	0x8f1f, 0x8f4d, 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb,
+	0x7c3d, 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252,
+	0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8, 0x807d,
+	0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff, 0x6d95, 0x6eef,
+	0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d, 0x527f, 0x54e8, 0x6194,
+	0x6284, 0x62db, 0x68a2, 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d,
+	0x7901, 0x790e, 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549,
+	0x8c82, 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7,
+	0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a, 0x5bf5,
+	0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283, 0x64ae, 0x50ac,
+	0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e, 0x6978, 0x6a1e, 0x6e6b,
+	0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf, 0x8da8, 0x8ffd, 0x9112, 0x914b,
+	0x919c, 0x9310, 0x9318, 0x939a, 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c,
+	0x795d, 0x7afa, 0x7b51, 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8,
+	0x9010, 0x6625, 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0,
+	0x6c96, 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, 0x8d05, 0x53d6,
+	0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0, 0x805a, 0x8106, 0x81ed,
+	0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074, 0x4ec4, 0x53a0, 0x60fb, 0x6e2c,
+	0x5c64, 0x4f88, 0x5024, 0x55e4, 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb,
+	0x6dc4, 0x71be, 0x75d4, 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb,
+	0x7f6e, 0x81f4, 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5,
+	0x98ed, 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88,
+	0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31, 0x5feb,
+	0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253, 0x62d6, 0x6736,
+	0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c, 0x5353, 0x5544, 0x577c,
+	0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b, 0x67dd, 0x6fc1, 0x6fef, 0x7422,
+	0x7438, 0x8a17, 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e,
+	0x7058, 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d,
+	0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03, 0x8569,
+	0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70, 0x6cf0, 0x7b1e,
+	0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04, 0x64c7, 0x6fa4, 0x6491,
+	0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e, 0x615f, 0x6876, 0xfa05, 0x75db,
+	0x7b52, 0x7d71, 0x901a, 0x5806, 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839,
+	0x5078, 0x5957, 0x59ac, 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6,
+	0x5761, 0x5a46, 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e,
+	0x722c, 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742,
+	0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, 0x962a, 0x516b, 0x53ed,
+	0x634c, 0x4f69, 0x5504, 0x6096, 0x6557, 0x6c9b, 0x6d7f, 0x724c, 0x72fd,
+	0x7a17, 0x8987, 0x8c9d, 0x5f6d, 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf,
+	0x504f, 0x6241, 0x7247, 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19,
+	0x8cb6, 0x576a, 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63,
+	0x5ee2, 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305,
+	0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b, 0x62b1,
+	0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de, 0x812f, 0x82de,
+	0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea, 0x98fd, 0x9b91, 0x5e45,
+	0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07, 0x4ff5, 0x527d, 0x5f6a, 0x6153,
+	0x6753, 0x6a19, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4,
+	0x9a43, 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c,
+	0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c, 0x5fc5,
+	0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d, 0x4e4f, 0x903c,
+	0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630, 0x6cb3, 0x7455, 0x8377,
+	0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15, 0x58d1, 0x5b78, 0x8650, 0x8b14,
+	0x9db4, 0x5bd2, 0x6068, 0x608d, 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a,
+	0x7f55, 0x7ff0, 0x9591, 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd,
+	0x542b, 0x54b8, 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c,
+	0x9677, 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c,
+	0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d, 0x6841,
+	0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, 0xfa08, 0xfa09, 0x9805, 0x4ea5,
+	0x5055, 0x54b3, 0x5793, 0x595a, 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77,
+	0x7023, 0x87f9, 0x89e3, 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be,
+	0x6838, 0x5016, 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae,
+	0x73e6, 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b,
+	0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57, 0x5955,
+	0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8, 0x665b, 0x6ceb,
+	0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d, 0x7d43, 0x7d62, 0x7e23,
+	0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249, 0x986f, 0x5b51, 0x7a74, 0x8840,
+	0x9801, 0x5acc, 0x4fe0, 0x5354, 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9,
+	0x8105, 0x8107, 0x83a2, 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b,
+	0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9, 0x7469,
+	0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8, 0x516e, 0x5f57,
+	0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af, 0x978b, 0x4e4e, 0x4e92,
+	0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5, 0x5f27, 0x6236, 0x6248, 0x660a,
+	0x6667, 0x6beb, 0x6d69, 0x6dcf, 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9,
+	0x705d, 0x72d0, 0x7425, 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e,
+	0x80e1, 0x82a6, 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a,
+	0x93ac, 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7,
+	0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18, 0x6c5e,
+	0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b, 0x5316, 0x548c,
+	0x5b05, 0x6a3a, 0x706b, 0x7575, 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71,
+	0x8b41, 0x8ca8, 0x9774, 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b,
+	0x4e38, 0x559a, 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665,
+	0x6853, 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b,
+	0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d, 0x60f6,
+	0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f, 0x6ec9, 0x6f62,
+	0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352, 0x8757, 0x9051, 0x968d,
+	0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a, 0x6062, 0x6094, 0x61f7, 0x6666,
+	0x6703, 0x6a9c, 0x6dee, 0x6fae, 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334,
+	0x86d4, 0x8aa8, 0x8cc4, 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee,
+	0x5686, 0x5b5d, 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, 0x723b,
+	0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e, 0x543c, 0x5589,
+	0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd, 0x9005, 0x52db, 0x52f3,
+	0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb, 0x85b0, 0x8a13, 0x6688, 0x85a8,
+	0x55a7, 0x6684, 0x714a, 0x8431, 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd,
+	0x63ee, 0x6689, 0x7147, 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb,
+	0x7566, 0x8667, 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36,
+	0x80f8, 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07,
+	0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5, 0x8208,
+	0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09, 0x5e0c, 0x6199,
+	0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9, 0x71ba, 0x72a7, 0x79a7,
+	0x7a00, 0x7fb2, 0x8a70,
 	0/*  End of table; # of entries=8741(0x2225)+1 */
 
 };
blob - cb223dae213ce51bbdb5862f36314c23168bf545
blob + 5afa316a97d1735e81c06218cda25d90a2c71a50
--- src/cmd/tcs/misc.h
+++ src/cmd/tcs/misc.h
@@ -16,14 +16,14 @@ long tabatari[256] =	/* from jhelling@cs.ruu.nl (Jeroe
 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
 0x00e3, 0x00f5, 0x00d8, 0x00f8, 0x0153, 0x0152, 0x00c0, 0x00c3,
 0x00d5, 0x00a8, 0x00b4, 0x2020, 0x00b6, 0x00a9, 0x00ae, 0x2122,
-0x0133, 0x0132, 
+0x0133, 0x0132,
                 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, /* hebrew */
 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05db, 0x05dc, 0x05de, 0x05e0,
 0x05e1, 0x05e2, 0x05e4, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea,
-0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5, 
+0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5,
                                         0x00a7, 0x2038, 0x221e, /* math */
 0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */
-0x03a6, 0x03b8, 0x2126, 0x03b4, 
+0x03a6, 0x03b8, 0x2126, 0x03b4,
                                 0x222e, 0x03c6, 0x2208, 0x220f, /* math */
 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
 0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x00b3, 0x00af
@@ -141,7 +141,7 @@ long tabps2[256] =	/* from jhelling@cs.ruu.nl (Jeroen 
 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
-0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, 
+0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
blob - 617dd198a97c617399a28ab081ba0b0bb8f8193f
blob + 90ecfec5bb546e30efadc51bfc98d9d79cbe3b5a
--- src/cmd/tcs/ms.h
+++ src/cmd/tcs/ms.h
@@ -5,10 +5,10 @@
 for(i in $*){
 	j=`{echo $i | sed 's;.*./;cp;'}
 	echo long tab$j'[256] = {'
-	hget http://www.microsoft.com/globaldev/reference/$i.mspx | htmlfmt | 
+	hget http://www.microsoft.com/globaldev/reference/$i.mspx | htmlfmt |
 		9 grep '^.. = U\+....:' | 9 sed 's/= U\+/ 0x/; s/:.*.//' | awk '
 			{ t[$1] = $2 }
-			END { 
+			END {
 				for(i=0; i<256; i++) {
 					s = sprintf("%.2X", i);
 					if(s in t)
blob - 6722bb6bef8805ca80b35417cdbe828fa5bd6872
blob + d796ba63ecc504825832854271507bda63d50ba6
--- src/cmd/tcs/tcs.c
+++ src/cmd/tcs/tcs.c
@@ -55,7 +55,7 @@ main(int argc, char **argv)
 		break;
 	case 'f':
 		from = EARGF(usage());
-		break;	
+		break;
 	case 'l':
 		listem = 1;
 		break;
@@ -454,7 +454,7 @@ long tabmsdos[256] =	/* from jhelling@cs.ruu.nl (Jeroe
 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 
+0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */
 0x03a6, 0x0398, 0x2126, 0x03b4, 0x221e, 0x2205, 0x2208, 0x2229,
@@ -483,7 +483,7 @@ long tabmsdos2[256] =	/* from jhelling@cs.ruu.nl (Jero
 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 
+0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */
 0x03a6, 0x0398, 0x2126, 0x03b4, 0x221e, 0x2205, 0x2208, 0x2229,
blob - 1046b779650658b399ba494467885b1a04dcd297
blob + 5542008d4ad95a09f54745676cdbc24d49f053eb
--- src/cmd/tcs/tune.c
+++ src/cmd/tcs/tune.c
@@ -30,7 +30,7 @@ static Tmap t1[] =
 
 static Rune t2[] =
 {
-	0x0bcd/*்*/, 
+	0x0bcd/*்*/,
 	0x0bcd/*்*/,	// filler
 	0x0bbe/*ா*/,
 	0x0bbf/*ி*/,
@@ -112,7 +112,7 @@ tune_in(int fd, long *x, struct convert *out)
 	Rune rbuf[N];
 	Rune *r, *er, tr;
 	int c, i;
-	
+
 	USED(x);
 	r = rbuf;
 	er = rbuf+N-3;
@@ -159,7 +159,7 @@ tune_in(int fd, long *x, struct convert *out)
 			case 0xe38d/**/:
 				*r++ = 0x0bb6/*ஶ*/; *r++ = 0x0bcd/*்*/; *r++ = 0x0bb0/*ர*/; *r++ = 0x0bc0/*ீ*/;
 				break;
-			default: 
+			default:
 				if(c >= 0xe200 && c <= 0xe3ff){
 					if(squawk)
 						EPR "%s: rune 0x%x not in output cs\n", argv0, c);
blob - 6688293e33b72599114f6fb15f30d9b4141aec1c
blob + 471e2b17d3474eb50d24139a0dcdda431e154bd0
--- src/cmd/touch.c
+++ src/cmd/touch.c
@@ -27,7 +27,7 @@ main(int argc, char **argv)
 	case 'c':
 		nocreate = 1;
 		break;
-	default:	
+	default:
 		usage();
 	}ARGEND
 
blob - 9c98d197734555687eeaefd3faa276b86eb441e0
blob + de43dcd23a95af78672813106b8db4276b96527e
--- src/cmd/tpic/arcgen.c
+++ src/cmd/tpic/arcgen.c
@@ -211,4 +211,3 @@ quadrant(double x, double y)
 	else if( x> 0.0 && y<=0.0) return(4);
 	else			   return 0;	/* shut up lint */
 }
-
blob - 8a7e08be5dc576de1cd14b2473bdac77a21c3ed9
blob + 639cdb474de3fc0271a19e577383b8606213df62
--- src/cmd/tpic/linegen.c
+++ src/cmd/tpic/linegen.c
@@ -197,7 +197,7 @@ linegen(int type)
 			extreme(ex, ey);
 			nx = xi; ny = yi;
 		}
-			
+
 	}
 	p->o_ddval = ddval;
 	if (dbg) {
blob - 438e71a6ec3557bbc80d90e565ca5148b2940f24
blob + a11c74782fd3812e2b01f1734448b9829934ada7
--- src/cmd/tpic/pic.h
+++ src/cmd/tpic/pic.h
@@ -285,4 +285,3 @@ void		yyerror(char *s);
 int		yyparse(void);
 
 #include "tex.h"
-
blob - ade5df6b526715e839bc9e585b8274b3e8b86537
blob + 678dba60769951d44c4f82897daece4338c61253
--- src/cmd/tpic/tex.c
+++ src/cmd/tpic/tex.c
@@ -20,7 +20,7 @@ devarc(double x1, double y1, double x2, double y2, dou
 }
 
 void
-box(double x0, double y0, double x1, double y1) 
+box(double x0, double y0, double x1, double y1)
 {
 	fprintf(TEXFILE,"    \\special{pa %d %d}",TRX(x0),TRY(y0));
 	fprintf(TEXFILE,"\\special{pa %d %d}",TRX(x1),TRY(y0));
@@ -104,16 +104,16 @@ frame(double xs, double ys, double xf, double yf)
 }
 
 void
-line(double x0, double y0, double x1, double y1) 
+line(double x0, double y0, double x1, double y1)
 {
 	move(x0, y0);
 	vec(x1, y1);
 }
 
 void
-move(double xx, double yy) 
+move(double xx, double yy)
 {
-	e1->copyx = xx; 
+	e1->copyx = xx;
 	e1->copyy = yy;
 }
 
@@ -136,7 +136,7 @@ FILE *TEXFILE;
 
 void
 openpl(void)
-{ 
+{
 	TEXFILE = stdout;
 
 	space(xmin, ymin, xmax, ymax);
@@ -152,7 +152,7 @@ openpl(void)
 }
 
 void
-range(double x0, double y0, double x1, double y1) 
+range(double x0, double y0, double x1, double y1)
 {
 	e1->xmin = x0;
 	e1->ymin = y0;
@@ -165,30 +165,30 @@ range(double x0, double y0, double x1, double y1) 
 }
 
 void
-rmove(double xx, double yy) 
+rmove(double xx, double yy)
 {
 	e1->copyx += xx;
 	e1->copyy += yy;
 }
 
 void
-rvec(double xx, double yy)  
+rvec(double xx, double yy)
 {
 	vec(xx+e1->copyx, yy+e1->copyy);
 }
 
 void
-sbox(double x0, double y0, double x1, double y1) 
+sbox(double x0, double y0, double x1, double y1)
 {
 	fprintf(TEXFILE,"    \\special{bk}%%\n");
 	box(x0, y0, x1, y1);
 }
 
 void
-vec(double xx, double yy) 
+vec(double xx, double yy)
 {
 	fprintf(TEXFILE,"    \\special{pa %d %d}",TRX(e1->copyx),TRY(e1->copyy));
-	e1->copyx = xx; 
+	e1->copyx = xx;
 	e1->copyy = yy;
 	fprintf(TEXFILE,"\\special{pa %d %d}",TRX(xx),TRY(yy));
 	switch(e1->pen){
blob - 036967d6d6edcd58999ea2220e1944c794cf86cc
blob + 3b20c49bffb878b847db4de844040a8131abe5e2
--- src/cmd/tr.c
+++ src/cmd/tr.c
@@ -139,7 +139,7 @@ complement(void)
 				writerune(1, (Rune) from);
 			}
 		}
-				
+
 	} else {
 		while (readrune(0, &from) > 0){
 			if (from > high)
@@ -191,7 +191,7 @@ translit(void)
 				writerune(1, (Rune) from);
 			}
 		}
-				
+
 	} else {
 		while (readrune(0, &from) > 0) {
 			if (from <= high)
blob - 064a0b02746165b2c72558d185b4cf793e660d75
blob + 5ecad041218a293839d269afac638a1e3b05c7b3
--- src/cmd/troff/dwbinit.c
+++ src/cmd/troff/dwbinit.c
@@ -55,7 +55,7 @@
  *		NULL, xyzzy, sizeof(xyzzy),
  *		NULL, NULL, 0
  *	};
- *		
+ *
  * The last element must have NULL entries for the address and
  * value fields. The main() routine would then do,
  *
@@ -300,7 +300,7 @@ void DWBprefix( char *prog, char *path, int length)
  * not great, but should be good enough for now. Also probably should
  * have DWBhome() only do the lookup once, and remember the value if
  * called again.
- * 
+ *
  */
 
     if ( strncmp(path, DWBPREFIX, len) == 0 ) {
@@ -315,4 +315,3 @@ void DWBprefix( char *prog, char *path, int length)
 }   /* End of DWBprefix */
 
 /*****************************************************************************/
-
blob - 8df12f2c6e34c8b9d6d6464e450dbb1867afcd5d
blob + 4c2fcf9d814812f2d24d51af732447459b0e787d
--- src/cmd/troff/ext.h
+++ src/cmd/troff/ext.h
@@ -184,4 +184,3 @@ extern int	c_isalnum;
 extern char	*DWBfontdir;
 extern char	*DWBntermdir;
 extern char	*DWBalthyphens;
-
blob - c97b036ca8ee2f520857f95c466271d0e88efc66
blob + 3976350882ef081e000c9c0555e33706b2c1935c
--- src/cmd/troff/mbwc.c
+++ src/cmd/troff/mbwc.c
@@ -162,4 +162,3 @@ wcstombs(char *s, const wchar_t *pwcs, size_t n)
 	}
 	return p-s;
 }
-
blob - c65898cec0f5528cc29e8b773d23bd7bbc9d6377
blob + adda8c4b46ccabe4256644df55392c7ce7f2bb9b
--- src/cmd/troff/n1.c
+++ src/cmd/troff/n1.c
@@ -148,7 +148,7 @@ main(int argc, char *argv[])
 			save_tty();
 			break;
 		case 'V':
-			fprintf(stdout, "%croff: DWB %s\n", 
+			fprintf(stdout, "%croff: DWB %s\n",
 					TROFF ? 't' : 'n', DWBVERSION);
 			exit(0);
 		case 't':
@@ -436,12 +436,12 @@ g0:
 			return(k);
 		}
 		if (k == FLSS) {
-			copyf++; 
+			copyf++;
 			raw++;
 			i = getch0();
 			if (!fi)
 				flss = i;
-			copyf--; 
+			copyf--;
 			raw--;
 			goto g0;
 		}
@@ -456,8 +456,8 @@ g0:
 			}
 			if (k == fc || k == tabch || k == ldrch) {
 				if ((i = setfield(k)) == 0)
-					goto g0; 
-				else 
+					goto g0;
+				else
 					return(i);
 			}
 			if (k == '\b') {
blob - b6be4c512b0c5d06395362b83da68de39514962e
blob + 6f41dae23135d7484ee35682f3b39f4e62aa6af7
--- src/cmd/troff/n10.c
+++ src/cmd/troff/n10.c
@@ -319,7 +319,7 @@ void ptout1(void)
 				j = -j;
 			if (isvmot(i))
 				lead += j;
-			else 
+			else
 				esc += j;
 			continue;
 		}
@@ -432,13 +432,13 @@ char *plot(char *x)
 		} else if (*k & 0200) {
 			if (*k & 0100) {
 				if (*k & 040)
-					j = t.up; 
-				else 
+					j = t.up;
+				else
 					j = t.down;
 			} else {
 				if (*k & 040)
-					j = t.left; 
-				else 
+					j = t.left;
+				else
 					j = t.right;
 			}
 			if ((i = *k & 037) == 0) {	/* 2nd 0200 turns it off */
@@ -447,7 +447,7 @@ char *plot(char *x)
 			}
 			while (i--)
 				oputs(j);
-		} else 
+		} else
 			oput(*k);
 	}
 	oputs(t.plotoff);
@@ -464,8 +464,8 @@ void move(void)
 
 	iesct = esct;
 	if (esct += esc)
-		i = "\0"; 
-	else 
+		i = "\0";
+	else
 		i = "\n\0";
 	j = t.hlf;
 	p = t.right;
@@ -492,10 +492,10 @@ void move(void)
 		} else { /* no half-line forward, not at line begining */
 			k = lead / t.Newline;
 			lead = lead % t.Newline;
-			if (k > 0) 
+			if (k > 0)
 				esc = esct;
 			i = "\n";
-			while (k--) 
+			while (k--)
 				oputs(i);
 		}
 	}
blob - 2943e55307b2ecd96e3c951cadb94ef4c72d8da0
blob + 41b2ec1e2ea1db2db6a7b26ee8c86abad97c09d2
--- src/cmd/troff/n2.c
+++ src/cmd/troff/n2.c
@@ -53,7 +53,7 @@ int pchar(Tchar i)
 		return 0;
 	}
 	if (ismot(i)) {
-		pchar1(i); 
+		pchar1(i);
 		return 0;
 	}
 	switch (j = cbits(i)) {
@@ -213,7 +213,7 @@ void caseex(void)
 }
 
 
-void done(int x) 
+void done(int x)
 {
 	int i;
 
@@ -249,7 +249,7 @@ void done(int x) 
 }
 
 
-void done1(int x) 
+void done1(int x)
 {
 	error |= x;
 	if (numtabp[NL].val) {
@@ -263,7 +263,7 @@ void done1(int x) 
 }
 
 
-void done2(int x) 
+void done2(int x)
 {
 	ptlead();
 	if (TROFF && !ascii)
@@ -272,7 +272,7 @@ void done2(int x) 
 	done3(x);
 }
 
-void done3(int x) 
+void done3(int x)
 {
 	error |= x;
 	flusho();
@@ -284,7 +284,7 @@ void done3(int x) 
 }
 
 
-void edone(int x) 
+void edone(int x)
 {
 	frame = stk;
 	nxf = frame + 1;
blob - 8279d74892e8f25f716ecf91f1a18099a49af353
blob + 1c7c574f62fb49bce7838576435f6eb2e2c8fac2
--- src/cmd/troff/n3.c
+++ src/cmd/troff/n3.c
@@ -1,6 +1,6 @@
 /*
  * troff3.c
- * 
+ *
  * macro and string routines, storage allocation
  */
 
@@ -137,7 +137,7 @@ void maddhash(Contab *rp)
 }
 
 void munhash(Contab *mp)
-{	
+{
 	Contab *p;
 	Contab **lp;
 
@@ -326,7 +326,7 @@ Offset finds(int mn)
 			if (contabp[i].rq == 0)
 				break;
 		}
-		if (i == nm) 
+		if (i == nm)
 			growcontab();
 		freeslot = i + 1;
 		if ((nextb = alloc()) == -1) {
@@ -531,7 +531,7 @@ Tchar rbf(void)	/* return next char from blist[] block
 		else
 			return(popi());
 	}
-	
+
 	i = rbf0(ip);
 	if (i == 0) {
 		if (!app)
@@ -596,9 +596,9 @@ Offset pushi(Offset newip, int  mname)
 	lastpbp = pbp;
 	pendt = ch = 0;
 	frame = nxf;
-	if (nxf->nargs == 0) 
+	if (nxf->nargs == 0)
 		nxf += 1;
-	else 
+	else
 		nxf = (Stack *)argtop;
 	return(ip = newip);
 }
@@ -624,7 +624,7 @@ int getsn(void)
 		return(0);
 	if (i == '(')
 		return(getrq());
-	else 
+	else
 		return(i);
 }
 
@@ -698,7 +698,7 @@ void collect(void)
 		quote = 0;
 		if (cbits(i = getch()) == '"')
 			quote++;
-		else 
+		else
 			ch = i;
 		while (1) {
 			i = getch();
@@ -850,7 +850,7 @@ void casetl(void)
 	if (ismot(delim = getch())) {
 		ch = delim;
 		delim = '\'';
-	} else 
+	} else
 		delim = cbits(delim);
 	tp = buf;
 	numtabp[HP].val = 0;
@@ -932,7 +932,7 @@ void casepm(void)
 		tcnt++;
 		j = contabp[i].mx;
 		for (k = 1; (j = blist[bindex(j)].nextoff) != -1; )
-			k++; 
+			k++;
 		cnt++;
 		kk += k;
 		if (!tot)
blob - a1abe943d96493a7e25e41cd76035ba14c552ce4
blob + 08e06ad36c33ecb9da91eb756e559744da6014fb
--- src/cmd/troff/n4.c
+++ src/cmd/troff/n4.c
@@ -123,7 +123,7 @@ void setn(void)
 			i = ls;
 			break;
 		case 'R':	/* maximal # of regs that can be addressed */
-			i = 255*256 - regcnt; 
+			i = 255*256 - regcnt;
 			break;
 		case 'z':
 			p = unpair(dip->curd);
@@ -137,7 +137,7 @@ void setn(void)
 			cpushback(cfname[ifi]);
 			return;
  		case 'S':
- 			buf[0] = j = 0;	
+ 			buf[0] = j = 0;
  			for( i = 0; tabtab[i] != 0 && i < NTAB; i++) {
  				if (i > 0)
  					buf[j++] = ' ';
blob - 7266432794e3021b88591f50391a82d53c5d632b
blob + eab395fef51ded6afe92d33dc756e5514051f769
--- src/cmd/troff/n5.c
+++ src/cmd/troff/n5.c
@@ -1,6 +1,6 @@
 /*
  * troff5.c
- * 
+ *
  * misc processing requests
  */
 
@@ -30,16 +30,16 @@ void casead(void)
 	case 'c':	/*centered adj*/
 		admod = 1;
 		break;
-	case 'b': 
+	case 'b':
 	case 'n':
 		admod = 0;
 		break;
-	case '0': 
-	case '2': 
+	case '0':
+	case '2':
 	case '4':
 		ad = 0;
-	case '1': 
-	case '3': 
+	case '1':
+	case '3':
 	case '5':
 		admod = (i - '0') / 2;
 	}
@@ -87,7 +87,7 @@ chget(int c)
 	if (skip() || ismot(i = getch()) || cbits(i) == ' ' || cbits(i) == '\n') {
 		ch = i;
 		return(c);
-	} else 
+	} else
 		return cbits(i);	/* was (i & BYTEMASK) */
 }
 
@@ -148,7 +148,7 @@ max(int aa, int bb)
 {
 	if (aa > bb)
 		return(aa);
-	else 
+	else
 		return(bb);
 }
 
@@ -278,7 +278,7 @@ void casepl(void)
 	skip();
 	if ((i = vnumb(&pl)) == 0)
 		pl = 11 * INCH; /*11in*/
-	else 
+	else
 		pl = i;
 	if (numtabp[NL].val > pl)
 		numtabp[NL].val = pl;
@@ -321,7 +321,7 @@ void casech(void)
 	skip();
 	if (!(j = getrq()))
 		return;
-	else 
+	else
 		for (k = 0; k < NTRAP; k++)
 			if (mlist[k] == j)
 				break;
@@ -399,7 +399,7 @@ void casefm(void)
 		ERROR "fm: missing filename" WARN;
 		return;
 	}
-		
+
 	for (i = 0; i < 15 && fcache[i].fp != NULL; i++) {
 		if (strcmp(nextf, fcache[i].name) == 0)
 			break;
@@ -418,7 +418,7 @@ void casefm(void)
 	casetm1(0, fcache[i].fp);
 }
 
-void casetm1(int ab, FILE *out) 
+void casetm1(int ab, FILE *out)
 {
 	int i, j, c;
 	char *p;
@@ -444,7 +444,7 @@ void casetm1(int ab, FILE *out) 
 			trace = savtrac;
 		}
 	} else
-		skip();	
+		skip();
 	for (i = 0; i < NTM - 2; ) {
 		if ((c = cbits(getch())) == '\n' || c == RIGHT)
 			break;
@@ -517,7 +517,7 @@ void casesp1(int a)
 		j = vnumb((int *)0);
 		if (nonumb)
 			j = lss;
-	} else 
+	} else
 		j = a;
 	if (j == 0)
 		return;
@@ -525,8 +525,8 @@ void casesp1(int a)
 		j = i;
 	savlss = lss;
 	if (dip != d)
-		i = dip->dnl; 
-	else 
+		i = dip->dnl;
+	else
 		i = numtabp[NL].val;
 	if ((i + j) < 0)
 		j = -i;
@@ -542,8 +542,8 @@ void casert(void)
 
 	skip();
 	if (dip != d)
-		p = &dip->dnl; 
-	else 
+		p = &dip->dnl;
+	else
 		p = &numtabp[NL].val;
 	a = vnumb(p);
 	if (nonumb)
@@ -594,7 +594,7 @@ e0:
 		ERROR "cannot do .ev %d", nxev WARN;
 		if (error)
 			done2(040);
-		else 
+		else
 			edone(040);
 		return;
 	}
@@ -840,7 +840,7 @@ rdtty(void)
 	if (read(0, &onechar, 1) == 1) {
 		if (onechar == '\n')
 			tty++;
-		else 
+		else
 			tty = 1;
 		if (tty != 3)
 			return(onechar);
@@ -878,7 +878,7 @@ void caseta(void)
 			j = TABMASK;
 		}
 		tabtab[i] = j & TABMASK;
-		if (!nonumb) 
+		if (!nonumb)
 			switch (cbits(ch)) {
 			case 'C':
 				tabtab[i] |= CTAB;
@@ -976,7 +976,7 @@ void caseuf(void)
 
 	if (skip() || !(i = getrq()) || i == 'S' ||  (j = findft(i))  == -1)
 		ulfont = ULFONT; /*default underline position*/
-	else 
+	else
 		ulfont = j;
 	if (NROFF && ulfont == FT)
 		ulfont = ULFONT;
@@ -1022,8 +1022,8 @@ void casemk(void)
 	int i, j;
 
 	if (dip != d)
-		j = dip->dnl; 
-	else 
+		j = dip->dnl;
+	else
 		j = numtabp[NL].val;
 	if (skip()) {
 		dip->mkline = j;
blob - 69d48f2e654f6de157d710528cdf9498d220e9c6
blob + d44e67dac2d783ac0d96567dea06ded2a027c8a0
--- src/cmd/troff/n6.c
+++ src/cmd/troff/n6.c
@@ -139,7 +139,7 @@ void n_setfont(int a)
 
 	if (a)
 		i = getrq();
-	else 
+	else
 		i = getsn();
 	if (!i || i == 'P') {
 		j = font1;
@@ -188,7 +188,7 @@ void n_setwd(void)
 				k = -k;
 			base -= k;
 			emsz = 0;
-		} else 
+		} else
 			continue;
 		if (base < numtabp[SB].val)
 			numtabp[SB].val = base;
@@ -300,7 +300,7 @@ bd0:
 	if (skip() || !(i = getrq()) || (j = findft(i)) == -1) {
 		if (k)
 			goto bd1;
-		else 
+		else
 			return;
 	}
 	if (j == smnt) {
blob - 15bcfd5b0bbac2bccf2e2a62470c9a4075fa83fb
blob + 414563c09286507c9b655ea51a295a4fb0497f00
--- src/cmd/troff/n7.c
+++ src/cmd/troff/n7.c
@@ -15,7 +15,7 @@ Tchar	gettch(void);
 
 /*
  * troff7.c
- * 
+ *
  * text
  */
 
@@ -73,8 +73,8 @@ void tbreak(void)
 	horiz(un);
 	if (NROFF) {
 		if (adrem % t.Adj)
-			resol = t.Hor; 
-		else 
+			resol = t.Hor;
+		else
 			resol = t.Adj;
 	} else
 		resol = HOR;
@@ -113,7 +113,7 @@ void tbreak(void)
 	}
 	if (icf)
 		icf++;
-	else 
+	else
 		ic = 0;
 	ne = nwd = 0;
 	un = in;
@@ -168,7 +168,7 @@ void text(void)
 	nflush++;
 	numtabp[HP].val = 0;
 	if ((dip == d) && (numtabp[NL].val == -1)) {
-		newline(1); 
+		newline(1);
 		return;
 	}
 	setnel();
@@ -180,8 +180,8 @@ void text(void)
 		goto t4;
 	if (pendt)
 		if (spcnt)
-			goto t2; 
-		else 
+			goto t2;
+		else
 			goto t3;
 	pendt++;
 	if (spcnt)
@@ -226,8 +226,8 @@ t5:
 	adsp = adrem = 0;
 	if (ad) {
 		if (nwd == 1)
-			adsp = nel; 
-		else 
+			adsp = nel;
+		else
 			adsp = nel / (nwd - 1);
 		adsp = (adsp / HOR) * HOR;
 		adrem = nel - adsp*(nwd-1);
@@ -300,8 +300,8 @@ void callsp(void)
 	int i;
 
 	if (flss)
-		i = flss; 
-	else 
+		i = flss;
+	else
 		i = lss;
 	flss = 0;
 	casesp1(i);
@@ -379,7 +379,7 @@ void newline(int a)
 		}
 		if (dip->ditrap && !dip->ditf && dip->dnl >= dip->ditrap && dip->dimac)
 			if (control(dip->dimac, 0)) {
-				trap++; 
+				trap++;
 				dip->ditf++;
 			}
 		return;
@@ -514,7 +514,7 @@ findt1(void)
 
 	if (dip != d)
 		i = dip->dnl;
-	else 
+	else
 		i = numtabp[NL].val;
 	return(findt(i));
 }
@@ -529,7 +529,7 @@ void eject(Stack *a)
 	ejf++;
 	if (a)
 		ejl = a;
-	else 
+	else
 		ejl = frame;
 	if (trap)
 		return;
blob - 9ff2ebce8b2e28b33709d565f77fdb2e4f7c2c17
blob + 92c42724fe28bb86ea5dd79296a03b1418cfe03f
--- src/cmd/troff/n8.c
+++ src/cmd/troff/n8.c
@@ -11,7 +11,7 @@
 
 /*
  * troff8.c
- * 
+ *
  * hyphenation
  */
 
@@ -59,7 +59,7 @@ void hyphen(Tchar *wp)
 
 	/* this appears to sort hyphenation points into increasing order */
 	*hyp++ = 0;
-	if (*hyptr) 
+	if (*hyptr)
 		for (j = 1; j; ) {
 			j = 0;
 			for (hyp = hyptr + 1; *hyp != 0; hyp++) {
@@ -194,7 +194,7 @@ int exword(void)
 			return(0);
 		w = wdstart;
 		while (*e && w <= hyend && (*e & 0177) == maplow(cbits(*w))) {
-			e++; 
+			e++;
 			w++;
 		}
 		if (!*e) {
@@ -209,10 +209,10 @@ int exword(void)
 				}
 				return(1);
 			} else {
-				e++; 
+				e++;
 				continue;
 			}
-		} else 
+		} else
 			while (*e++)
 				;
 	}
@@ -249,7 +249,7 @@ again:
 	}
 	s = s0 + i - 1;
 	w = hyend;
-	if (*s0 & HY_BIT) 
+	if (*s0 & HY_BIT)
 		goto mark;
 	while (s > s0) {
 		w--;
@@ -273,7 +273,7 @@ mark:
 int
 maplow(int i)
 {
-	if (isupper(i)) 
+	if (isupper(i))
 		i = tolower(i);
 	return(i);
 }
@@ -327,7 +327,7 @@ again:
 			val *= dilook('a', cbits(*w), bxh);
 		else if (w == wdstart + 1)
 			val *= dilook(cbits(*(w-1)), cbits(*w), bxxh);
-		else 
+		else
 			val *= dilook(cbits(*(w-1)), cbits(*w), xxh);
 		val *= dilook(cbits(*w), cbits(*(w+1)), xhx);
 		val *= dilook(cbits(*(w+1)), cbits(*(w+2)), hxx);
blob - 3e3ad97f2f2ad929bf763f06c392da6643cde5ef
blob + 7c09de0248d4e3e4d121a168d5d271acbd159941
--- src/cmd/troff/n9.c
+++ src/cmd/troff/n9.c
@@ -4,7 +4,7 @@
 
 /*
  * troff9.c
- * 
+ *
  * misc functions
  */
 
@@ -115,7 +115,7 @@ void setov(void)
 				}
 			}
 		}
-	else 
+	else
 		return;
 	*pbp++ = makem(w[0] / 2);
 	for (k = 0; o[k]; k++)
@@ -187,7 +187,7 @@ void setvline(void)
 	}
 	if ((cbits(c = getch())) == delim) {
 		c = BOXRULE | chbits;	/*default box rule*/
-	} else 
+	} else
 		getch();
 	c |= ZBIT;
 	neg = 0;
@@ -342,9 +342,9 @@ Tchar setfield(int x)
 	static Tchar wbuf[] = { WORDSP, 0};
 
 	rchar = 0;
-	if (x == tabch) 
+	if (x == tabch)
 		rchar = tabc | chbits;
-	else if (x ==  ldrch) 
+	else if (x ==  ldrch)
 		rchar = dotc | chbits;
 	temp = npad = ws = 0;
 	savfc = fc;
@@ -381,7 +381,7 @@ Tchar setfield(int x)
 				if (pp > padptr + NPP - 1)
 					break;
 				goto s1;
-			} else if (j == savfc) 
+			} else if (j == savfc)
 				break;
 			else if (j == '\n') {
 				temp = j;
@@ -435,7 +435,7 @@ s1:
 		}
 		if (length)
 			jj = length | MOT;
-		else 
+		else
 			jj = getch0();
 		if (savepos > 0)
 			pushback(wbuf);
@@ -448,14 +448,14 @@ s1:
 			numtabp[HP].val += jj;
 			widthp = jj;
 			*fp++ = ii;
-			if (fp > fbuf + FBUFSZ - 3) 
+			if (fp > fbuf + FBUFSZ - 3)
 				break;
 		}
 		*fp++ = ii;
 		*fp = 0;
 		if (type == RTAB)
 			length -= ws;
-		else 
+		else
 			length -= ws / 2; /*CTAB*/
 		pushback(fbuf);
 		if ((j = width(rchar)) != 0 && length > 0) {
blob - ee09ed4a037ee431bd7e202d198194e0c8899b68
blob + e12a3a08cc127f5bb287bfdbef9f5102b8ce7f21
--- src/cmd/troff/ni.c
+++ src/cmd/troff/ni.c
@@ -387,4 +387,3 @@ void	(*ptpause)(void);
 void	(*setfont)(int a);
 void	(*setps)(void);
 void	(*setwd)(void);
-
blob - b037bdda3d49d0c679a8f5d0ead5d6b8508903dc
blob + 0c77252470c32801fb46ebb5c13921a1df42f129
--- src/cmd/troff/t10.c
+++ src/cmd/troff/t10.c
@@ -4,7 +4,7 @@
 
 /*
  * troff10.c
- * 
+ *
  * typesetter interface
  */
 
@@ -169,7 +169,7 @@ int ptout0(Tchar *pi)
 			j = -j;
 		if (isvmot(i))
 			lead += j;
-		else 
+		else
 			esc += j;
 		return(outsize);
 	}
@@ -191,7 +191,7 @@ int ptout0(Tchar *pi)
 	if (sfbits(i) == oldbits) {
 		xfont = pfont;
 		xpts = ppts;
-	} else 
+	} else
 		xbits(i, 2);
 	if (k == XON) {
 		extern int xon;
@@ -232,8 +232,8 @@ int ptout0(Tchar *pi)
 		}
 		if (iszbit(i)) {
 			if (cs)
-				w = -j; 
-			else 
+				w = -j;
+			else
 				w = 0;
 			z = 1;
 		}
blob - f930d8b1b7b7c08923c1766b5cf2c441bbf57afd
blob + 9cd831c9dd80d754e6e5b4b0d72a3b942d47d862
--- src/cmd/troff/t11.c
+++ src/cmd/troff/t11.c
@@ -50,7 +50,7 @@ getdesc(char *name)
 				chadd(s, Troffchar, Install);
 			break;
 		}
-		/* else 
+		/* else
 			just skip anything else */
 		skipline(fin);
 	}
@@ -83,7 +83,7 @@ static int checkfont(char *name)
 	}
 	fclose(fp);
 	return status;
-	
+
 }
 
 int
blob - 4a2bd02483cc1f25c3b4a65d6bf8bf49d3506720
blob + 1e0dc968371a37da3e874c5e23ce60bf4c6cc571
--- src/cmd/troff/t6.c
+++ src/cmd/troff/t6.c
@@ -1,6 +1,6 @@
 /*
  * t6.c
- * 
+ *
  * width functions, sizes and fonts
  */
 
@@ -46,7 +46,7 @@ t_width(Tchar j)
 	if (sfbits(j) == oldbits) {
 		xfont = pfont;
 		xpts = ppts;
-	} else 
+	} else
 		xbits(j, 0);
 	if (i < nchnames + ALPHABET && widcache[i].fontpts == (xfont<<8) + xpts && !setwdf)
 		k = widcache[i].width;
@@ -129,7 +129,7 @@ getcw(int i)
 		if (setwdf)
 			numtabp[CT].val |= fp->wp[n].kern;
 	} else if (n == -2) {		/* \N with default width */
-		
+
 		k = fp->defaultwidth;
 	} else {			/* not on current font */
 		nocache = 1;
@@ -153,8 +153,8 @@ getcw(int i)
 	if (cs = cstab[xfont]) {
 		nocache = 1;
 		if (ccs = ccstab[xfont])
-			x = ccs; 
-		else 
+			x = ccs;
+		else
 			x = xpts;
 		cs = (cs * EMPTS(x)) / 36;
 	}
@@ -247,7 +247,7 @@ Tchar t_setch(int c)
 			return j | chbits;
 	} else
 		return chadd(temp, Troffchar, Install) | chbits; /* add name even if haven't seen it */
-		
+
 #endif /*UNICODE*/
 }
 
@@ -488,7 +488,7 @@ void t_setfont(int a)
 
 	if (a)
 		i = getrq();
-	else 
+	else
 		i = getsn();
 	if (!i || i == 'P') {
 		j = font1;
@@ -538,7 +538,7 @@ void t_setwd(void)
 				k = -k;
 			base -= k;
 			emsz = 0;
-		} else 
+		} else
 			continue;
 		if (base < numtabp[SB].val)
 			numtabp[SB].val = base;
@@ -654,7 +654,7 @@ Tchar getlg(Tchar i)
 				*pbp++ = k;
 				j = LIG_FF;
 			}
-		} else 
+		} else
 			j = LIG_FF;
 	} else {
 		*pbp++ = j;
@@ -694,7 +694,7 @@ void casefp(void)
 	if (i <= 0 || i > nfonts)
 		ERROR "fp: bad font position %d", i WARN;
 	else if (skip() || !(j = getrq()))
-		ERROR "fp: no font name" WARN; 
+		ERROR "fp: no font name" WARN;
 	else if (skip() || !getname())
 		setfp(i, j, (char*) 0, 1);
 	else		/* 3rd argument = filename */
@@ -745,8 +745,8 @@ setfp(int pos, int f, char *truename, int print)	/* mo
 		ptfont();
 	}
 	if (pos == smnt) {
-		smnt = 0; 
-		sbold = 0; 
+		smnt = 0;
+		sbold = 0;
 	}
 	fontlab[pos] = f;
 	if (smnt == 0 && fonts[pos].specfont)
@@ -801,7 +801,7 @@ bd0:
 	if (skip() || !(i = getrq()) || (j = findft(i)) == -1) {
 		if (k)
 			goto bd1;
-		else 
+		else
 			return;
 	}
 	if (j == smnt) {
@@ -836,7 +836,7 @@ void casevs(void)
 	i = inumb(&lss);
 	if (nonumb)
 		i = lss1;
-	if (i < VERT) 
+	if (i < VERT)
 		i = VERT;
 	lss1 = lss;
 	lss = i;
blob - 25c9270cc6e3921dc92420dd79910037b942cba4
blob + 4e6a4976f0750b12074fd22104acac59926ae65b
--- src/cmd/troff/tdef.h
+++ src/cmd/troff/tdef.h
@@ -102,7 +102,7 @@ extern	char	errbuf[];
 /* 0 and 040 don't have any graphic or other function.
 /* The few that do have a purpose (e.g., \n, \b, \t, ...
 /* are avoided by the ad hoc choices here.
-/* See ifilt[] in n1.c for others -- 1, 2, 3, 5, 6, 7, 010, 011, 012 
+/* See ifilt[] in n1.c for others -- 1, 2, 3, 5, 6, 7, 010, 011, 012
 */
 
 #define	LEADER	001
@@ -189,7 +189,7 @@ extern	char	errbuf[];
 			/* 128 for parochial USA 7-bit ascii, */
 			/* 256 for "European" mode with e.g., Latin-1 */
 
-	/* NCHARS must be greater than 
+	/* NCHARS must be greater than
 		ALPHABET (ascii stuff) + total number of distinct char names
 		from all fonts that will be run in this job (including
 		unnamed ones and \N's)
@@ -303,13 +303,13 @@ extern	Spnames	spnames[];
 	error.  In this version, the array is represented by a list of blocks,
 	pointed to by blist[].bp.  Each block is of size BLK Tchars, and BLK
 	MUST be a power of 2 for the macros below to work.
-	
+
 	The blocks associated with a particular string or macro are chained
 	together in the array blist[].  Each blist[i].nextoff contains the
 	Offset associated with the next block in the giant array, or -1 if
 	this is the last block in the chain.  If .nextoff is 0, the block is
 	free.
-	
+
 	To find the right index in blist for an Offset, divide by BLK.
 */
 
blob - 9f43946c10c6b0d8f9691fe04879a2f16599b295
blob + d3e30db521cb7f39d691adb9b13ccbfd5c96fe89
--- src/cmd/troff2html/troff2html.c
+++ src/cmd/troff2html/troff2html.c
@@ -299,7 +299,7 @@ emit(Rune r)
 {
 	emitul(r | attr, 0);
 	/*
-	 * Close man page references early, so that 
+	 * Close man page references early, so that
 	 * .IR proof (1),
 	 * doesn't make the comma part of the link.
 	 */
blob - 88fb9286481994a367b2327aaba04546fc2be554
blob + 152975e02081e64db25beb7063f3a17e90a42231
--- src/cmd/uniq.c
+++ src/cmd/uniq.c
@@ -160,10 +160,10 @@ skip(char *s)
 	while(nf++ < fields) {
 		while(*s == ' ' || *s == '\t')
 			s++;
-		while(!(*s == ' ' || *s == '\t' || *s == 0) ) 
+		while(!(*s == ' ' || *s == '\t' || *s == 0) )
 			s++;
 	}
-	while(nl++ < letters && *s != 0) 
+	while(nl++ < letters && *s != 0)
 			s++;
 	return s;
 }
blob - 0be7aa8ead04aef4ce56aa048fe08012a5ff5906
blob + 001a5aa3b0b5976d0ca7aec05d21ec880eb3984e
--- src/cmd/unutf.c
+++ src/cmd/unutf.c
@@ -1,5 +1,5 @@
 /*
- * stupid little program to pipe unicode chars through 
+ * stupid little program to pipe unicode chars through
  * when converting to non-utf compilers.
  */
 #include <u.h>
blob - 6be960ff67b826cfc544f9e8ef2c24af9df76c00
blob + 3679b3184f65d3a5c59ccc5a77418499b8091223
--- src/cmd/upas/bayes/addhash.c
+++ src/cmd/upas/bayes/addhash.c
@@ -57,10 +57,9 @@ main(int argc, char **argv)
 		if(fd < 0)
 			sysfatal("could not open %s: %r\n", out);
 	}
-		
+
 	Binit(&bout, fd, OWRITE);
 	Bwritehash(&bout, &hash);
 	Bterm(&bout);
 	exits(0);
 }
-
blob - ce4dc58a6a770734cacb6e28bcd8a71789027108
blob + b038343b2b630f05bd149d111091a00fb99c37d1
--- src/cmd/upas/bayes/dfa.c
+++ src/cmd/upas/bayes/dfa.c
@@ -268,7 +268,7 @@ set(Deter *d, u32int **tab, Rune r)
 }
 
 /*
- * Compute the list of important characters. 
+ * Compute the list of important characters.
  * Other characters behave like the ones that surround them.
  */
 static void
@@ -672,7 +672,7 @@ main(int argc, char **argv)
 		dp = dregcvt(p);
 		print("=== dfa\n");
 		dump(dp);
-	
+
 	for(i=2; i<argc; i++)
 		print("match %d\n", dregexec(dp, argv[i], 0));
 	exits(0);
blob - 28c43dbc45aba64f0ec903cc4170e7e93d17c253
blob + 429f04e586684cf3eaa36be8a4dbe474e4f0955d
--- src/cmd/upas/bayes/dfa.h
+++ src/cmd/upas/bayes/dfa.h
@@ -30,4 +30,3 @@ Dreprog* dregcvt(Reprog*);
 int dregexec(Dreprog*, char*, int);
 Dreprog* Breaddfa(Biobuf *b);
 void Bprintdfa(Biobuf*, Dreprog*);
-
blob - 404538c1b606c564a7a21d72715cd9afaa053cd6
blob + c753fb2c8d8d5e093113e61a38713f51ed2a76bd
--- src/cmd/upas/bayes/dump.c
+++ src/cmd/upas/bayes/dump.c
@@ -60,7 +60,7 @@ main(int argc, char **argv)
 		dp = dregcvt(p);
 		print("=== dfa\n");
 		dump(dp);
-	
+
 	for(i=2; i<argc; i++)
 		print("match %d\n", dregexec(dp, argv[i], 1));
 	exits(0);
blob - 999ba50c33c810ecda849667f45b0dc487a76630
blob + 2e80202af49afcf3697e38847149943bae672227
--- src/cmd/upas/bayes/msgclass.c
+++ src/cmd/upas/bayes/msgclass.c
@@ -293,4 +293,3 @@ lockfile(char *s)
 	close(fd);
 	atexit(killtickle);
 }
-
blob - 122e0c64606aa22a1e02bca5c3c83d8abbba46d0
blob + fe14796177f89faf7755a06c62131b8eff4e1f19
--- src/cmd/upas/bayes/msgtok.c
+++ src/cmd/upas/bayes/msgtok.c
@@ -1,6 +1,6 @@
 /*
  * RFC822 message tokenizer (really feature generator) for spam filter.
- * 
+ *
  * See Paul Graham's musings on spam filtering for theory.
  */
 
@@ -138,7 +138,7 @@ fprint(2, "«%s» %.2ux", p, p[0]);
 					p[i] += 'a' - 'A';
 */
 			if(tag){
-				i = strlen(tag);	
+				i = strlen(tag);
 				memmove(buf, tag, i);
 				memmove(buf+i, p, m[1]);
 				buf[i+m[1]] = 0;
@@ -242,5 +242,4 @@ trim(char *s)
 		return 0;
 	}
 	return -1;
-}		
-
+}
blob - 8afaf2157fe1ece7320b323f44d100f994879910
blob + 96fa2e6e7d4dadbf31ab2513ba9c0b4cfab8c2aa
--- src/cmd/upas/bayes/regcomp.c
+++ src/cmd/upas/bayes/regcomp.c
@@ -110,7 +110,7 @@ regerr2(char *s, int c)
 	while(*s)
 		*cp++ = *s++;
 	*cp++ = c;
-	*cp = '\0'; 
+	*cp = '\0';
 	rcerror(buf);
 }
 
blob - cddf034a1c58f60da33d2a4b4b46612701cf7c94
blob + d5f14cb51e2bdcaa9a91d4571ae9ca203db4e267
--- src/cmd/upas/bayes/regen.c
+++ src/cmd/upas/bayes/regen.c
@@ -8,7 +8,7 @@
  * Regular expression for matching.
  */
 
-char *ignore[] = 
+char *ignore[] =
 {
 	/* HTML that isn't A, IMG, or FONT */
 	/* Must have a space somewhere to avoid catching <email@address> */
@@ -122,7 +122,7 @@ buildre(Dreprog *re[3])
 	static char buf[16384], *s;
 
 	re[0] = dregcomp("^From ");
-	
+
 	s = buf;
 	for(i=0; i<nelem(keywords); i++){
 		if(i != 0)
@@ -172,5 +172,3 @@ main(int argc, char **argv)
 	Bprintdfa(&b, re[2]);
 	exits(0);
 }
-
-	
\ No newline at end of file
blob - 7a26dea1b11c0de0e2a9c5ff2653e9bbbd23cef8
blob + 0fae80f8da9acb8e037818b1a2177217e2e15fb1
--- src/cmd/upas/common/common.h
+++ src/cmd/upas/common/common.h
@@ -18,7 +18,7 @@ enum
 	Elemlen= 28,
 	Errlen=	128,
 	Pathlen= 256,
-	
+
 	RetryCode = 2
 };
 
@@ -76,5 +76,3 @@ extern process	*proc_start(char*, stream*, stream*, st
 extern int	proc_wait(process*);
 extern int	proc_free(process*);
 extern int	proc_kill(process*);
-
-
blob - 8d1e7a0248cff4d9e99e4cc639bc6a7eccba9df1
blob + 97ce9cc22ea624a4b132fdcb519789d95c424e5b
--- src/cmd/upas/common/config.c
+++ src/cmd/upas/common/config.c
@@ -14,7 +14,7 @@ void
 upasconfig(void)
 {
 	static int did;
-	
+
 	if(did)
 		return;
 	did = 1;
blob - b439cfde1180fe496b3c50ba8de6c946203d0a1e
blob + 2ed19494cba02bfa1bdd05f21d374891a28ba025
--- src/cmd/upas/common/libsys.c
+++ src/cmd/upas/common/libsys.c
@@ -198,7 +198,7 @@ trylock(char *path)
 		free(l);
 		return 0;
 	}
-	
+
 	/* fork process to keep lock alive */
 	switch(l->pid = rfork(RFPROC)){
 	default:
@@ -470,7 +470,7 @@ sysnames_read(void)
 
 	for(p=h->h_aliases; *p; p++)
 		;
-	
+
 	namev = malloc((2+p-h->h_aliases)*sizeof namev[0]);
 	if(namev == 0)
 		return 0;
@@ -709,7 +709,7 @@ mboxpath(char *path, char *user, String *to, int dot)
 {
 	char *dir;
 	String *s;
-	
+
 	if (dot || *path=='/' || strncmp(path, "./", 2) == 0
 			      || strncmp(path, "../", 3) == 0) {
 		to = s_append(to, path);
@@ -801,7 +801,7 @@ remoteaddr(int fd, char *dir)
 {
 	char *raddr;
 	NetConnInfo *nci;
-	
+
 	if((nci = getnetconninfo(dir, fd)) == nil)
 		return nil;
 	raddr = strdup(nci->raddr);
blob - 56725a88715877d651cf97390c7002fc3be2d1e5
blob + f593d551f7781998faa0369774209bfa18bec4b8
--- src/cmd/upas/common/process.c
+++ src/cmd/upas/common/process.c
@@ -18,7 +18,7 @@ instream(void)
 		return 0;
 	}
 	rv->fp = &rv->bb;
-	rv->fd = pfd[0];	
+	rv->fd = pfd[0];
 	return rv;
 }
 
blob - 1913c6ded4dc8ef2c19043a4bb0fbcc4598e317f
blob + 51a50e98694e56d65a3b6c944977e1c977400cd1
--- src/cmd/upas/filterkit/list.c
+++ src/cmd/upas/filterkit/list.c
@@ -286,7 +286,7 @@ add(char *pp, int argc, char **argv)
 		s_free(s);
 	}
 	close(fd);
-	return nil;	
+	return nil;
 }
 
 void
blob - 9aadc1ab188ecd8a280acc8fbbc1a7f59e682bae
blob + 6ab9ed958f9f2f52acd2deae19cd988b62d0fd5e
--- src/cmd/upas/filterkit/readaddrs.c
+++ src/cmd/upas/filterkit/readaddrs.c
@@ -32,7 +32,7 @@ tokenize822(char *str, char **args, int max)
 	int intok = 0, inquote = 0;
 
 	if(max <= 0)
-		return 0;	
+		return 0;
 	for(na=0; ;str++)
 		switch(*str) {
 		case ' ':
blob - 4e91e261a9159cbc4ad6c6eb1ead6835afb61042
blob + 86564c2b62a6e4da4e0d9295d67dfd82ca633e19
--- src/cmd/upas/filterkit/token.c
+++ src/cmd/upas/filterkit/token.c
@@ -18,7 +18,7 @@ mktoken(char *key, long thetime)
 	uchar digest[SHA1dlen];
 	char token[64];
 	String *s;
-	
+
 	now = ctime(thetime);
 	memset(now+11, ':', 8);
 	hmac_sha1((uchar*)now, strlen(now), (uchar*)key, strlen(key), digest, nil);
@@ -45,7 +45,7 @@ check_token(char *key, char *file)
 	if(i < 0)
 		return "no match";
 	buf[i] = 0;
-	
+
 	now = time(0);
 
 	for(i = 0; i < 14; i++){
blob - 14208ed6af55b68cd4f85c6fb411cab887f974e0
blob + 6264822dcd0a0e7146078f5dde0f734fbabe6dbb
--- src/cmd/upas/fs/dat.h
+++ src/cmd/upas/fs/dat.h
@@ -218,4 +218,3 @@ void	henter(ulong, char*, Qid, Message*, Mailbox*);
 void	hfree(ulong, char*);
 
 ulong msgallocd, msgfreed;
-
blob - 9fa433d8cd2055aafb47e0570394ba7be8047c93
blob + dc6ff3ba6f7ccf3308d5819f1284af496b492717
--- src/cmd/upas/fs/fs.c
+++ src/cmd/upas/fs/fs.c
@@ -760,7 +760,7 @@ rwalk(Fid *f)
 	for(i = 0; i < thdr.nwname; i++){
 		rv = dowalk(f, thdr.wname[i]);
 		if(rv != nil){
-			if(nf != nil)	
+			if(nf != nil)
 				rclunk(nf);
 			break;
 		}
@@ -827,7 +827,7 @@ readtopdir(Fid* dummy, uchar *buf, long off, int cnt, 
 		cnt -= m;
 	}
 	pos += m;
-		
+
 	for(mb = mbl; mb != nil; mb = mb->next){
 		mkstat(&d, mb, nil, Qmbox);
 		m = convD2M(&d, &buf[n], blen-n);
@@ -872,7 +872,7 @@ readmboxdir(Fid *f, uchar *buf, long off, int cnt, int
 	} else {
 		msg = f->mb->root->part;
 		pos = 0;
-	} 
+	}
 
 	for(; cnt > 0 && msg != nil; msg = msg->next){
 		/* act like deleted files aren't there */
@@ -1301,7 +1301,7 @@ struct Ignorance
 Ignorance *ignorance;
 
 /*
- *  read the file of headers to ignore 
+ *  read the file of headers to ignore
  */
 void
 readignore(void)
blob - 48119fa77c2db201cc34634dc92b07288b8be315
blob + 7fcc51b5ba9faf69c20e1d759151fc3fffb47f91
--- src/cmd/upas/fs/imap4.c
+++ src/cmd/upas/fs/imap4.c
@@ -136,7 +136,7 @@ imapgrow(Imap *imap, int n)
 	int i;
 
 	if(imap->data == nil){
-		imap->base = emalloc(n+1);	
+		imap->base = emalloc(n+1);
 		imap->data = imap->base;
 		imap->size = n+1;
 	}
@@ -165,7 +165,7 @@ imap4resp(Imap *imap)
 		ep = p+Blinelen(&imap->bin);
 		while(ep > p && (ep[-1]=='\n' || ep[-1]=='\r'))
 			*--ep = '\0';
-		
+
 		if(imap->debug)
 			fprint(2, "<- %s\n", p);
 		strupr(p);
@@ -186,7 +186,7 @@ imap4resp(Imap *imap)
 			if(*p==' ')
 				p++;
 			verb = p;
-			
+
 			if(p = strchr(verb, ' '))
 				p++;
 			else
@@ -221,7 +221,7 @@ imap4resp(Imap *imap)
 				/* <3031 bytes of data> */
  				/* ) */
 				if(strstr(p, "RFC822.SIZE") && strstr(p, "BODY[]")){
-					if((q = strchr(p, '{')) 
+					if((q = strchr(p, '{'))
 					&& (n=strtol(q+1, &en, 0), *en=='}')){
 						if(imap->data == nil || n >= imap->size)
 							imapgrow(imap, n);
@@ -268,7 +268,7 @@ imap4resp(Imap *imap)
  				/* ) */
 				/* * 1 FETCH (UID 1 RFC822.HEADER "data") */
 				if(strstr(p, "RFC822.HEADER") || strstr(p, "RFC822.TEXT")){
-					if((q = strchr(p, '{')) 
+					if((q = strchr(p, '{'))
 					&& (n=strtol(q+1, &en, 0), *en=='}')){
 						if(imap->data == nil || n >= imap->size)
 							imapgrow(imap, n);
blob - 2f4837473d6f2f904b725628ee9055b411b3638f
blob + b77306d6cd55ec923a5f68cdded10d9d3a1b6668
--- src/cmd/upas/fs/mbox.c
+++ src/cmd/upas/fs/mbox.c
@@ -721,7 +721,7 @@ ctype(Message *m, Header *h, char *p)
 	p = skipwhite(p);
 
 	p = getstring(p, m->type, 1);
-	
+
 	while(*p){
 		if(isattribute(&p, "boundary")){
 			s = s_new();
@@ -741,7 +741,7 @@ ctype(Message *m, Header *h, char *p)
 		} else if(isattribute(&p, "charset")){
 			p = getstring(p, s_reset(m->charset), 0);
 		}
-		
+
 		p = skiptosemi(p);
 	}
 }
@@ -1598,4 +1598,3 @@ date822tounix(char *s)
 		*q = '\0';
 	return s_copy(p);
 }
-
blob - da8021dd29ba386f5ae597364b14009140380192
blob + d41d2b482191c7cbc4314a3ccd9b8585ee2a6e84
--- src/cmd/upas/fs/pop3.c
+++ src/cmd/upas/fs/pop3.c
@@ -506,7 +506,7 @@ pop3read(Pop *pop, Mailbox *mb, int doplumb)
 			(Qid){PATH(mb->id, Qmbox), mb->vers, QTDIR}, nil, mb);
 	}
 
-	return nil;	
+	return nil;
 }
 
 /* */
@@ -695,4 +695,3 @@ pop3mbox(Mailbox *mb, char *path)
 
 	return nil;
 }
-
blob - bcf0bcee0ca1a9c00015d7141432f0cdf50ecbdd
blob + 09a7914d427da569373c9f0414275c77743e705d
--- src/cmd/upas/fs/strtotm.c
+++ src/cmd/upas/fs/strtotm.c
@@ -20,7 +20,7 @@ skipwhite(char *q)
 
 static char* months[] = {
 	"jan", "feb", "mar", "apr",
-	"may", "jun", "jul", "aug", 
+	"may", "jun", "jul", "aug",
 	"sep", "oct", "nov", "dec"
 };
 
@@ -81,7 +81,7 @@ strtotm(char *p, Tm *tmp)
 			continue;
 
 		/* look for time zone [A-Z][A-Z]T */
-		if(q-p==3 && 'A' <= p[0] && p[0] <= 'Z' 
+		if(q-p==3 && 'A' <= p[0] && p[0] <= 'Z'
 		&& 'A' <= p[1] && p[1] <= 'Z' && p[2] == 'T'){
 			strecpy(tm.zone, tm.zone+4, p);
 			continue;
blob - 3d24012efa7eaa37b814786c7b6d213e2ad6838e
blob + 30c15b312bb07204f6f4dfb5809ee5f41a029e9d
--- src/cmd/upas/fs/tester.c
+++ src/cmd/upas/fs/tester.c
@@ -51,8 +51,8 @@ info(int indent, int mno, Message *m)
 		info(indent+1, i++, nm);
 	}
 }
-	
 
+
 void
 main(int argc, char **argv)
 {
blob - 8ebd3957a53dca237d23f98dd825c31df776e9aa
blob + e83328e94558bfc9ab7e4eb92d374a3e3349951a
--- src/cmd/upas/marshal/marshal.c
+++ src/cmd/upas/marshal/marshal.c
@@ -334,7 +334,7 @@ threadmain(int argc, char **argv)
 		close(fd);
 		threadexitsall(waitforsubprocs());
 	}
-	
+
 	if(Binit(&out, fd, OWRITE) < 0)
 		fatal("can't Binit 1: %r");
 
@@ -689,7 +689,7 @@ attachment(Attach *a, Biobuf *out)
 		free(f);
 		return;
 	}
-	
+
 	/* if it's not already mime encoded ... */
 	if(strcmp(a->type, "text/plain") != 0)
 		Bprint(out, "Content-Type: %s\n", a->type);
@@ -822,7 +822,7 @@ int
 mopen(char *file, int mode)
 {
 	int fd;
-	
+
 	if((fd = open(file, mode)) >= 0)
 		return fd;
 	if(strncmp(file, "Mail/", 5) == 0 && mountmail() >= 0 && (fd = fsopenfd(mailfs, file+5, mode)) >= 0)
@@ -890,7 +890,7 @@ mkattach(char *file, char *type, int inline)
 	a->type = "application/octet-stream";		/* safest default */
 	if(pipe(pfd) < 0)
 		return a;
-	
+
 	xfd[0] = mopen(file, OREAD);
 	xfd[1] = pfd[0];
 	xfd[2] = dup(2, -1);
@@ -955,7 +955,7 @@ static void
 teeproc(void *v)
 {
 	int *a;
-	
+
 	a = v;
 	tee(a[0], a[1], a[2]);
 	write(a[2], "\n", 1);
@@ -1094,7 +1094,7 @@ sendmail(Addr *to, Addr *cc, int *pid, char *rcvr)
 
 	if(pipe(pfd) < 0)
 		fatal("pipe: %r");
-	
+
 	xfd[0] = pfd[0];
 	xfd[1] = dup(1, -1);
 	xfd[2] = dup(2, -1);
@@ -1122,7 +1122,7 @@ sendmail(Addr *to, Addr *cc, int *pid, char *rcvr)
 		proccreate(teeproc, targ, STACK);
 		sfd = pfd[1];
 	}
-	
+
 	return sfd;
 }
 
@@ -1348,7 +1348,7 @@ readaliases(void)
 			addr->next = 0;
 			*al = addr;
 			al = &addr->next;
-		} 
+		}
 		if(a->addr == nil || a->addr->next == nil){
 			freealias(a);
 			continue;
@@ -1592,7 +1592,7 @@ get822token(String **tok, char *p, char **pp)
 		type = Twords;
 		quoting = 0;
 		for(; *p && (quoting || (!ISWHITE(*p) && *p != '>' && *p != '<' && *p != ',')); p++) {
-			if(*p == '"') 
+			if(*p == '"')
 				quoting = !quoting;
 			if(*p == '\\') {
 				if(*(p+1) == '\0') {
@@ -1609,7 +1609,7 @@ get822token(String **tok, char *p, char **pp)
 		*pp = p;
 	*tok = s_copyn(op, p-op);
 	return type;
-}	
+}
 
 /* expand local aliases in an RFC822 mail line */
 /* add list of expanded addresses to to. */
@@ -1717,7 +1717,7 @@ expandline(String **s, Addr *to)
 			nto = nil;
 			werrstr("rfc822 syntax error");
 			rfc822syntaxerror = 1;
-			goto Break2;			
+			goto Break2;
 		}
 	}
 Break2:
@@ -1893,7 +1893,7 @@ hard:
 			fmtprint(fmt, "=%.2uX", (uchar)*p);
 		else
 			fmtrune(fmt, (uchar)*p);
-	}			
+	}
 	fmtprint(fmt, "?=");
 	return 0;
 }
blob - 20cf239706faa1ceb05f4db5d9b1220c5412f6cc
blob + bf2cff5619b5a513abaac45627be8c3d56452e09
--- src/cmd/upas/misc/mail.c
+++ src/cmd/upas/misc/mail.c
@@ -48,4 +48,3 @@ main (argc, argv)
 	perror (realprog);
 	exit (1);
 }
-
blob - 307a49255d9be40263571c98a790872bf2875e21
blob + c389d6396e610cffb49a5106db005b1a6a007b7b
--- src/cmd/upas/ml/common.c
+++ src/cmd/upas/ml/common.c
@@ -185,7 +185,7 @@ sendnotification(char *addr, char *listname, int rem)
 			fprint(pfd[1], "the word 'remove' in the subject or body.\n");
 		}
 		close(pfd[1]);
-	
+
 		/* wait for mailer to end */
 		while(w = wait()){
 			if(w->msg != nil && w->msg[0])
blob - 8dad05179af33e80574992f324d28b0613dd6d51
blob + a135b0511532b365a1b565dd4a504437ed82a595
--- src/cmd/upas/ml/ml.c
+++ src/cmd/upas/ml/ml.c
@@ -56,7 +56,7 @@ main(int argc, char **argv)
 	if(s_read_line(&in, firstline) == nil)
 		sysfatal("reading input: %r");
 
-	/* read up to the first 128k of the message.  more is redculous. 
+	/* read up to the first 128k of the message.  more is redculous.
 	     Not if word documents are distributed.  Upped it to 2MB (pb) */
 	if(s_read(&in, msg, 2*1024*1024) <= 0)
 		sysfatal("reading input: %r");
blob - ef0f731c8add5f73f376b01d9851435773c90be4
blob + 6acd73e4e4661fa43fc8f38cf5b321524c5a5c77
--- src/cmd/upas/ned/nedmail.c
+++ src/cmd/upas/ned/nedmail.c
@@ -212,7 +212,7 @@ plural(int n)
 	if (n == 1)
 		return "";
 
-	return "s";		
+	return "s";
 }
 
 void
@@ -366,7 +366,7 @@ mkaddrs(char *t)
 	int i, nf, inquote;
 	char **f, *s;
 	Fmt fmt;
-	
+
 	inquote = 0;
 	nf = 2;
 	for(s=t; *s; s++){
@@ -402,7 +402,7 @@ file2message(Message *parent, char *name)
 	String *path;
 	char *f[30], *s, *t;
 	int i, nf;
-	
+
 	m = mallocz(sizeof(Message), 1);
 	if(m == nil)
 		return nil;
@@ -425,7 +425,7 @@ file2message(Message *parent, char *name)
 		if(t == nil)
 			continue;
 		*t++ = 0;
-		
+
 		if(strcmp(s, "from") == 0)
 			m->from = mkaddrs(t);
 		else if(strcmp(s, "to") == 0)
@@ -475,7 +475,7 @@ dir2message(Message *parent, int reverse)
 {
 	int i, n, highest, newmsgs;
 	CFid *fd;
-	
+
 	Dir *d;
 	Message *first, *last, *m;
 
@@ -972,7 +972,7 @@ parseaddr(char **pp, Message *first, Message *cur, Mes
 			goto number;
 		}
 		*mp = unspec;
-		break;	
+		break;
 	case '0': case '1': case '2': case '3': case '4':
 	case '5': case '6': case '7': case '8': case '9':
 		n = strtoul(p, pp, 10);
@@ -1191,7 +1191,7 @@ parsecmd(char *p, Cmd *cmd, Message *first, Message *c
 			free(prog);
 		}
 	} else {
-	
+
 		/* parse an address */
 		s = e = nil;
 		err = parseaddr(&p, first, cur, cur, &s);
@@ -1207,7 +1207,7 @@ parsecmd(char *p, Cmd *cmd, Message *first, Message *c
 			err = parseaddr(&p, first, cur, last, &e);
 			if(err != nil)
 				return err;
-	
+
 			/* select all messages in the range */
 			for(; s != nil; s = s->next){
 				*l = s;
@@ -1258,7 +1258,7 @@ parsecmd(char *p, Cmd *cmd, Message *first, Message *c
 		}
 		cmd->f = cmdtab[i].f;
 	}
-	return nil; 
+	return nil;
 }
 
 /* inefficient read from standard input */
@@ -1511,7 +1511,7 @@ pcmd(Cmd *x, Message *m)
 		Bprint(&out, "\n!--- using plumber to display message of type %s\n", m->type);
 	else
 		Bprint(&out, "\n!--- cannot display messages of type %s\n", m->type);
-		
+
 	return m;
 }
 
@@ -1684,7 +1684,7 @@ Message*
 ycmd(Cmd *x, Message *m)
 {
 	USED(x);
-	
+
 	doflush = 1;
 
 	return icmd(nil, m);
@@ -1839,7 +1839,7 @@ tokenize822(char *str, char **args, int max)
 	int intok = 0, inquote = 0;
 
 	if(max <= 0)
-		return 0;	
+		return 0;
 	for(na=0; ;str++)
 		switch(*str) {
 		case ' ':
@@ -2452,9 +2452,9 @@ switchmb(char *file, char *singleton)
 		fd = open("/mail/fs/ctl", ORDWR);
 		if(fd < 0)
 			sysfatal("can't open /mail/fs/ctl: %r");
-	
+
 		path = s_new();
-	
+
 		/* get an absolute path to the mail box */
 		if(strncmp(file, "./", 2) == 0){
 			/* resolve path here since upas/fs doesn't know */
@@ -2468,7 +2468,7 @@ switchmb(char *file, char *singleton)
 		} else {
 			mboxpath(file, user, path, 0);
 		}
-	
+
 		/* make up a handle to use when talking to fs */
 		p = strrchr(file, '/');
 		if(p == nil){
blob - 202111f8e860c5c49904f5b355b83b5d3a370347
blob + a3525f0f378750b575d53c615a36f967578ce791
--- src/cmd/upas/nfs/box.c
+++ src/cmd/upas/nfs/box.c
@@ -30,7 +30,7 @@ Box*
 subbox(Box *b, char *elem)
 {
 	int i;
-	
+
 	for(i=0; i<b->nsub; i++)
 		if(b->sub[i] && strcmp(b->sub[i]->elem, elem) == 0)
 			return b->sub[i];
@@ -41,7 +41,7 @@ Box*
 boxbyid(uint id)
 {
 	int i;
-	
+
 	/* LATER: replace with binary search */
 	for(i=0; i<nboxes; i++)
 		if(boxes[i] && boxes[i]->id == id)
@@ -54,10 +54,10 @@ boxcreate(char *name)
 {
 	char *p;
 	Box *b, *bb;
-	
+
 	if((b = boxbyname(name)) != nil)
 		return b;
-	
+
 	b = emalloc(sizeof *b);
 	b->id = ++boxid;
 	b->time = time(0);
@@ -87,7 +87,7 @@ void
 boxfree(Box *b)
 {
 	int i;
-	
+
 	if(b == nil)
 		return;
 	for(i=0; i<b->nmsg; i++)
@@ -100,12 +100,12 @@ Part*
 partcreate(Msg *m, Part *pp)
 {
 	Part *p;
-	
+
 	if(m->npart%PartChunk == 0)
 		m->part = erealloc(m->part, (m->npart+PartChunk)*sizeof m->part[0]);
 	p = emalloc(sizeof *p);
 	p->msg = m;
-	p->ix = m->npart;	
+	p->ix = m->npart;
 	m->part[m->npart++] = p;
 	if(pp){
 		if(pp->nsub%PartSubChunk == 0)
@@ -121,7 +121,7 @@ void
 partfree(Part *p)
 {
 	int i;
-	
+
 	if(p == nil)
 		return;
 	for(i=0; i<p->nsub; i++)
@@ -145,7 +145,7 @@ void
 msgfree(Msg *m)
 {
 	int i;
-	
+
 	if(m == nil)
 		return;
 	for(i=0; i<m->npart; i++)
@@ -162,7 +162,7 @@ msgplumb(Msg *m, int delete)
 	Plumbattr a[10];
 	char buf[256], date[40];
 	int ai;
-	
+
 	if(m == nil || m->npart < 1 || m->part[0]->hdr == nil)
 		return;
 	if(m->box && strcmp(m->box->name, "mbox") != 0)
@@ -176,7 +176,7 @@ msgplumb(Msg *m, int delete)
 	ai = 0;
 	a[ai].name = "filetype";
 	a[ai].value = "mail";
-	
+
 	a[++ai].name = "mailtype";
 	a[ai].value = delete?"delete":"new";
 	a[ai-1].next = &a[ai];
@@ -198,15 +198,15 @@ msgplumb(Msg *m, int delete)
 		a[ai].value = m->part[0]->hdr->digest;
 		a[ai-1].next = &a[ai];
 	}
-	
+
 	strcpy(date, ctime(m->date));
 	date[strlen(date)-1] = 0;	/* newline */
 	a[++ai].name = "date";
 	a[ai].value = date;
 	a[ai-1].next = &a[ai];
-	
+
 	a[ai].next = nil;
-	
+
 	p.attr = a;
 #ifdef PLAN9PORT
 	snprint(buf, sizeof buf, "Mail/%s/%ud", m->box->name, m->id);
@@ -215,7 +215,7 @@ msgplumb(Msg *m, int delete)
 #endif
 	p.ndata = strlen(buf);
 	p.data = buf;
-	
+
 	if(fd < 0)
 		fd = plumbopen("send", OWRITE);
 	if(fd < 0)
@@ -229,7 +229,7 @@ Msg*
 msgcreate(Box *box)
 {
 	Msg *m;
-	
+
 	m = emalloc(sizeof *m);
 	m->box = box;
 	partcreate(m, nil);
@@ -319,4 +319,3 @@ boxinit(void)
 	rootbox->name = estrdup("");
 	rootbox->time = time(0);
 }
-
blob - 9ca3b8f9e18e0d67eda4a7fab1ed625e34a27a04
blob + bbb3851e2a256dcdb2866a834271c3981f0adeb4
--- src/cmd/upas/nfs/box.h
+++ src/cmd/upas/nfs/box.h
@@ -31,7 +31,7 @@ struct Box
 
 	Msg**	msg;			/* array of messages (can have nils) */
 	uint		nmsg;
-	
+
 	char*	imapname;	/* name on IMAP server */
 	u32int	validity;		/* IMAP validity number */
 	uint		uidnext;		/* IMAP expected next uid */
@@ -73,7 +73,7 @@ struct Msg
 	uint		flags;		/* FlagDeleted etc. */
 	uint		date;			/* smtp envelope date */
 	uint		size;
-	
+
 	Part**	part;			/* message subparts - part[0] is root */
 	uint		npart;
 };
@@ -132,4 +132,3 @@ extern	Box**	boxes;
 extern	uint		nboxes;
 
 extern	Box*		rootbox;
-
blob - 3f8c4c681464eb371b636edb9dc112da3887f24a
blob + 0ad78ec4b31865d2f730b4fdc2748db21f85ecc2
--- src/cmd/upas/nfs/decode.c
+++ src/cmd/upas/nfs/decode.c
@@ -25,7 +25,7 @@ _decqp(uchar *out, int lim, char *in, int n, int under
 {
 	char *p, *ep;
 	uchar *eout, *out0;
-	
+
 	out0 = out;
 	eout = out+lim;
 	for(p=in, ep=in+n; p<ep && out<eout; ){
@@ -73,7 +73,7 @@ decode(int kind, char *s, int *len)
 		*len = l;
 		t[l] = 0;
 		return t;
-	
+
 	case Base64:
 		l = strlen(s)+1;
 		t = emalloc(l);
@@ -127,7 +127,7 @@ static void
 twriter(void *v)
 {
 	Writeargs *w;
-	
+
 	w = v;
 	write(w->fd, w->s, strlen(w->s));
 	close(w->fd);
@@ -216,13 +216,13 @@ unrfc2047(char *s)
 	int len;
 	Rune r;
 	Fmt fmt;
-	
+
 	if(s == nil)
 		return nil;
 
 	if(strstr(s, "=?") == nil)
 		return s;
-	
+
 	fmtstrinit(&fmt);
 	for(p=s; *p; ){
 		/* =?charset?e?text?= */
@@ -270,7 +270,7 @@ unrfc2047(char *s)
 }
 
 #ifdef TEST
-char *test[] = 
+char *test[] =
 {
 	"hello world",
 	"hello =?iso-8859-1?q?this is some text?=",
@@ -288,7 +288,7 @@ void
 threadmain(int argc, char **argv)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(test); i++)
 		print("%s\n\t%s\n", test[i], unrfc2047(estrdup(test[i])));
 	threadexitsall(0);
blob - 69cd6b5a944133a7ae05dbec3b34e4cb4044c373
blob + 361a3561d1e24b6b5242ddf2ad77e25fbc946c7f
--- src/cmd/upas/nfs/fs.c
+++ src/cmd/upas/nfs/fs.c
@@ -1,8 +1,8 @@
 /*
  * Mail file system.
- * 
+ *
  * Serve the bulk of requests out of memory, so they can
- * be in the main loop (will never see their flushes). 
+ * be in the main loop (will never see their flushes).
  * Some requests do block and they get handled in
  * separate threads.  They're all okay to give up on
  * early, though, so we just respond saying interrupted
@@ -16,7 +16,7 @@ TO DO:
 	digest
 	disposition
 	filename
-	
+
 	ctl messages
 
 	fetch mail on demand
@@ -48,7 +48,7 @@ enum
 	Qbcc,
 	Qinreplyto,
 	Qmessageid,
-	
+
 	/* part data - same order as stuct Part */
 	Qtype,
 	Qidstr,
@@ -60,7 +60,7 @@ enum
 	Qrawheader,
 	Qrawbody,
 	Qmimeheader,
-	
+
 	/* part numbers - same order as struct Part */
 	Qsize,
 	Qlines,
@@ -75,7 +75,7 @@ enum
 	Qrawunix,
 	Qunixdate,
 	Qunixheader,
-	
+
 	Qfile0 = Qbody,
 	Qnfile = Qunixheader+1-Qfile0
 };
@@ -98,7 +98,7 @@ void
 responderror(Req *r)
 {
 	char e[ERRMAX];
-	
+
 	rerrstr(e, sizeof e);
 	respond(r, e);
 }
@@ -132,7 +132,7 @@ Qid
 qid(int ctl, Box *box, Msg *msg, Part *part)
 {
 	Qid q;
-	
+
 	q.type = 0;
 	if(ctl == Qroot || ctl == Qbox || ctl == Qmsg)
 		q.type = QTDIR;
@@ -150,7 +150,7 @@ parseqid(Qid q, Box **box, Msg **msg, Part **part)
 {
 	*msg = nil;
 	*part = nil;
-	
+
 	*box = boxbyid(qboxid(q));
 	if(*box){
 		*msg = msgbyid(*box, qmsgid(q));
@@ -198,7 +198,7 @@ char*
 nameoftype(int t)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(typenames); i++)
 		if(typenames[i].type == t)
 			return typenames[i].name;
@@ -209,7 +209,7 @@ int
 typeofname(char *name)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(typenames); i++)
 		if(strcmp(typenames[i].name, name) == 0)
 			return typenames[i].type;
@@ -246,7 +246,7 @@ fswalk1(Fid *fid, char *name, void *arg)
 	Part *p, *part;
 
 	USED(arg);
-	
+
 	switch(type = parseqid(fid->qid, &box, &msg, &part)){
 	case Qroot:
 		if(strcmp(name, "..") == 0)
@@ -347,7 +347,7 @@ addaddrs(Fmt *fmt, char *prefix, char *addrs)
 	char **f;
 	int i, nf, inquote;
 	char *p, *sep;
-	
+
 	if(addrs == nil)
 		return;
 	addrs = estrdup(addrs);
@@ -409,7 +409,7 @@ mkbody(Part *p, Qid q)
 }
 
 static Qid ZQ;
-	
+
 static int
 filedata(int type, Box *box, Msg *msg, Part *part, char **pp, int *len, int *freeme, int force, Qid q)
 {
@@ -444,7 +444,7 @@ filedata(int type, Box *box, Msg *msg, Part *part, cha
 		}
 		*pp = ((char**)&part->hdr->date)[type-Qdate];
 		return 0;
-	
+
 	case Qunixdate:
 		strcpy(buf, ctime(msg->date));
 		*pp = buf;
@@ -630,7 +630,7 @@ filedata(int type, Box *box, Msg *msg, Part *part, cha
 		if(part->hdr->from==nil
 		|| (part->hdr->sender && strcmp(part->hdr->sender, part->hdr->from) != 0))
 			addaddrs(&fmt, "Sender", part->hdr->sender);
-		if(part->hdr->from==nil 
+		if(part->hdr->from==nil
 		|| (part->hdr->replyto && strcmp(part->hdr->replyto, part->hdr->from) != 0))
 			addaddrs(&fmt, "Reply-To", part->hdr->replyto);
 		fmtprint(&fmt, "Subject: %s\n", part->hdr->subject);
@@ -681,7 +681,7 @@ filldir(Dir *d, int type, Box *box, Msg *msg, Part *pa
 	case Qsearch:
 		d->mode = 0666;
 		break;
-	
+
 	case Qflags:
 		d->mode = 0666;
 		goto msgfile;
@@ -736,7 +736,7 @@ filldir(Dir *d, int type, Box *box, Msg *msg, Part *pa
 	}
 	return 0;
 }
-	
+
 static void
 fsstat(Req *r)
 {
@@ -744,7 +744,7 @@ fsstat(Req *r)
 	Box *box;
 	Msg *msg;
 	Part *part;
-	
+
 	type = parseqid(r->fid->qid, &box, &msg, &part);
 	if(filldir(&r->d, type, box, msg, part) < 0)
 		responderror(r);
@@ -756,7 +756,7 @@ int
 rootgen(int i, Dir *d, void *aux)
 {
 	USED(aux);
-	
+
 	if(i == 0)
 		return filldir(d, Qctl, nil, nil, nil);
 	i--;
@@ -786,17 +786,17 @@ boxgen(int i, Dir *d, void *aux)
 }
 
 static int msgdir[] = {
-	Qtype, 
-	Qbody, Qbcc, Qcc, Qdate, Qflags, Qfrom, Qheader, Qinfo, 
-	Qinreplyto, Qlines, Qmimeheader, Qmessageid, 
+	Qtype,
+	Qbody, Qbcc, Qcc, Qdate, Qflags, Qfrom, Qheader, Qinfo,
+	Qinreplyto, Qlines, Qmimeheader, Qmessageid,
 	Qraw, Qrawunix, Qrawbody, Qrawheader,
 	Qreplyto, Qsender, Qsubject, Qto,
 	Qunixdate, Qunixheader
 };
 static int mimemsgdir[] = {
-	Qtype, 
-	Qbody, Qbcc, Qcc, Qdate, Qfrom, Qheader, Qinfo, 
-	Qinreplyto, Qlines, Qmimeheader, Qmessageid, 
+	Qtype,
+	Qbody, Qbcc, Qcc, Qdate, Qfrom, Qheader, Qinfo,
+	Qinreplyto, Qlines, Qmimeheader, Qmessageid,
 	Qraw, Qrawunix, Qrawbody, Qrawheader,
 	Qreplyto, Qsender, Qsubject, Qto
 };
@@ -808,14 +808,14 @@ static int mimedir[] = {
 	Qmimeheader,
 	Qraw
 };
-	
+
 int
 msggen(int i, Dir *d, void *aux)
 {
 	Box *box;
 	Msg *msg;
 	Part *part;
-	
+
 	part = aux;
 	msg = part->msg;
 	box = msg->box;
@@ -875,7 +875,7 @@ fsread(Req *r)
 	Box *box;
 	Msg *msg;
 	Part *part;
-	
+
 	switch(type = parseqid(r->fid->qid, &box, &msg, &part)){
 	case Qroot:
 		dirread9p(r, rootgen, nil);
@@ -906,7 +906,7 @@ fsread(Req *r)
 		dirread9p(r, msggen, part);
 		respond(r, nil);
 		return;
-	
+
 	case Qctl:
 	case Qboxctl:
 		respond(r, Egreg);
@@ -937,7 +937,7 @@ mkmsglist(Box *box, char **f, int nf, Msg ***mm)
 {
 	int i, nm;
 	Msg **m;
-	
+
 	m = emalloc(nf*sizeof m[0]);
 	nm = 0;
 	for(i=0; i<nf; i++)
@@ -1012,7 +1012,7 @@ fswrite(Req *r)
 				respond(r, nil);
 			free(m);
 			break;
-		
+
 		case CMjunk:
 			flag = FlagJunk;
 			goto flagit;
@@ -1188,7 +1188,7 @@ static void
 fsthread(void *v)
 {
 	Req *r;
-	
+
 	r = v;
 	switch(r->ifcall.type){
 	case Tread:
@@ -1255,10 +1255,9 @@ fsinit0(void)	/* bad planning - clash with lib9pclient
 	fs.write = fssend;
 	fs.stat = fssend;
 	fs.destroyfid = fsdestroyfid;
-	
+
 	rootqid = qid(Qroot, nil, nil, nil);
-	
+
 	fsreqchan = chancreate(sizeof(void*), 0);
 	mailthread(fsrecv, nil);
 }
-
blob - ef76487b517b1732cb53ce8928d54ba595fa7dcb
blob + 5249e2e788518c1594bffd0c31bd42f0209bb3c0
--- src/cmd/upas/nfs/imap.c
+++ src/cmd/upas/nfs/imap.c
@@ -41,7 +41,7 @@ struct Imap
 static struct {
 	char *name;
 	int flag;
-} flagstab[] = 
+} flagstab[] =
 {
 	"Junk",	FlagJunk,
 	"NonJunk",	FlagNonJunk,
@@ -116,20 +116,20 @@ imapconnect(char *server, int mode, char *root, char *
 	z->fd = -1;
 	z->autoreconnect = 0;
 	z->io = ioproc();
-	
+
 	qlock(&z->lk);
 	if(imapreconnect(z) < 0){
 		free(z);
 		return nil;
 	}
-	
+
 	z->r.l = &z->rlk;
 	z->autoreconnect = 1;
 	qunlock(&z->lk);
-	
+
 	proccreate(imaptimerproc, z, STACK);
 	mailthread(imaprefreshthread, z);
-	
+
 	return z;
 }
 
@@ -231,7 +231,7 @@ getboxes(Imap *z)
 {
 	int i;
 	Box **r, **w, **e;
-	
+
 	for(i=0; i<nboxes; i++){
 		boxes[i]->mark = 1;
 		boxes[i]->exists = 0;
@@ -260,10 +260,10 @@ getbox(Imap *z, Box *b)
 {
 	int i;
 	Msg **r, **w, **e;
-	
+
 	if(b == nil)
 		return 0;
-	
+
 	for(i=0; i<b->nmsg; i++)
 		b->msg[i]->imapid = 0;
 	if(imapcmd(z, b, "UID FETCH 1:* FLAGS") < 0)
@@ -294,7 +294,7 @@ static void
 imaptimerproc(void *v)
 {
 	Imap *z;
-	
+
 	z = v;
 	for(;;){
 		sleep(60*1000);
@@ -323,13 +323,13 @@ static void
 imaprefreshthread(void *v)
 {
 	Imap *z;
-	
+
 	z = v;
 	for(;;){
 		qlock(z->r.l);
 		rsleep(&z->r);
 		qunlock(z->r.l);
-		
+
 		qlock(&z->lk);
 		if(z->inbox)
 			checkbox(z, z->inbox);
@@ -347,7 +347,7 @@ imapvcmdsx0(Imap *z, char *fmt, va_list arg, int dotag
 	Fmt f;
 	int len;
 	Sx *sx;
-	
+
 	if(canqlock(&z->lk))
 		abort();
 
@@ -380,7 +380,7 @@ imapcmdsx0(Imap *z, char *fmt, ...)
 {
 	va_list arg;
 	Sx *sx;
-	
+
 	va_start(arg, fmt);
 	sx = imapvcmdsx0(z, fmt, arg, 1);
 	va_end(arg);
@@ -395,7 +395,7 @@ imapvcmdsx(Imap *z, Box *b, char *fmt, va_list arg, in
 {
 	int tries;
 	Sx *sx;
-	
+
 	tries = 0;
 	z->nextbox = b;
 
@@ -478,7 +478,7 @@ static Sx*
 imapwaitsx(Imap *z)
 {
 	Sx *sx;
-	
+
 	while((sx = zBrdsx(z)) != nil){
 		if(chattyimap)
 			fprint(2, "<| %#$\n", sx);
@@ -534,7 +534,7 @@ static void
 fetch1(Imap *z, Part *p, char *s)
 {
 	qlock(&z->lk);
-	imapcmd(z, p->msg->box, "UID FETCH %d BODY[%s]", 
+	imapcmd(z, p->msg->box, "UID FETCH %d BODY[%s]",
 		p->msg->imapuid, bodyname(p, s));
 	qunlock(&z->lk);
 }
@@ -569,7 +569,7 @@ imaplistcmd(Imap *z, Box *box, char *before, Msg **m, 
 	int i, r;
 	char *cmd;
 	Fmt fmt;
-	
+
 	if(nm == 0)
 		return 0;
 
@@ -582,7 +582,7 @@ imaplistcmd(Imap *z, Box *box, char *before, Msg **m, 
 	}
 	fmtprint(&fmt, " %s", after);
 	cmd = fmtstrflush(&fmt);
-	
+
 	r = 0;
 	if(imapcmd(z, box, "%s", cmd) < 0)
 		 r = -1;
@@ -595,7 +595,7 @@ imapcopylist(Imap *z, char *nbox, Msg **m, uint nm)
 {
 	int rv;
 	char *name, *p;
-	
+
 	if(nm == 0)
 		return 0;
 
@@ -617,7 +617,7 @@ int
 imapremovelist(Imap *z, Msg **m, uint nm)
 {
 	int rv;
-	
+
 	if(nm == 0)
 		return 0;
 
@@ -636,7 +636,7 @@ imapflaglist(Imap *z, int op, int flag, Msg **m, uint 
 	char *mod, *s, *sep;
 	int i, rv;
 	Fmt fmt;
-	
+
 	if(op > 0)
 		mod = "+";
 	else if(op == 0)
@@ -655,7 +655,7 @@ imapflaglist(Imap *z, int op, int flag, Msg **m, uint 
 	}
 	fmtprint(&fmt, ")");
 	s = fmtstrflush(&fmt);
-	
+
 	qlock(&z->lk);
 	rv = imaplistcmd(z, m[0]->box, "UID STORE", m, nm, s);
 	qunlock(&z->lk);
@@ -726,7 +726,7 @@ _ioimapdial(va_list *arg)
 {
 	char *server;
 	int mode;
-	
+
 	server = va_arg(*arg, char*);
 	mode = va_arg(*arg, int);
 	return imapdial(server, mode);
@@ -742,7 +742,7 @@ _ioBrdsx(va_list *arg)
 {
 	Biobuf *b;
 	Sx **sx;
-	
+
 	b = va_arg(*arg, Biobuf*);
 	sx = va_arg(*arg, Sx**);
 	*sx = Brdsx(b);
@@ -779,12 +779,12 @@ imapdial(char *server, int mode)
 	int fd[3];
 	char *tmp;
 	char *fpath;
-	
+
 	switch(mode){
 	default:
 	case Unencrypted:
 		return dial(netmkaddr(server, "tcp", "143"), nil, nil, nil);
-		
+
 	case Starttls:
 		werrstr("starttls not supported");
 		return -1;
@@ -818,7 +818,7 @@ imapdial(char *server, int mode)
 		free(tmp);
 		close(p[0]);
 		return p[1];
-	
+
 	case Cmd:
 		if(pipe(p) < 0)
 			return -1;
@@ -912,7 +912,7 @@ static int
 sxmatch(Sx *sx, char *fmt)
 {
 	int i;
-	
+
 	for(i=0; fmt[i]; i++){
 		if(fmt[i] == '*')
 			fmt--;	/* like i-- but better */
@@ -994,7 +994,7 @@ static int
 isatom(Sx *v, char *name)
 {
 	int n;
-	
+
 	if(v == nil || v->type != SxAtom)
 		return 0;
 	n = strlen(name);
@@ -1021,7 +1021,7 @@ isnumber(Sx *sx)
 static int
 isnil(Sx *v)
 {
-	return v == nil || 
+	return v == nil ||
 		(v->type==SxList && v->nsx == 0) ||
 		(v->type==SxAtom && strcmp(v->data, "NIL") == 0);
 }
@@ -1036,7 +1036,7 @@ static uint
 parseflags(Sx *v)
 {
 	int f, i, j;
-	
+
 	if(v->type != SxList){
 		warn("malformed flags: %$", v);
 		return 0;
@@ -1051,13 +1051,13 @@ parseflags(Sx *v)
 	}
 	return f;
 }
-	
+
 static char months[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
 static int
 parsemon(char *s)
 {
 	int i;
-	
+
 	for(i=0; months[i]; i+=3)
 		if(memcmp(s, months+i, 3) == 0)
 			return i/3;
@@ -1071,13 +1071,13 @@ parsedate(Sx *v)
 	uint t;
 	int delta;
 	char *p;
-	
+
 	if(v->type != SxString || !stringmatch("01-Aaa-1111 01:11:11 +1111", v->data)){
 	bad:
 		warn("bad date: %$", v);
 		return 0;
 	}
-	
+
 	/* cannot use atoi because 09 is malformed octal! */
 	memset(&tm, 0, sizeof tm);
 	p = v->data;
@@ -1095,7 +1095,7 @@ parsedate(Sx *v)
 	delta = ((p[22]-'0')*10+p[23]-'0')*3600 + ((p[24]-'0')*10+p[25]-'0')*60;
 	if(p[21] == '-')
 		delta = -delta;
-	
+
 	t -= delta;
 	return t;
 }
@@ -1123,7 +1123,7 @@ parseenvelope(Sx *v)
 	Hdr *hdr;
 	uchar digest[16];
 	DigestState ds;
-	
+
 	if(v->type != SxList || !sxmatch(v, "SSLLLLLLSS")){
 		warn("bad envelope: %$", v);
 		return nil;
@@ -1140,7 +1140,7 @@ parseenvelope(Sx *v)
 	hdr->bcc = copyaddrs(v->sx[7]);
 	hdr->inreplyto = unrfc2047(nstring(v->sx[8]));
 	hdr->messageid = unrfc2047(nstring(v->sx[9]));
-	
+
 	memset(&ds, 0, sizeof ds);
 	hash(&ds, "date", hdr->date);
 	hash(&ds, "subject", hdr->subject);
@@ -1162,7 +1162,7 @@ static void
 strlwr(char *s)
 {
 	char *t;
-	
+
 	if(s == nil)
 		return;
 	for(t=s; *t; t++)
@@ -1174,7 +1174,7 @@ static void
 nocr(char *s)
 {
 	char *r, *w;
-	
+
 	if(s == nil)
 		return;
 	for(r=w=s; *r; r++)
@@ -1191,7 +1191,7 @@ gsub(char *s, char *a, char *b)
 {
 	char *p, *t, *w, *last;
 	int n;
-	
+
 	n = 0;
 	for(p=s; (p=strstr(p, a)) != nil; p+=strlen(a))
 		n++;
@@ -1256,7 +1256,7 @@ unexpected(Imap *z, Sx *sx)
 		name = sx->sx[1]->data;
 	}else
 		return;
-	
+
 	for(i=0; i<nelem(unextab); i++){
 		if(unextab[i].num == num && cistrcmp(unextab[i].name, name) == 0){
 			if(unextab[i].fmt && !sxmatch(sx, unextab[i].fmt)){
@@ -1304,9 +1304,9 @@ xlist(Imap *z, Sx *sx)
 		free(s);
 		s = t;
 	}
-	
-	/* 
-	 * Plan 9 calls the main mailbox mbox.  
+
+	/*
+	 * Plan 9 calls the main mailbox mbox.
 	 * Rename any existing mbox by appending a $.
 	 */
 	if(!inbox && strncmp(s, "mbox", 4) == 0 && alldollars(s+4)){
@@ -1352,7 +1352,7 @@ xflags(Imap *z, Sx *sx)
 	/*
 	 * This response contains in sx->sx[2] the list of flags
 	 * that can be validly attached to messages in z->box.
-	 * We don't have any use for this list, since we 
+	 * We don't have any use for this list, since we
 	 * use only the standard flags.
 	 */
 }
@@ -1396,7 +1396,7 @@ static void
 xsearch(Imap *z, Sx *sx)
 {
 	int i;
-	
+
 	free(z->uid);
 	z->uid = emalloc((sx->nsx-2)*sizeof z->uid[0]);
 	z->nuid = sx->nsx-2;
@@ -1404,7 +1404,7 @@ xsearch(Imap *z, Sx *sx)
 		z->uid[i] = sx->sx[i+2]->number;
 }
 
-/* 
+/*
  * Table-driven FETCH message info parser.
  */
 static void xmsgflags(Msg*, Sx*, Sx*);
@@ -1496,7 +1496,7 @@ static char*
 nstring(Sx *v)
 {
 	char *p;
-	
+
 	if(isnil(v))
 		return estrdup("");
 	p = v->data;
@@ -1511,7 +1511,7 @@ copyaddrs(Sx *v)
 	char *name, *email, *host, *mbox;
 	int i;
 	Fmt fmt;
-	
+
 	if(v->nsx == 0)
 		return nil;
 
@@ -1565,7 +1565,7 @@ parseparams(Part *part, Sx *v)
 {
 	int i, j;
 	char *s, *t, **p;
-	
+
 	if(isnil(v))
 		return;
 	if(v->nsx%2){
@@ -1586,7 +1586,7 @@ parseparams(Part *part, Sx *v)
 		}
 		free(s);
 		free(t);
-	}			
+	}
 }
 
 static void
@@ -1594,7 +1594,7 @@ parsestructure(Part *part, Sx *v)
 {
 	int i;
 	char *s, *t;
-	
+
 	if(isnil(v))
 		return;
 	if(v->type != SxList){
@@ -1627,7 +1627,7 @@ parsestructure(Part *part, Sx *v)
 	strlwr(t);
 	free(part->type);
 	part->type = esmprint("%s/%s", s, t);
-	if(v->nsx < 7 || !islist(v->sx[2]) || !isstring(v->sx[3]) 
+	if(v->nsx < 7 || !islist(v->sx[2]) || !isstring(v->sx[3])
 	|| !isstring(v->sx[4]) || !isstring(v->sx[5]) || !isnumber(v->sx[6]))
 		goto bad;
 	parseparams(part, v->sx[2]);
@@ -1676,13 +1676,13 @@ xmsgbodydata(Msg *msg, Sx *k, Sx *v)
 	int i;
 	char *name, *p;
 	Part *part;
-	
+
 	name = k->data;
 	name += 5;	/* body[ */
 	p = strchr(name, ']');
 	if(p)
 		*p = 0;
-	
+
 	/* now name is something like 1 or 3.2.MIME - walk down parts from root */
 	part = msg->part[0];
 
@@ -1777,7 +1777,7 @@ xokuidvalidity(Imap *z, Sx *sx)
 {
 	int i;
 	Box *b;
-	
+
 	if((b=z->box) == nil)
 		return;
 	if(b->validity != sx->number){
@@ -1822,4 +1822,3 @@ xokreadonly(Imap *z, Sx *sx)
 	USED(sx);
 /*	z->boxmode = OREAD; */
 }
-
blob - ebcf701cab1116697b005a439a55f9319405d3f4
blob + c72a48494e13b795abdbd9a2cf69e2f1695e1b1c
--- src/cmd/upas/nfs/main.c
+++ src/cmd/upas/nfs/main.c
@@ -67,13 +67,13 @@ threadmain(int argc, char **argv)
 		break;
 	}ARGEND
 
-	quotefmtinstall();	
+	quotefmtinstall();
 	fmtinstall('$', sxfmt);
 
 	if(argc != 1)
 		usage();
 	server = argv[0];
-	
+
 	mailthreadinit();
 	boxinit();
 	fsinit0();
@@ -82,4 +82,3 @@ threadmain(int argc, char **argv)
 		sysfatal("imapconnect: %r");
 	threadpostmountsrv(&fs, srvname, mtpt, 0);
 }
-
blob - 5f90f0a21a51743e9a2a0e7023531b4719ccd284
blob + 1b60ffa6162f0f9d80131c61bbc66fa0b87b0922
--- src/cmd/upas/nfs/mbox.c
+++ src/cmd/upas/nfs/mbox.c
@@ -8,7 +8,7 @@ static void
 markboxes(int mark)
 {
 	Mailbox *b;
-	
+
 	for(i=0; i<nbox; i++)
 		if(box[i])
 			box[i]->mark = mark;
@@ -18,7 +18,7 @@ static void
 sweepboxes(void)
 {
 	Mailbox *b;
-	
+
 	for(i=0; i<nbox; i++)
 		if(box[i] && box[i]->mark){
 			freembox(box[i]);
@@ -30,7 +30,7 @@ static Mailbox*
 mboxbyname(char *name)
 {
 	int i;
-	
+
 	for(i=0; i<nbox; i++)
 		if(box[i] && strcmp(box[i]->name, name) == 0)
 			return box[i];
@@ -49,7 +49,7 @@ static Mailbox*
 mboxcreate(char *name)
 {
 	Mailbox *b;
-	
+
 	b = emalloc(sizeof *b);
 	b->name = estrdup(name);
 	if(nbox%64 == 0)
blob - f4a26862926c2ad17289029ddd00c225cd507fa2
blob + 622841a6c23dc81676bd217c52f7a3541acbc275
--- src/cmd/upas/nfs/msg.c
+++ src/cmd/upas/nfs/msg.c
@@ -6,4 +6,3 @@ cache flushes optionally to disk
 	before being tossed out
 
 reload from disk, then from server
-
blob - 65d338c217e197c645100973ea7204433ae6aeec
blob + 55e2934e7749ee7ada2482ad84df32ff0b81ab07
--- src/cmd/upas/nfs/sx.c
+++ src/cmd/upas/nfs/sx.c
@@ -7,7 +7,7 @@ Brdsx(Biobuf *b)
 {
 	Sx **sx, *x;
 	int nsx;
-	
+
 	nsx = 0;
 	sx = nil;
 	while((x = Brdsx1(b)) != nil){
@@ -21,11 +21,11 @@ Brdsx(Biobuf *b)
 	return x;
 }
 
-int 
+int
 sxwalk(Sx *sx)
 {
 	int i, n;
-	
+
 	if(sx == nil)
 		return 1;
 	switch(sx->type){
@@ -46,7 +46,7 @@ void
 freesx(Sx *sx)
 {
 	int i;
-	
+
 	if(sx == nil)
 		return;
 	switch(sx->type){
@@ -70,7 +70,7 @@ Brdsx1(Biobuf *b)
 	char *s;
 	vlong n;
 	Sx *x;
-	
+
 	c = Bgetc(b);
 	if(c == ' ')
 		c = Bgetc(b);
@@ -144,7 +144,7 @@ Brdsx1(Biobuf *b)
 	s = emalloc(1);
 	s[0] = c;
 	nbr = 0;
-	while((c = Bgetc(b)) >= 0 && c > ' ' && !strchr("(){}", c)){ 
+	while((c = Bgetc(b)) >= 0 && c > ' ' && !strchr("(){}", c)){
 		/* allow embedded brackets as in BODY[] */
 		if(c == '['){
 			if(s[0] == '[')
@@ -169,7 +169,7 @@ Brdsx1(Biobuf *b)
 	x->type = SxAtom;
 	x->data = s;
 	x->ndata = len;
-	return x;		
+	return x;
 }
 
 int
@@ -177,7 +177,7 @@ sxfmt(Fmt *fmt)
 {
 	int i, paren;
 	Sx *sx;
-	
+
 	sx = va_arg(fmt->args, Sx*);
 	if(sx == nil)
 		return 0;
@@ -211,7 +211,7 @@ sxfmt(Fmt *fmt)
 int
 oksx(Sx *sx)
 {
-	return sx->nsx >= 2 
-		&& sx->sx[1]->type == SxAtom 
+	return sx->nsx >= 2
+		&& sx->sx[1]->type == SxAtom
 		&& cistrcmp(sx->sx[1]->data, "OK") == 0;
 }
blob - 38a801d45ba3115a0dc70b8e5f23e12b5d821356
blob + 696b5a704e89fa658b1227d20e0592121d127acc
--- src/cmd/upas/nfs/sx.h
+++ src/cmd/upas/nfs/sx.h
@@ -28,4 +28,3 @@ void	freesx(Sx*);
 int	oksx(Sx*);
 int	sxfmt(Fmt*);
 int	sxwalk(Sx*);
-
blob - bb40def13ac755337573f4b0b3d357d2e232cf56
blob + b4c893ee0db739ffbbe15c0d3abad98f99c1d237
--- src/cmd/upas/nfs/thread.c
+++ src/cmd/upas/nfs/thread.c
@@ -13,7 +13,7 @@ void
 mailthread(void (*fn)(void*), void *arg)
 {
 	New n;
-	
+
 	n.fn = fn;
 	n.arg = arg;
 	send(mailthreadchan, &n);
@@ -23,7 +23,7 @@ void
 mailproc(void *v)
 {
 	New n;
-	
+
 	USED(v);
 	while(recv(mailthreadchan, &n) == 1)
 		threadcreate(n.fn, n.arg, STACK);
@@ -35,4 +35,3 @@ mailthreadinit(void)
 	mailthreadchan = chancreate(sizeof(New), 0);
 	proccreate(mailproc, nil, STACK);
 }
-
blob - ac9deba8ada839246655030f9f2f9ae2e9f41879
blob + 048eef052a0076170dce2f703e248dcdbc5fcde5
--- src/cmd/upas/nfs/util.c
+++ src/cmd/upas/nfs/util.c
@@ -4,7 +4,7 @@ void
 warn(char *fmt, ...)
 {
 	va_list arg;
-	
+
 	va_start(arg, fmt);
 	fprint(2, "warning: ");
 	vfprint(2, fmt, arg);
blob - af674368515fa877152d695f57e7ac1c89105981
blob + 4974a8b52e63d212043cb31dceeb5d673d027d02
--- src/cmd/upas/pop3/pop3.c
+++ src/cmd/upas/pop3/pop3.c
@@ -63,7 +63,7 @@ static int passwordinclear;
 static int didtls;
 
 typedef struct Msg Msg;
-struct Msg 
+struct Msg
 {
 	int upasnum;
 	char digest[64];
@@ -575,7 +575,7 @@ stlscmd(char*)
 	Binit(&out, 1, OWRITE);
 	didtls = 1;
 	return 0;
-}		
+}
 
 static int
 topcmd(char *arg)
@@ -643,7 +643,7 @@ uidlcmd(char *arg)
 			return senderr("no such message");
 		sendok("%d %s", n+1, msg[n].digest);
 	}
-	return 0;	
+	return 0;
 }
 
 static char*
@@ -746,7 +746,7 @@ dologin(char *response)
 		if(tries++ >= 5){
 			senderr("authentication failed: %r; server exiting");
 			exits(nil);
-		}	
+		}
 		return senderr("authentication failed");
 	}
 
@@ -801,4 +801,3 @@ apopcmd(char *arg)
 		return -1;
 	return dologin(resp);
 }
-
blob - 2e3685040fcd95947cc6139bc46df89b86089a41
blob + 3030142405b891a20306bf919cfae7d9b3534c55
--- src/cmd/upas/scanmail/common.c
+++ src/cmd/upas/scanmail/common.c
@@ -277,7 +277,7 @@ htmlchk(char **msg, char *end)
 	p = *msg;
 	if(ishtml == 0){
 		ishtml = htmlmatch(htmlcmds, p, end, &n);
-	
+
 		/* If not an HTML keyword, check if it's
 		 * an HTML comment (<!comment>).  if so,
 		 * skip over it; otherwise copy it in.
@@ -287,7 +287,7 @@ htmlchk(char **msg, char *end)
 
 	} else if(htmlmatch(hrefs, p, end, &n))	/* if special HTML string  */
 		return '<';			/* copy it */
-	
+
 	/*
 	 * this is an uninteresting HTML command; skip over it.
 	 */
blob - 48cd4bbfe4649c5ab0078413ba37b4262d5e4587
blob + 79399c8bfa5651ab3dd322b9d2f4f51e6868e57a
--- src/cmd/upas/scanmail/testscan.c
+++ src/cmd/upas/scanmail/testscan.c
@@ -110,7 +110,7 @@ main(int argc, char *argv[])
 			exits("open");
 		}
 		Binit(&bin, fd, OREAD);
-	} else 
+	} else
 		Binit(&bin, 0, OREAD);
 
 	*body = 0;
blob - 8a8fc8eacf1d390698cf7666c354847aec0ac7cd
blob + 05327975a25a5d0ab37712934108df3ced608dfa
--- src/cmd/upas/send/bind.c
+++ src/cmd/upas/send/bind.c
@@ -130,4 +130,3 @@ forward_loop(char *addr, char *system)
 			return 1;
 	return 0;
 }
-
blob - 6c455833a76b1779a8eb19e4e8353d9d6c00ef00
blob + 15a2026e0bf62a4fa1c3885680671af0ed75b83d
--- src/cmd/upas/send/main.c
+++ src/cmd/upas/send/main.c
@@ -122,7 +122,7 @@ main(int argc, char *argv[])
 
 	/*
 	 *  If this is a gateway, translate the sender address into a local
-	 *  address.  This only happens if mail to the local address is 
+	 *  address.  This only happens if mail to the local address is
 	 *  forwarded to the sender.
 	 */
 	gateway(mp);
blob - 3ec8d706eb2610f42a48b412ac85dc4e986b9000
blob + 60dd050b3b365df416c70b4a3e244a8921ac0437
--- src/cmd/upas/send/message.c
+++ src/cmd/upas/send/message.c
@@ -224,7 +224,7 @@ rfc822cruft(message *mp)
 				if(p->addr){
 					cp = skipequiv(s_to_c(p->s));
 					s_append(body, cp);
-				} else 
+				} else
 					s_append(body, s_to_c(p->s));
 			}else{
 				s_putc(body, p->c);
@@ -494,7 +494,7 @@ int
 isutf8(String *s)
 {
 	char *p;
-	
+
 	for(p = s_to_c(s);  *p; p++)
 		if(*p&0x80)
 			return 1;
blob - 3f30d4f3aa0d0e0eee788df78e07854e961905aa
blob + 3b19da27b0ac64dd8dca0cef5bd2670c26f4123f
--- src/cmd/upas/send/rewrite.c
+++ src/cmd/upas/send/rewrite.c
@@ -3,7 +3,7 @@
 
 extern int debug;
 
-/* 
+/*
  *	Routines for dealing with the rewrite rules.
  */
 
@@ -249,7 +249,7 @@ substitute(String *source, Resub *subexp, message *mp)
 	char *s;
 	char *sp;
 	String *stp;
-	
+
 	if(source == 0)
 		return 0;
 	sp = s_to_c(source);
@@ -292,7 +292,7 @@ substitute(String *source, Resub *subexp, message *mp)
 				s_putc(stp, *sp);
 				break;
 			}
-		} else if(*sp == '&') {			
+		} else if(*sp == '&') {
 			if(subexp[0].s.sp != 0)
 				for (s = subexp[0].s.sp;
 				     s < subexp[0].e.ep; s++)
@@ -345,4 +345,3 @@ dumprules(void)
 		fprint(2, " '%s'\n", rp->repl2 ? rp->repl2->base:"...");
 	}
 }
-
blob - f40181ad58d56b659bcb3a19657c752d9cf711ac
blob + d5bf0bb17e6612b946c9ef7e1335169017f7084a
--- src/cmd/upas/send/skipequiv.c
+++ src/cmd/upas/send/skipequiv.c
@@ -41,7 +41,7 @@ okfile(char *cp, Biobuf *fp)
 
 	len = strlen(cp);
 	Bseek(fp, 0, 0);
-	
+
 	/* one iteration per system name in the file */
 	while(buf = Brdline(fp, '\n')) {
 		ep = &buf[Blinelen(fp)];
blob - 56962dcd55066ac3268ea5e7d3644c9054181f03
blob + f7a009afda00ff5ac2eee75fd19f61be1ad2fd14
--- src/cmd/upas/smtp/mxdial.c
+++ src/cmd/upas/smtp/mxdial.c
@@ -171,7 +171,7 @@ mxlookup(DS *ds, char *domain)
 {
 	int i, n, nmx;
 	Ndbtuple *t, *tmx, *tpref, *tip;
-	
+
 	strcpy(domain, ds->host);
 	ds->netdir = "/net";
 	nmx = 0;
@@ -184,7 +184,7 @@ mxlookup(DS *ds, char *domain)
 					nmx++;
 					break;
 				}
-			}	
+			}
 		}
 		ndbfree(t);
 	}
@@ -216,14 +216,14 @@ mxlookup(DS *ds, char *domain)
 		strncpy(mx[i].ip, tip->val, sizeof(mx[i].ip)-1);
 		ndbfree(t);
 		continue;
-	
+
 	no:
 		/* remove mx[i] and go around again */
 		nmx--;
 		mx[i] = mx[nmx];
 		i--;
 	}
-	return nmx;		
+	return nmx;
 }
 
 static int
blob - 92873723d4e3438cec3cf38cfd368ec3c382f3c9
blob + 88d7f7a4d7fb807ba36ec3a5509966ab01b50976
--- src/cmd/upas/smtp/smtp.c
+++ src/cmd/upas/smtp/smtp.c
@@ -60,7 +60,7 @@ void
 usage(void)
 {
 	fprint(2, "usage: smtp [-adips] [-uuser] [-hhost] [.domain] net!host[!service] sender rcpt-list\n");
-	threadexitsall(Giveup); 
+	threadexitsall(Giveup);
 }
 
 int
@@ -656,7 +656,7 @@ data(String *from, Biobuf *b)
 		nbytes += Bprint(&bout, "Message-ID: <%s@%s>\r\n", id, hostdomain);
 		if(debug)
 			Bprint(&berr, "Message-ID: <%s@%s>\r\n", id, hostdomain);
-	}	
+	}
 
 	if(originator==0){
 		nbytes += Bprint(&bout, "From: %s\r\n", s_to_c(fromline));
@@ -687,7 +687,7 @@ data(String *from, Biobuf *b)
 	/*
 	 *  send body
 	 */
-		
+
 	putcrnl(uneaten, buf+n - uneaten);
 	nbytes += buf+n - uneaten;
 	if(eof == 0){
@@ -1109,14 +1109,14 @@ dBputc(int x)
 	return Bputc(&bout, x);
 }
 
-char* 
+char*
 expand_addr(char *addr)
 {
 	static char buf[256];
 	char *p, *q, *name, *sys;
 	Ndbtuple *t;
 	Ndb *db;
-	
+
 	p = strchr(addr, '!');
 	if(p){
 		q = strchr(p+1, '!');
@@ -1131,7 +1131,7 @@ expand_addr(char *addr)
 	name++;
 	if(q)
 		*q = 0;
-		
+
 	sys = sysname();
 	db = ndbopen(0);
 	t = ndbipinfo(db, "sys", sys, &name, 1);
@@ -1141,7 +1141,7 @@ expand_addr(char *addr)
 			*q = '!';
 		return addr;
 	}
-	
+
 	*(name-1) = 0;
 	if(q)
 		*q = '!';
blob - e59dbddd2ae63c26d0e94675e086be081e8e3cbd
blob + df722c10836d5c108403195611cba851a8c8c7cc
--- src/cmd/upas/smtp/smtpd.c
+++ src/cmd/upas/smtp/smtpd.c
@@ -304,7 +304,7 @@ hello(String *himp, int extended)
 	if (extended) {
 		if(tlscert != nil)
 			reply("250-STARTTLS\r\n");
-		if (passwordinclear)		
+		if (passwordinclear)
 			reply("250 AUTH CRAM-MD5 PLAIN LOGIN\r\n");
 		else
 			reply("250 AUTH CRAM-MD5\r\n");
@@ -1101,7 +1101,7 @@ sendermxcheck(void)
 		 * Could add an option with the remote IP address
 		 * to allow validatesender to implement SPF eventually.
 		 */
-		execl(validate, "validatesender", 
+		execl(validate, "validatesender",
 			"-n", nci->root, senddom, user, nil);
 		threadexitsall("exec validatesender: %r");
 	default:
@@ -1165,7 +1165,7 @@ data(void)
 			reply("450 %s\r\n", errx);
 		for(l=rcvers.first; l; l=l->next)
 			syslog(0, "smtpd", "[%s/%s] %s -> %s sendercheck: %s",
-					him, nci->rsys, s_to_c(senders.first->p), 
+					him, nci->rsys, s_to_c(senders.first->p),
 					s_to_c(l->p), errx);
 		rejectcount++;
 		return;
@@ -1214,7 +1214,7 @@ data(void)
 			code = 554;
 		} else {
 			syslog(0, "smtpd", "++[%s/%s] %s %s %s%s%sreturned %#q %s", him, nci->rsys,
-				s_to_c(senders.first->p), s_to_c(cmd), 
+				s_to_c(senders.first->p), s_to_c(cmd),
 				piperror ? "error during pipemsg: " : "",
 				piperror ? piperror : "",
 				piperror ? "; " : "",
blob - bb982a2f398e625a598e6f6b9e7b1377841c33f6
blob + 9f8cdffaf54967e2416e9ddcd20c1e4c29adb7bf
--- src/cmd/upas/smtp/smtpd.h
+++ src/cmd/upas/smtp/smtpd.h
@@ -11,7 +11,7 @@ enum {
 	MAXREJECTS = 100
 };
 
-	
+
 typedef struct Link Link;
 typedef struct List List;
 
blob - 723e341d5e2a5f4cd524d2bf1116c85b7498ed47
blob + 2422dfe9bff6703b967694a5d60aa170df6ab86d
--- src/cmd/upas/smtp/spam.c
+++ src/cmd/upas/smtp/spam.c
@@ -26,7 +26,7 @@ static Keyword options[] = {
 	"norelay",		NORELAY,
 	"verifysenderdom",	DNSVERIFY,
 	"saveblockedmsg",	SAVEBLOCK,
-	"defaultdomain",	DOMNAME,	
+	"defaultdomain",	DOMNAME,
 	"ournets",		OURNETS,
 	"ourdomains",		OURDOMS,
 	0,			NONE
@@ -84,7 +84,7 @@ getaction(char *s, char *type)
 		return ACCEPT;
 
 	for(k = actions; k->name != 0; k++){
-		snprint(buf, sizeof buf, "%s/mail/ratify/%s/%s/%s", 
+		snprint(buf, sizeof buf, "%s/mail/ratify/%s/%s/%s",
 			get9root(), k->name, type, s);
 		if(access(buf,0) >= 0)
 			return k->code;
@@ -435,7 +435,7 @@ cidrcheck(char *cp)
 		if((v4peerip&m) == a)
 			return 1;
 		cp += strlen(cp)+1;
-	}		
+	}
 	return 0;
 }
 
@@ -508,7 +508,7 @@ recipok(char *user)
 	int pid;
 	Waitmsg *w;
 	static int beenhere;
-	
+
 	if(!beenhere){
 		beenhere++;
 		validator = unsharp(validator);
blob - aecbca62de064d7fb9a50be9eb1a013ce12aec8c
blob + 7269da900a51f64d63b96b716694b3d5e12df0e1
--- src/cmd/upas/vf/unvf.c
+++ src/cmd/upas/vf/unvf.c
@@ -15,10 +15,10 @@ main(void)
 	Biobuf b, b1;
 	char *p, *encoding;
 	int e, len;
-	
+
 	Binit(&b, 0, OREAD);
 	Binit(&b1, 1, OWRITE);
-	
+
 	/* header */
 	encoding = nil;
 	while((p = Brdstr(&b, '\n', 1)) != nil){
@@ -58,7 +58,7 @@ main(void)
 }
 
 /*
- *  decode quoted 
+ *  decode quoted
  */
 enum
 {
@@ -153,4 +153,3 @@ decquoted(char *out, char *in, char *e)
 
 	return p - out;
 }
-
blob - fb54d4a19b71d8e9865393acf60e9ddb1b991379
blob + 5aab37fef2ee0cd1b5a2298e170a8036eae6fb75
--- src/cmd/upas/vf/vf.c
+++ src/cmd/upas/vf/vf.c
@@ -213,7 +213,7 @@ part(Part *pp)
 			passnotheader();
 			return part(p);
 		} else {
-			/* 
+			/*
 			 * This is the meat.  This may be an executable.
 			 * if so, wrap it and change its type
 			 */
@@ -390,7 +390,7 @@ save(Part *p, char *file)
 	Bprint(&out, "\n");
 	Bterm(&out);
 	close(fd);
-	
+
 	memset(&out, 0, sizeof out);
 	Binit(&out, 1, OWRITE);
 	return 0;
@@ -404,7 +404,7 @@ savetmp(Part *p)
 {
 	char buf[40], *name;
 	int fd;
-	
+
 	strcpy(buf, "/var/tmp/vf.XXXXXXXXXXX");
 	if((fd = mkstemp(buf)) < 0){
 		fprint(2, "error creating temporary file: %r\n");
@@ -439,7 +439,7 @@ runchecker(Part *p)
 	char *name;
 	Waitmsg *w;
 	static char *val;
-	
+
 	if(val == nil)
 		val = unsharp("#9/mail/lib/validateattachment");
 	if(val == nil || access(val, AEXEC) < 0)
@@ -503,7 +503,7 @@ problemchild(Part *p)
 
 	if(justreject)
 		return p;
-		
+
 	syslog(0, "mail", "vf wrapped %s %s", p->type?s_to_c(p->type):"?",
 		p->filename?s_to_c(p->filename):"?");
 
@@ -591,7 +591,7 @@ isattribute(char **pp, char *attr)
 }
 
 /*
- *  parse content type header 
+ *  parse content type header
  */
 static void
 ctype(Part *p, Hdef *h, char *cp)
@@ -605,7 +605,7 @@ ctype(Part *p, Hdef *h, char *cp)
 	cp = getstring(cp, p->type, 1);
 	if(badtype(s_to_c(p->type)))
 		p->badtype = 1;
-	
+
 	while(*cp){
 		if(isattribute(&cp, "boundary")){
 			s = s_new();
@@ -627,13 +627,13 @@ ctype(Part *p, Hdef *h, char *cp)
 				p->charset = s_new();
 			cp = getstring(cp, s_reset(p->charset), 0);
 		}
-		
+
 		cp = skiptosemi(cp);
 	}
 }
 
 /*
- *  parse content encoding header 
+ *  parse content encoding header
  */
 static void
 cencoding(Part *m, Hdef *h, char *p)
@@ -647,7 +647,7 @@ cencoding(Part *m, Hdef *h, char *p)
 }
 
 /*
- *  parse content disposition header 
+ *  parse content disposition header
  */
 static void
 cdisposition(Part *p, Hdef *h, char *cp)
@@ -1006,7 +1006,7 @@ err:
 }
 
 /*
- *  decode quoted 
+ *  decode quoted
  */
 enum
 {
blob - b064feaf1e632fd6c7233f98064bea8f294a1038
blob + 8d4a71e6a783372833a2ecef49cf7c4ea4773830
--- src/cmd/usage.c
+++ src/cmd/usage.c
@@ -9,7 +9,7 @@ main(int argc, char **argv)
 	char *argv0, *args, *flags, *p, *p0;
 	int single;
 	Rune r;
-	
+
 	argv0 = getenv("0");
 	if(argv0 == nil) {
 		if(argc > 1)
@@ -21,7 +21,7 @@ main(int argc, char **argv)
 		argv0 = p+1;
 	flags = getenv("flagfmt");
 	args = getenv("args");
-	
+
 	if(argv0 == nil){
 		fprint(2, "aux/usage: $0 not set\n");
 		exits("$0");
blob - 000a762a8de80c9fb0dfe3eec6a6971a6b225182
blob + 7182d52b888ebc422197629aa573bc061239bed6
--- src/cmd/vac/dat.h
+++ src/cmd/vac/dat.h
@@ -35,4 +35,3 @@ struct VacDirEnum
 	int i, n;
 	VacDir *buf;
 };
-
blob - d96502892bbf09bc39ee0684040b851cb9afb3df
blob + e25f6cfc6b1317033b966a631a2b2cd21810621d
--- src/cmd/vac/file.c
+++ src/cmd/vac/file.c
@@ -8,21 +8,21 @@
 
 /*
  * Vac file system.  This is a simplified version of the same code in Fossil.
- * 
+ *
  * The locking order in the tree is upward: a thread can hold the lock
  * for a VacFile and then acquire the lock of f->up (the parent),
  * but not vice-versa.
- * 
+ *
  * A vac file is one or two venti files.  Plain data files are one venti file,
  * while directores are two: a venti data file containing traditional
- * directory entries, and a venti directory file containing venti 
+ * directory entries, and a venti directory file containing venti
  * directory entries.  The traditional directory entries in the data file
  * contain integers indexing into the venti directory entry file.
  * It's a little complicated, but it makes the data usable by standard
  * tools like venti/copy.
  *
  */
- 
+
 static int filemetaflush(VacFile*, char*);
 
 struct VacFile
@@ -45,7 +45,7 @@ struct VacFile
 	VtFile	*msource;	/* metadata for children in a directory */
 	VacFile	*down;	/* children */
 	int		mode;
-	
+
 	uvlong	qidoffset;	/* qid offset */
 };
 
@@ -215,7 +215,7 @@ vacfiledecref(VacFile *f)
 		filefree(f);
 		return 0;
 	}
-	
+
 	filemetalock(f);
 	f->ref--;
 	if(f->ref > 0){
@@ -256,12 +256,12 @@ vacfiledecref(VacFile *f)
 }
 
 
-/* 
- * Construct a vacfile for the root of a vac tree, given the 
- * venti file for the root information.  That venti file is a 
+/*
+ * Construct a vacfile for the root of a vac tree, given the
+ * venti file for the root information.  That venti file is a
  * directory file containing VtEntries for three more venti files:
- * the two venti files making up the root directory, and a 
- * third venti file that would be the metadata half of the 
+ * the two venti files making up the root directory, and a
+ * third venti file that would be the metadata half of the
  * "root's parent".
  *
  * Fossil generates slightly different vac files, due to a now
@@ -273,7 +273,7 @@ VacFile*
 _vacfileroot(VacFs *fs, VtFile *r)
 {
 	int redirected;
-	char err[ERRMAX];	
+	char err[ERRMAX];
 	VtBlock *b;
 	VtFile *r0, *r1, *r2;
 	MetaBlock mb;
@@ -374,7 +374,7 @@ Err1:
  * to look at every block to find a given name.
  * Dirlookup looks in f for an element name elem.
  * It returns a new VacFile with the dir, boff, and mode
- * filled in, but the sources (venti files) are not, and f is 
+ * filled in, but the sources (venti files) are not, and f is
  * not yet linked into the tree.  These details must be taken
  * care of by the caller.
  *
@@ -535,8 +535,8 @@ Err:
 	return nil;
 }
 
-/* 
- * Open a path in the vac file system: 
+/*
+ * Open a path in the vac file system:
  * just walk each element one at a time.
  */
 VacFile*
@@ -696,12 +696,12 @@ vacfilegetsize(VacFile *f, uvlong *size)
  * Directory reading.
  *
  * A VacDirEnum is a buffer containing directory entries.
- * Directory entries contain malloced strings and need to 
- * be cleaned up with vdcleanup.  The invariant in the 
+ * Directory entries contain malloced strings and need to
+ * be cleaned up with vdcleanup.  The invariant in the
  * VacDirEnum is that the directory entries between
  * vde->i and vde->n are owned by the vde and need to
  * be cleaned up if it is closed.  Those from 0 up to vde->i
- * have been handed to the reader, and the reader must 
+ * have been handed to the reader, and the reader must
  * take care of calling vdcleanup as appropriate.
  */
 VacDirEnum*
@@ -718,7 +718,7 @@ vdeopen(VacFile *f)
 	/*
 	 * There might be changes to this directory's children
 	 * that have not been flushed out into the cache yet.
-	 * Those changes are only available if we look at the 
+	 * Those changes are only available if we look at the
 	 * VacFile structures directory.  But the directory reader
 	 * is going to read the cache blocks directly, so update them.
 	 */
@@ -912,19 +912,19 @@ vdeclose(VacDirEnum *vde)
  * On to mutation.  If the vac file system has been opened
  * read-write, then the files and directories can all be edited.
  * Changes are kept in the in-memory cache until flushed out
- * to venti, so we must be careful to explicitly flush data 
+ * to venti, so we must be careful to explicitly flush data
  * that we're not likely to modify again.
  *
  * Each VacFile has its own copy of its VacDir directory entry
  * in f->dir, but otherwise the cache is the authoratative source
- * for data.  Thus, for the most part, it suffices if we just 
+ * for data.  Thus, for the most part, it suffices if we just
  * call vtfileflushbefore and vtfileflush when we modify things.
  * There are a few places where we have to remember to write
  * changed VacDirs back into the cache.  If f->dir *is* out of sync,
  * then f->dirty should be set.
  *
  * The metadata in a directory is, to venti, a plain data file,
- * but as mentioned above it is actually a sequence of 
+ * but as mentioned above it is actually a sequence of
  * MetaBlocks that contain sorted lists of VacDir entries.
  * The filemetaxxx routines manipulate that stream.
  */
@@ -949,10 +949,10 @@ filemetaalloc(VacFile *fp, VacDir *dir, u32int start)
 	int i, n;
 	MetaEntry me;
 	VtFile *ms;
-	
+
 	ms = fp->msource;
 	n = vdsize(dir, VacDirVersion);
-	
+
 	/* Look for a block with room for a new entry of size n. */
 	nb = (vtfilegetsize(ms)+ms->dsize-1)/ms->dsize;
 	if(start == NilBlock){
@@ -961,7 +961,7 @@ filemetaalloc(VacFile *fp, VacDir *dir, u32int start)
 		else
 			start = 0;
 	}
-	
+
 	if(start > nb)
 		start = nb;
 	for(bo=start; bo<nb; bo++){
@@ -1015,7 +1015,7 @@ Err:
 }
 
 /*
- * Update f's directory entry in the block cache. 
+ * Update f's directory entry in the block cache.
  * We look for the directory entry by name;
  * if we're trying to rename the file, oelem is the old name.
  *
@@ -1057,7 +1057,7 @@ filemetaflush(VacFile *f, char *oelem)
 		goto Err;
 
 	/*
-	 * Check whether we can resize the entry and keep it 
+	 * Check whether we can resize the entry and keep it
 	 * in this block.
 	 */
 	n = vdsize(&f->dir, VacDirVersion);
@@ -1076,20 +1076,20 @@ filemetaflush(VacFile *f, char *oelem)
 vdunpack(&f->dir, &me);
 		mbinsert(&mb, i, &me);
 		mbpack(&mb);
-		
+
 		/* Done */
 		vtblockput(b);
 		vtfileunlock(fp->msource);
 		f->dirty = 0;
 		return 0;
 	}
-	
+
 	/*
 	 * The entry must be moved to another block.
 	 * This can only really happen on renames that
 	 * make the name very long.
 	 */
-	
+
 	/* Allocate a spot in a new block. */
 	if((bo = filemetaalloc(fp, &f->dir, f->boff+1)) == NilBlock){
 		/* mbresize above might have modified block */
@@ -1175,7 +1175,7 @@ vacfileflush(VacFile *f, int recursive)
 	int ret;
 	VacFile **kids, *p;
 	int i, nkids;
-	
+
 	if(f->mode == VtOREAD)
 		return 0;
 
@@ -1218,7 +1218,7 @@ vacfileflush(VacFile *f, int recursive)
 
 	/*
 	 * Now we can flush our own data.
-	 */	
+	 */
 	vtfilelock(f->source, -1);
 	if(vtfileflush(f->source) < 0)
 		ret = -1;
@@ -1233,7 +1233,7 @@ vacfileflush(VacFile *f, int recursive)
 
 	return ret;
 }
-		
+
 /*
  * Create a new file named elem in fp with the given mode.
  * The mode can be changed later except for the ModeDir bit.
@@ -1339,7 +1339,7 @@ vacfilecreate(VacFile *fp, char *elem, ulong mode)
 	vacfileincref(fp);
 
 	fileunlock(fp);
-	
+
 	filelock(ff);
 	vtfilelock(ff->source, -1);
 	vtfileunlock(ff->source);
@@ -1375,7 +1375,7 @@ vacfilesetsize(VacFile *f, uvlong size)
 		werrstr(ENotFile);
 		return -1;
 	}
-	
+
 	if(filelock(f) < 0)
 		return -1;
 
@@ -1534,7 +1534,7 @@ vacfilesetdir(VacFile *f, VacDir *dir)
 	if(filelock(f) < 0)
 		return -1;
 	filemetalock(f);
-	
+
 	if(f->source->mode != VtORDWR){
 		werrstr(EReadOnly);
 		goto Err;
@@ -1777,7 +1777,7 @@ vacfsopen(VtConn *z, char *file, int mode, ulong cache
 	int fd;
 	uchar score[VtScoreSize];
 	char *prefix;
-	
+
 	if(vtparsescore(file, &prefix, score) >= 0){
 		if(prefix == nil || strcmp(prefix, "vac") != 0){
 			werrstr("not a vac file");
@@ -1836,7 +1836,7 @@ if(debug) fprint(2, "bad type %s\n", rt.type);
 
 	memmove(e.score, rt.score, VtScoreSize);
 	e.gen = 0;
-	
+
 	// Don't waste cache memory on pointer blocks
 	// when rt.blocksize is large.
 	e.psize = (rt.blocksize/VtEntrySize)*VtEntrySize;
@@ -1918,7 +1918,7 @@ int
 vacfsgetmaxqid(VacFs *fs, uvlong *maxqid)
 {
 	VacDir vd;
-	
+
 	if(vacfilegetdir(fs->root, &vd) < 0)
 		return -1;
 	if(vd.qidspace)
@@ -1955,7 +1955,7 @@ vacfscreate(VtConn *z, int bsize, ulong cachemem)
 	VacDir vd;
 	MetaEntry me;
 	int psize;
-	
+
 	if((fs = vacfsalloc(z, bsize, cachemem, VtORDWR)) == nil)
 		return nil;
 
@@ -1989,7 +1989,7 @@ if(debug) fprint(2, "create bsize %d psize %d\n", bsiz
 	vtblockwrite(b);
 	memmove(metascore, b->score, VtScoreSize);
 	vtblockput(b);
-	
+
 	/* First entry: empty venti directory stream. */
 	memset(&e, 0, sizeof e);
 	e.flags = VtEntryActive;
@@ -1999,7 +1999,7 @@ if(debug) fprint(2, "create bsize %d psize %d\n", bsiz
 	memmove(e.score, vtzeroscore, VtScoreSize);
 	vtentrypack(&e, buf, 0);
 	vtfilewrite(f, buf, VtEntrySize, 0);
-	
+
 	/* Second entry: empty metadata stream. */
 	e.type = VtDataType;
 	vtentrypack(&e, buf, 0);
@@ -2013,7 +2013,7 @@ if(debug) fprint(2, "create bsize %d psize %d\n", bsiz
 
 	vtfileflush(f);
 	vtfileunlock(f);
-	
+
 	/* Now open it as a vac fs. */
 	fs->root = _vacfileroot(fs, f);
 	if(fs->root == nil){
@@ -2105,7 +2105,7 @@ sha1matches(VacFile *f, ulong b, uchar *buf, int n)
 {
 	uchar fscore[VtScoreSize];
 	uchar bufscore[VtScoreSize];
-	
+
 	if(vacfileblockscore(f, b, fscore) < 0)
 		return 0;
 	n = vtzerotruncate(VtDataType, buf, n);
@@ -2114,4 +2114,3 @@ sha1matches(VacFile *f, ulong b, uchar *buf, int n)
 		return 1;
 	return 0;
 }
-
blob - 863eb848619be881ba23e577da0c7675eb9ed7d0
blob + 69602ad75f5ddcc3e41221b3ef8ce0262d29dedd
--- src/cmd/vac/glob.c
+++ src/cmd/vac/glob.c
@@ -89,7 +89,7 @@ glob2regexp(char *glob)
 	*w++ = ')';
 	*w++ = '$';
 	*w = 0;
-	
+
 	re = regcomp(s);
 	if(re == nil){
 	syntax:
@@ -130,7 +130,7 @@ loadexcludefile(char *file)
 		case '#':
 			continue;
 		}
-		
+
 		inc = 0;
 		if(strncmp(p, "include ", 8) == 0){
 			inc = 1;
@@ -157,7 +157,7 @@ void
 excludepattern(char *p)
 {
 	Reprog *re;
-	
+
 	if((re = glob2regexp(p)) == nil)
 		sysfatal("bad glob pattern %s", p);
 
@@ -171,10 +171,9 @@ int
 includefile(char *file)
 {
 	Pattern *p, *ep;
-	
+
 	for(p=pattern, ep=p+npattern; p<ep; p++)
 		if(regexec(p->re, file, nil, 0))
 			return p->include;
 	return 1;
 }
-
blob - 5555cc0eb287595d50c381434f9c36c3ad132496
blob + 1eca665db061dfa4981b0d1dc7ebf66103e1cf6e
--- src/cmd/vac/pack.c
+++ src/cmd/vac/pack.c
@@ -36,7 +36,7 @@ stringunpack(char **s, uchar **p, int *n)
 
 	if(*n < 2)
 		return -1;
-	
+
 	nn = U16GET(*p);
 	*p += 2;
 	*n -= 2;
@@ -187,7 +187,7 @@ if(0)print("eo = %d en = %d\n", eo, en);
 	}
 
 	p = mb->buf + eo;
-	
+
 	/* make sure entry looks ok and includes an elem name */
 	if(en < 8 || U32GET(p) != DirMagic || en < 8 + U16GET(p+6)) {
 		werrstr("corrupted meta block entry");
@@ -317,7 +317,7 @@ mbcompact(MetaBlock *mb, MetaChunk *mc)
 	int oo, o, n, i;
 
 	oo = MetaHeaderSize + mb->maxindex*MetaIndexSize;
-	
+
 	for(i=0; i<mb->nindex; i++) {
 		o = mc[i].offset;
 		n = mc[i].size;
@@ -375,7 +375,7 @@ int
 vdsize(VacDir *dir, int version)
 {
 	int n;
-	
+
 	if(version < 8 || version > 9)
 		sysfatal("bad version %d in vdpack", version);
 
@@ -433,7 +433,7 @@ vdpack(VacDir *dir, MetaEntry *me, int version)
 		sysfatal("bad version %d in vdpack", version);
 
 	p = me->p;
-	
+
 	U32PUT(p, DirMagic);
 	U16PUT(p+4, version);		/* version */
 	p += 6;
@@ -442,7 +442,7 @@ vdpack(VacDir *dir, MetaEntry *me, int version)
 
 	U32PUT(p, dir->entry);
 	p += 4;
-	
+
 	if(version == 9){
 		U32PUT(p, dir->gen);
 		U32PUT(p+4, dir->mentry);
@@ -456,7 +456,7 @@ vdpack(VacDir *dir, MetaEntry *me, int version)
 	p += stringpack(dir->uid, p);
 	p += stringpack(dir->gid, p);
 	p += stringpack(dir->mid, p);
-	
+
 	U32PUT(p, dir->mtime);
 	U32PUT(p+4, dir->mcount);
 	U32PUT(p+8, dir->ctime);
@@ -481,7 +481,7 @@ vdpack(VacDir *dir, MetaEntry *me, int version)
 		U64PUT(p+8, dir->qidmax, t32);
 		p += 16;
 	}
-	
+
 	if(dir->gen && version < 9) {
 		U8PUT(p, DirGenEntry);
 		U16PUT(p+1, 4);
@@ -498,7 +498,7 @@ vdunpack(VacDir *dir, MetaEntry *me)
 {
 	int t, nn, n, version;
 	uchar *p;
-	
+
 	p = me->p;
 	n = me->size;
 
@@ -517,7 +517,7 @@ vdunpack(VacDir *dir, MetaEntry *me)
 	if(version < 7 || version > 9)
 		goto Err;
 	p += 2;
-	n -= 2;	
+	n -= 2;
 
 	/* elem */
 	if(stringunpack(&dir->elem, &p, &n) < 0)
@@ -560,7 +560,7 @@ vdunpack(VacDir *dir, MetaEntry *me)
 		p += VtScoreSize;
 		n -= VtScoreSize;
 	}
-	
+
 	/* uid */
 	if(stringunpack(&dir->uid, &p, &n) < 0)
 		goto Err;
@@ -678,7 +678,7 @@ mbsearch(MetaBlock *mb, char *elem, int *ri, MetaEntry
 			*ri = i;
 			return 1;
 		}
-	
+
 		if(x < 0)
 			b = i+1;
 		else /* x > 0 */
@@ -686,7 +686,7 @@ mbsearch(MetaBlock *mb, char *elem, int *ri, MetaEntry
 	}
 
 	assert(b == t);
-	
+
 	*ri = b;	/* b is the index to insert this entry */
 	memset(me, 0, sizeof(*me));
 
blob - 0cd431434a80438995760e2410611d4b4d8b163e
blob + 3049e34b2a1cfcb8453511e76e89f08472e23656
--- src/cmd/vac/testinc.c
+++ src/cmd/vac/testinc.c
@@ -14,13 +14,13 @@ threadmain(int argc, char **argv)
 	default:
 		goto usage;
 	}ARGEND
-	
+
 	if(argc != 1){
 	usage:
 		fprint(2, "usage: testinc includefile\n");
 		threadexitsall("usage");
 	}
-	
+
 	loadexcludefile(argv[0]);
 	Binit(&b, 0, OREAD);
 	while((p = Brdline(&b, '\n')) != nil){
blob - 594a6a2e8b44c9a17944d3b9abcc7a255021d16e
blob + a265893fc7e1d4304c3637b4dfdb865ea5ec8c0d
--- src/cmd/vac/unvac.c
+++ src/cmd/vac/unvac.c
@@ -46,7 +46,7 @@ threadmain(int argc, char *argv[])
 	fmtinstall('F', vtfcallfmt);
 	fmtinstall('t', mtimefmt);
 	fmtinstall('M', dirmodefmt);
-	
+
 	host = nil;
 	printstats = 0;
 
@@ -104,7 +104,7 @@ threadmain(int argc, char *argv[])
 
 	if((f = vacfsgetroot(fs)) == nil)
 		sysfatal("vacfsgetroot: %r");
-	
+
 	unvac(f, nil, nil);
 	for(i=0; i<nwant; i++){
 		if(want[i] && !found[i]){
@@ -125,7 +125,7 @@ writen(int fd, char *buf, int n)
 {
 	int m;
 	int oldn;
-	
+
 	oldn = n;
 	while(n > 0){
 		m = write(fd, buf, n);
@@ -141,7 +141,7 @@ int
 wantfile(char *name)
 {
 	int i, namelen, n;
-	
+
 	if(nwant == 0)
 		return 1;
 
@@ -229,7 +229,7 @@ unvac(VacFile *f, char *name, VacDir *vdir)
 		fprint(2, "warning: ignoring %s %s\n", what, name);
 		return;
 	}
-	
+
 	if(mode&ModeDir){
 		if((vde = vdeopen(f)) == nil){
 			fprint(2, "vdeopen %s: %r", name);
@@ -342,7 +342,7 @@ int
 mtimefmt(Fmt *f)
 {
 	Tm *tm;
-	
+
 	tm = localtime(va_arg(f->args, ulong));
 	fmtprint(f, "%04d-%02d-%02d %02d:%02d",
 		tm->year+1900, tm->mon+1, tm->mday,
blob - b54503e4ed378094c276fca84c9cf6d8c3b11153
blob + 7e441482567310f04584059c05dea5445421f72b
--- src/cmd/vac/vac.c
+++ src/cmd/vac/vac.c
@@ -48,7 +48,7 @@ static void removevacfile(void);
 #ifdef PLAN9PORT
 /*
  * We're between a rock and a hard place here.
- * The pw library (getpwnam, etc.) reads the 
+ * The pw library (getpwnam, etc.) reads the
  * password and group files into an on-stack buffer,
  * so if you have some huge groups, you overflow
  * the stack.  Because of this, the thread library turns
@@ -136,10 +136,10 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc == 0 && !stdinname)
 		usage();
-	
+
 	if(archivefile && (vacfile || diffvac)){
 		fprint(2, "cannot use -a with -f, -d\n");
 		usage();
@@ -266,7 +266,7 @@ threadmain(int argc, char **argv)
 	}
 	if(fdiff)
 		vacfiledecref(fdiff);
-	
+
 	/*
 	 * Record the maximum qid so that vacs can be merged
 	 * without introducing overlapping qids.  Older versions
@@ -313,7 +313,7 @@ recentarchive(VacFs *fs, char *path)
 	char buf[10];
 	int year, mmdd, nn, n, n1;
 	char *p;
-	
+
 	fp = vacfsgetroot(fs);
 	de = vdeopen(fp);
 	year = 0;
@@ -339,7 +339,7 @@ recentarchive(VacFs *fs, char *path)
 		return nil;
 	}
 	fp = f;
-	
+
 	de = vdeopen(fp);
 	mmdd = 0;
 	nn = 0;
@@ -440,7 +440,7 @@ enum {
 
 /*
  * Archive the file named name, which has stat info d,
- * into the vac directory fp (p = parent).  
+ * into the vac directory fp (p = parent).
  *
  * If we're doing a vac -d against another archive, the
  * equivalent directory to fp in that archive is diffp.
@@ -469,7 +469,7 @@ vac(VacFile *fp, VacFile *diffp, char *name, Dir *d)
 
 	if(merge && vacmerge(fp, name) >= 0)
 		return;
-	
+
 	if(verbose)
 		fprint(2, "%s%s\n", name, (d->mode&DMDIR) ? "/" : "");
 
@@ -551,7 +551,7 @@ vac(VacFile *fp, VacFile *diffp, char *name, Dir *d)
 			if(vacfilegetentries(fdiff, &e, nil) >= 0)
 			if(vacfilesetentries(f, &e, nil) >= 0){
 				bsize = e.dsize;
-			
+
 				/*
 				 * Or if -q is set, and the metadata looks the same,
 				 * don't even bother reading the file.
@@ -565,7 +565,7 @@ vac(VacFile *fp, VacFile *diffp, char *name, Dir *d)
 						vdcleanup(&vddiff);
 						goto Out;
 					}
-					
+
 					/*
 					 * Skip over presumably-unchanged prefix
 					 * of an append-only file.
@@ -631,7 +631,7 @@ vacstdin(VacFile *fp, char *name)
 		warn("vacfilecreate %s: %r", name);
 		return;
 	}
-	
+
 	off = 0;
 	while((n = read(0, buf, sizeof buf)) > 0){
 		if(vacfilewrite(f, buf, n, off) < 0){
@@ -660,7 +660,7 @@ vacmergefile(VacFile *fp, VacFile *mp, VacDir *d, char
 	VtEntry ed, em;
 	VacFile *mf;
 	VacFile *f;
-	
+
 	mf = vacfilewalk(mp, d->elem);
 	if(mf == nil){
 		warn("could not walk %s in %s", d->elem, vacfile);
@@ -671,7 +671,7 @@ vacmergefile(VacFile *fp, VacFile *mp, VacDir *d, char
 		vacfiledecref(mf);
 		return -1;
 	}
-	
+
 	if((f = vacfilecreate(fp, d->elem, d->mode)) == nil){
 		warn("vacfilecreate %s: %r", d->elem);
 		vacfiledecref(mf);
@@ -693,7 +693,7 @@ vacmergefile(VacFile *fp, VacFile *mp, VacDir *d, char
 		vacfiledecref(f);
 		return -1;
 	}
-	
+
 	vacfiledecref(mf);
 	vacfiledecref(f);
 	return 0;
@@ -778,4 +778,3 @@ warn(char *fmt, ...)
 	fprint(2, "\n");
 	va_end(arg);
 }
-
blob - 0edd41e40bf5b7b126863825f0dfec50f197f5c5
blob + bbed4931cd631ccfd26473002bbdcd2083bee25a
--- src/cmd/vac/vac.h
+++ src/cmd/vac/vac.h
@@ -13,7 +13,7 @@ typedef struct VacDirEnum VacDirEnum;
  */
 enum
 {
-	ModeOtherExec = (1<<0),		
+	ModeOtherExec = (1<<0),
 	ModeOtherWrite = (1<<1),
 	ModeOtherRead = (1<<2),
 	ModeGroupExec = (1<<3),
@@ -64,7 +64,7 @@ struct VacDir
 	ulong mgen;		/* generation of meta entry */
 	uvlong size;		/* size of file */
 	uvlong qid;		/* unique file id */
-	
+
 	char *uid;		/* owner id */
 	char *gid;		/* group id */
 	char *mid;		/* last modified by */
@@ -144,4 +144,3 @@ int	vdeunread(VacDirEnum*);
 
 int	vacfiledsize(VacFile *f);
 int	sha1matches(VacFile *f, ulong b, uchar *buf, int n);
-
blob - b45257294f77db8a3b126f89d27b0396b689a6da
blob + 05baf66ea2dc95bfb2a2c061de238140117ec880
--- src/cmd/vac/vacfs.c
+++ src/cmd/vac/vacfs.c
@@ -149,7 +149,7 @@ threadmain(int argc, char *argv[])
 	fmtinstall('H', encodefmt);
 	fmtinstall('V', vtscorefmt);
 	fmtinstall('F', vtfcallfmt);
-	
+
 	defmnt = nil;
 	defsrv = nil;
 	ARGBEGIN{
@@ -620,7 +620,7 @@ rstat(Fid *f)
 	VacDir dir;
 	static uchar statbuf[1024];
 	VacFile *parent;
-	
+
 	if(!f->busy)
 		return vtstrdup(Enotexist);
 	parent = vacfilegetparent(f->file);
@@ -671,7 +671,7 @@ vacstat(VacFile *parent, VacDir *vd, uchar *p, int np)
 		dir.qid.type |= QTDIR;
 		dir.mode |= DMDIR;
 	}
-	
+
 #ifdef PLAN9PORT
 	if(vd->mode & (ModeLink|ModeDevice|ModeNamedPipe)){
 		vf = vacfilewalk(parent, vd->elem);
@@ -695,7 +695,7 @@ vacstat(VacFile *parent, VacDir *vd, uchar *p, int np)
 			dir.mode |= DMNAMEDPIPE;
 	}
 #endif
-	
+
 	dir.atime = vd->atime;
 	dir.mtime = vd->mtime;
 	dir.length = vd->size;
@@ -862,4 +862,3 @@ vacshutdown(void)
 	vacfsclose(fs);
 	vthangup(conn);
 }
-
blob - 1b5b404a55f7455e763afae78b872f6ae5938faa
blob + 288e34340f1b7c9d1f2d5bf6cdbc78b602a03c45
--- src/cmd/vbackup/config.c
+++ src/cmd/vbackup/config.c
@@ -91,7 +91,7 @@ readconfigfile(char *name, VtCache *vcache)
 
 	if((dir = dirstat(name)) == nil)
 		return nil;
-	
+
 	if((b = Bopen(name, OREAD)) == nil){
 		free(dir);
 		return nil;
@@ -142,7 +142,7 @@ readconfigfile(char *name, VtCache *vcache)
 		freeconfig(c);
 		return nil;
 	}
-	
+
 	return c;
 }
 
blob - b51d0a3b8dbefbeef135b7f96d955e047280e889
blob + b7798db8d5d16772a75424deda2541f4a0c96478
--- src/cmd/vbackup/disknfs.c
+++ src/cmd/vbackup/disknfs.c
@@ -132,4 +132,3 @@ fsreaddir(SunAuthUnix *au, Nfs3Handle *h, u32int count
 {
 	return fsysreaddir(fsys, au, h, count, cookie, data, pcount, peof);
 }
-
blob - b343aa62788eefa8f12c96e44982a44090ecfa16
blob + bfc0e0fdd52df2cc76e984c8b58951da54f2c4f8
--- src/cmd/vbackup/mount-Linux.c
+++ src/cmd/vbackup/mount-Linux.c
@@ -56,4 +56,3 @@ mountnfs(int proto, struct sockaddr_in *sa, uchar *han
 	if(mount("backup:/", mtpt, "nfs", mflag, &nfs) < 0)
 		sysfatal("mount: %r");
 }
-
blob - db8e1e5bc5e5e1d45a324be384081b52cfb0bd0a
blob + 28380e13b69fbc47d8926a616541d36294d8e11e
--- src/cmd/vbackup/mount-none.c
+++ src/cmd/vbackup/mount-none.c
@@ -9,4 +9,3 @@ mountnfs(int proto, struct sockaddr_in *addr, uchar *h
 {
 	sysfatal("mountnfs not implemented");
 }
-
blob - c3fc780badc27cc1cba4417d25edd7a7db588a55
blob + 532f7e6c7805bde8a9e99ff1c78bc83cbe3df95d
--- src/cmd/vbackup/nfs3srv.c
+++ src/cmd/vbackup/nfs3srv.c
@@ -74,7 +74,7 @@ rumnt(SunMsg *m)
 	NfsMount3RUmnt rx;
 
 	/* ignore */
-	
+
 	memset(&rx, 0, sizeof rx);
 	return sunmsgreply(m, &rx.call);
 }
@@ -359,8 +359,8 @@ rrofs(SunMsg *m)
 	memset(buf, 0, sizeof buf);
 	return senderror(m, (SunCall*)buf, Nfs3ErrRoFs);
 }
-	
 
+
 static void
 rnfs3(void *v)
 {
@@ -429,4 +429,3 @@ nfs3proc(void *v)
 	while((m = recvp(c)) != nil)
 		threadcreate(rnfs3, m, SunStackSize);
 }
-
blob - f96be9850daa11f3d9ee376407eccbff9132adac
blob + 6d72c1e60fd568f86ac5da21c50fb1e8dc6e3b96
--- src/cmd/vbackup/nfs3srv.h
+++ src/cmd/vbackup/nfs3srv.h
@@ -15,4 +15,3 @@ enum
 {
 	MaxDataSize = 8192
 };
-
blob - 353ff610626039f1ceb339e0c0a4bbbe039675c7
blob + df68abe2303025454c04068d52a011c72c1b90da
--- src/cmd/vbackup/vbackup.c
+++ src/cmd/vbackup/vbackup.c
@@ -13,7 +13,7 @@
  *	-s	print status updates
  *	-v	print debugging trace
  *	-w	write parallelism
- * 
+ *
  * If score is given on the command line, it should be the
  * score from a previous vbackup on this fspartition.
  * In this mode, only the new blocks are stored to Venti.
@@ -24,12 +24,12 @@
  * by buffered queues:
  *
  * 	fsysproc | cmpproc | ventiproc
- * 
+ *
  * Fsysproc reads the disk and queues the blocks.
  * Cmpproc compares the blocks against the SHA1 hashes
  * in the old image, if any.  It discards the unchanged blocks
  * and queues the changed ones.  Ventiproc writes blocks to Venti.
- * 
+ *
  * There is a fourth proc, statusproc, which prints status
  * updates about how the various procs are progressing.
  */
@@ -259,14 +259,14 @@ threadmain(int argc, char **argv)
 		tmpnam = smprint("%s/vbackup.XXXXXX", tmp);
 		if(tmpnam == nil)
 			sysfatal("smprint: %r");
-	
+
 		if((fd = opentemp(tmpnam, ORDWR|ORCLOSE)) < 0)
 			sysfatal("opentemp %s: %r", tmpnam);
 		if(statustime)
 			print("# %T reading scores into %s\n", tmpnam);
 		if(verbose)
 			fprint(2, "read scores into %s...\n", tmpnam);
-	
+
 		Binit(&bscores, fd, OWRITE);
 		for(i=0; i<fsys->nblock; i++){
 			if(vtfileblockscore(vfile, i, score) < 0)
@@ -276,7 +276,7 @@ threadmain(int argc, char **argv)
 		}
 		Bterm(&bscores);
 		vtfileunlock(vfile);
-	
+
 		/*
 		 * prep scores for rereading
 		 */
@@ -285,7 +285,7 @@ threadmain(int argc, char **argv)
 	}
 
 	/*
-	 * start the main processes 
+	 * start the main processes
 	 */
 	if(statustime)
 		print("# %T starting procs\n");
@@ -307,7 +307,7 @@ threadmain(int argc, char **argv)
 	 * wait for processes to finish
 	 */
 	wlock(&endlk);
-	
+
 	qfree(qcmp);
 	qfree(qventi);
 
@@ -358,7 +358,7 @@ threadmain(int argc, char **argv)
 	if(mountplace == nil)
 		mountplace = guessmountplace(argv[0]);
 	print("mount /%s/%d/%02d%02d%s %s:%V %d/%02d%02d/%02d%02d\n",
-		mountname, tm.year, tm.mon, tm.mday, 
+		mountname, tm.year, tm.mon, tm.mday,
 		mountplace,
 		root.type, b->score,
 		tm.year, tm.mon, tm.mday, tm.hour, tm.min);
@@ -370,7 +370,7 @@ threadmain(int argc, char **argv)
 		sysfatal("vtsync: %r");
 	if(statustime)
 		print("# %T synced\n");
-	
+
 	fsysclose(fsys);
 	diskclose(disk);
 	vtcachefree(zcache);
@@ -468,7 +468,7 @@ writethread(void *v)
 		nrecv++;
 		if(wr.p == nil)
 			break;
-		
+
 		if(fastwrites && vtread(z, wr.score, wr.type, nil, 0) < 0){
 			rerrstr(err, sizeof err);
 			if(strstr(err, "read too small")){	/* already exists */
@@ -581,7 +581,7 @@ timefmt(Fmt *fmt)
 	Tm tm;
 	ns = nsec();
 	tm = *localtime(time(0));
-	return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d.%03d", 
+	return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d.%03d",
 		tm.year+1900, tm.mon+1, tm.mday, tm.hour, tm.min, tm.sec,
 		(int)(ns%1000000000)/1000000);
 }
@@ -592,7 +592,7 @@ guessmountplace(char *dev)
 	char *cmd, *q;
 	int p[2], fd[3], n;
 	char buf[100];
-	
+
 	if(pipe(p) < 0)
 		sysfatal("pipe: %r");
 
@@ -617,4 +617,3 @@ guessmountplace(char *dev)
 		*--q = 0;
 	return strdup(buf);
 }
-
blob - c413af42dd9c06940897d480d5a7a1f8f3d028cc
blob + 84ac3df87888cea00c961e5f5bc6bdf48d6b2b3b
--- src/cmd/vbackup/vftp.c
+++ src/cmd/vbackup/vftp.c
@@ -34,7 +34,7 @@ struct Cmd
 	char *help;
 };
 
-Cmd cmdtab[] = 
+Cmd cmdtab[] =
 {
 	"cd", cmdcd, "cd dir - change directory",
 	"ls", cmdls, "ls [-d] path... - list file",
@@ -49,7 +49,7 @@ char*
 ebuf(void)
 {
 	static char buf[ERRMAX];
-	
+
 	rerrstr(buf, sizeof buf);
 	return buf;
 }
@@ -58,7 +58,7 @@ static char*
 estrdup(char *s)
 {
 	char *t;
-	
+
 	t = emalloc(strlen(s)+1);
 	strcpy(t, s);
 	return t;
@@ -70,7 +70,7 @@ walk(char *path, Nfs3Handle *ph)
 	char *p, *q;
 	Nfs3Handle h;
 	Nfs3Status ok;
-	
+
 	path = estrdup(path); /* writable */
 	if(path[0] == '/')
 		h = root;
@@ -99,7 +99,7 @@ char*
 cmdhelp(int argc, char **argv)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(cmdtab); i++)
 		print("%s\n", cmdtab[i].help);
 	return nil;
@@ -112,10 +112,10 @@ cmdcd(int argc, char **argv)
 	Nfs3Attr attr;
 	Nfs3Status ok;
 	Nfs3Handle h;
-	
+
 	if(argc != 2)
 		return "usage: cd dir";
-	
+
 	if((err = walk(argv[1], &h)) != nil)
 		return err;
 	if((ok = fsysgetattr(fsys, auth, &h, &attr)) != Nfs3Ok){
@@ -152,7 +152,7 @@ void
 ls(char *dir, char *elem, Nfs3Attr *attr)
 {
 	char c;
-	
+
 	c = ' ';	/* use attr->type */
 	Bprint(&bout, "%s%s%s", dir ? dir : "", dir && elem ? "/" : "", elem ? elem : "");
 	Bprint(&bout, " %c%luo %1d %4d %4d", c, attr->mode, attr->nlink, attr->uid, attr->gid);
@@ -172,7 +172,7 @@ lsdir(char *dir, Nfs3Handle *h)
 	u1int eof;
 	Nfs3Status ok;
 	u64int cookie;
-	
+
 	cookie = 0;
 	for(;;){
 		ok = fsysreaddir(fsys, auth, h, 8192, cookie, &data, &count, &eof);
@@ -201,7 +201,7 @@ fprint(2, "got %d\n", count);
 				continue;
 			}
 			ls(dir, e.name, &attr);
-		}	
+		}
 		free(data);
 		if(eof)
 			break;
@@ -217,7 +217,7 @@ cmdls(int argc, char **argv)
 	Nfs3Handle h;
 	Nfs3Attr attr;
 	Nfs3Status ok;
-	
+
 	dflag = 0;
 	ARGBEGIN{
 	case 'd':
@@ -232,7 +232,7 @@ cmdls(int argc, char **argv)
 		Bflush(&bout);
 		return nil;
 	}
-	
+
 	for(i=0; i<argc; i++){
 		if((e = walk(argv[i], &h)) != nil){
 			fprint(2, "%s: %s\n", argv[i], e);
@@ -264,7 +264,7 @@ cmdget(int argc, char **argv)
 	Nfs3Attr attr;
 	Nfs3Status ok;
 	vlong o;
-	
+
 	dflag = 0;
 	ARGBEGIN{
 	default:
@@ -274,7 +274,7 @@ cmdget(int argc, char **argv)
 
 	if(argc != 1 && argc != 2)
 		goto usage;
-	
+
 	if((e = walk(argv[0], &h)) != nil){
 		fprint(2, "%s: %s\n", argv[0], e);
 		return nil;
@@ -319,12 +319,12 @@ cmdblock(int argc, char **argv)
 	char *e;
 	Nfs3Handle h;
 	u64int bno;
-	
+
 	ARGBEGIN{
 	default:
 		return "usage: block path offset";
 	}ARGEND
-	
+
 	if(argc != 2)
 		return "usage: block path offset";
 
@@ -347,19 +347,19 @@ cmddisk(int argc, char **argv)
 	int delta, count, i;
 	u64int offset;
 	uchar *p;
-	
+
 	ARGBEGIN{
 	default:
 		return "usage: disk offset count";
 	}ARGEND
-	
+
 	if(argc != 2)
 		return "usage: disk offset count";
 
 	offset = strtoull(argv[0], 0, 0);
 	count = atoi(argv[1]);
 	delta = offset%fsys->blocksize;
-	
+
 	b = diskread(disk, fsys->blocksize, offset-delta);
 	if(b == nil){
 		fprint(2, "diskread: %r\n");
@@ -396,7 +396,7 @@ threadmain(int argc, char **argv)
 	int i, nf;
 	uchar score[VtScoreSize];
 	Nfs3Status ok;
-	
+
 	allowall = 1;
 	ARGBEGIN{
 	case 'V':
@@ -405,14 +405,14 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 1)
 		usage();
 
 	fmtinstall('F', vtfcallfmt);
 	fmtinstall('H', encodefmt);
 	fmtinstall('V', vtscorefmt);
-	
+
 	if(access(argv[0], AEXIST) >= 0 || strchr(argv[0], '/')){
 		if((disk = diskopenfile(argv[0])) == nil)
 			sysfatal("diskopen: %r");
@@ -442,7 +442,7 @@ threadmain(int argc, char **argv)
 	cwd = root;
 	Binit(&bin, 0, OREAD);
 	Binit(&bout, 1, OWRITE);
-	
+
 	while(fprint(2, "vftp> "), (p = Brdstr(&bin, '\n', 1)) != nil){
 		if(p[0] == '#')
 			continue;
@@ -461,4 +461,3 @@ threadmain(int argc, char **argv)
 	}
 	threadexitsall(nil);
 }
-
blob - d4319c8651704ed88eb8cb37ed18bde10191bec5
blob + f78d4886c47de39608e010d7c3ac7cde8a4b62bd
--- src/cmd/vbackup/vnfs.c
+++ src/cmd/vbackup/vnfs.c
@@ -154,7 +154,7 @@ threadmain(int argc, char **argv)
 	nfschan = chancreate(sizeof(SunMsg*), 0);
 	mountchan = chancreate(sizeof(SunMsg*), 0);
 	timerchan = chancreate(sizeof(void*), 0);
-	
+
 	if(sunsrvudp(srv, addr) < 0)
 		sysfatal("starting server: %r");
 
@@ -162,7 +162,7 @@ threadmain(int argc, char **argv)
 	sunsrvthreadcreate(srv, mount3proc, mountchan);
 	sunsrvthreadcreate(srv, timerthread, nil);
 	proccreate(timerproc, nil, 32768);
-	
+
 	sunsrvprog(srv, &nfs3prog, nfschan);
 	sunsrvprog(srv, &nfsmount3prog, mountchan);
 
@@ -200,13 +200,13 @@ unittoull(char *s)
 
 /*
  * Handles.
- * 
+ *
  * We store all the state about which file a client is accessing in
  * the handle, so that we don't have to maintain any per-client state
- * ourselves.  In order to avoid leaking handles or letting clients 
+ * ourselves.  In order to avoid leaking handles or letting clients
  * create arbitrary handles, we sign and encrypt each handle with
  * AES using a key selected randomly when the server starts.
- * Thus, handles cannot be used across sessions.  
+ * Thus, handles cannot be used across sessions.
  *
  * The decrypted handles begin with the following header:
  *
@@ -215,7 +215,7 @@ unittoull(char *s)
  *
  * If we're pressed for space in the rest of the handle, we could
  * probably reduce the amount of sessid bytes.  Note that the sessid
- * bytes must be consistent during a run of vnfs, or else some 
+ * bytes must be consistent during a run of vnfs, or else some
  * clients (e.g., Linux 2.4) eventually notice that successive TLookups
  * return different handles, and they return "Stale NFS file handle"
  * errors to system calls in response (even though we never sent
@@ -231,9 +231,9 @@ unittoull(char *s)
  * and the handles need to be stable across changes in the config file
  * (though not across server restarts since encryption screws
  * that up nicely).
- * 
- * We encode each of the first two as a 10-byte hash that is 
- * the first half of a SHA1 hash.  
+ *
+ * We encode each of the first two as a 10-byte hash that is
+ * the first half of a SHA1 hash.
  */
 
 enum
@@ -291,7 +291,7 @@ static Nfs3Status
 hdecrypt(Nfs3Handle *h)
 {
 	AESstate aes;
-	
+
 	if(h->len == 1 && h->h[0] == 0){	/* single 0 byte is root */
 		*h = root;
 		return Nfs3Ok;
@@ -323,7 +323,7 @@ cryptinit(void)
 	uchar key[32], ivec[AESbsize];
 	int i;
 	u32int u32;
-	
+
 	u32 = truerand();
 	memmove(sessid, &u32, 4);
 	for(i=0; i<nelem(key); i+=4) {
@@ -371,12 +371,12 @@ struct Cnode
 	Cnode *nextsib;	/* in tree */
 	Cnode *kidlist;	/* in tree */
 	Cnode *nexthash;	/* in hash list */
-	
+
 	Nfs3Status (*read)(Cnode*, u32int, u64int, uchar**, u32int*, u1int*);	/* synthesized read fn */
 
 	uchar handle[VtScoreSize];	/* sha1(path to here) */
 	ulong mtime;	/* mtime for this directory entry */
-	
+
 	/* fsys overlay on this node */
 	Fsys *fsys;	/* cache of memory structure */
 	Nfs3Handle fsyshandle;
@@ -394,7 +394,7 @@ struct Cnode
 	char *fsysimage;	/* raw disk image */
 	Fsys *mfsys;	/* mounted file system (nil until walked) */
 	Nfs3Handle mfsyshandle;	/* handle to root of mounted fsys */
-	
+
 	int mark;	/* gc */
 };
 
@@ -409,7 +409,7 @@ mkcnode(Ctree *t, Cnode *parent, char *elem, uint elen
 {
 	uint h;
 	Cnode *n;
-	
+
 	n = emalloc(sizeof *n + elen+1);
 	n->name = (char*)(n+1);
 	memmove(n->name, elem, elen);
@@ -424,7 +424,7 @@ mkcnode(Ctree *t, Cnode *parent, char *elem, uint elen
 	h = dumbhash(n->handle);
 	n->nexthash = t->hash[h];
 	t->hash[h] = n;
-	
+
 	return n;
 }
 
@@ -446,7 +446,7 @@ refreshdisk(void)
 	int i;
 	Cnode *n;
 	Ctree *t;
-	
+
 	t = config.ctree;
 	for(i=0; i<nelem(t->hash); i++)
 		for(n=t->hash[i]; n; n=n->nexthash){
@@ -485,7 +485,7 @@ static Cnode*
 cnodewalk(Cnode *n, char *name, uint len, int markokay)
 {
 	Cnode *nn;
-	
+
 	for(nn=n->kidlist; nn; nn=nn->nextsib)
 		if(strncmp(nn->name, name, len) == 0 && nn->name[len] == 0)
 		if(!nn->mark || markokay)
@@ -498,7 +498,7 @@ ctreewalkpath(Ctree *t, char *name, ulong createmtime)
 {
 	Cnode *n, *nn;
 	char *p, *nextp;
-	
+
 	n = t->root;
 	p = name;
 	for(; *p; p=nextp){
@@ -526,10 +526,10 @@ Ctree*
 mkctree(void)
 {
 	Ctree *t;
-	
+
 	t = emalloc(sizeof *t);
 	t->root = mkcnode(t, nil, "", 0, "", 0);
-	
+
 	ctreewalkpath(t, "/+log", time(0))->read = logread;
 	ctreewalkpath(t, "/+refreshdisk", time(0))->read = refreshdiskread;
 	ctreewalkpath(t, "/+refreshconfig", time(0))->read = refreshconfigread;
@@ -541,7 +541,7 @@ Cnode*
 ctreemountfsys(Ctree *t, char *path, ulong time, uchar *score, char *file)
 {
 	Cnode *n;
-	
+
 	if(time == 0)
 		time = 1;
 	n = ctreewalkpath(t, path, time);
@@ -570,7 +570,7 @@ cnodebyhandle(Ctree *t, uchar *p)
 {
 	int h;
 	Cnode *n;
-	
+
 	h = dumbhash(p);
 	for(n=t->hash[h]; n; n=n->nexthash)
 		if(memcmp(n->handle, p, CnodeHandleSize) == 0)
@@ -582,7 +582,7 @@ static int
 parseipandmask(char *s, uchar *ip, uchar *mask)
 {
 	char *p, *q;
-	
+
 	p = strchr(s, '/');
 	if(p)
 		*p++ = 0;
@@ -609,14 +609,14 @@ parsetime(char *s, ulong *time)
 	char *p;
 	int i;
 	Tm tm;
-	
+
 	/* decimal integer is seconds since 1970 */
 	x = strtoul(s, &p, 10);
 	if(x > 0 && *p == 0){
 		*time = x;
 		return 0;
 	}
-	
+
 	/* otherwise expect yyyy/mmdd/hhmm */
 	if(strlen(s) != 14 || s[4] != '/' || s[9] != '/')
 		return -1;
@@ -629,7 +629,7 @@ parsetime(char *s, ulong *time)
 		return -1;
 	tm.mon = (s[5]-'0')*10+s[6]-'0' - 1;
 	if(tm.mon < 0 || tm.mon > 11)
-		return -1; 
+		return -1;
 	tm.mday = (s[7]-'0')*10+s[8]-'0';
 	if(tm.mday < 0 || tm.mday > 31)
 		return -1;
@@ -673,7 +673,7 @@ readconfigfile(Config *cp)
 	free(dir);
 	if((b = Bopen(name, OREAD)) == nil)
 		return -1;
-	
+
 	/*
 	 * Reuse old tree, garbage collecting entries that
 	 * are not mentioned in the new config file.
@@ -684,7 +684,7 @@ readconfigfile(Config *cp)
 	markctree(c.ctree);
 	c.ok = nil;
 	c.nok = 0;
-	
+
 	line = 0;
 	for(; (p=Brdstr(b, '\n', 1)) != nil; free(p)){
 		line++;
@@ -726,7 +726,7 @@ readconfigfile(Config *cp)
 		}
 		if(strcmp(f[0], "allow") == 0 || strcmp(f[0], "deny") == 0){
 			if(nf != 2){
-				werrstr("syntax error: allow|deny ip[/mask]"); 
+				werrstr("syntax error: allow|deny ip[/mask]");
 				goto badline;
 			}
 			c.ok = erealloc(c.ok, (c.nok+1)*sizeof(c.ok[0]));
@@ -755,8 +755,8 @@ ipokay(uchar *ip, ushort port)
 {
 	int i;
 	uchar ipx[IPaddrlen];
-	Ipokay *ok; 
-	
+	Ipokay *ok;
+
 	for(i=0; i<config.nok; i++){
 		ok = &config.ok[i];
 		maskip(ip, ok->mask, ipx);
@@ -775,7 +775,7 @@ Nfs3Status
 cnodelookup(Ctree *t, Cnode **np, char *name)
 {
 	Cnode *n, *nn;
-	
+
 	n = *np;
 	if(n->isblackhole)
 		return Nfs3Ok;
@@ -826,7 +826,7 @@ cnodereaddir(Cnode *n, u32int count, u64int cookie, uc
 	u64int c;
 	u64int u64;
 	Nfs3Entry ne;
-	
+
 	n = n->kidlist;
 	c = cookie;
 	for(; c && n; c--)
@@ -837,7 +837,7 @@ cnodereaddir(Cnode *n, u32int count, u64int cookie, uc
 		*peof = 1;
 		return Nfs3Ok;
 	}
-	
+
 	data = emalloc(count);
 	p = data;
 	ep = data+count;
@@ -882,7 +882,7 @@ timerthread(void *v)
 }
 
 /*
- * Actually serve the NFS requests.  Called from nfs3srv.c.  
+ * Actually serve the NFS requests.  Called from nfs3srv.c.
  * Each request runs in its own thread (coroutine).
  *
  * Decrypted handles have the form:
@@ -891,7 +891,7 @@ timerthread(void *v)
  *	glob[10] - SHA1 hash prefix identifying a glob state
  *	fsyshandle[<=10] - disk file system handle (usually 4 bytes)
  */
- 
+
 /*
  * A fid represents a point in the file tree.
  * There are three components, all derived from the handle:
@@ -933,7 +933,7 @@ handletofid(Nfs3Handle *eh, Fid *fid, int mode)
 	Fsys *fsys;
 	Nfs3Status ok;
 	Nfs3Handle h2, *h, *fh;
-	
+
 	memset(fid, 0, sizeof *fid);
 
 	domount = 1;
@@ -999,7 +999,7 @@ handletofid(Nfs3Handle *eh, Fid *fid, int mode)
 			n->mfsys = fsys;
 			fsysroot(fsys, &n->mfsyshandle);
 		}
-		
+
 		/*
 		 * Use inner handle.
 		 */
@@ -1010,7 +1010,7 @@ handletofid(Nfs3Handle *eh, Fid *fid, int mode)
 		 * Use fsys handle from tree or from handle.
 		 * This assumes that fsyshandle was set by fidtohandle
 		 * earlier, so it's not okay to reuse handles (except the root)
-		 * across sessions.  The encryption above makes and 
+		 * across sessions.  The encryption above makes and
 		 * enforces the same restriction, so this is okay.
 		 */
 		fid->fsys = n->fsys;
@@ -1035,7 +1035,7 @@ void
 _fidtohandle(Fid *fid, Nfs3Handle *h)
 {
 	Cnode *n;
-	
+
 	n = fid->cnode;
 	/*
 	 * Record fsys handle in n, don't bother sending it to client
@@ -1062,7 +1062,7 @@ void
 setrootfid(void)
 {
 	Fid fid;
-	
+
 	memset(&fid, 0, sizeof fid);
 	fid.cnode = config.ctree->root;
 	_fidtohandle(&fid, &root);
@@ -1101,7 +1101,7 @@ fslookup(SunAuthUnix *au, Nfs3Handle *h, char *name, N
 	Nfs3Status ok;
 	Nfs3Handle xh;
 	int mode;
-	
+
 	trace("lookup %.*lH %s\n", h->len, h->h, name);
 
 	mode = HWalk;
@@ -1112,7 +1112,7 @@ fslookup(SunAuthUnix *au, Nfs3Handle *h, char *name, N
 		trace("lookup: handletofid %r\n");
 		return ok;
 	}
-	
+
 	if(strcmp(name, ".") == 0){
 		fidtohandle(&fid, nh);
 		return Nfs3Ok;
@@ -1122,7 +1122,7 @@ fslookup(SunAuthUnix *au, Nfs3Handle *h, char *name, N
 	 * Walk down file system and cnode simultaneously.
 	 * If dotdot and file system doesn't move, need to walk
 	 * up cnode.  Save the corresponding fsys handles in
-	 * the cnode as we walk down so that we'll have them 
+	 * the cnode as we walk down so that we'll have them
 	 * for dotdotting back up.
 	 */
 	n = fid.cnode;
@@ -1143,7 +1143,7 @@ fslookup(SunAuthUnix *au, Nfs3Handle *h, char *name, N
 				return ok;
 			}
 			fid.fsyshandle = xh;
-		}		
+		}
 	}else{
 		/*
 		 * Walking dotdot.  Ick.
@@ -1162,7 +1162,7 @@ fslookup(SunAuthUnix *au, Nfs3Handle *h, char *name, N
 
 			/*
 			 * Usually just go to n->parent.
-			 * 
+			 *
 			 * If we're in a subtree of the mounted file system that
 			 * isn't represented explicitly by the config tree (instead
 			 * the black hole node represents the entire file tree),
@@ -1176,7 +1176,7 @@ fslookup(SunAuthUnix *au, Nfs3Handle *h, char *name, N
 					n->parent->fsyshandle.len, n->parent->fsyshandle.h,
 					xh.len, xh.h);
 			}
-			
+
 			if(n->isblackhole){
 				if(handlecmp(&n->parent->mfsyshandle, &xh) == 0)
 					n = n->parent;
@@ -1205,7 +1205,7 @@ fsaccess(SunAuthUnix *au, Nfs3Handle *h, u32int want, 
 {
 	Fid fid;
 	Nfs3Status ok;
-	
+
 	trace("access %.*lH 0x%ux\n", h->len, h->h, want);
 	if((ok = handletofid(h, &fid, HAccess)) != Nfs3Ok)
 		return ok;
@@ -1220,7 +1220,7 @@ fsreadlink(SunAuthUnix *au, Nfs3Handle *h, char **link
 {
 	Fid fid;
 	Nfs3Status ok;
-	
+
 	trace("readlink %.*lH\n", h->len, h->h);
 	if((ok = handletofid(h, &fid, HRead)) != Nfs3Ok)
 		return ok;
@@ -1235,7 +1235,7 @@ fsreadfile(SunAuthUnix *au, Nfs3Handle *h, u32int coun
 {
 	Fid fid;
 	Nfs3Status ok;
-	
+
 	trace("readfile %.*lH\n", h->len, h->h);
 	if((ok = handletofid(h, &fid, HRead)) != Nfs3Ok)
 		return ok;
@@ -1252,7 +1252,7 @@ fsreaddir(SunAuthUnix *au, Nfs3Handle *h, u32int len, 
 	Fid fid;
 	Nfs3Status ok;
 
-	trace("readdir %.*lH\n", h->len, h->h);	
+	trace("readdir %.*lH\n", h->len, h->h);
 	if((ok = handletofid(h, &fid, HRead)) != Nfs3Ok)
 		return ok;
 	if(fid.fsys)
@@ -1272,7 +1272,7 @@ Nfs3Status
 refreshdiskread(Cnode *n, u32int count, u64int offset, uchar **data, u32int *pcount, u1int *peof)
 {
 	char buf[128];
-	
+
 	if(offset != 0){
 		*pcount = 0;
 		*peof = 1;
@@ -1293,7 +1293,7 @@ Nfs3Status
 refreshconfigread(Cnode *n, u32int count, u64int offset, uchar **data, u32int *pcount, u1int *peof)
 {
 	char buf[128];
-	
+
 	if(offset != 0){
 		*pcount = 0;
 		*peof = 1;
@@ -1309,4 +1309,3 @@ refreshconfigread(Cnode *n, u32int count, u64int offse
 	*peof = 1;
 	return Nfs3Ok;
 }
-
blob - d6d770bcffae924cab6bf356b0c82a1e98250665
blob + 50d9bb202fbb03a449cc23c87cd1746496f723f1
--- src/cmd/venti/copy.c
+++ src/cmd/venti/copy.c
@@ -53,7 +53,7 @@ static int
 havevisited(uchar score[VtScoreSize], int type)
 {
 	ScoreTree a;
-	
+
 	if(scoretree == nil)
 		return 0;
 	memmove(a.score, score, VtScoreSize);
@@ -99,7 +99,7 @@ walk(uchar score[VtScoreSize], uint type, int base, in
 
 	if(memcmp(score, vtzeroscore, VtScoreSize) == 0 || memcmp(score, zeroscore, VtScoreSize) == 0)
 		return;
-	
+
 	if(havevisited(score, type)){
 		nskip++;
 		return;
@@ -145,7 +145,7 @@ walk(uchar score[VtScoreSize], uint type, int base, in
 				continue;
 			walk(e.score, e.type, e.type&VtTypeBaseMask, depth+1);
 			/*
-			 * Don't repack unless we're rewriting -- some old 
+			 * Don't repack unless we're rewriting -- some old
 			 * vac files have psize==0 and dsize==0, and these
 			 * get rewritten by vtentryunpack to have less strange
 			 * block sizes.  So vtentryunpack; vtentrypack does not
@@ -175,7 +175,7 @@ walk(uchar score[VtScoreSize], uint type, int base, in
 		sysfatal("writing block %V (type %d): %r", score, type);
 	}
 	if(!rewrite && memcmp(score, nscore, VtScoreSize) != 0)
-		sysfatal("not rewriting: wrote %V got %V", score, nscore);	
+		sysfatal("not rewriting: wrote %V got %V", score, nscore);
 
 	if((type !=0 || base !=0) && verbose){
 		n = vtzerotruncate(type, buf, n);
@@ -185,7 +185,7 @@ walk(uchar score[VtScoreSize], uint type, int base, in
 			fprint(2, " ");
 		fprint(2, "<- %V\n", score);
 	}
-	
+
 	markvisited(score, type);
 	free(buf);
 }
blob - fdad553e6ba9ebeb818882b912aaf982f7c49cb1
blob + 3bf6cee4e625b29f496d6f538e67a4e737fd8026
--- src/cmd/venti/devnull.c
+++ src/cmd/venti/devnull.c
@@ -33,7 +33,7 @@ threadmain(int argc, char **argv)
 
 	fmtinstall('V', vtscorefmt);
 	fmtinstall('F', vtfcallfmt);
-	
+
 	address = "tcp!*!venti";
 
 	ARGBEGIN{
@@ -76,4 +76,3 @@ threadmain(int argc, char **argv)
 	}
 	threadexitsall(nil);
 }
-
blob - 352b3cacc792c8d088bac7a7466b8e8286158708
blob + 53ec4bad1c488f96ce9ea6c30baedfb205e49cb3
--- src/cmd/venti/dump.c
+++ src/cmd/venti/dump.c
@@ -31,7 +31,7 @@ dump(int indent, uchar *score, int type)
 	uchar *buf;
 	VtEntry e;
 	VtRoot root;
-	
+
 	if(spaces[0] == 0)
 		memset(spaces, ' ', sizeof spaces-1);
 
@@ -54,7 +54,7 @@ dump(int indent, uchar *score, int type)
 			indent*4, spaces, score, root.name, root.type, root.prev, root.blocksize);
 		dump(indent+1, root.score, VtDirType);
 		break;
-	
+
 	case VtDirType:
 		Bprint(&bout, "%.*s%V dir n=%d\n", indent*4, spaces, score, n);
 		for(i=0; i*VtEntrySize<n; i++){
@@ -67,7 +67,7 @@ dump(int indent, uchar *score, int type)
 			dump(indent+2, e.score, e.type);
 		}
 		break;
-	
+
 	case VtDataType:
 		Bprint(&bout, "%.*s%V data n=%d", indent*4, spaces, score, n);
 		for(i=0; i<n; i++){
@@ -88,7 +88,7 @@ dump(int indent, uchar *score, int type)
 		break;
 	}
 out:
-	free(buf);		
+	free(buf);
 }
 
 
blob - 7d94eef2c898c27e48844fe900700302dbf32cfb
blob + 846279fe7778518138605b68cea3d66bdc8aa9e7
--- src/cmd/venti/randtest.c
+++ src/cmd/venti/randtest.c
@@ -333,4 +333,3 @@ xxxlrand(void)
 
 	return x;
 }
-
blob - 0a2018276829379400fc06b303a95a6ce58bf6d5
blob + 04ed8e32fb72240602b04f785c638c8dc8b9ac52
--- src/cmd/venti/readlist.c
+++ src/cmd/venti/readlist.c
@@ -50,7 +50,7 @@ parsescore(uchar *score, char *buf, int n)
 
 		if((i & 1) == 0)
 			c <<= 4;
-	
+
 		score[i>>1] |= c;
 	}
 	return 0;
blob - ee954a32bac73877351ef2496153f7e34f1283e0
blob + a499aa1e94ab46a6de41c851e85bb70ed34954db
--- src/cmd/venti/ro.c
+++ src/cmd/venti/ro.c
@@ -32,7 +32,7 @@ readthread(void *v)
 	VtReq *r;
 	uchar *buf;
 	int n;
-	
+
 	r = v;
 	buf = vtmalloc(r->tx.count);
 	if((n=vtread(z, r->tx.score, r->tx.blocktype, buf, r->tx.count)) < 0){
@@ -57,10 +57,10 @@ threadmain(int argc, char **argv)
 
 	fmtinstall('F', vtfcallfmt);
 	fmtinstall('V', vtscorefmt);
-	
+
 	address = "tcp!*!venti";
 	ventiaddress = nil;
-	
+
 	ARGBEGIN{
 	case 'v':
 		verbose++;
@@ -109,4 +109,3 @@ threadmain(int argc, char **argv)
 	}
 	threadexitsall(nil);
 }
-
blob - ddeb3b4c0d46ec8dd446ac2459e12bbfd219a49a
blob + 7df1fc4b483df714f35756b84eb6043f27e41933
--- src/cmd/venti/srv/arena.c
+++ src/cmd/venti/srv/arena.c
@@ -401,7 +401,7 @@ atailcmp(ATailStats *a, ATailStats *b)
 		return -1;
 	if(a->used > b->used)
 		return 1;
-		
+
 	/* suspect tests - why order this way? (no one cares) */
 	if(a->clumps < b->clumps)
 		return -1;
@@ -419,7 +419,7 @@ atailcmp(ATailStats *a, ATailStats *b)
 		return -1;
 	if(a->sealed > b->sealed)
 		return 1;
-		
+
 	/* everything matches */
 	return 0;
 }
@@ -574,7 +574,7 @@ ReadErr:
 	sha1(b->data, bs-VtScoreSize, nil, &s);
 	sha1(zeroscore, VtScoreSize, nil, &s);
 	sha1(nil, 0, score, &s);
-	
+
 	/*
 	 * check for no checksum or the same
 	 */
@@ -683,7 +683,7 @@ loadarena(Arena *arena)
 	     || arena->blocksize != head.blocksize
 	     || arena->size + 2 * arena->blocksize != head.size){
 		if(namecmp(arena->name, head.name)!=0)
-			logerr(ECorrupt, "arena tail name %s head %s", 
+			logerr(ECorrupt, "arena tail name %s head %s",
 				arena->name, head.name);
 		else if(arena->clumpmagic != head.clumpmagic)
 			logerr(ECorrupt, "arena tail clumpmagic 0x%lux head 0x%lux",
@@ -780,22 +780,22 @@ putcib(Arena *arena, CIBlock *cib)
 
 
 /*
- * For index entry readahead purposes, the arenas are 
+ * For index entry readahead purposes, the arenas are
  * broken into smaller subpieces, called clump info groups
  * or cigs.  Each cig has ArenaCIGSize clumps (ArenaCIGSize
  * is chosen to make the index entries take up about half
  * a megabyte).  The index entries do not contain enough
  * information to determine what the clump index is for
  * a given address in an arena.  That info is needed both for
- * figuring out which clump group an address belongs to 
+ * figuring out which clump group an address belongs to
  * and for prefetching a clump group's index entries from
  * the arena table of contents.  The first time clump groups
  * are accessed, we scan the entire arena table of contents
- * (which might be 10s of megabytes), recording the data 
+ * (which might be 10s of megabytes), recording the data
  * offset of each clump group.
  */
 
-/* 
+/*
  * load clump info group information by scanning entire toc.
  */
 static void
@@ -811,7 +811,7 @@ loadcig(Arena *arena)
 		return;
 
 //	fprint(2, "loadcig %s\n", arena->name);
-	
+
 	ncig = (arena->memstats.clumps+ArenaCIGSize-1) / ArenaCIGSize;
 	if(ncig == 0){
 		arena->cig = vtmalloc(1);
@@ -839,7 +839,7 @@ loadcig(Arena *arena)
 		}
 	}
 	vtfree(ci);
-	
+
 	arena->ncig = ncig;
 	arena->cig = cig;
 
@@ -900,7 +900,7 @@ asumload(Arena *arena, int g, IEntry *entries, int nen
 		fprint(2, "asking for too few entries\n");
 		return -1;
 	}
-	
+
 	qlock(&arena->lock);
 	if(arena->cig == nil)
 		loadcig(arena);
@@ -908,7 +908,7 @@ asumload(Arena *arena, int g, IEntry *entries, int nen
 		qunlock(&arena->lock);
 		return -1;
 	}
-	
+
 	addr = 0;
 	base = g*ArenaCIGSize;
 	limit = base + ArenaCIGSize;
blob - 42418d1c93493a1f8b5f369b7ceb71cdf8e2eb4b
blob + d50b1777861ecb8f34eb6d077613b3a7caf77a37
--- src/cmd/venti/srv/bloom.c
+++ src/cmd/venti/srv/bloom.c
@@ -1,6 +1,6 @@
 /*
  * Bloom filter tracking which scores are present in our arenas
- * and (more importantly) which are not.  
+ * and (more importantly) which are not.
  */
 
 #include "stdinc.h"
@@ -13,19 +13,19 @@ int
 bloominit(Bloom *b, vlong vsize, u8int *data)
 {
 	ulong size;
-	
+
 	size = vsize;
 	if(size != vsize){	/* truncation */
 		werrstr("bloom data too big");
 		return -1;
 	}
-	
+
 	b->size = size;
 	b->nhash = 32;	/* will be fixed by caller on initialization */
 	if(data != nil)
 		if(unpackbloomhead(b, data) < 0)
 			return -1;
-	
+
 	b->bitmask = (b->size<<3) - 1;
 	b->data = data;
 	return 0;
@@ -42,7 +42,7 @@ readbloom(Part *p)
 {
 	uchar buf[512];
 	Bloom *b;
-	
+
 	b = vtmallocz(sizeof *b);
 	if(readpart(p, 0, buf, sizeof buf) < 0)
 		return nil;
@@ -75,7 +75,7 @@ int
 resetbloom(Bloom *b)
 {
 	uchar *data;
-	
+
 	data = vtmallocz(b->size);
 	b->data = data;
 	if(b->size == MaxBloomSize)	/* 2^32 overflows ulong */
@@ -92,7 +92,7 @@ loadbloom(Bloom *b)
 	uint ones;
 	uchar *data;
 	u32int *a;
-	
+
 	data = vtmallocz(b->size);
 	if(readpart(b->part, 0, data, b->size) < 0){
 		vtfree(b);
@@ -105,14 +105,14 @@ loadbloom(Bloom *b)
 	n = b->size/4;
 	ones = 0;
 	for(i=0; i<n; i++)
-		ones += countbits(a[i]); 
+		ones += countbits(a[i]);
 	addstat(StatBloomOnes, ones);
 
 	if(b->size == MaxBloomSize)	/* 2^32 overflows ulong */
 		addstat(StatBloomBits, b->size*8-1);
 	else
 		addstat(StatBloomBits, b->size*8);
-		
+
 	return 0;
 }
 
@@ -204,7 +204,7 @@ inbloomfilter(Bloom *b, u8int *score)
 
 	if(ignorebloom)
 		return 1;
-	
+
 	rlock(&b->lk);
 	r = _inbloomfilter(b, score);
 	runlock(&b->lk);
@@ -236,7 +236,7 @@ markbloomfiltern(Bloom *b, u8int score[][20], int n)
 
 	if(b == nil || b->data == nil)
 		return;
-	
+
 	rlock(&b->lk);
 	qlock(&b->mod);
 	for(i=0; i<n; i++)
@@ -251,7 +251,7 @@ bloomwriteproc(void *v)
 	int ret;
 	Bloom *b;
 
-	threadsetname("bloomwriteproc");	
+	threadsetname("bloomwriteproc");
 	b = v;
 	for(;;){
 		recv(b->writechan, 0);
@@ -268,5 +268,5 @@ startbloomproc(Bloom *b)
 {
 	b->writechan = chancreate(sizeof(void*), 0);
 	b->writedonechan = chancreate(sizeof(ulong), 0);
-	vtproc(bloomwriteproc, b);	
+	vtproc(bloomwriteproc, b);
 }
blob - 95fb74b72eb6c90b455d5867dd76a1e6f715d43b
blob + faf4b41446ee533c175a9682c04fd42a34499ecf
--- src/cmd/venti/srv/buildindex.c
+++ src/cmd/venti/srv/buildindex.c
@@ -12,7 +12,7 @@ enum
 };
 
 typedef struct IEntryBuf IEntryBuf;
-struct IEntryBuf 
+struct IEntryBuf
 {
 	IEntry ie[100];
 	int nie;
@@ -61,7 +61,7 @@ threadmain(int argc, char *argv[])
 	u32int bcmem, imem;
 	Config conf;
 	Part *p;
-	
+
 	maxdisks = 100000;
 	ventifmtinstall();
 	imem = 256*1024*1024;
@@ -116,18 +116,18 @@ threadmain(int argc, char *argv[])
 			close(fd);
 		}
 	}
-	
+
 	/*
 	 * need a block for every arena
 	 */
 	bcmem = maxblocksize * (mainindex->narenas + 16);
 	if(0) fprint(2, "initialize %d bytes of disk block cache\n", bcmem);
 	initdcache(bcmem);
-	
+
 	totalclumps = 0;
 	for(i=0; i<ix->narenas; i++)
 		totalclumps += ix->arenas[i]->diskstats.clumps;
-	
+
 	totalbuckets = 0;
 	for(i=0; i<ix->nsects; i++)
 		totalbuckets += ix->sects[i]->blocks;
@@ -142,7 +142,7 @@ threadmain(int argc, char *argv[])
 			vtproc(isectproc, ix->sects[i]);
 		}
 	}
-	
+
 	for(i=0; i<nisect; i++)
 		if(isect[i])
 			fprint(2, "warning: did not find index section %s\n", isect[i]);
@@ -180,7 +180,7 @@ threadmain(int argc, char *argv[])
 	if(ix->bloom && writebloom(ix->bloom) < 0)
 		fprint(2, "writing bloom filter: %r\n");
 
-	fprint(2, "%T done arenaentries=%,lld indexed=%,lld (nskip=%,lld)\n", 
+	fprint(2, "%T done arenaentries=%,lld indexed=%,lld (nskip=%,lld)\n",
 		arenaentries, indexentries, skipentries);
 	threadexitsall(nil);
 }
@@ -189,7 +189,7 @@ static int
 shouldprocess(ISect *is)
 {
 	int i;
-	
+
 	if(nisect == 0)
 		return 1;
 
@@ -205,7 +205,7 @@ static void
 add(u64int *a, u64int n)
 {
 	static Lock l;
-	
+
 	lock(&l);
 	*a += n;
 	unlock(&l);
@@ -233,7 +233,7 @@ arenapartproc(void *v)
 	IEntryBuf *buf, *b;
 	uchar *score;
 	ScoreBuf sb;
-	
+
 	p = v;
 	threadsetname("arenaproc %s", p->name);
 	buf = MKNZ(IEntryBuf, ix->nsects);
@@ -247,10 +247,10 @@ arenapartproc(void *v)
 		if(a->part != p)
 			continue;
 		if(a->memstats.clumps)
-			fprint(2, "%T arena %s: %d entries\n", 
+			fprint(2, "%T arena %s: %d entries\n",
 				a->name, a->memstats.clumps);
 		/*
-		 * Running the loop backwards accesses the 
+		 * Running the loop backwards accesses the
 		 * clump info blocks forwards, since they are
 		 * stored in reverse order at the end of the arena.
 		 * This speeds things slightly.
@@ -304,7 +304,7 @@ arenapartproc(void *v)
 	}
 	add(&arenaentries, tot);
 	add(&skipentries, nskip);
-	
+
 	for(i=0; i<ix->nsects; i++)
 		if(ix->sects[i]->writechan && buf[i].nie > 0)
 			send(ix->sects[i]->writechan, &buf[i]);
@@ -323,7 +323,7 @@ static u32int
 score2bucket(ISect *is, uchar *score)
 {
 	u32int b;
-	
+
 	b = hashbits(score, 32)/ix->div;
 	if(b < is->start || b >= is->stop){
 		fprint(2, "score2bucket: score=%V div=%d b=%ud start=%ud stop=%ud\n",
@@ -340,7 +340,7 @@ static u32int
 offset2bucket(ISect *is, u64int offset)
 {
 	u32int b;
-	
+
 	assert(is->blockbase <= offset);
 	offset -= is->blockbase;
 	b = offset/is->blocksize;
@@ -358,7 +358,7 @@ bucket2offset(ISect *is, u32int b)
 	return is->blockbase + (u64int)b*is->blocksize;
 }
 
-/* 
+/*
  * IEntry buffers to hold initial round of spraying.
  */
 typedef struct Buf Buf;
@@ -378,7 +378,7 @@ static void
 bflush(Buf *buf)
 {
 	u32int bufsize;
-	
+
 	if(buf->woffset >= buf->eoffset)
 		sysfatal("buf index chunk overflow - need bigger index");
 	bufsize = buf->ep - buf->bp;
@@ -420,11 +420,11 @@ struct Minibuf
 };
 
 /*
- * Index entry pool.  Used when trying to shuffle around 
+ * Index entry pool.  Used when trying to shuffle around
  * the entries in a big buffer into the corresponding M minibuffers.
  * Sized to hold M*EntriesPerBlock entries, so that there will always
  * either be room in the pool for another block worth of entries
- * or there will be an entire block worth of sorted entries to 
+ * or there will be an entire block worth of sorted entries to
  * write out.
  */
 typedef struct IEntryLink IEntryLink;
@@ -461,7 +461,7 @@ countsokay(IPool *p)
 {
 	int i;
 	u64int n;
-	
+
 	n = 0;
 	for(i=0; i<p->nmbuf; i++)
 		n += p->mcount[i];
@@ -477,21 +477,21 @@ countsokay(IPool *p)
 */
 
 static IPool*
-mkipool(ISect *isect, Minibuf *mbuf, u32int nmbuf, 
+mkipool(ISect *isect, Minibuf *mbuf, u32int nmbuf,
 	u32int mbufbuckets, u32int bufsize)
 {
 	u32int i, nentry;
 	uchar *data;
 	IPool *p;
 	IEntryLink *l;
-	
+
 	nentry = (nmbuf+1)*bufsize / IEntrySize;
 	p = ezmalloc(sizeof(IPool)
 		+nentry*sizeof(IEntry)
 		+nmbuf*sizeof(IEntryLink*)
 		+nmbuf*sizeof(u32int)
 		+3*bufsize);
-	
+
 	p->isect = isect;
 	p->mbufbuckets = mbufbuckets;
 	p->bufsize = bufsize;
@@ -516,7 +516,7 @@ mkipool(ISect *isect, Minibuf *mbuf, u32int nmbuf, 
 	return p;
 }
 
-/* 
+/*
  * Add the index entry ie to the pool p.
  * Caller must know there is room.
  */
@@ -543,7 +543,7 @@ ipoolinsert(IPool *p, uchar *ie)
 	l->next = p->mlist[x];
 	p->mlist[x] = l;
 	p->mcount[x]++;
-}	
+}
 
 /*
  * Pull out a block containing as many
@@ -555,7 +555,7 @@ ipoolgetbuf(IPool *p, u32int x)
 	uchar *bp, *ep, *wp;
 	IEntryLink *l;
 	u32int n;
-	
+
 	bp = p->wbuf;
 	ep = p->wbuf + p->bufsize;
 	n = 0;
@@ -582,7 +582,7 @@ static void
 ipoolloadblock(IPool *p, Minibuf *mb)
 {
 	u32int i, n;
-	
+
 	assert(mb->nentry > 0);
 	assert(mb->roffset >= mb->woffset);
 	assert(mb->roffset < mb->eoffset);
@@ -609,14 +609,14 @@ ipoolflush0(IPool *pool, u32int x)
 {
 	u32int bufsize;
 	Minibuf *mb;
-	
+
 	mb = pool->mbuf+x;
 	bufsize = pool->bufsize;
 	mb->nwentry += ipoolgetbuf(pool, x);
 	if(mb->nentry > 0 && mb->roffset == mb->woffset){
 		assert(pool->nfree >= pool->bufsize/IEntrySize);
 		/*
-		 * There will be room in the pool -- we just 
+		 * There will be room in the pool -- we just
 		 * removed a block worth.
 		 */
 		ipoolloadblock(pool, mb);
@@ -655,7 +655,7 @@ static void
 ipoolflush(IPool *pool)
 {
 	u32int i;
-	
+
 	for(i=0; i<pool->nmbuf; i++)
 		while(pool->mlist[i])
 			ipoolflush0(pool, i);
@@ -668,7 +668,7 @@ ipoolflush(IPool *pool)
  */
 
 /*
- * Compare two packed index entries.  
+ * Compare two packed index entries.
  * Usual ordering except break ties by putting higher
  * index addresses first (assumes have duplicates
  * due to corruption in the lower addresses).
@@ -678,7 +678,7 @@ ientrycmpaddr(const void *va, const void *vb)
 {
 	int i;
 	uchar *a, *b;
-	
+
 	a = (uchar*)va;
 	b = (uchar*)vb;
 	i = ientrycmp(a, b);
@@ -692,7 +692,7 @@ zerorange(Part *p, u64int o, u64int e)
 {
 	static uchar zero[MaxIoSize];
 	u32int n;
-	
+
 	for(; o<e; o+=n){
 		n = sizeof zero;
 		if(o+n > e)
@@ -703,7 +703,7 @@ zerorange(Part *p, u64int o, u64int e)
 }
 
 /*
- * Load a minibuffer into memory and write out the 
+ * Load a minibuffer into memory and write out the
  * corresponding buckets.
  */
 static void
@@ -714,10 +714,10 @@ sortminibuffer(ISect *is, Minibuf *mb, uchar *buf, u32
 	u64int o;
 	IBucket ib;
 	Part *part;
-	
+
 	part = is->part;
 	buckdata = emalloc(is->blocksize);
-	
+
 	if(mb->nwentry == 0)
 		return;
 
@@ -732,7 +732,7 @@ sortminibuffer(ISect *is, Minibuf *mb, uchar *buf, u32
 		return;
 	}
 	assert(*(uint*)buf != 0xa5a5a5a5);
-	
+
 	/*
 	 * remove fragmentation due to IEntrySize
 	 * not evenly dividing Bufsize
@@ -746,7 +746,7 @@ sortminibuffer(ISect *is, Minibuf *mb, uchar *buf, u32
 	ep = buf + mb->nwentry*IEntrySize;
 	assert(ep <= buf+nbuf);
 
-	/* 
+	/*
 	 * sort entries
 	 */
 	qsort(buf, mb->nwentry, IEntrySize, ientrycmpaddr);
@@ -795,14 +795,14 @@ isectproc(void *v)
 	IPool *ipool;
 	ISect *is;
 	Minibuf *mbuf, *mb;
-	
+
 	is = v;
 	blocksize = is->blocksize;
 	nbucket = is->stop - is->start;
 
 	/*
 	 * Three passes:
-	 *	pass 1 - write index entries from arenas into 
+	 *	pass 1 - write index entries from arenas into
 	 *		large sequential sections on index disk.
 	 *		requires nbuf * bufsize memory.
 	 *
@@ -810,36 +810,36 @@ isectproc(void *v)
 	 *		requires nminibuf * bufsize memory.
 	 *
 	 *	pass 3 - read each minibuf into memory and
-	 *		write buckets out. 
+	 *		write buckets out.
 	 *		requires entries/minibuf * IEntrySize memory.
-	 * 
+	 *
 	 * The larger we set bufsize the less seeking hurts us.
-	 * 
+	 *
 	 * The fewer sections and minibufs we have, the less
 	 * seeking hurts us.
-	 * 
-	 * The fewer sections and minibufs we have, the 
+	 *
+	 * The fewer sections and minibufs we have, the
 	 * more entries we end up with in each minibuf
-	 * at the end.  
+	 * at the end.
 	 *
 	 * Shoot for using half our memory to hold each
-	 * minibuf.  The chance of a random distribution 
-	 * getting off by 2x is quite low.  
+	 * minibuf.  The chance of a random distribution
+	 * getting off by 2x is quite low.
 	 *
-	 * Once that is decided, figure out the smallest 
+	 * Once that is decided, figure out the smallest
 	 * nminibuf and nsection/biggest bufsize we can use
 	 * and still fit in the memory constraints.
 	 */
-	
+
 	/* expected number of clump index entries we'll see */
 	xclump = nbucket * (double)totalclumps/totalbuckets;
-	
+
 	/* number of clumps we want to see in a minibuf */
 	xminiclump = isectmem/2/IEntrySize;
-	
+
 	/* total number of minibufs we need */
 	prod = (xclump+xminiclump-1) / xminiclump;
-	
+
 	/* if possible, skip second pass */
 	if(!dumb && prod*MinBufSize < isectmem){
 		nbuf = prod;
@@ -904,7 +904,7 @@ isectproc(void *v)
 		}
 	}
 	add(&indexentries, n);
-	
+
 	nn = 0;
 	for(i=0; i<nbuf; i++){
 		bflush(&buf[i]);
@@ -915,15 +915,15 @@ isectproc(void *v)
 	}
 	if(n != nn)
 		fprint(2, "isectproc bug: n=%ud nn=%ud\n", n, nn);
-		
+
 	free(data);
 
 	fprint(2, "%T %s: reordering\n", is->part->name);
-	
+
 	/*
 	 * Rearrange entries into minibuffers and then
 	 * split each minibuffer into buckets.
-	 * The minibuffer must be sized so that it is 
+	 * The minibuffer must be sized so that it is
 	 * a multiple of blocksize -- ipoolloadblock assumes
 	 * that each minibuf starts aligned on a blocksize
 	 * boundary.
@@ -971,7 +971,7 @@ isectproc(void *v)
 				while(mb->nentry > 0){
 					if(ipool->nfree < epbuf){
 						ipoolflush1(ipool);
-						/* ipoolflush1 might change mb->nentry */	
+						/* ipoolflush1 might change mb->nentry */
 						continue;
 					}
 					assert(ipool->nfree >= epbuf);
@@ -1002,9 +1002,6 @@ isectproc(void *v)
 		}
 		free(data);
 	}
-		
+
 	sendp(isectdonechan, is);
 }
-
-
-
blob - d2cfe251c3d6697bf886d734761bd964d92e23cd
blob + 1a7e016c2e1e52ebea78559bbde76166cf2f2c0c
--- src/cmd/venti/srv/clumpstats.c
+++ src/cmd/venti/srv/clumpstats.c
@@ -122,6 +122,6 @@ threadmain(int argc, char *argv[])
 	initdcache(bcmem);
 
 	clumpstats(mainindex);
-	
+
 	threadexitsall(0);
 }
blob - 322f16ee165c4d01967f22a24ef73ca8351025ae
blob + 5abf8575f0aef54ed50e8fef9607f10171ccdd0c
--- src/cmd/venti/srv/cmparenas.c
+++ src/cmd/venti/srv/cmparenas.c
@@ -57,7 +57,7 @@ printheader(char *name, ArenaHead *head, int fd)
 	Arena arena;
 	vlong baseoff, lo, hi, off;
 	int clumpmax;
-	
+
 	off = seek(fd, 0, 1);
 	seek(fd, off + head->size - head->blocksize, 0);
 	if(readblock(fd, data, head->blocksize) < 0){
@@ -91,7 +91,7 @@ printheader(char *name, ArenaHead *head, int fd)
 		lo = hi;
 	fprint(2, "\t%llx-%llx: clumps (%llx)\n", lo, hi, hi - lo);
 	fprint(2, "\t%llx-%llx: tail\n", hi, hi + head->blocksize);
-	
+
 	fprint(2, "arena:\n");
 	printarena(2, &arena);
 	return 0;
@@ -149,7 +149,7 @@ cmparena(char *name, vlong len)
 
 	if(printheader(name, &head, fd) < 0)
 		return;
-	
+
 	/*
 	 * now we know how much to read
 	 * read everything but the last block, which is special
@@ -196,7 +196,7 @@ static int
 shouldcheck(char *name, char **s, int n)
 {
 	int i;
-	
+
 	if(n == 0)
 		return 1;
 
@@ -213,7 +213,7 @@ char *
 readap(int fd, ArenaPart *ap)
 {
 	char *table;
-	
+
 	if(preadblock(fd, data, 8192, PartBlank) < 0)
 		sysfatal("read arena part header: %r");
 	if(unpackarenapart(ap, data) < 0)
@@ -237,7 +237,7 @@ threadmain(int argc, char *argv[])
 	vlong start, stop;
 	ArenaPart ap;
 	ArenaPart ap1;
-	
+
 	ventifmtinstall();
 	blocksize = MaxIoSize;
 	ARGBEGIN{
blob - 8c29fe95f8654fdfe5f9a81e65ac044b67b761df
blob + e7dde3e4d86fc0fb45cf4cb7447359c7a919a92f
--- src/cmd/venti/srv/config.c
+++ src/cmd/venti/srv/config.c
@@ -201,7 +201,7 @@ configisect(char *file)
 {
 	Part *part;
 	ISect *is;
-	
+
 	if(0) fprint(2, "configure index section in %s\n", file);
 
 	part = initpart(file, ORDWR|ODIRECT);
@@ -252,4 +252,3 @@ void
 needmainindex(void)
 {
 }
-
blob - e6a6cbfe1f3aece6537af789d75b16a085142289
blob + 90aefbecd13c0700e12055a4d7549935f7a8b879
--- src/cmd/venti/srv/conv.c
+++ src/cmd/venti/srv/conv.c
@@ -162,7 +162,7 @@ unpackarena(Arena *arena, u8int *buf)
 	 * all the existing version 4 arenas too.
 	 *
 	 * To maintain backwards compatibility with existing venti
-	 * installations using the older format, we define that if 
+	 * installations using the older format, we define that if
 	 * memstats == diskstats, then the extension fields are not
 	 * included (see packarena below).  That is, only partially
 	 * indexed arenas have these fields.  Fully indexed arenas
@@ -181,7 +181,7 @@ unpackarena(Arena *arena, u8int *buf)
 		p += U64Size;
 		arena->memstats.sealed = U8GET(p);
 		p += U8Size;
-		
+
 		/*
 		 * 2008/4/2
 		 * Packarena (below) used to have a bug in which it would
@@ -264,7 +264,7 @@ _packarena(Arena *arena, u8int *buf, int forceext)
 	p += U64Size;
 	U8PUT(p, arena->diskstats.sealed);
 	p += U8Size;
-	
+
 	/*
 	 * Extension fields; see above.
 	 */
@@ -281,7 +281,7 @@ _packarena(Arena *arena, u8int *buf, int forceext)
 		p += U32Size;
 		U32PUT(p, arena->memstats.cclumps);
 		p += U32Size;
-		U64PUT(p, arena->memstats.used, t32);	
+		U64PUT(p, arena->memstats.used, t32);
 		p += U64Size;
 		U64PUT(p, arena->memstats.uncsize, t32);
 		p += U64Size;
@@ -669,7 +669,7 @@ unpackibucket(IBucket *b, u8int *buf, u32int magic)
 	b->data = buf + IBucketSize;
 	if(magic && magic != U32GET(buf+U16Size))
 		b->n = 0;
-}		
+}
 
 void
 packibucket(IBucket *b, u8int *buf, u32int magic)
@@ -705,7 +705,7 @@ unpackbloomhead(Bloom *b, u8int *buf)
 		return -1;
 	}
 	p += U32Size;
-	
+
 	m = U32GET(p);
 	if(m != BloomVersion){
 		seterr(ECorrupt, "bloom filter has wrong version %ud expected %ud", (uint)m, (uint)BloomVersion);
blob - f47d01a12f60382bd877ba126295f7a2496cc021
blob + 68e6c8f5ab7ca7f5d8bc86c6ac94435769aedf70
--- src/cmd/venti/srv/dat.h
+++ src/cmd/venti/srv/dat.h
@@ -90,7 +90,7 @@ enum
 	ArenaPartMagic		= 0xa9e4a5e7U,	/* arena partition header */
 	ArenaMagic		= 0xf2a14eadU,	/* arena trailer */
 	ArenaHeadMagic		= 0xd15c4eadU,	/* arena header */
-	
+
 	BloomMagic		= 0xb1004eadU,	/* bloom filter header */
 	BloomMaxHash	= 32,
 
@@ -145,7 +145,7 @@ enum
 	IEntryAddrOff		= VtScoreSize + U32Size + U16Size,
 
 	MaxClumpBlocks		=  (VtMaxLumpSize + ClumpSize + (1 << ABlockLog) - 1) >> ABlockLog,
-	
+
 	IcacheFrac		= 1000000,	/* denominator */
 
 	SleepForever		= 1000000000,	/* magic value for sleep time */
@@ -156,7 +156,7 @@ enum
 	DirtyArenaCib,
 	DirtyArenaTrailer,
 	DirtyMax,
-	
+
 	ArenaCIGSize = 10*1024,	// about 0.5 MB worth of IEntry.
 
 	VentiZZZZZZZZ
@@ -231,7 +231,7 @@ struct DBlock
 	u32int	used2;
 	u32int	ref;			/* reference count */
 	RWLock	lock;			/* for access to data only */
-	Channel	*writedonechan;	
+	Channel	*writedonechan;
 	void*	chanbuf[1];		/* buffer for the chan! */
 };
 
@@ -315,7 +315,7 @@ struct CIBlock
 };
 
 /*
- * Statistics kept in the tail. 
+ * Statistics kept in the tail.
  */
 struct ATailStats
 {
@@ -382,7 +382,7 @@ struct Arena
 	u32int		ctime;			/* first time a block was written */
 	u32int		wtime;			/* last time a block was written */
 	u32int		clumpmagic;
-	
+
 	ArenaCIG	*cig;
 	int	ncig;
 };
@@ -465,7 +465,7 @@ struct Index
 	Bloom		*bloom;	/* bloom filter */
 
 	/*
-	 * fields stored in config file 
+	 * fields stored in config file
 	 */
 	u32int		version;
 	char		name[ANameSize];	/* text label */
@@ -473,7 +473,7 @@ struct Index
 	AMap		*smap;			/* mapping of buckets to index sections */
 	int		narenas;
 	AMap		*amap;			/* mapping from index addesses to arenas */
-	
+
 	QLock	writing;
 };
 
@@ -529,7 +529,7 @@ struct IEntry
 	/* on disk data - 32 bytes*/
 	u8int	score[VtScoreSize];
 	IAddr	ia;
-	
+
 	IEntry	*nexthash;
 	IEntry	*nextdirty;
 	IEntry	*next;
@@ -657,7 +657,7 @@ enum
 
 	StatSumRead,
 	StatSumReadBytes,
-	
+
 	StatCigLoad,
 	StatCigLoadTime,
 
@@ -762,4 +762,3 @@ extern	ulong	stattime;
 #pragma varargck type "V" uchar*
 #define ODIRECT 0
 #endif
-
blob - a50ef0c5c2bbc4b71eae3778d0e25c71316f430f
blob + f4f008988cf91db052073a01987498deb7de1624
--- src/cmd/venti/srv/dcache.c
+++ src/cmd/venti/srv/dcache.c
@@ -1,23 +1,23 @@
 /*
  * Disk cache.
- * 
+ *
  * Caches raw disk blocks.  Getdblock() gets a block, putdblock puts it back.
  * Getdblock has a mode parameter that determines i/o and access to a block:
  * if mode is OREAD or ORDWR, it is read from disk if not already in memory.
  * If mode is ORDWR or OWRITE, it is locked for exclusive use before being returned.
  * It is *not* marked dirty -- once changes have been made, they should be noted
- * by using dirtydblock() before putdblock().  
+ * by using dirtydblock() before putdblock().
  *
- * There is a global cache lock as well as a lock on each block. 
+ * There is a global cache lock as well as a lock on each block.
  * Within a thread, the cache lock can be acquired while holding a block lock,
  * but not vice versa; and a block cannot be locked if you already hold the lock
  * on another block.
- * 
+ *
  * The flush proc writes out dirty blocks in batches, one batch per dirty tag.
  * For example, the DirtyArena blocks are all written to disk before any of the
  * DirtyArenaCib blocks.
  *
- * This code used to be in charge of flushing the dirty index blocks out to 
+ * This code used to be in charge of flushing the dirty index blocks out to
  * disk, but updating the index turned out to benefit from extra care.
  * Now cached index blocks are never marked dirty.  The index.c code takes
  * care of updating them behind our back, and uses _getdblock to update any
@@ -134,7 +134,7 @@ DBlock*
 getdblock(Part *part, u64int addr, int mode)
 {
 	DBlock *b;
-	
+
 	b = _getdblock(part, addr, mode, 1);
 	if(mode == OREAD || mode == ORDWR)
 		addstat(StatDcacheRead, 1);
@@ -335,7 +335,7 @@ static void
 unchain(DBlock *b)
 {
 	ulong h;
-	
+
 	/*
 	 * unchain the block
 	 */
@@ -395,7 +395,7 @@ void
 emptydcache(void)
 {
 	DBlock *b;
-	
+
 	qlock(&dcache.lock);
 	while(dcache.nheap > 0){
 		b = dcache.heap[0];
@@ -575,7 +575,7 @@ parallelwrites(DBlock **b, DBlock **eb, int dirty)
 		assert(b<=p && p<eb);
 		recvp((*p)->writedonechan);
 	}
-	
+
 	/*
 	 * Flush the partitions that have been written to.
 	 */
blob - d43b64c7fe21698d033c2a2c9e44e2bede1ebe09
blob + 0315425c4ace0a243675924f7d32e598dbcb4667
--- src/cmd/venti/srv/disksched.c
+++ src/cmd/venti/srv/disksched.c
@@ -15,7 +15,7 @@ disksched(void)
 	ulong t;
 	vlong cflush;
 	Stats *prev;
-	
+
 	/*
 	 * no locks because all the data accesses are atomic.
 	 */
@@ -40,22 +40,22 @@ disksched(void)
 
 			/* # entries written to index cache */
 			nwrite = stats.n[StatIcacheWrite] - prev->n[StatIcacheWrite];
-			
+
 			/* # dirty entries in index cache */
 			ndirty = stats.n[StatIcacheDirty] - prev->n[StatIcacheDirty];
-			
+
 			/* # entries flushed to disk */
 			nflush = nwrite - ndirty;
-			
+
 			/* want to stay around 70% dirty */
 			tdirty = (vlong)stats.n[StatIcacheSize]*700/1000;
-			
+
 			/* assume nflush*icachesleeptime is a constant */
 			cflush = (vlong)nflush*(icachesleeptime+1);
-			
+
 			/* computer number entries to write in next minute */
 			toflush = nwrite + (stats.n[StatIcacheDirty] - tdirty);
-			
+
 			/* schedule for  that many */
 			if(toflush <= 0 || cflush/toflush > 100000)
 				icachesleeptime = SleepForever;
@@ -86,4 +86,3 @@ diskaccess(int level)
 	}
 	lasttime[level] = time(0);
 }
-
blob - d7ae41d39d43e5e306c88f3f20174ed80064918b
blob + 8fc4f55db31b5f2ea9c4d340837676d171c31039
--- src/cmd/venti/srv/fixarenas.c
+++ src/cmd/venti/srv/fixarenas.c
@@ -6,7 +6,7 @@
  *
  * The rule here (hopefully followed!) is that block corruption
  * only ever has a local effect -- there are no blocks that you
- * can wipe out that will cause large portions of 
+ * can wipe out that will cause large portions of
  * uncorrupted data blocks to be useless.
  */
 
@@ -26,7 +26,7 @@ enum
 	K = 1024,
 	M = 1024*1024,
 	G = 1024*1024*1024,
-	
+
 	Block = 4096,
 };
 
@@ -64,7 +64,7 @@ static int
 zfmt(Fmt *fmt)
 {
 	vlong x;
-	
+
 	x = va_arg(fmt->args, vlong);
 	if(x == 0)
 		return fmtstrcpy(fmt, "0");
@@ -85,7 +85,7 @@ tfmt(Fmt *fmt)
 {
 	uint t;
 	char buf[30];
-	
+
 	t = va_arg(fmt->args, uint);
 	strcpy(buf, ctime(t));
 	buf[28] = 0;
@@ -133,7 +133,7 @@ readdisk(uchar *buf, vlong offset, int len)
 		memset(buf, 0xFB, len);
 		return buf;
 	}
-	
+
 	if(offset+len > partend){
 		memset(buf, 0xFB, len);
 		len = partend - offset;
@@ -141,7 +141,7 @@ readdisk(uchar *buf, vlong offset, int len)
 
 	if(readpart(part, offset, buf, len) >= 0)
 		return buf;
-	
+
 	/*
 	 * The read failed.  Clear the buffer to nonsense, and
 	 * then try reading in smaller pieces.  If that fails,
@@ -191,7 +191,7 @@ void
 sbdebug(Shabuf *sb, char *file)
 {
 	int fd;
-	
+
 	if(sb->fd > 0){
 		close(sb->fd);
 		sb->fd = 0;
@@ -234,7 +234,7 @@ sbupdate(Shabuf *sb, uchar *p, vlong offset, int len)
 		len -= x;
 	}
 	assert(sb->offset == offset);
-	
+
 	if(sb->fd > 0)
 		pwrite(sb->fd, p, len, offset - sb->r0);
 
@@ -243,7 +243,7 @@ sbupdate(Shabuf *sb, uchar *p, vlong offset, int len)
 		sb->offset += len;
 		return;
 	}
-	
+
 	/* save state every 4M so we can roll back quickly */
 	o = offset - sb->r0;
 	while(len > 0){
@@ -265,7 +265,7 @@ sbupdate(Shabuf *sb, uchar *p, vlong offset, int len)
 			}
 			sb->hist[x] = sb->state;
 		}
-	}		
+	}
 }
 
 void
@@ -273,7 +273,7 @@ sbdiskhash(Shabuf *sb, vlong eoffset)
 {
 	static uchar dbuf[4*M];
 	int n;
-	
+
 	while(sb->offset < eoffset){
 		n = sizeof dbuf;
 		if(sb->offset+n > eoffset)
@@ -289,7 +289,7 @@ sbrollback(Shabuf *sb, vlong offset)
 	int x;
 	vlong o;
 	Dir d;
-	
+
 	if(!sb->rollback || !sb->r0){
 		print("cannot rollback sha\n");
 		return;
@@ -305,7 +305,7 @@ sbrollback(Shabuf *sb, vlong offset)
 	sb->state = sb->hist[x];
 	sb->offset = sb->r0 + x*4*M;
 	assert(sb->offset <= offset);
-	
+
 	if(sb->fd > 0){
 		nulldir(&d);
 		d.length = sb->offset - sb->r0;
@@ -325,7 +325,7 @@ sbscore(Shabuf *sb, uchar *score)
 
 /*
  * If we're fixing arenas, then editing this memory edits the disk!
- * It will be written back out as new data is paged in. 
+ * It will be written back out as new data is paged in.
  */
 uchar buf[4*M];
 uchar sbuf[4*M];
@@ -341,7 +341,7 @@ pagein(vlong offset, int len)
 		memset(buf, 0xFB, sizeof buf);
 		return buf;
 	}
-	
+
 	if(offset+len > partend){
 		memset(buf, 0xFB, sizeof buf);
 		len = partend - offset;
@@ -373,16 +373,16 @@ zerorange(vlong offset, int len)
 	vlong ooff;
 	int olen;
 	enum { MinBlock = 4*K, MaxBlock = 8*K };
-	
+
 	if(0)
 	if(bufoffset <= offset && offset+len <= bufoffset+buflen){
 		memset(buf+(offset-bufoffset), 0, len);
 		return;
 	}
-	
+
 	ooff = bufoffset;
 	olen = buflen;
-	
+
 	i = offset%MinBlock;
 	if(i+len < MaxBlock){
 		pagein(offset-i, (len+MinBlock-1)&~(MinBlock-1));
@@ -455,7 +455,7 @@ static int
 vlongcmp(const void *va, const void *vb)
 {
 	vlong a, b;
-	
+
 	a = *(vlong*)va;
 	b = *(vlong*)vb;
 	if(a < b)
@@ -524,7 +524,7 @@ Info tailinfo4[] = {
 	1,	"sealed",
 	0
 };
-	
+
 Info tailinfo4a[] = {
 	/* tailinfo 4 */
 	4,	"magic",
@@ -547,7 +547,7 @@ Info tailinfo4a[] = {
 	1,	"mem.sealed",
 	0
 };
-	
+
 Info tailinfo5[] = {
 	4,	"magic",
 	D|4,	"version",
@@ -586,12 +586,12 @@ Info tailinfo5a[] = {
 	1,	"mem.sealed",
 	0
 };
-	
+
 void
 showdiffs(uchar *want, uchar *have, int len, Info *info)
 {
 	int n;
-	
+
 	while(len > 0 && (n=info->len&N) > 0){
 		if(memcmp(have, want, n) != 0){
 			switch(info->len){
@@ -625,7 +625,7 @@ showdiffs(uchar *want, uchar *have, int len, Info *inf
 				break;
 			case S|ANameSize:
 				print("\t%s: correct=%s disk=%.*s\n",
-					info->name, (char*)want, 
+					info->name, (char*)want,
 					utfnlen((char*)have, ANameSize-1),
 					(char*)have);
 				break;
@@ -672,7 +672,7 @@ guessgeometry(void)
 	uchar *p, *ep, *sp;
 	u64int diff[100], head[20], tail[20];
 	u64int offset, bestdiff;
-	
+
 	ap.version = ArenaPartVersion;
 
 	if(arenasize == 0 || ap.blocksize == 0){
@@ -705,8 +705,8 @@ guessgeometry(void)
 		}
 		if(nhead < 3 && ntail < 3)
 			sysfatal("too few intact arenas: %d heads, %d tails", nhead, ntail);
-	
-		/* 
+
+		/*
 		 * Arena size is likely the most common
 		 * inter-head or inter-tail spacing.
 		 */
@@ -816,7 +816,7 @@ guessgeometry(void)
 		}
 	}
 	p = pagein(ap.arenabase, Block);
-	print("arena base likely %z%s\n", (vlong)ap.arenabase, 
+	print("arena base likely %z%s\n", (vlong)ap.arenabase,
 		u32(p)!=ArenaHeadMagic ? " (but no arena head there)" : "");
 
 	ap.tabsize = ap.arenabase - ap.tabbase;
@@ -893,7 +893,7 @@ isclump(uchar *p, Clump *cl, u32int *pmagic)
 	uchar score[VtScoreSize], *bp;
 	Unwhack uw;
 	uchar ubuf[70*1024];
-	
+
 	bp = p;
 	magic = u32(p);
 	if(magic == 0)
@@ -942,7 +942,7 @@ isclump(uchar *p, Clump *cl, u32int *pmagic)
 		return 0;
 	}
 	p += cl->info.size;
-	
+
 	/* it all worked out in the end */
 	*pmagic = magic;
 	return p - bp;
@@ -975,7 +975,7 @@ int*
 ltreewalk(int *p, uchar *score)
 {
 	int i;
-	
+
 	for(;;){
 		if(*p == -1)
 			return p;
@@ -993,7 +993,7 @@ void
 addcibuf(ClumpInfo *ci, vlong corrupt)
 {
 	Cit *cit;
-	
+
 	if(ncibuf == mcibuf){
 		mcibuf += 131072;
 		cibuf = vtrealloc(cibuf, mcibuf*sizeof cibuf[0]);
@@ -1012,7 +1012,7 @@ void
 addcicorrupt(vlong len)
 {
 	static ClumpInfo zci;
-	
+
 	addcibuf(&zci, len);
 }
 
@@ -1021,7 +1021,7 @@ haveclump(uchar *score)
 {
 	int i;
 	int p;
-	
+
 	p = ciroot;
 	for(;;){
 		if(p == -1)
@@ -1054,7 +1054,7 @@ int
 sealedarena(uchar *p, int blocksize)
 {
 	int v, n;
-	
+
 	v = u32(p+4);
 	switch(v){
 	default:
@@ -1085,13 +1085,13 @@ int
 okayname(char *name, int n)
 {
 	char buf[20];
-	
+
 	if(nameok(name) < 0)
 		return 0;
 	sprint(buf, "%d", n);
 	if(n == 0)
 		buf[0] = 0;
-	if(strlen(name) < strlen(buf) 
+	if(strlen(name) < strlen(buf)
 	|| strcmp(name+strlen(name)-strlen(buf), buf) != 0)
 		return 0;
 	return 1;
@@ -1115,7 +1115,7 @@ loadci(vlong offset, Arena *arena, int nci)
 	int i, j, per;
 	uchar *p, *sp;
 	ClumpInfo *bci, *ci;
-	
+
 	per = arena->blocksize/ClumpInfoSize;
 	bci = vtmalloc(nci*sizeof bci[0]);
 	ci = bci;
@@ -1139,7 +1139,7 @@ writeci(vlong offset, Arena *arena, ClumpInfo *ci, int
 {
 	int i, j, per;
 	uchar *p, *sp;
-	
+
 	per = arena->blocksize/ClumpInfoSize;
 	offset += arena->size - arena->blocksize;
 	p = sp = nil;
@@ -1177,11 +1177,11 @@ loadarenabasics(vlong offset0, int anum, ArenaHead *he
 	if(offset0+arena->size > partend)
 		arena->size = partend - offset0;
 	head->size = arena->size;
-	
+
 	arena->blocksize = ap.blocksize;
 	head->blocksize = arena->blocksize;
-	
-	/* 
+
+	/*
 	 * Look for clump magic and name in head/tail blocks.
 	 * All the other info we will reconstruct just in case.
 	 */
@@ -1194,7 +1194,7 @@ loadarenabasics(vlong offset0, int anum, ArenaHead *he
 			strcpy(head->name, ohead.name);
 	}
 
-	p = pagein(offset0+arena->size-arena->blocksize, 
+	p = pagein(offset0+arena->size-arena->blocksize,
 		arena->blocksize);
 	memset(&oarena, 0, sizeof oarena);
 	if(unpackarena(&oarena, p) >= 0){
@@ -1228,7 +1228,7 @@ print("old arena: sealed=%d\n", oarena.diskstats.seale
 	strcpy(lastbase, arena->name);
 	sprint(dname, "%d", anum);
 	lastbase[strlen(lastbase)-strlen(dname)] = 0;
-	
+
 	/* Was working in arena, now copy to head. */
 	head->version = arena->version;
 	memmove(head->name, arena->name, sizeof head->name);
@@ -1240,7 +1240,7 @@ void
 shahead(Shabuf *sb, vlong offset0, ArenaHead *head)
 {
 	uchar headbuf[MaxDiskBlock];
-	
+
 	sb->offset = offset0;
 	memset(headbuf, 0, sizeof headbuf);
 	packarenahead(head, headbuf);
@@ -1251,7 +1251,7 @@ u32int
 newclumpmagic(int version)
 {
 	u32int m;
-	
+
 	if(version == ArenaVersion4)
 		return _ClumpMagic;
 	do{
@@ -1279,7 +1279,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 	ClumpInfo *bci, *ci, *eci, *xci;
 	Cit *bcit, *cit, *ecit;
 	Shabuf oldsha, newsha;
-	
+
 	/*
 	 * We expect to find an arena, with data, between offset
 	 * and offset+arenasize.  With any luck, the data starts at
@@ -1314,7 +1314,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 	loadarenabasics(offset0, anum, head, arena);
 
 	/* start the clump hunt */
-	
+
 	clumps = 0;
 	totalcorrupt = 0;
 	sealing = 1;
@@ -1424,7 +1424,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 			 * grow clump info blocks if needed.
 			 */
 			if(verbose > 1)
-				print("\tclump %d: %d %V at %#llux+%#ux (%d)\n", 
+				print("\tclump %d: %d %V at %#llux+%#ux (%d)\n",
 					clumps, cl.info.type, cl.info.score, offset, n, n);
 			addcibuf(&cl.info, 0);
 			if(minclumps%ncib == 0)
@@ -1435,7 +1435,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 				arena->diskstats.cclumps++;
 			arena->diskstats.uncsize += cl.info.uncsize;
 			arena->wtime = cl.time;
-			
+
 			/*
 			 * Move to next clump.
 			 */
@@ -1470,7 +1470,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 	pageout();
 
 	if(verbose)
-		print("readable clumps: %d; min. directory entries: %d\n", 
+		print("readable clumps: %d; min. directory entries: %d\n",
 			clumps, minclumps);
 	arena->diskstats.used = lastclumpend - boffset;
 	leaked = eoffset - lastclumpend;
@@ -1488,10 +1488,10 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 		sbupdate(&oldsha, dbuf, toffset, arena->blocksize);
 		sbscore(&oldsha, oldscore);
 	}
-	
+
 	/*
 	 * If we still don't know the clump magic, the arena
-	 * must be empty.  It still needs a value, so make 
+	 * must be empty.  It still needs a value, so make
 	 * something up.
 	 */
 	if(arena->version == 0)
@@ -1537,7 +1537,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 		v = offset0 + arena->size - arena->blocksize;
 		clumps = (v-lastclumpend)/arena->blocksize * ncib;
 	}
-	
+
 	if(clumps < minclumps)
 		print("cannot happen?\n");
 
@@ -1546,7 +1546,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 	 * The tricky part is handling the corrupt sections of arena.
 	 * If possible, we remark just the affected directory entries
 	 * rather than slide everything down.
-	 * 
+	 *
 	 * Allocate clumps+1 blocks and check that we don't need
 	 * the last one at the end.
 	 */
@@ -1554,7 +1554,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, A
 	eci = bci+clumps+1;
 	bcit = cibuf;
 	ecit = cibuf+ncibuf;
-	
+
 	smart = 0;	/* Somehow the smart code doesn't do corrupt clumps right. */
 Again:
 	nbad = 0;
@@ -1614,11 +1614,11 @@ Again:
 		if(clumpinfocmp(&cit->ci, ci) != 0){
 			if(verbose && (smart || verbose>1)){
 				print("clumpinfo %d\n", (int)(ci-bci));
-				print("\twant: %d %d %d %V\n", 
+				print("\twant: %d %d %d %V\n",
 					cit->ci.type, cit->ci.size,
 					cit->ci.uncsize, cit->ci.score);
-				print("\thave: %d %d %d %V\n", 
-					ci->type, ci->size, 
+				print("\thave: %d %d %d %V\n",
+					ci->type, ci->size,
 					ci->uncsize, ci->score);
 			}
 			*ci = cit->ci;
@@ -1633,7 +1633,7 @@ Again:
 		smart = 0;
 		goto Again;
 	}
-	
+
 	assert(ci <= eci);
 	arena->diskstats.clumps = ci-bci;
 	eoffset = writeci(offset0, arena, bci, ci-bci);
@@ -1661,7 +1661,7 @@ Nocib:
 	arena->memstats = arena->diskstats;
 	if(sealing && fix){
 		uchar tbuf[MaxDiskBlock];
-		
+
 		sbdiskhash(&newsha, toffset);
 		memset(tbuf, 0, sizeof tbuf);
 		packarena(arena, tbuf);
@@ -1676,7 +1676,7 @@ dumparena(vlong offset, int anum, Arena *arena)
 	char buf[1000];
 	vlong o, e;
 	int fd, n;
-	
+
 	snprint(buf, sizeof buf, "%s.%d", dumpbase, anum);
 	if((fd = create(buf, OWRITE, 0666)) < 0){
 		fprint(2, "create %s: %r\n", buf);
@@ -1703,7 +1703,7 @@ checkarena(vlong offset, int anum)
 	ArenaHead head;
 	Info *fmt, *fmta;
 	int sz;
-	
+
 	print("# arena %d: offset %#llux\n", anum, offset);
 
 	if(offset >= partend){
@@ -1737,11 +1737,11 @@ checkarena(vlong offset, int anum)
 	p = pagein(offset, arena.blocksize);
 	if(memcmp(dbuf, p, arena.blocksize) != 0){
 		print("on-disk arena header incorrect\n");
-		showdiffs(dbuf, p, arena.blocksize, 
+		showdiffs(dbuf, p, arena.blocksize,
 			arena.version==ArenaVersion4 ? headinfo4 : headinfo5);
 	}
 	memmove(p, dbuf, arena.blocksize);
-	
+
 	memset(dbuf, 0, sizeof dbuf);
 	packarena(&arena, dbuf);
 	if(arena.diskstats.sealed)
@@ -1781,14 +1781,14 @@ checkarena(vlong offset, int anum)
 			print("\t   disk=%V\n", p+arena.blocksize-VtScoreSize);
 		}
 		if(fix && scorecmp(p+arena.blocksize-VtScoreSize, score) != 0){
-			print("%ssealing arena%s: %V\n", 
+			print("%ssealing arena%s: %V\n",
 				oarena.diskstats.sealed ? "re" : "",
-				scorecmp(oldscore, score) == 0 ? 
+				scorecmp(oldscore, score) == 0 ?
 					"" : " after changes", score);
 		}
 	}
 	memmove(p, dbuf, arena.blocksize);
-	
+
 	pageout();
 }
 
@@ -1800,7 +1800,7 @@ buildamap(void)
 	ArenaHead h;
 	AMapN *an;
 	AMap *m;
-	
+
 	an = vtmallocz(sizeof *an);
 	for(o=ap.arenabase; o<partend; o+=arenasize){
 		p = pagein(o, Block);
@@ -1812,7 +1812,7 @@ buildamap(void)
 			strcpy(m->name, h.name);
 		}
 	}
-	return an;	
+	return an;
 }
 
 void
@@ -1823,7 +1823,7 @@ checkmap(void)
 	int i, len;
 	AMapN *an;
 	Fmt fmt;
-	
+
 	an = buildamap();
 	fmtstrinit(&fmt);
 	fmtprint(&fmt, "%ud\n", an->n);
@@ -1837,7 +1837,7 @@ checkmap(void)
 			(vlong)len, (vlong)ap.tabsize);
 		len = ap.tabsize;
 	}
-	
+
 	if(ap.tabsize >= 4*M){	/* can't happen - max arenas is 2000 */
 		print("arena partition map *way* too long\n");
 		return;
@@ -1857,9 +1857,9 @@ void
 threadmain(int argc, char **argv)
 {
 	int mode;
-	
+
 	mode = OREAD;
-	readonly = 1;	
+	readonly = 1;
 	ARGBEGIN{
 	case 'U':
 		unseal = 1;
@@ -1887,22 +1887,22 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 1 && argc != 2)
 		usage();
 
 	file = argv[0];
-	
+
 	ventifmtinstall();
 	fmtinstall('z', zfmt);
 	fmtinstall('t', tfmt);
 	quotefmtinstall();
-	
+
 	part = initpart(file, mode|ODIRECT);
 	if(part == nil)
 		sysfatal("can't open %s: %r", file);
 	partend = part->size;
-	
+
 	if(isonearena()){
 		checkarena(0, -1);
 		threadexitsall(nil);
@@ -1911,4 +1911,3 @@ threadmain(int argc, char **argv)
 	checkmap();
 	threadexitsall(nil);
 }
-
blob - 76677871f4d4bffad8bf89afb6c2757fa39813a8
blob + db08b91a1aa98be082579af1ed439d4a9dccdff8
--- src/cmd/venti/srv/fmtbloom.c
+++ src/cmd/venti/srv/fmtbloom.c
@@ -19,7 +19,7 @@ threadmain(int argc, char *argv[])
 	vlong bits, size, size2;
 	int nhash;
 	vlong nblocks;
-	
+
 	ventifmtinstall();
 	statsinit();
 
@@ -62,7 +62,7 @@ threadmain(int argc, char *argv[])
 
 	if(size == 0)
 		size = part->size;
-	
+
 	if(size < 1024*1024)
 		sysfatal("bloom filter too small");
 
@@ -93,7 +93,7 @@ threadmain(int argc, char *argv[])
 		}
 
 		/*
-		 * optimal is to use ln 2 times as many hash functions as we have bits per blocks.  
+		 * optimal is to use ln 2 times as many hash functions as we have bits per blocks.
 		 */
 		bits = (8*size)/nblocks;
 		nhash = bits*7/10;
blob - db12c3d9a98fcf8efb4ee86cff891da6c95647fd
blob + f43363693e42bc5ac7e66e53f2b617e3fa28ccfc
--- src/cmd/venti/srv/graph.c
+++ src/cmd/venti/srv/graph.c
@@ -36,7 +36,7 @@ Memimage*
 allocrepl(ulong color)
 {
 	Memimage *m;
-	
+
 	m = allocmemimage(Rect(0,0,1,1), RGB24);
 	memfillcolor(m, color);
 	m->flags |= Frepl;
@@ -49,10 +49,10 @@ ginit(void)
 {
 	static int first = 1;
 	int i;
-	
+
 	if(!first)
 		return;
-		
+
 	first = 0;
 	memimageinit();
 #ifdef PLAN9PORT
@@ -90,7 +90,7 @@ drawlabel(Memimage *m, Point p, int n)
 {
 	char buf[30];
 	Point w;
-	
+
 	mklabel(buf, n);
 	w = memsubfontwidth(smallfont, buf);
 	memimagestring(m, Pt(p.x-5-w.x, p.y), memblack, ZP, smallfont, buf);
@@ -117,7 +117,7 @@ statgraph(Graph *g)
 	Statbin *b, bin[2000];	/* 32 kB, but whack is worse */
 
 	needstack(8192);	/* double check that bin didn't kill us */
-	
+
 	if(g->wid <= MinWidth)
 		g->wid = DefaultWidth;
 	if(g->ht <= MinHeight)
@@ -128,7 +128,7 @@ statgraph(Graph *g)
 		g->fill = ((uint)(uintptr)g->arg>>8)%nelem(lofill);
 	if(g->fill > nelem(lofill))
 		g->fill %= nelem(lofill);
-	
+
 	nbin = g->wid - (Left+Right);
 	binstats(g->fn, g->arg, g->t0, g->t1, bin, nbin);
 
@@ -168,7 +168,7 @@ statgraph(Graph *g)
 	}
 	r = Rect(Left, Top, g->wid-Right, g->ht-Bottom);
 	memfillcolor(m, DTransparent);
-	
+
 	/* x axis */
 	memimagedraw(m, Rect(r.min.x, r.max.y, r.max.x, r.max.y+1), black, ZP, memopaque, ZP, S);
 
@@ -176,7 +176,7 @@ statgraph(Graph *g)
 	drawlabel(m, r.min, max);
 	if(min != 0)
 		drawlabel(m, Pt(r.min.x, r.max.y-smallfont->height), min);
-	
+
 	/* actual data */
 	for(i=0; i<nbin; i++){
 		b = &bin[i];
blob - 8cf937d1b49ee6829f5e43041672bd1773322eda
blob + e477b815c3728a4c80568e8086c67b462daea6c3
--- src/cmd/venti/srv/hdisk.c
+++ src/cmd/venti/srv/hdisk.c
@@ -14,7 +14,7 @@ hdisk(HConnect *c)
 	char *disk, *type;
 	Part *p;
 	int ret;
-	
+
 	if(hsethtml(c) < 0)
 		return -1;
 
@@ -42,7 +42,7 @@ hdisk(HConnect *c)
 		return 0;
 	}
 	freepart(p);
-	return ret;	
+	return ret;
 }
 
 static int
@@ -51,7 +51,7 @@ disksummary(HConnect *c)
 	int i;
 	Index *ix;
 	Part *p;
-	
+
 	hprint(&c->hout, "<h1>venti disks</h1>\n");
 	hprint(&c->hout, "<pre>\n");
 	ix = mainindex;
@@ -83,7 +83,7 @@ readap(Part *p, ArenaPart *ap)
 {
 	uchar *blk;
 	char *table;
-	
+
 	blk = vtmalloc(8192);
 	if(readpart(p, PartBlank, blk, 8192) != 8192)
 		return nil;
@@ -108,7 +108,7 @@ xfindarena(char *table, char *name, vlong *start, vlon
 {
 	int i, nline;
 	char *p, *q, *f[4], line[256];
-	
+
 	nline = atoi(table);
 	p = strchr(table, '\n');
 	if(p)
@@ -212,7 +212,7 @@ diskarenapart(HConnect *c, char *disk, Part *p)
 		hprint(&c->hout, "%r\n");
 		goto out;
 	}
-	
+
 	hprint(&c->hout, "<pre>\n");
 	hprint(&c->hout, "version=%d blocksize=%d base=%d\n",
 		ap.version, ap.blocksize, ap.arenabase);
@@ -223,12 +223,12 @@ diskarenapart(HConnect *c, char *disk, Part *p)
 		diskarenatable(c, disk, table);
 		goto out;
 	}
-	
+
 	if(xfindarena(table, arenaname, &start, &end) < 0){
 		hprint(&c->hout, "no such arena %s\n", arenaname);
 		goto out;
 	}
-	
+
 	hprint(&c->hout, "<h2>arena %s</h2>\n", arenaname);
 	hprint(&c->hout, "<pre>start=%#llx end=%#llx<pre>\n", start, end);
 	if(end < start || end - start < HeadSize){
@@ -253,7 +253,7 @@ diskarenapart(HConnect *c, char *disk, Part *p)
 
 	hprint(&c->hout, "head:\n<pre>\n");
 	hprint(&c->hout, "version=%d name=%s blocksize=%d size=%#llx clumpmagic=%#ux\n",
-		head.version, head.name, head.blocksize, head.size, 
+		head.version, head.name, head.blocksize, head.size,
 		head.clumpmagic);
 	hprint(&c->hout, "</pre><br><br>\n");
 
@@ -281,7 +281,7 @@ diskarenapart(HConnect *c, char *disk, Part *p)
 	scorecp(arena.score, blk+head.blocksize - VtScoreSize);
 
 	vtfree(blk);
-	
+
 	hprint(&c->hout, "tail:\n<pre>\n");
 	hprint(&c->hout, "version=%d name=%s\n", arena.version, arena.name);
 	hprint(&c->hout, "ctime=%d %s\n", arena.ctime, fmttime(tbuf, arena.ctime));
@@ -389,10 +389,10 @@ diskarenatoc(HConnect *c, Arena *arena)
 		}
 		unpackclumpinfo(&ci, blk+(i%arena->clumpmax)*ClumpInfoSize);
 		if(i/arena->clumpmax == cib || i%arena->clumpmax == 0){
-			hprint(&c->hout, "%5d %6d %7d %V", 
+			hprint(&c->hout, "%5d %6d %7d %V",
 				ci.type, ci.size, ci.uncsize, ci.score);
 			if(coff >= 0)
-				hprint(&c->hout, " at <a href=\"%s&clump=%#llx&score=%V\">%#llx</a>", 
+				hprint(&c->hout, " at <a href=\"%s&clump=%#llx&score=%V\">%#llx</a>",
 					base, coff, ci.score, coff);
 			if(i/arena->clumpmax != cib)
 				hprint(&c->hout, "  <font size=-1><a href=\"%s&cib=%d\">more</a></font>", base, i/arena->clumpmax);
@@ -415,7 +415,7 @@ diskarenaclump(HConnect *c, Arena *arena, vlong off, c
 	uchar xscore[VtScoreSize], score[VtScoreSize];
 	Unwhack uw;
 	int n;
-	
+
 	if(scorestr){
 		if(vtparsescore(scorestr, nil, score) < 0){
 			hprint(&c->hout, "bad score %s: %r\n", scorestr);
@@ -436,7 +436,7 @@ diskarenaclump(HConnect *c, Arena *arena, vlong off, c
 		hprint(&c->hout, "bad offset %#llx\n", off);
 		return -1;
 	}
-	
+
 	off += arena->base;
 
 	blk = vtmalloc(ClumpSize + VtMaxLumpSize);
@@ -461,15 +461,15 @@ diskarenaclump(HConnect *c, Arena *arena, vlong off, c
 
 	hprint(&c->hout, "<pre>type=%d size=%d uncsize=%d score=%V\n", cl.info.type, cl.info.size, cl.info.uncsize, cl.info.score);
 	hprint(&c->hout, "encoding=%d creator=%d time=%d %s</pre>\n", cl.encoding, cl.creator, cl.time, fmttime(err, cl.time));
-	
+
 	if(cl.info.type == VtCorruptType)
 		hprint(&c->hout, "clump is marked corrupt<br>\n");
-	
+
 	if(cl.info.size >= VtMaxLumpSize){
 		hprint(&c->hout, "clump too big\n");
 		goto error;
 	}
-	
+
 	switch(cl.encoding){
 	case ClumpECompress:
 		blk2 = vtmalloc(VtMaxLumpSize);
@@ -493,7 +493,7 @@ diskarenaclump(HConnect *c, Arena *arena, vlong off, c
 		scoremem(xscore, blk+ClumpSize, cl.info.size);
 		break;
 	}
-	
+
 	hprint(&c->hout, "score=%V<br>\n", xscore);
 	if(scorestr && scorecmp(score, xscore) != 0)
 		hprint(&c->hout, "score does NOT match expected %V\n", score);
@@ -536,7 +536,7 @@ debugamap(HConnect *c)
 
 	amap = mainindex->amap;
 	for(i=0; i<mainindex->narenas; i++)
-		hprint(&c->hout, "%s %#llx %#llx\n", 
+		hprint(&c->hout, "%s %#llx %#llx\n",
 			amap[i].name, amap[i].start, amap[i].stop);
 }
 
@@ -559,23 +559,23 @@ debugread(HConnect *c, u8int *score)
 		hprint(&c->hout, "zero score\n");
 		return;
 	}
-	
+
 	hprint(&c->hout, "<h2>index search %V</h2><pre>\n", score);
 	if(icachelookup(score, -1, &ia) < 0)
 		hprint(&c->hout, "  icache: not found\n");
 	else
 		hprint(&c->hout, "  icache: addr=%#llx size=%d type=%d blocks=%d\n",
 			ia.addr, ia.size, ia.type, ia.blocks);
-	
+
 	if(loadientry(mainindex, score, -1, &ie) < 0)
 		hprint(&c->hout, "  idisk: not found\n");
 	else
 		hprint(&c->hout, "  idisk: addr=%#llx size=%d type=%d blocks=%d\n",
 			ie.ia.addr, ie.ia.size, ie.ia.type, ie.ia.blocks);
-	
+
 	hprint(&c->hout, "</pre><h2>lookup %V</h2>\n", score);
 	hprint(&c->hout, "<pre>\n");
-	
+
 	for(type=0; type < VtMaxType; type++){
 		hprint(&c->hout, "%V type %d:", score, type);
 		u = lookuplump(score, type);
@@ -584,14 +584,14 @@ debugread(HConnect *c, u8int *score)
 		else
 			hprint(&c->hout, " -cache");
 		putlump(u);
-		
+
 		if(lookupscore(score, type, &ia) < 0){
 			hprint(&c->hout, " -lookup\n");
 			continue;
 		}
 		hprint(&c->hout, "\n  lookupscore: addr=%#llx size=%d blocks=%d\n",
 			ia.addr, ia.size, ia.blocks);
-		
+
 		arena = amapitoa(mainindex, ia.addr, &aa);
 		if(arena == nil){
 			hprint(&c->hout, "  amapitoa failed: %r\n");
@@ -606,7 +606,7 @@ debugread(HConnect *c, u8int *score)
 			hprint(&c->hout, "  loadclump failed: %r\n");
 			continue;
 		}
-		
+
 		hprint(&c->hout, "  loadclump: uncsize=%d type=%d score=%V\n",
 			cl.info.uncsize, cl.info.type, sc);
 		if(ia.size != cl.info.uncsize || ia.type != cl.info.type || scorecmp(score, sc) != 0){
@@ -614,12 +614,12 @@ debugread(HConnect *c, u8int *score)
 			continue;
 		}
 	}
-	
+
 	if(hargstr(c, "brute", "")[0] == 'y'){
 		hprint(&c->hout, "</pre>\n");
 		hprint(&c->hout, "<h2>brute force arena search %V</h2>\n", score);
 		hprint(&c->hout, "<pre>\n");
-		
+
 		for(i=0; i<mainindex->narenas; i++){
 			arena = mainindex->arenas[i];
 			hprint(&c->hout, "%s...\n", arena->name);
@@ -637,10 +637,10 @@ static void
 debugmem(HConnect *c)
 {
 	Index *ix;
-	
+
 	ix = mainindex;
 	hprint(&c->hout, "<h2>memory</h2>\n");
-	
+
 	hprint(&c->hout, "<pre>\n");
 	hprint(&c->hout, "ix=%p\n", ix);
 	hprint(&c->hout, "\tarenas=%p\n", ix->arenas);
@@ -660,7 +660,7 @@ hdebug(HConnect *c)
 {
 	char *scorestr, *op;
 	u8int score[VtScoreSize];
-	
+
 	if(hsethtml(c) < 0)
 		return -1;
 	hprint(&c->hout, "<h1>venti debug</h1>\n");
@@ -670,7 +670,7 @@ hdebug(HConnect *c)
 		hprint(&c->hout, "no op\n");
 		return 0;
 	}
-	
+
 	if(strcmp(op, "amap") == 0){
 		debugamap(c);
 		return 0;
@@ -690,7 +690,7 @@ hdebug(HConnect *c)
 		debugread(c, score);
 		return 0;
 	}
-	
+
 	hprint(&c->hout, "unknown op %s", op);
 	return 0;
 }
blob - 42933920aa0f37e4d9e7835ae1b5acd99845327d
blob + 3da217cec571269b8f7e7e6776ade1a87592fc6a
--- src/cmd/venti/srv/hproc.c
+++ src/cmd/venti/srv/hproc.c
@@ -7,11 +7,10 @@ int
 hproc(HConnect *c)
 {
 	int r;
-	
+
 	if((r = hsettext(c)) < 0)
 		return r;
 	hprint(&c->hout, "/proc only implemented on Plan 9\n");
 	hflush(&c->hout);
 	return 0;
 }
-
blob - 83d80ca77868ea89ceb80135161a662c36aab1e8
blob + 05896ff4e33cfb6f70b301dcc2191d91e863afa4
--- src/cmd/venti/srv/httpd.c
+++ src/cmd/venti/srv/httpd.c
@@ -51,7 +51,7 @@ httpdinit(char *address, char *dir)
 	if(address == nil)
 		address = "tcp!*!http";
 	webroot = dir;
-	
+
 	httpdobj("/stats", estats);
 	httpdobj("/index", dindex);
 	httpdobj("/storage", sindex);
@@ -168,7 +168,7 @@ httpproc(void *v)
 		 */
 		if(hparsereq(c, 0) < 0)
 			break;
-		
+
 		for(i = 0; i < MaxObjs && objs[i].name[0]; i++){
 			n = strlen(objs[i].name);
 			if((objs[i].name[n-1] == '/' && strncmp(c->req.uri, objs[i].name, n) == 0)
@@ -196,7 +196,7 @@ char*
 hargstr(HConnect *c, char *name, char *def)
 {
 	HSPairs *p;
-	
+
 	for(p=c->req.searchpairs; p; p=p->next)
 		if(strcmp(p->s, name) == 0)
 			return p->t;
@@ -207,7 +207,7 @@ vlong
 hargint(HConnect *c, char *name, vlong def)
 {
 	char *a;
-	
+
 	if((a = hargstr(c, name, nil)) == nil)
 		return def;
 	return atoll(a);
@@ -282,7 +282,7 @@ herror(HConnect *c)
 {
 	int n;
 	Hio *hout;
-	
+
 	hout = &c->hout;
 	n = snprint(c->xferbuf, HBufSize, "<html><head><title>Error</title></head>\n<body><h1>Error</h1>\n<pre>%r</pre>\n</body></html>");
 	hprint(hout, "%s %s\r\n", hversion, "400 Bad Request");
@@ -301,7 +301,7 @@ herror(HConnect *c)
 
 	return hflush(hout);
 }
-	
+
 int
 hnotfound(HConnect *c)
 {
@@ -331,7 +331,7 @@ fromwebdir(HConnect *c)
 	char buf[4096], *p, *ext, *type;
 	int i, fd, n, defaulted;
 	Dir *d;
-	
+
 	if(webroot == nil || strstr(c->req.uri, ".."))
 		return hnotfound(c);
 	snprint(buf, sizeof buf-20, "%s/%s", webroot, c->req.uri+1);
@@ -430,7 +430,7 @@ xset(HConnect *c)
 		hflush(&c->hout);
 		return 0;
 	}
-	
+
 	old = *namedints[i].p;
 	*namedints[i].p = atoll(value);
 	hprint(&c->hout, "%s = %d (was %d)\n", name, *namedints[i].p, old);
@@ -496,7 +496,7 @@ estats(HConnect *c)
 		percent(stats.absorbedwrites, stats.dirtydblocks));
 
 	hprint(hout, "disk cache flushes=%,ld\n", stats.dcacheflushes);
-	hprint(hout, "disk cache flush writes=%,ld (%,ld per flush)\n", 
+	hprint(hout, "disk cache flush writes=%,ld (%,ld per flush)\n",
 		stats.dcacheflushwrites,
 		stats.dcacheflushwrites/(stats.dcacheflushes ? stats.dcacheflushes : 1));
 
@@ -821,7 +821,7 @@ diskbw(Stats *s)
 	ulong *n;
 
 	n = s->n;
-	return n[StatApartReadBytes]+n[StatApartWriteBytes]	
+	return n[StatApartReadBytes]+n[StatApartWriteBytes]
 		+ n[StatIsectReadBytes]+n[StatIsectWriteBytes]
 		+ n[StatSumReadBytes];
 }
@@ -882,7 +882,7 @@ static char* graphname[] =
 	"lcachesize",
 	"lcachestall",
 	"lcachelookuptime",
-	
+
 	"dcachehit",
 	"dcachemiss",
 	"dcachelookup",
@@ -931,7 +931,7 @@ static char* graphname[] =
 
 	"sumread",
 	"sumreadbyte",
-	
+
 	"cigload",
 	"cigloadtime",
 };
@@ -996,7 +996,7 @@ xgraph(HConnect *c)
 	g.ht = hargint(c, "ht", -1);
 	dotext = hargstr(c, "text", "")[0] != 0;
 	g.fill = hargint(c, "fill", -1);
-	
+
 	graph = hargstr(c, "graph", "raw");
 	if(strcmp(graph, "raw") == 0)
 		g.fn = rawgraph;
@@ -1135,14 +1135,14 @@ vtloghdump(Hio *h, VtLog *l)
 	int i;
 	VtLogChunk *c;
 	char *name;
-	
+
 	name = l ? l->name : "&lt;nil&gt;";
 
 	hprint(h, "<html><head>\n");
 	hprint(h, "<title>Venti Server Log: %s</title>\n", name);
 	hprint(h, "</head><body>\n");
 	hprint(h, "<b>Venti Server Log: %s</b>\n<p>\n", name);
-	
+
 	if(l){
 		c = l->w;
 		for(i=0; i<l->nchunk; i++){
@@ -1165,12 +1165,12 @@ vtloghlist(Hio *h)
 {
 	char **p;
 	int i, n;
-	
+
 	hprint(h, "<html><head>\n");
 	hprint(h, "<title>Venti Server Logs</title>\n");
 	hprint(h, "</head><body>\n");
 	hprint(h, "<b>Venti Server Logs</b>\n<p>\n");
-	
+
 	p = vtlognames(&n);
 	qsort(p, n, sizeof(p[0]), strpcmp);
 	for(i=0; i<n; i++)
blob - 3055b981d586ceb8cbb30e8cff8ae480da9473fc
blob + 3663345de5da03a3206c7c58a325c98bcab1f57b
--- src/cmd/venti/srv/icache.c
+++ src/cmd/venti/srv/icache.c
@@ -60,14 +60,14 @@ mkihash(int size1)
 	u32int size;
 	int bits;
 	IHash *ih;
-	
+
 	bits = 0;
 	size = 1;
 	while(size < size1){
 		bits++;
 		size <<= 1;
 	}
-	
+
 	ih = vtmallocz(sizeof(IHash)+size*sizeof(ih->table[0]));
 	ih->table = (IEntry**)(ih+1);
 	ih->bits = bits;
@@ -80,7 +80,7 @@ ihashlookup(IHash *ih, u8int score[VtScoreSize], int t
 {
 	u32int h;
 	IEntry *ie;
-	
+
 	h = hashbits(score, ih->bits);
 	for(ie=ih->table[h]; ie; ie=ie->nexthash)
 		if((type == -1 || type == ie->ia.type) && scorecmp(score, ie->score) == 0)
@@ -93,7 +93,7 @@ ihashdelete(IHash *ih, IEntry *ie, char *what)
 {
 	u32int h;
 	IEntry **l;
-	
+
 	h = hashbits(ie->score, ih->bits);
 	for(l=&ih->table[h]; *l; l=&(*l)->nexthash)
 		if(*l == ie){
@@ -107,7 +107,7 @@ static void
 ihashinsert(IHash *ih, IEntry *ie)
 {
 	u32int h;
-	
+
 	h = hashbits(ie->score, ih->bits);
 	ie->nexthash = ih->table[h];
 	ih->table[h] = ie;
@@ -203,7 +203,7 @@ scacheevict(void)
 {
 	ISum *s;
 	int i;
-	
+
 	for(i=icache.nsum-1; i>=0; i--){
 		s = icache.sum[i];
 		if(canqlock(&s->lock)){
@@ -281,7 +281,7 @@ scachemiss(u64int addr)
 		qunlock(&s->lock);
 		return nil;
 	}
-	
+
 	return s;	/* locked */
 }
 
@@ -294,7 +294,7 @@ initicache(u32int mem0)
 {
 	u32int mem;
 	int i, entries, scache;
-	
+
 	icache.full.l = &icache.lock;
 
 	mem = mem0;
@@ -312,7 +312,7 @@ fprint(2, "icache %,d bytes = %,d entries; %d scache\n
 	icache.clean.prev = icache.clean.next = &icache.clean;
 	icache.dirty.prev = icache.dirty.next = &icache.dirty;
 	icache.free.prev = icache.free.next = (IEntry*)&icache.free;
-	
+
 	icache.hash = mkihash(entries);
 	icache.nentries = entries;
 	setstat(StatIcacheSize, entries);
@@ -338,7 +338,7 @@ static IEntry*
 evictlru(void)
 {
 	IEntry *ie;
-	
+
 	ie = poplast(&icache.clean);
 	if(ie == nil)
 		return nil;
@@ -356,7 +356,7 @@ icacheinsert(u8int score[VtScoreSize], IAddr *ia, int 
 		while((ie = poplast(&icache.free)) == nil && (ie = evictlru()) == nil){
 			// Could safely return here if state == IEClean.
 			// But if state == IEDirty, have to wait to make
-			// sure we don't lose an index write.  
+			// sure we don't lose an index write.
 			// Let's wait all the time.
 			flushdcache();
 			kickicache();
@@ -444,7 +444,7 @@ insertscore(u8int score[VtScoreSize], IAddr *ia, int s
 		scacheload(toload);
 		qunlock(&toload->lock);
 	}
-	
+
 	if(icache.ndirty >= icache.maxdirty)
 		kickicache();
 
@@ -483,7 +483,7 @@ lookupscore(u8int score[VtScoreSize], int type, IAddr 
 	addstat2(StatIcacheRead, 1, StatIcacheReadTime, msec() - ms);
 	return ret;
 }
-	
+
 u32int
 hashbits(u8int *sc, int bits)
 {
@@ -550,7 +550,7 @@ void
 icacheclean(IEntry *ie)
 {
 	IEntry *next;
-	
+
 	trace(TraceProc, "icacheclean enter");
 	qlock(&icache.lock);
 	for(; ie; ie=next){
@@ -574,7 +574,7 @@ emptyicache(void)
 	int i;
 	IEntry *ie;
 	ISum *s;
-	
+
 	qlock(&icache.lock);
 	while((ie = evictlru()) != nil)
 		pushfirst(&icache.free, ie);
@@ -586,4 +586,3 @@ emptyicache(void)
 	}
 	qunlock(&icache.lock);
 }
-
blob - e1406ef157111b6021d560df53684add317c2587
blob + d2e5a81586a87f1a9b203aea297188c98e16078b
--- src/cmd/venti/srv/icachewrite.c
+++ src/cmd/venti/srv/icachewrite.c
@@ -81,7 +81,7 @@ nextchunk(Index *ix, ISect *is, IEntry **pie, u64int *
 	*pnbuf = nbuf;
 	return iefirst;
 }
-	
+
 static int
 icachewritesect(Index *ix, ISect *is, u8int *buf)
 {
@@ -192,7 +192,7 @@ skipit:
 			err = -1;
 			continue;
 		}
-		
+
 		addstat(StatIsectWriteBytes, nbuf);
 		addstat(StatIsectWrite, 1);
 		icacheclean(chunk);
@@ -264,7 +264,7 @@ icachewritecoord(void *v)
 				send(ix->sects[i]->writechan, 0);
 			if(ix->bloom)
 				send(ix->bloom->writechan, 0);
-		
+
 			err = 0;
 			for(i=0; i<ix->nsects; i++)
 				err |= recvul(ix->sects[i]->writedonechan);
@@ -355,4 +355,3 @@ iesort(IEntry *ie)
 	*l = nil;
 	return sorted;
 }
-
blob - 07bf81c8643ab754b9f88ad430933b1c686ddb07
blob + c3baa90599a000eab4ac7084a6ec6b9a01568ad0
--- src/cmd/venti/srv/index.c
+++ src/cmd/venti/srv/index.c
@@ -1,21 +1,21 @@
 /*
- * Index, mapping scores to log positions. 
+ * Index, mapping scores to log positions.
  *
  * The index is made up of some number of index sections, each of
- * which is typically stored on a different disk.  The blocks in all the 
- * index sections are logically numbered, with each index section 
+ * which is typically stored on a different disk.  The blocks in all the
+ * index sections are logically numbered, with each index section
  * responsible for a range of blocks.  Blocks are typically 8kB.
  *
  * The N index blocks are treated as a giant hash table.  The top 32 bits
  * of score are used as the key for a lookup.  Each index block holds
  * one hash bucket, which is responsible for ceil(2^32 / N) of the key space.
- * 
- * The index is sized so that a particular bucket is extraordinarily 
- * unlikely to overflow: assuming compressed data blocks are 4kB 
+ *
+ * The index is sized so that a particular bucket is extraordinarily
+ * unlikely to overflow: assuming compressed data blocks are 4kB
  * on disk, and assuming each block has a 40 byte index entry,
  * the index data will be 1% of the total data.  Since scores are essentially
  * random, all buckets should be about the same fullness.
- * A factor of 5 gives us a wide comfort boundary to account for 
+ * A factor of 5 gives us a wide comfort boundary to account for
  * random variation.  So the index disk space should be 5% of the arena disk space.
  */
 
@@ -500,7 +500,7 @@ initisect1(ISect *is)
 	v = is->part->size & ~(u64int)(is->blocksize - 1);
 	if(is->blockbase + (u64int)is->blocks * is->blocksize != v){
 		seterr(ECorrupt, "invalid blocks in index section %s", is->name);
-		/* ZZZ what to do? 
+		/* ZZZ what to do?
 		freeisect(is);
 		return nil;
 		*/
@@ -654,7 +654,7 @@ amapitoag(Index *ix, u64int a, u64int *gstart, u64int 
 {
 	u64int aa;
 	Arena *arena;
-	
+
 	arena = amapitoa(ix, a, &aa);
 	if(arena == nil)
 		return nil;
@@ -895,5 +895,3 @@ loadibucket(Index *ix, u8int *score, ISect **pis, u32i
 {
 	return loadibucket1(ix, score, pis, pbuck, ib);
 }
-
-
blob - cc0a26dc6fe290ae59604f07ea65d19b98f8d53a
blob + 3e66068a8472617a5bd56bb2d8f96c834d22fb10
--- src/cmd/venti/srv/lump.c
+++ src/cmd/venti/srv/lump.c
@@ -178,7 +178,7 @@ writeqlump(Lump *u, Packet *p, int creator, uint ms)
 		insertlump(u, p);
 	else
 		packetfree(p);
-	
+
 	if(syncwrites){
 		flushdcache();
 		flushicache();
blob - 93fed6d1af6e5afbc1c26cbb05d63910bf3da659
blob + 0fdc0102c960f0d3f61c60e6154508fc147fb5b3
--- src/cmd/venti/srv/lumpcache.c
+++ src/cmd/venti/srv/lumpcache.c
@@ -73,7 +73,7 @@ lookuplump(u8int *score, int type)
 
 	ms = 0;
 	trace(TraceLump, "lookuplump enter");
-	
+
 	h = hashbits(score, HashLog);
 
 	/*
@@ -426,4 +426,3 @@ checklumpcache(void)
 	if(lumpcache.nheap + nfree + refed != lumpcache.nblocks)
 		sysfatal("lc: missing blocks: %d %d %d %d", lumpcache.nheap, refed, nfree, lumpcache.nblocks);
 }
-
blob - 869eaeae0caadda9a8bbfe19be74b85bc7f204c0
blob + a312ad1785ec312d48a091a69d71668d5a16137b
--- src/cmd/venti/srv/lumpqueue.c
+++ src/cmd/venti/srv/lumpqueue.c
@@ -127,7 +127,7 @@ flushqueue(void)
 		qunlock(&q->lock);
 	}
 }
-	
+
 static void
 queueproc(void *vq)
 {
blob - 9a615b2c01266d12d1835eb722c40814760354f6
blob + 93e87a39394aa541f0f232f63302661767682fd0
--- src/cmd/venti/srv/mgr.c
+++ src/cmd/venti/srv/mgr.c
@@ -105,7 +105,7 @@ rdconf(char *file, Conf *conf)
 	char *s, *line, *flds[10];
 	int i, ok;
 	IFile f;
-	
+
 	if(readifile(&f, file) < 0)
 		return -1;
 	memset(conf, 0, sizeof *conf);
@@ -132,7 +132,7 @@ rdconf(char *file, Conf *conf)
 		}else if(i == 3 && strcmp(flds[1], "verify") == 0) {
 			if(conf->nverify%64 == 0)
 				conf->verify = vtrealloc(conf->verify, (conf->nverify+64)*sizeof(conf->verify[0]));
-			conf->verify[conf->nverify++] = vtstrdup(flds[2]);	
+			conf->verify[conf->nverify++] = vtstrdup(flds[2]);
 		}else if(i == 3 && strcmp(flds[1], "verifyfreq") == 0) {
 			conf->verifyfreq = atoi(flds[2]);
 		}else if(i == 3 && strcmp(flds[1], "httpaddr") == 0){
@@ -186,7 +186,7 @@ logtext(VtLog *l)
 	int i;
 	char *p;
 	VtLogChunk *c;
-	
+
 	p = logbuf;
 	c = l->w;
 	for(i=0; i<l->nchunk; i++) {
@@ -283,7 +283,7 @@ hsettext(HConnect *c)
 {
 	return hsettype(c, "text/plain; charset=utf-8");
 }
-	
+
 int
 hnotfound(HConnect *c)
 {
@@ -316,12 +316,12 @@ vtloghlist(Hio *h)
 {
 	char **p;
 	int i, n;
-	
+
 	hprint(h, "<html><head>\n");
 	hprint(h, "<title>Venti Server Logs</title>\n");
 	hprint(h, "</head><body>\n");
 	hprint(h, "<b>Venti Server Logs</b>\n<p>\n");
-	
+
 	p = vtlognames(&n);
 	qsort(p, n, sizeof(p[0]), strpcmp);
 	for(i=0; i<n; i++)
@@ -336,14 +336,14 @@ vtloghdump(Hio *h, VtLog *l)
 	int i;
 	VtLogChunk *c;
 	char *name;
-	
+
 	name = l ? l->name : "&lt;nil&gt;";
 
 	hprint(h, "<html><head>\n");
 	hprint(h, "<title>Venti Server Log: %s</title>\n", name);
 	hprint(h, "</head><body>\n");
 	hprint(h, "<b>Venti Server Log: %s</b>\n<p>\n", name);
-	
+
 	if(l){
 		c = l->w;
 		for(i=0; i<l->nchunk; i++){
@@ -360,7 +360,7 @@ char*
 hargstr(HConnect *c, char *name, char *def)
 {
 	HSPairs *p;
-	
+
 	for(p=c->req.searchpairs; p; p=p->next)
 		if(strcmp(p->s, name) == 0)
 			return p->t;
@@ -446,7 +446,7 @@ httpproc(void *v)
 		 */
 		if(hparsereq(c, 0) < 0)
 			break;
-		
+
 		for(i = 0; i < MaxObjs && objs[i].name[0]; i++){
 			n = strlen(objs[i].name);
 			if((objs[i].name[n-1] == '/' && strncmp(c->req.uri, objs[i].name, n) == 0)
@@ -508,7 +508,7 @@ fromwebdir(HConnect *c)
 	char buf[4096], *p, *ext, *type;
 	int i, fd, n, defaulted;
 	Dir *d;
-	
+
 	if(conf.webroot == nil || strstr(c->req.uri, ".."))
 		return hnotfound(c);
 	snprint(buf, sizeof buf-20, "%s/%s", conf.webroot, c->req.uri+1);
@@ -614,7 +614,7 @@ piper(void *v)
 	int fd;
 	char *p;
 	int ok;
-	
+
 	j = v;
 	fd = j->pipe;
 	l = j->newlog;
@@ -625,7 +625,7 @@ piper(void *v)
 	}
 	qlock(&loglk);
 	p = logtext(l);
-	ok = j->ok(p);	
+	ok = j->ok(p);
 	qunlock(&loglk);
 	j->newok = ok;
 	close(fd);
@@ -808,7 +808,7 @@ threadmain(int argc, char **argv)
 	int nofork;
 	char *prog;
 	Job *j;
-	
+
 	ventilogging = 1;
 	ventifmtinstall();
 #ifdef PLAN9PORT
@@ -893,8 +893,8 @@ void
 qp(Biobuf *b, char *p)
 {
 	int n, nspace;
-	
-	nspace = 0;	
+
+	nspace = 0;
 	n = 0;
 	for(; *p; p++) {
 		if(*p == '\n') {
@@ -934,7 +934,7 @@ smtpread(Biobuf *b, int code)
 {
 	char *p, *q;
 	int n;
-	
+
 	while((p = Brdstr(b, '\n', 1)) != nil) {
 		n = strtol(p, &q, 10);
 		if(n == 0 || q != p+3) {
@@ -957,13 +957,13 @@ smtpread(Biobuf *b, int code)
 	return -1;
 }
 
-		
+
 void
 sendmail(char *content, char *subject, char *msg)
 {
 	int fd;
 	Biobuf *bin, *bout;
-	
+
 	if((fd = dial(conf.smtp, 0, 0, 0)) < 0) {
 		vtlogprint(errlog, "dial %s: %r\n", conf.smtp);
 		return;
@@ -979,7 +979,7 @@ sendmail(char *content, char *subject, char *msg)
 		Bterm(bout);
 		return;
 	}
-	
+
 	Bprint(bout, "HELO venti-mgr\n");
 	Bflush(bout);
 	if(smtpread(bin, 250) < 0)
@@ -994,12 +994,12 @@ sendmail(char *content, char *subject, char *msg)
 	Bflush(bout);
 	if(smtpread(bin, 250) < 0)
 		goto error;
-	
+
 	Bprint(bout, "DATA\n");
 	Bflush(bout);
 	if(smtpread(bin, 354) < 0)
 		goto error;
-	
+
 	Bprint(bout, "From: \"venti mgr\" <%s>\n", conf.mailfrom);
 	Bprint(bout, "To: <%s>\n", conf.mailto);
 	Bprint(bout, "Subject: %s\n", subject);
@@ -1013,7 +1013,7 @@ sendmail(char *content, char *subject, char *msg)
 	Bflush(bout);
 	if(smtpread(bin, 250) < 0)
 		goto error;
-	
+
 	Bprint(bout, "QUIT\n");
 	Bflush(bout);
 	Bterm(bin);
blob - c0d02e65dfc1253d8c4cb9fd02abc59e80060853
blob + adca4a784b9b440089e154416d7c74c41065aa71
--- src/cmd/venti/srv/mirrorarenas.c
+++ src/cmd/venti/srv/mirrorarenas.c
@@ -1,5 +1,5 @@
 /*
- * Mirror one arena partition onto another.  
+ * Mirror one arena partition onto another.
  * Be careful to copy only new data.
  */
 
@@ -41,7 +41,7 @@ void
 tag(int indx, char *name, char *fmt, ...)
 {
 	va_list arg;
-	
+
 	if(tagged){
 		free(tagged);
 		tagged = nil;
@@ -53,7 +53,7 @@ tag(int indx, char *name, char *fmt, ...)
 	va_end(arg);
 }
 
-enum 
+enum
 {
 	Sealed = 1,
 	Mirrored = 2,
@@ -99,7 +99,7 @@ setstatus(int bits)
 	if(bits < 0) {
 		startindx = -1;
 		return;
-	}	
+	}
 }
 
 void
@@ -132,7 +132,7 @@ ereadpart(Part *p, u64int offset, u8int *buf, u32int c
 	}
 	return 0;
 }
-		
+
 int
 ewritepart(Part *p, u64int offset, u8int *buf, u32int count)
 {
@@ -153,7 +153,7 @@ static void
 writeproc(void *v)
 {
 	Write *w;
-	
+
 	USED(v);
 	while((w = recvp(writechan)) != nil){
 		if(w == &wsync)
@@ -175,7 +175,7 @@ copy(uvlong start, uvlong end, char *what, DigestState
 	static uchar *tmp[2];
 	uchar *p;
 	Write w[2];
-	
+
 	assert(start <= end);
 	assert(astart <= start && start < aend);
 	assert(astart <= end && end <= aend);
@@ -240,7 +240,7 @@ copy1(uvlong start, uvlong end, char *what, DigestStat
 	int n;
 	uvlong o;
 	static uchar tmp[1024*1024];
-	
+
 	assert(start <= end);
 	assert(astart <= start && start < aend);
 	assert(astart <= end && end <= aend);
@@ -310,16 +310,16 @@ mirror(int indx, Arena *sa, Arena *da)
 	ArenaHead h;
 	DigestState xds, *ds;
 	vlong shaoff, base;
-	
+
 	base = sa->base;
 	blocksize = sa->blocksize;
 	end = sa->base + sa->size;
-	
+
 	astart = base - blocksize;
 	aend = end + blocksize;
 
 	tag(indx, sa->name, "%T %s (%,llud-%,llud)\n", sa->name, astart, aend);
-	
+
 	if(force){
 		copy(astart, aend, "all", nil);
 		return;
@@ -357,7 +357,7 @@ mirror(int indx, Arena *sa, Arena *da)
 		if(ewritepart(dst, end, buf, blocksize) < 0)
 			return;
 	}
-	
+
 	memset(&h, 0, sizeof h);
 	h.version = da->version;
 	strcpy(h.name, da->name);
@@ -379,7 +379,7 @@ mirror(int indx, Arena *sa, Arena *da)
 		sha1(buf, blocksize, nil, ds);
 		shaoff = base;
 	}
-	
+
 	if(sa->diskstats.used != da->diskstats.used){
 		di = base+rdown(da->diskstats.used, blocksize);
 		si = base+rup(sa->diskstats.used, blocksize);
@@ -389,14 +389,14 @@ mirror(int indx, Arena *sa, Arena *da)
 			return;
 		shaoff = si;
 	}
-	
+
 	clumpmax = sa->clumpmax;
 	di = end - da->diskstats.clumps/clumpmax * blocksize;
 	si = end - (sa->diskstats.clumps+clumpmax-1)/clumpmax * blocksize;
 
 	if(sa->diskstats.sealed){
 		/*
-		 * might be a small hole between the end of the 
+		 * might be a small hole between the end of the
 		 * data and the beginning of the directory.
 		 */
 		v = base+rup(sa->diskstats.used, blocksize);
@@ -419,7 +419,7 @@ mirror(int indx, Arena *sa, Arena *da)
 	da->wtime = sa->wtime;
 	da->diskstats = sa->diskstats;
 	da->diskstats.sealed = 0;
-	
+
 	/*
 	 * Repack the arena tail information
 	 * and save it for next time...
@@ -525,7 +525,7 @@ mirrormany(ArenaPart *sp, ArenaPart *dp, char *range)
 			mirror(i, sa, da);
 		}
 		setstatus(-1);
-	}	
+	}
 }
 
 
@@ -536,7 +536,7 @@ threadmain(int argc, char **argv)
 	Arena *sa, *da;
 	ArenaPart *s, *d;
 	char *ranges;
-	
+
 	ventifmtinstall();
 
 	ARGBEGIN{
@@ -552,7 +552,7 @@ threadmain(int argc, char **argv)
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 2 && argc != 3)
 		usage();
 	ranges = nil;
@@ -571,7 +571,7 @@ threadmain(int argc, char **argv)
 		sysfatal("loadarenapart %s: %r", argv[1]);
 	for(i=0; i<d->narenas; i++)
 		delarena(d->arenas[i]);
-	
+
 	/*
 	 * The arena geometries must match or all bets are off.
 	 */
@@ -589,7 +589,7 @@ threadmain(int argc, char **argv)
 		if(strcmp(sa->name, da->name) != 0)
 			sysfatal("arena %d: name mismatch: %s vs %s", i, sa->name, da->name);
 	}
-	
+
 	/*
 	 * Mirror one arena at a time.
 	 */
blob - ae0448149a23cc12dfb6d2678993081a91051ba5
blob + c1fb929fd70bc0865f813f95c2009b3c7225e127
--- src/cmd/venti/srv/part.c
+++ src/cmd/venti/srv/part.c
@@ -56,7 +56,7 @@ strtoullsuf(char *p, char **pp, int rad, u64int *u)
 	*u = v;
 	return 0;
 }
-	
+
 static int
 parsepart(char *name, char **file, char **subpart, u64int *lo, u64int *hi)
 {
@@ -221,11 +221,11 @@ partblocksize(Part *part, u32int blocksize)
  * Most Unix systems require that when accessing a block device directly,
  * the buffer, offset, and count are all multiples of the device block size,
  * making this a lot more complicated than it otherwise would be.
- * 
+ *
  * Most of our callers will make things easy on us, but for some callers it's best
  * if we just do the work here, with only one place to get it right (hopefully).
- * 
- * If everything is aligned properly, prwb will try to do big transfers in the main 
+ *
+ * If everything is aligned properly, prwb will try to do big transfers in the main
  * body of the loop: up to MaxIo bytes at a time.  If everything isn't aligned properly,
  * we work one block at a time.
  */
@@ -412,7 +412,7 @@ rwpart(Part *part, int isread, u64int offset, u8int *b
 	int n, try;
 	u32int blocksize;
 
-	trace(TraceDisk, "%s %s %ud at 0x%llx", 
+	trace(TraceDisk, "%s %s %ud at 0x%llx",
 		isread ? "read" : "write", part->name, count, offset);
 	if(offset >= part->size || offset+count > part->size){
 		seterr(EStrange, "out of bounds %s offset 0x%llux count %ud to partition %s size 0x%llux",
@@ -491,7 +491,7 @@ readfile(char *name)
 
 /*
  * Search for the Plan 9 partition with the given name.
- * This lets you write things like /dev/ad4:arenas 
+ * This lets you write things like /dev/ad4:arenas
  * if you move a disk from a Plan 9 system to a FreeBSD system.
  *
  * God I hope I never write this code again.
@@ -566,7 +566,7 @@ findsubpart(Part *part, char *name)
 	/* See if this is a Plan 9 partition. */
 	if(tryplan9part(part, name) >= 0)
 		return 0;
-	
+
 	/* Otherwise try for an MBR and then narrow to Plan 9 partition. */
 	if(readpart(part, 0, buf, 512) != 512)
 		return -1;
@@ -587,8 +587,3 @@ findsubpart(Part *part, char *name)
 	}
 	return -1;
 }
-
-
-
-
-
blob - 8805ada42f0c78d2abd7ad85436b04431d865739
blob + 85901a92a210adbd9874ac918472510fde07f4fa
--- src/cmd/venti/srv/png.c
+++ src/cmd/venti/srv/png.c
@@ -99,7 +99,7 @@ zread(void *va, void *buf, int n)
 					b[2] = (b[2]*255)/a;
 				}
 			}
-		}else	
+		}else
 			b += pixwid*pixels;
 
 		z->x += pixels;
@@ -148,7 +148,7 @@ memRGBA(Memimage *i)
 	Memimage *ni;
 	char buf[32];
 	ulong dst;
-	
+
 	/*
 	 * [A]BGR because we want R,G,B,[A] in big-endian order.  Sigh.
 	 */
@@ -157,7 +157,7 @@ memRGBA(Memimage *i)
 		dst = ABGR32;
 	else
 		dst = BGR24;
-		
+
 	if(i->chan == dst)
 		return i;
 
@@ -194,7 +194,7 @@ writepng(Hio *io, Memimage *m)
 		return -1;
 
 	hwrite(io, PNGmagic, sizeof PNGmagic);
-	
+
 	/* IHDR chunk */
 	h = buf;
 	put4(h, Dx(m->r)); h += 4;
blob - 9d7cd20e4910e8bdce7853dcf3c7f27eeea5f0b5
blob + 42be56632d0bdea4011b4f3fa3bdb608e6711f83
--- src/cmd/venti/srv/rdarena.c
+++ src/cmd/venti/srv/rdarena.c
@@ -33,7 +33,7 @@ rdarena(Arena *arena)
 		if(a + bs > e)
 			bs = arena->blocksize;
 		if(readpart(arena->part, a, b->data, bs) < 0)
-			fprint(2, "can't copy %s, read at %lld failed: %r\n", arena->name, a);	
+			fprint(2, "can't copy %s, read at %lld failed: %r\n", arena->name, a);
 		if(write(1, b->data, bs) != bs)
 			sysfatal("can't copy %s, write at %lld failed: %r", arena->name, a);
 	}
blob - a822a9878c46c7ec96cbe59081dd8ef17a824ffb
blob + ddfef1410cd2c08af8fdb1fcf6ac4d85a7146adf
--- src/cmd/venti/srv/readifile.c
+++ src/cmd/venti/srv/readifile.c
@@ -18,10 +18,10 @@ threadmain(int argc, char *argv[])
 	default:
 		usage();
 	}ARGEND
-	
+
 	if(argc != 1)
 		usage();
-	
+
 	if(readifile(&ifile, argv[0]) < 0)
 		sysfatal("readifile %s: %r", argv[0]);
 	write(1, ifile.b->data, ifile.b->len);
blob - f7353122e092abdc715b26cf6da5bda3c9349326
blob + 41a53ce106cc830dff6dd8579fa4709f5c16d2ce
--- src/cmd/venti/srv/reseal.c
+++ src/cmd/venti/srv/reseal.c
@@ -97,7 +97,7 @@ verify(Arena *arena, void *data, uchar *newscore)
 			bs = e - n;
 		sha1(data, bs, nil, &ds);
 	}
-	
+
 	/* last block */
 	if(preadblock(data, arena->blocksize, o + e) < 0){
 		werrstr("read: %r");
@@ -113,7 +113,7 @@ verify(Arena *arena, void *data, uchar *newscore)
 		}
 		fprint(2, "warning: score mismatch %V != %V\n", score, arena->score);
 	}
-	
+
 	/* prepare new last block */
 	memset(data, 0, arena->blocksize);
 	packarena(arena, data);
@@ -158,17 +158,17 @@ resealarena(char *name, vlong len)
 
 	if(loadheader(name, &head, &arena, off) < 0)
 		return;
-	
+
 	if(!arena.diskstats.sealed){
 		fprint(2, "%s: not sealed\n", name);
 		return;
 	}
-	
+
 	if(verify(&arena, data, newscore) < 0){
 		fprint(2, "%s: failed to verify before reseal: %r\n", name);
 		return;
 	}
-	
+
 	if(pwriteblock(data, arena.blocksize, arena.base + arena.size) < 0){
 		fprint(2, "%s: writing new tail: %r\n", name);
 		return;
@@ -188,7 +188,7 @@ static int
 shouldcheck(char *name, char **s, int n)
 {
 	int i;
-	
+
 	if(n == 0)
 		return 1;
 
@@ -205,7 +205,7 @@ char *
 readap(ArenaPart *ap)
 {
 	char *table;
-	
+
 	if(preadblock(data, 8192, PartBlank) < 0)
 		sysfatal("read arena part header: %r");
 	if(unpackarenapart(ap, data) < 0)
@@ -229,7 +229,7 @@ threadmain(int argc, char *argv[])
 	vlong start, stop;
 	ArenaPart ap;
 	Part *part;
-	
+
 	ventifmtinstall();
 	blocksize = MaxIoSize;
 	ARGBEGIN{
blob - bbf4a478a1276fc07c80b6c98f611cc74ded5a36
blob + 5e01b0bafe2629d43fd94947e0289de7efa1687e
--- src/cmd/venti/srv/round.c
+++ src/cmd/venti/srv/round.c
@@ -99,4 +99,3 @@ delaykickroundproc(void *v)
 		trace(TraceProc, "finishround 0x%ux", (uint)n);
 	}
 }
-
blob - b8b8e876ca784ed8d5e70fe79d77eacf6e30dc58
blob + e65b99883f4795a084e2dda6281987465410be4e
--- src/cmd/venti/srv/sortientry.c
+++ src/cmd/venti/srv/sortientry.c
@@ -262,7 +262,7 @@ sortiebucks(IEBucks *ib)
 		if(n == TWID32)
 			return TWID64;
 		if(n != ib->bucks[i].total/IEntrySize)
-			fprint(2, "bucket %d changed count %d => %d\n", 
+			fprint(2, "bucket %d changed count %d => %d\n",
 				i, (int)(ib->bucks[i].total/IEntrySize), n);
 		tot += n;
 	}
blob - bb944760b4e47acd3497bac1c65a6694ecafd600
blob + e2f077be5965641be9a9b1bc24d03cdc9de08e7d
--- src/cmd/venti/srv/stats.c
+++ src/cmd/venti/srv/stats.c
@@ -17,7 +17,7 @@ Statdesc statdesc[NStat] =
 	{ "rpc read cached time", },
 	{ "rpc read uncached", },
 	{ "rpc read uncached time "},
-	
+
 	{ "rpc writes", },
 	{ "rpc writes new", },
 	{ "rpc writes old", },
@@ -83,7 +83,7 @@ Statdesc statdesc[NStat] =
 
 	{ "sum reads", },
 	{ "sum read bytes", },
-	
+
 	{ "cig loads" },
 	{ "cig load time" },
 };
@@ -158,9 +158,9 @@ binstats(long (*fn)(Stats *s0, Stats *s1, void *arg), 
 	int i, j, lo, hi, m;
 	vlong tot;
 	Statbin *b;
-	
+
 	t = stats.now;
-	
+
 	/* negative times mean relative to now. */
 	if(t0 <= 0)
 		t0 += t;
@@ -170,7 +170,7 @@ binstats(long (*fn)(Stats *s0, Stats *s1, void *arg), 
 	if(t1 <= t0)
 		t0 = t1 - 60*10;
 	if(0) fprint(2, "stats %ld-%ld\n", t0, t1);
-	
+
 	/* binary search to find t0-1 or close */
 	lo = stattime;
 	hi = stattime+nstathist;
@@ -208,5 +208,5 @@ binstats(long (*fn)(Stats *s0, Stats *s1, void *arg), 
 			b->avg = tot / b->nsamp;
 		if(b->nsamp==0 && i>0)
 			*b = bin[i-1];
-	}	
+	}
 }
blob - be3a2ea064f61a84d45b3acdce4c854b273c4934
blob + 9928ca03fcfbad6371ca8ec937a8670749c2cf30
--- src/cmd/venti/srv/syncindex0.c
+++ src/cmd/venti/srv/syncindex0.c
@@ -11,10 +11,10 @@ syncarenaindex(Arena *arena, u64int a0)
 	ClumpInfo ci;
 	IAddr ia;
 	AState as;
-	
+
 	if(arena->diskstats.clumps == arena->memstats.clumps)
 		return 0;
-	
+
 	memset(&as, 0, sizeof as);
 	as.arena = arena;
 	as.stats = arena->diskstats;
@@ -68,10 +68,10 @@ syncindex(Index *ix)
 			continue;
 		}
 		flushdcache();
-		
+
 		if(arena->memstats.clumps == arena->diskstats.clumps)
 			continue;
-		
+
 		fprint(2, "%T %s: indexing %d clumps...\n",
 			arena->name,
 			arena->memstats.clumps - arena->diskstats.clumps);
blob - 2a3cc66944878a457790942e33b176aa9af24330
blob + 1725537a2bc1838c8d43bd788088f035a596e297
--- src/cmd/venti/srv/venti.c
+++ src/cmd/venti/srv/venti.c
@@ -159,7 +159,7 @@ threadmain(int argc, char *argv[])
 	/*
 	 * block cache: need a block for every arena and every process
 	 */
-	minbcmem = maxblocksize * 
+	minbcmem = maxblocksize *
 		(mainindex->narenas + mainindex->nsects*4 + 16);
 	if(bcmem < minbcmem)
 		bcmem = minbcmem;
blob - f53d17f2c97af45fad53b415b9b9e4758a6aae5a
blob + 47340dcf62ab559d1d2645f8201aaa632d8880b5
--- src/cmd/venti/srv/verifyarena.c
+++ src/cmd/venti/srv/verifyarena.c
@@ -127,12 +127,12 @@ verifyarena(char *name, vlong len)
 	scorecp(arena.score, &data[arena.blocksize - VtScoreSize]);
 
 	if(namecmp(arena.name, head.name) != 0){
-		fprint(2, "%T %s: wrong name in trailer: %s vs. %s\n", 
+		fprint(2, "%T %s: wrong name in trailer: %s vs. %s\n",
 			name, head.name, arena.name);
 		return;
 	}
 	if(arena.version != head.version){
-		fprint(2, "%T %s: wrong version in trailer: %d vs. %d\n", 
+		fprint(2, "%T %s: wrong version in trailer: %d vs. %d\n",
 			name, head.version, arena.version);
 		return;
 	}
@@ -160,7 +160,7 @@ static int
 shouldcheck(char *name, char **s, int n)
 {
 	int i;
-	
+
 	if(n == 0)
 		return 1;
 
@@ -209,7 +209,7 @@ threadmain(int argc, char *argv[])
 		verifyarena("<stdin>", 0);
 		threadexitsall(nil);
 	}
-	
+
 	if((part = initpart(argv[0], OREAD)) == nil)
 		sysfatal("open partition %s: %r", argv[0]);
 	fd = part->fd;
@@ -228,7 +228,7 @@ threadmain(int argc, char *argv[])
 	if(preadblock((uchar*)table, ap.tabsize, ap.tabbase) < 0)
 		sysfatal("reading arena part directory: %r");
 	table[ap.tabsize] = 0;
-	
+
 	nline = atoi(table);
 	p = strchr(table, '\n');
 	if(p)
blob - 1e274ca7943048ef996a91e05861239786de7b9d
blob + df8f7fd89bb5e6afe7b3350288c09dfc49c9eaa0
--- src/cmd/venti/srv/wrarena.c
+++ src/cmd/venti/srv/wrarena.c
@@ -45,7 +45,7 @@ vtsendthread(void *v)
 	}
 	/*
 	 * All the send threads try to exit right when
-	 * threadmain is calling threadexitsall.  
+	 * threadmain is calling threadexitsall.
 	 * Either libthread or the Linux NPTL pthreads library
 	 * can't handle this condition (I suspect NPTL but have
 	 * not confirmed this) and we get a seg fault in exit.
blob - e91afa0547fafcc06bbaae1813f028a753944d73
blob + 9538d7782d9ca501f6ee2898c3fc6e6172487095
--- src/cmd/venti/srv/xml.c
+++ src/cmd/venti/srv/xml.c
@@ -65,4 +65,3 @@ void xmlamap(Hio *hout, AMap *s, char *tag, int indent
 	xmlu64int(hout, s->stop, "stop");
 	hprint(hout, "/>\n");
 }
-
blob - afff0801034208de33871d0b407c0f9225cb964c
blob + 80b240647114d26d1e1fb2e8633b0bc394dcd627
--- src/cmd/venti/srv/zblock.c
+++ src/cmd/venti/srv/zblock.c
@@ -93,4 +93,3 @@ zblock2packet(ZBlock *zb, u32int size)
 	packetappend(p, zb->data, size);
 	return p;
 }
-
blob - 9d817a72ebdb9c79e8c4cc0a6ba49e654aeb313d
blob + 965f19ed81f745dfa1f00787976da6dfec1943b1
--- src/cmd/venti/sync.c
+++ src/cmd/venti/sync.c
@@ -20,7 +20,7 @@ threadmain(int argc, char *argv[])
 
 	fmtinstall('V', vtscorefmt);
 	fmtinstall('F', vtfcallfmt);
-	
+
 	ARGBEGIN{
 	case 'h':
 		host = EARGF(usage());
blob - 2111712610830b5aadc8b3f964361ee2294cf791
blob + 3aff69ddca0fd145e5d77de4b7237d1f62960dba
--- src/cmd/venti/writefile.c
+++ src/cmd/venti/writefile.c
@@ -85,13 +85,13 @@ threadmain(int argc, char *argv[])
 	if(vtfilegetentry(f, &e) < 0)
 		sysfatal("vtfilegetentry: %r");
 	vtfileunlock(f);
-	
+
 	// write directory entry
 	memset(&root, 0, sizeof root);
 	vtentrypack(&e, buf, 0);
 	if(vtwrite(z, root.score, VtDirType, buf, VtEntrySize) < 0)
 		sysfatal("vtwrite dir: %r");
-	
+
 	// write root
 	strcpy(root.name, "data");
 	strcpy(root.type, "file");
@@ -99,8 +99,7 @@ threadmain(int argc, char *argv[])
 	vtrootpack(&root, buf);
 	if(vtwrite(z, score, VtRootType, buf, VtRootSize) < 0)
 		sysfatal("vtwrite root: %r");
-	
+
 	print("file:%V\n", score);
 	threadexitsall(0);
 }
-
blob - ce6fafeac782fdff559963b14e6d2c9a27906135
blob + 2ff1d53f190876b4ca801e93529093df11a8e2f6
--- src/cmd/zerotrunc.c
+++ src/cmd/zerotrunc.c
@@ -23,4 +23,3 @@ main(void)
 	}
 	exits(0);
 }
-
blob - b49cd4df1877bd0addd9eeb7517c8fa06034151c
blob + 0fb3410e944f5aaf20a45f03f8a4e464202e2968
--- src/lib9/_p9dir.c
+++ src/lib9/_p9dir.c
@@ -34,7 +34,7 @@ static vlong
 disksize(int fd, struct stat *st)
 {
 	off_t mediasize;
-	
+
 	if(ioctl(fd, DIOCGMEDIASIZE, &mediasize) >= 0)
 		return mediasize;
 	return 0;
@@ -155,7 +155,7 @@ _p9dir(struct stat *lst, struct stat *st, char *name, 
 	sz += strlen(s)+1;
 	if(d){
 		if(*str+strlen(s)+1 > estr)
-			d->uid = "oops";	
+			d->uid = "oops";
 		else{
 			strcpy(*str, s);
 			d->uid = *str;
@@ -178,7 +178,7 @@ _p9dir(struct stat *lst, struct stat *st, char *name, 
 	sz += strlen(s)+1;
 	if(d){
 		if(*str + strlen(s)+1 > estr)
-			d->gid = "oops";	
+			d->gid = "oops";
 		else{
 			strcpy(*str, s);
 			d->gid = *str;
@@ -240,4 +240,3 @@ _p9dir(struct stat *lst, struct stat *st, char *name, 
 
 	return sz;
 }
-
blob - 84cd65caedb79829a0d3b445b7be553761f47184
blob + 74df43c588a5c4cafc14787c33acc94709c23d3f
--- src/lib9/_p9translate.c
+++ src/lib9/_p9translate.c
@@ -3,7 +3,7 @@
 
 /*
  * I don't want too many of these,
- * but the ones we have are just too useful. 
+ * but the ones we have are just too useful.
  */
 static struct {
 	char *old;
blob - cbf5b07358ab72179bbbca1e663f162f81f7504b
blob + 1587988e5702b5bafd0d195cb0937a3ee14d1dd9
--- src/lib9/announce.c
+++ src/lib9/announce.c
@@ -153,4 +153,3 @@ p9accept(int cfd, char *dir)
 	/* need to dup because the listen fd will be closed */
 	return dup(fd);
 }
-
blob - 66ecb4efffd5c6a79e215559afc59458cc355836
blob + c0f7251dd287598ee5fcd623b4bd5c3fd8fb89ae
--- src/lib9/atoi.c
+++ src/lib9/atoi.c
@@ -6,4 +6,3 @@ atoi(char *s)
 {
 	return strtol(s, 0, 0);
 }
-
blob - d67138342bfa51ee350cf126365917fefb0ef689
blob + 6ead3004c161e59806f8c316e0bfd75c5a5fd7d6
--- src/lib9/atol.c
+++ src/lib9/atol.c
@@ -6,4 +6,3 @@ atol(char *s)
 {
 	return strtol(s, 0, 0);
 }
-
blob - 6c345df6632f1dc7349898df644b7c4b07a73669
blob + d4ce0a94cab0c9a6718c86c277644b093ed78452
--- src/lib9/atoll.c
+++ src/lib9/atoll.c
@@ -6,4 +6,3 @@ atoll(char *s)
 {
 	return strtoll(s, 0, 0);
 }
-
blob - e96055f27d9e3e22ebdbafdeb6b30936c342db54
blob + 8b96865ca4b7caccfe576d822ab0a89a41b718d2
--- src/lib9/await.c
+++ src/lib9/await.c
@@ -55,7 +55,7 @@ static struct {
 	SIGUSR2,		"sys: usr2",
 	SIGPIPE,		"sys: write on closed pipe",
 };
-	
+
 char*
 _p9sigstr(int sig, char *tmp)
 {
@@ -134,4 +134,3 @@ awaitfor(int pid, char *str, int n)
 {
 	return _await(pid, str, n, 0);
 }
-
blob - 30c0d496145a15003b4ba6db8e002c67b4b4b7d5
blob + e1ef00c54f97302bff7d0c9226d7370bcd204209
--- src/lib9/convD2M.c
+++ src/lib9/convD2M.c
@@ -12,10 +12,10 @@ sizeD2M(Dir *d)
 	sv[1] = d->uid;
 	sv[2] = d->gid;
 	sv[3] = d->muid;
-	
+
 	fixlen = STATFIXLEN;
 	nstr = 4;
-	
+
 	ns = 0;
 	for(i = 0; i < nstr; i++)
 		if(sv[i])
@@ -44,7 +44,7 @@ convD2M(Dir *d, uchar *buf, uint nbuf)
 
 	fixlen = STATFIXLEN;
 	nstr = 4;
-	
+
 	ns = 0;
 	for(i = 0; i < nstr; i++){
 		if(sv[i])
@@ -93,7 +93,7 @@ convD2M(Dir *d, uchar *buf, uint nbuf)
 			memmove(p, sv[i], ns);
 		p += ns;
 	}
-	
+
 	if(ss != p - buf)
 		return 0;
 
blob - 504110b2ded3912946f8a22870ec14a5cda01d73
blob + 410fa603727c7e78d1c4d2bd9642907edb48d16c
--- src/lib9/convM2D.c
+++ src/lib9/convM2D.c
@@ -38,7 +38,7 @@ convM2D(uchar *buf, uint nbuf, Dir *d, char *strs)
 	int i, ns, nstr;
 
 	if(nbuf < STATFIXLEN)
-		return 0; 
+		return 0;
 
 	p = buf;
 	ebuf = buf + nbuf;
@@ -93,6 +93,6 @@ convM2D(uchar *buf, uint nbuf, Dir *d, char *strs)
 		d->muid = nullstring;
 		d->ext = nullstring;
 	}
-	
+
 	return p - buf;
 }
blob - 0524c94227f75cd65aea786ab7074d52f7eedcb0 (mode 755)
blob + 0524c94227f75cd65aea786ab7074d52f7eedcb0 (mode 644)
blob - 9fcd6200886310d43c3822dc6600626b894b2d9d
blob + 97ebfd2fb6b0f144b80ddbe904cf3bef55cef402
--- src/lib9/ctime.c
+++ src/lib9/ctime.c
@@ -178,4 +178,3 @@ ct_numb(char *cp, int n)
 		cp[0] = (n/10)%10 + '0';
 	cp[1] = n%10 + '0';
 }
-
blob - 8df272196d4eca471b77e75c4aea14f1f214316b
blob + 51a2c61f52ecf52d32fcd4e61e08862d481f774e
--- src/lib9/debugmalloc.c
+++ src/lib9/debugmalloc.c
@@ -74,7 +74,7 @@ mark(void *v, ulong pc, ulong n, ulong magic)
 		p = (char*)(u+4)+n;
 		memmove(p, END, 4);
 		return u+4;
-	}	
+	}
 }
 
 void
@@ -104,7 +104,7 @@ setrealloctag(void *v, ulong t)
 	u = mark(v, 0, 0, 0);
 	u[3] = t;
 }
-	
+
 void*
 p9malloc(ulong n)
 {
blob - 1ce3a1473c422b2bab3339c0854c4388b025cb3c
blob + c3dd17624fb9a521cdc5b3e044f03a9e8b09b8ec
--- src/lib9/dial.c
+++ src/lib9/dial.c
@@ -92,7 +92,7 @@ p9dial(char *addr, char *local, char *dummy2, int *dum
 
 	if((s = socket(ss.ss_family, proto, 0)) < 0)
 		return -1;
-		
+
 	if(local){
 		buf = strdup(local);
 		if(buf == nil){
@@ -155,4 +155,3 @@ Unix:
 	}
 	return s;
 }
-
blob - d1922bf91e697a4995f2793a61a3e875a06aa5c9
blob + 37b59a0b0f6128f0380c7c59362b07b3a73ef347
--- src/lib9/dirfstat.c
+++ src/lib9/dirfstat.c
@@ -26,4 +26,3 @@ dirfstat(int fd)
 	_p9dir(&st, &st, tmp, d, &str, str+nstr);
 	return d;
 }
-
blob - 95e184447f56f02f2f7984fefbf792f4aaaf4b9f
blob + 27ed37a8495d8900c06d1e7baa2e5f7ad79942b5
--- src/lib9/dirfwstat.c
+++ src/lib9/dirfwstat.c
@@ -54,4 +54,3 @@ dirfwstat(int fd, Dir *dir)
 	}
 	return ret;
 }
-
blob - 40fbe3c744d7b7be27d8b75dd0d4f8379720f419
blob + c232eb8d819deb45820822f2f0bafc6a018fcaa5
--- src/lib9/dirread.c
+++ src/lib9/dirread.c
@@ -18,7 +18,7 @@ mygetdents(int fd, struct dirent *buf, int n)
 	nn = getdirentries(fd, (void*)buf, n, &off);
 	return nn;
 }
-#elif defined(__APPLE__) 
+#elif defined(__APPLE__)
 static int
 mygetdents(int fd, struct dirent *buf, int n)
 {
@@ -93,7 +93,7 @@ dirpackage(int fd, char *buf, int n, Dir **dp)
 		return -1;
 	if(fchdir(fd) < 0)
 		return -1;
-		
+
 	p = buf;
 	nstr = 0;
 
blob - 187dea7a5c5120872be8d722899d5a1d0689e958
blob + a644b6b5419d4eda2485de0527d300e09e0861cc
--- src/lib9/dirstat.c
+++ src/lib9/dirstat.c
@@ -29,4 +29,3 @@ dirstat(char *file)
 	_p9dir(&lst, &st, file, d, &str, str+nstr);
 	return d;
 }
-
blob - caf7153236c0caffe2c3ad7ceffc3c629c966548
blob + 9493e84212247ef4e0a9b2aa235d4ff61bf14581
--- src/lib9/errstr.c
+++ src/lib9/errstr.c
@@ -78,4 +78,3 @@ werrstr(char *fmt, ...)
 	va_end(arg);
 	errstr(buf, ERRMAX);
 }
-
blob - 988d207238600f42cef5b74f0857d76a8e7c658e
blob + 63b86d6dd791428c58915f354d45e9ecee7a570f
--- src/lib9/execl.c
+++ src/lib9/execl.c
@@ -26,4 +26,3 @@ execl(char *prog, ...)
 	free(argv);
 	return -1;
 }
-
blob - f65836e1f273801e3433119b5b6af5d8934b1d70
blob + 797e9d50cc9a23f43895d092b4d2c88ad356566f
--- src/lib9/exitcode.c
+++ src/lib9/exitcode.c
@@ -6,4 +6,3 @@ exitcode(char *s)
 {
 	return 1;
 }
-
blob - 353c76e37f25e0af8707c5c72199b28bd663eddb
blob + f714f8ff92cd5fc9bb7cc371e44ca157384f2824
--- src/lib9/fmt/dofmt.c
+++ src/lib9/fmt/dofmt.c
@@ -478,7 +478,7 @@ __ifmt(Fmt *f)
 			if(fl & FmtApost)
 				__needsep(&ndig, &grouping);
 		}
-		
+
 		/*
 		 * Zero values don't get 0x.
 		 */
blob - bfeb7e5096dca9f6b1c81541533b0113d2dd5608
blob + 4045ffd83f63ab23c08933fc6a862518af700a76
--- src/lib9/fmt/fltfmt.c
+++ src/lib9/fmt/fltfmt.c
@@ -26,22 +26,22 @@ enum
  */
 static double pows10[] =
 {
-	  1e0,   1e1,   1e2,   1e3,   1e4,   1e5,   1e6,   1e7,   1e8,   1e9,  
-	 1e10,  1e11,  1e12,  1e13,  1e14,  1e15,  1e16,  1e17,  1e18,  1e19,  
-	 1e20,  1e21,  1e22,  1e23,  1e24,  1e25,  1e26,  1e27,  1e28,  1e29,  
-	 1e30,  1e31,  1e32,  1e33,  1e34,  1e35,  1e36,  1e37,  1e38,  1e39,  
-	 1e40,  1e41,  1e42,  1e43,  1e44,  1e45,  1e46,  1e47,  1e48,  1e49,  
-	 1e50,  1e51,  1e52,  1e53,  1e54,  1e55,  1e56,  1e57,  1e58,  1e59,  
-	 1e60,  1e61,  1e62,  1e63,  1e64,  1e65,  1e66,  1e67,  1e68,  1e69,  
-	 1e70,  1e71,  1e72,  1e73,  1e74,  1e75,  1e76,  1e77,  1e78,  1e79,  
-	 1e80,  1e81,  1e82,  1e83,  1e84,  1e85,  1e86,  1e87,  1e88,  1e89,  
-	 1e90,  1e91,  1e92,  1e93,  1e94,  1e95,  1e96,  1e97,  1e98,  1e99,  
-	1e100, 1e101, 1e102, 1e103, 1e104, 1e105, 1e106, 1e107, 1e108, 1e109, 
-	1e110, 1e111, 1e112, 1e113, 1e114, 1e115, 1e116, 1e117, 1e118, 1e119, 
-	1e120, 1e121, 1e122, 1e123, 1e124, 1e125, 1e126, 1e127, 1e128, 1e129, 
-	1e130, 1e131, 1e132, 1e133, 1e134, 1e135, 1e136, 1e137, 1e138, 1e139, 
-	1e140, 1e141, 1e142, 1e143, 1e144, 1e145, 1e146, 1e147, 1e148, 1e149, 
-	1e150, 1e151, 1e152, 1e153, 1e154, 1e155, 1e156, 1e157, 1e158, 1e159, 
+	  1e0,   1e1,   1e2,   1e3,   1e4,   1e5,   1e6,   1e7,   1e8,   1e9,
+	 1e10,  1e11,  1e12,  1e13,  1e14,  1e15,  1e16,  1e17,  1e18,  1e19,
+	 1e20,  1e21,  1e22,  1e23,  1e24,  1e25,  1e26,  1e27,  1e28,  1e29,
+	 1e30,  1e31,  1e32,  1e33,  1e34,  1e35,  1e36,  1e37,  1e38,  1e39,
+	 1e40,  1e41,  1e42,  1e43,  1e44,  1e45,  1e46,  1e47,  1e48,  1e49,
+	 1e50,  1e51,  1e52,  1e53,  1e54,  1e55,  1e56,  1e57,  1e58,  1e59,
+	 1e60,  1e61,  1e62,  1e63,  1e64,  1e65,  1e66,  1e67,  1e68,  1e69,
+	 1e70,  1e71,  1e72,  1e73,  1e74,  1e75,  1e76,  1e77,  1e78,  1e79,
+	 1e80,  1e81,  1e82,  1e83,  1e84,  1e85,  1e86,  1e87,  1e88,  1e89,
+	 1e90,  1e91,  1e92,  1e93,  1e94,  1e95,  1e96,  1e97,  1e98,  1e99,
+	1e100, 1e101, 1e102, 1e103, 1e104, 1e105, 1e106, 1e107, 1e108, 1e109,
+	1e110, 1e111, 1e112, 1e113, 1e114, 1e115, 1e116, 1e117, 1e118, 1e119,
+	1e120, 1e121, 1e122, 1e123, 1e124, 1e125, 1e126, 1e127, 1e128, 1e129,
+	1e130, 1e131, 1e132, 1e133, 1e134, 1e135, 1e136, 1e137, 1e138, 1e139,
+	1e140, 1e141, 1e142, 1e143, 1e144, 1e145, 1e146, 1e147, 1e148, 1e149,
+	1e150, 1e151, 1e152, 1e153, 1e154, 1e155, 1e156, 1e157, 1e158, 1e159,
 };
 #define	npows10 ((int)(sizeof(pows10)/sizeof(pows10[0])))
 #define	pow10(x)  fmtpow10(x)
@@ -110,7 +110,7 @@ xadd1(char *a, int n)
 /*
  * subtract 1 from the decimal integer string a.
  * if 10000 underflows into 09999, make it 99999
- * and return 1 to tell caller to move the virtual 
+ * and return 1 to tell caller to move the virtual
  * decimal point.  this way, xsub1 is inverse of xadd1.
  */
 static int
@@ -206,7 +206,7 @@ xdtoa(double f, char *s, int *exp, int *neg, int *ns)
 		*ns = 1;
 		return;
 	}
-		
+
 	/*
 	 * find g,e such that f = g*10^e.
 	 * guess 10-exponent using 2-exponent, then fine tune.
@@ -298,7 +298,7 @@ xdtoa(double f, char *s, int *exp, int *neg, int *ns)
 			e = ee;
 		}
 	}
-	
+
 	/*
 	 * bump last few digits down to 0 as we can.
 	 */
@@ -342,13 +342,13 @@ __efgfmt(Fmt *fmt)
 	int c, chr, dotwid, e, exp, fl, ndigits, neg, newndigits;
 	int pad, point, prec, realchr, sign, sufwid, ucase, wid, z1, z2;
 	Rune r, *rs, *rt;
-	
+
 	if(fmt->flags&FmtLong)
 		f = va_arg(fmt->args, long double);
 	else
 		f = va_arg(fmt->args, double);
-	
-	/* 
+
+	/*
 	 * extract formatting flags
 	 */
 	fl = fmt->flags;
@@ -425,7 +425,7 @@ __efgfmt(Fmt *fmt)
 			exp += ndigits-prec;
 			ndigits = prec;
 		}
-		
+
 		/*
 		 * extra rules for %g (implemented below):
 		 *	trailing zeros removed after decimal unless FmtSharp.
@@ -435,12 +435,12 @@ __efgfmt(Fmt *fmt)
 		/* fall through to %e */
 	default:
 	case 'e':
-		/* 
+		/*
 		 * one significant digit before decimal, no leading zeros.
 		 */
 		point = 1;
 		z1 = 0;
-		
+
 		/*
 		 * decimal point is after ndigits digits right now.
 		 * slide to be after first.
@@ -537,11 +537,11 @@ __efgfmt(Fmt *fmt)
 			}
 			z2 = 0;
 			ndigits = newndigits;
-		}	
+		}
 		sufwid = 0;
 		break;
 	}
-	
+
 	/*
 	 * if %g is given without FmtSharp, remove trailing zeros.
 	 * must do after truncation, so that e.g. print %.3g 1.001
@@ -665,4 +665,3 @@ __efgfmt(Fmt *fmt)
 	}
 	return 0;
 }
-
blob - 1519ea42dd89e4ebb8c7f2642c1c41498aac79a6
blob + 5c8eb2cbdc3f02692d3dc65cdf667a18924f3ffe
--- src/lib9/fmt/fmtdef.h
+++ src/lib9/fmt/fmtdef.h
@@ -102,4 +102,3 @@ int          __strfmt(Fmt *f);
 #	define VA_COPY(a,b) (a) = (b)
 #	define VA_END(a)
 #endif
-
blob - 9ebdced389b8010bfe149b69f88842324910e56e
blob + 33ca4011aff0fe05369921ba6cb90548a3667d0a
--- src/lib9/fmt/fmtlocale.c
+++ src/lib9/fmt/fmtlocale.c
@@ -37,7 +37,7 @@ int
 __needsep(int *ndig, char **grouping)
 {
 	int group;
-	
+
 	(*ndig)++;
 	group = *(unsigned char*)*grouping;
 	/* CHAR_MAX means no further grouping. \0 means we got the empty string */
@@ -52,4 +52,3 @@ __needsep(int *ndig, char **grouping)
 	}
 	return 0;
 }
-
blob - aa5124a5c43f25812eaf9ea82a266b8178201016
blob + 22ac078f70fccd1fc3534776813fefcb144562b9
--- src/lib9/fmt/fmtnull.c
+++ src/lib9/fmt/fmtnull.c
@@ -30,4 +30,3 @@ fmtnullinit(Fmt *f)
 	fmtlocaleinit(f, nil, nil, nil);
 	return 0;
 }
-
blob - 868127e0a7c048bb6135449e9ef912075a61b683
blob + 41fc8332a51ca8fa9683822a37fa1cbe4bd51ab5
--- src/lib9/fmt/fmtprint.c
+++ src/lib9/fmt/fmtprint.c
@@ -33,4 +33,3 @@ fmtprint(Fmt *f, char *fmt, ...)
 		return 0;
 	return n;
 }
-
blob - 66d3929f005ad52580328112cfd6d470916dd4e7
blob + 694a6cf88dfe164444329cd4cabe1d733b3efa4c
--- src/lib9/fmt/fmtvprint.c
+++ src/lib9/fmt/fmtvprint.c
@@ -34,4 +34,3 @@ fmtvprint(Fmt *f, char *fmt, va_list args)
 		return 0;
 	return n;
 }
-
blob - d408695d5251601725cbea78603060598d300d56
blob + 78c3fde389daa54f00cedfaee513557502abc32a
--- src/lib9/fmt/nan64.c
+++ src/lib9/fmt/nan64.c
@@ -2,7 +2,7 @@
 
 /*
  * 64-bit IEEE not-a-number routines.
- * This is big/little-endian portable assuming that 
+ * This is big/little-endian portable assuming that
  * the 64-bit doubles and 64-bit integers have the
  * same byte ordering.
  */
@@ -51,7 +51,7 @@ int
 __isNaN(double d)
 {
 	uvlong x;
-	
+
 	x = d2u(d);
 	/* IEEE 754: exponent bits 0x7FF and non-zero mantissa */
 	return (x&uvinf) == uvinf && (x&~uvneginf) != 0;
@@ -67,7 +67,7 @@ int
 __isInf(double d, int sign)
 {
 	uvlong x;
-	
+
 	x = d2u(d);
 	if(sign == 0)
 		return x==uvinf || x==uvneginf;
blob - 0872ac71ab4d18391746bf9d661fe12dce394436
blob + 0de44f148665eda0a549b2f6f928691eee65ef91
--- src/lib9/fmt/plan9.h
+++ src/lib9/fmt/plan9.h
@@ -35,4 +35,3 @@ typedef uintptr_t uintptr;
 
 #undef	nelem
 #define	nelem(x)	(sizeof (x)/sizeof (x)[0])
-
blob - 50b4813d528b3d981c05bf48a3cdf53160edf3bc
blob + afc3f506b9a5562f2340f6dd33fa551a53c5cf5e
--- src/lib9/fmt/runesnprint.c
+++ src/lib9/fmt/runesnprint.c
@@ -16,4 +16,3 @@ runesnprint(Rune *buf, int len, char *fmt, ...)
 	va_end(args);
 	return n;
 }
-
blob - 24e2f178f505f714266de6b689cb176826639ff4
blob + 213351ab8dc3b746927036aa0b6e7d12597fe51e
--- src/lib9/fmt/runevseprint.c
+++ src/lib9/fmt/runevseprint.c
@@ -26,4 +26,3 @@ runevseprint(Rune *buf, Rune *e, char *fmt, va_list ar
 	*(Rune*)f.to = '\0';
 	return (Rune*)f.to;
 }
-
blob - ef273752afa7917e44bed93bfe7f75ba2c52dc9b
blob + de29d2c3d8f5f63458a93aff360d8e7402ddef12
--- src/lib9/fmt/runevsmprint.c
+++ src/lib9/fmt/runevsmprint.c
@@ -1,8 +1,8 @@
 /* Copyright (c) 2002-2006 Lucent Technologies; see LICENSE */
 /*
- * Plan 9 port version must include libc.h in order to 
+ * Plan 9 port version must include libc.h in order to
  * get Plan 9 debugging malloc, which sometimes returns
- * different pointers than the standard malloc. 
+ * different pointers than the standard malloc.
  */
 #ifdef PLAN9PORT
 #include <u.h>
blob - 64d2da433d26bbf85c001daee85cef8170f2cbdc
blob + d019b456ad8e4622aba68a8c885d10a9f3d14ee7
--- src/lib9/fmt/snprint.c
+++ src/lib9/fmt/snprint.c
@@ -15,4 +15,3 @@ snprint(char *buf, int len, char *fmt, ...)
 	va_end(args);
 	return n;
 }
-
blob - 1b92d2a9b2c12f204885b68342807ad4cfa39ce3
blob + 8266c65d524b1999e353d8f3157289a9555937fb
--- src/lib9/fmt/vseprint.c
+++ src/lib9/fmt/vseprint.c
@@ -25,4 +25,3 @@ vseprint(char *buf, char *e, char *fmt, va_list args)
 	*(char*)f.to = '\0';
 	return (char*)f.to;
 }
-
blob - 9576f8003037c2d9df319309926ccb5236c13491
blob + 0a88e98fab1a22c18af32935ee7d082caf4cf7dc
--- src/lib9/fmt/vsmprint.c
+++ src/lib9/fmt/vsmprint.c
@@ -1,8 +1,8 @@
 /* Copyright (c) 2002-2006 Lucent Technologies; see LICENSE */
 /*
- * Plan 9 port version must include libc.h in order to 
+ * Plan 9 port version must include libc.h in order to
  * get Plan 9 debugging malloc, which sometimes returns
- * different pointers than the standard malloc. 
+ * different pointers than the standard malloc.
  */
 #ifdef PLAN9PORT
 #include <u.h>
blob - 3ef704c93d8d18a7dc6f33fe85e2e71d1a1dd162
blob + 07e2872c512d288ea454c0ceb2bedb040e33ddd3
--- src/lib9/get9root.c
+++ src/lib9/get9root.c
@@ -15,4 +15,3 @@ get9root(void)
 	s = "/usr/local/plan9";
 	return s;
 }
-
blob - 9fa8a9e0d3ad9cc15c20be0cf7093db74e5d63f1
blob + e88516cf2251ff1b9c2f598e7a9da0b618d777fc
--- src/lib9/getnetconn.c
+++ src/lib9/getnetconn.c
@@ -27,7 +27,7 @@ convert(int s, struct sockaddr *sa, char **lsys, char 
 	socklen_t sn;
 	int n;
 	char *net;
-	
+
 	switch(sa->sa_family){
 	case AF_INET:
 		sin = (void*)sa;
@@ -158,4 +158,3 @@ freenetconninfo(NetConnInfo *nci)
 	xfree(nci->raddr);
 	free(nci);
 }
-
blob - 2421a649896d4f6a6a3eda1cb863d03c338311af
blob + 35bbeebd3f6f992ee48559baaf398bee0fc9e2fc
--- src/lib9/getns.c
+++ src/lib9/getns.c
@@ -49,7 +49,7 @@ nsfromdisplay(void)
 		if(strcmp(p, ".0") == 0)
 			*p = 0;
 	}
-	
+
 	/* turn /tmp/launch/:0 into _tmp_launch_:0 (OS X 10.5) */
 	for(p=disp; *p; p++)
 		if(*p == '/')
blob - 6f928bab3caf720b041be0cf47a1874af7df2bdf
blob + 5ec21e7f26b8dfdf1b9e87b40e0eb286a58932af
--- src/lib9/jmp.c
+++ src/lib9/jmp.c
@@ -14,4 +14,3 @@ p9notejmp(void *x, p9jmp_buf buf, int val)
 	USED(x);
 	siglongjmp((void*)buf, val);
 }
-
blob - 7b6b59dc24435b174f2c2a9dbf763c7eea91aa0c
blob + 33593aa2f1889297ad847a400b8f45888e04dfc1
--- src/lib9/malloc.c
+++ src/lib9/malloc.c
@@ -13,7 +13,7 @@ void*
 p9malloc(ulong n)
 {
 	void *v;
-	
+
 	if(n == 0)
 		n++;
 	lock(&malloclock);
@@ -36,7 +36,7 @@ void*
 p9calloc(ulong a, ulong b)
 {
 	void *v;
-	
+
 	if(a*b == 0)
 		a = b = 1;
 
blob - 832f7e28094146ef6d3fef562bcc70b2718d5d62
blob + 420c2cf8b1b4f9badf6ebeffeab94ad0f4f03948
--- src/lib9/netmkaddr.c
+++ src/lib9/netmkaddr.c
@@ -25,7 +25,7 @@ netmkaddr(char *linear, char *defnet, char *defsrv)
 		}
 		/* allow host:service in deference to Unix convention */
 		if((cp = strchr(linear, ':')) != nil){
-			snprint(addr, sizeof(addr), "%s!%.*s!%s", 
+			snprint(addr, sizeof(addr), "%s!%.*s!%s",
 				defnet, utfnlen(linear, cp-linear),
 				linear, cp+1);
 			return addr;
blob - c322387579f474f53a3d5e9de10c0f421627b37a
blob + adb3815b7f44233367c8cf8d8977015952e7ae18
--- src/lib9/notify.c
+++ src/lib9/notify.c
@@ -1,7 +1,7 @@
 /*
- * Signal handling for Plan 9 programs. 
- * We stubbornly use the strings from Plan 9 instead 
- * of the enumerated Unix constants.  
+ * Signal handling for Plan 9 programs.
+ * We stubbornly use the strings from Plan 9 instead
+ * of the enumerated Unix constants.
  * There are some weird translations.  In particular,
  * a "kill" note is the same as SIGTERM in Unix.
  * There is no equivalent note to Unix's SIGKILL, since
@@ -110,7 +110,7 @@ Jmp *(*_notejmpbuf)(void) = getonejmp;
 static void noteinit(void);
 
 /*
- * Actual signal handler. 
+ * Actual signal handler.
  */
 
 static void (*notifyf)(void*, char*);	/* Plan 9 handler */
@@ -193,7 +193,7 @@ notesetenable(int sig, int enabled)
 	sigemptyset(&mask);
 	sigaddset(&mask, sig);
 	sigprocmask(enabled ? SIG_UNBLOCK : SIG_BLOCK, &mask, &omask);
-	return !sigismember(&omask, sig);	
+	return !sigismember(&omask, sig);
 }
 
 int
@@ -270,4 +270,3 @@ noteinit(void)
 		notifyseton(sig->sig, !(sig->flags&NoNotify));
 	}
 }
-
blob - 9d4e2d077235c8b6f56a1d0c30837543c1dc6659
blob + c999f49c15746137278d5f033f90a0cec1ff2c80
--- src/lib9/opentemp.c
+++ src/lib9/opentemp.c
@@ -17,4 +17,3 @@ opentemp(char *template, int mode)
 	close(fd);
 	return fd1;
 }
-
blob - 3b15d3b8aa4fb259ed7e21e02f3eb4d4a9a77bdd
blob + c50587fc0041de61a57ca347469905486df17246
--- src/lib9/pin.c
+++ src/lib9/pin.c
@@ -8,4 +8,3 @@ nop(void)
 
 void (*_pin)(void) = nop;
 void (*_unpin)(void) = nop;
-
blob - b8ef94278fc8595269192e85bbf9f8219bdc4d6c
blob + 68e6d2f669fc7ef180e18ccded9257ec368bedad
--- src/lib9/postnote.c
+++ src/lib9/postnote.c
@@ -30,5 +30,3 @@ postnote(int who, int pid, char *msg)
 		return killpg(pid, sig);
 	}
 }
-
-		
blob - e64e9194f3ce007722cd24b76e3e4b2059f7c5b1
blob + fb493c721704775f8ffd9419b58e149c01f60b70
--- src/lib9/priv.c
+++ src/lib9/priv.c
@@ -29,4 +29,3 @@ privmem(int i)
 	up = _p9uproc(0);
 	return &up->priv[i];
 }
-
blob - f850009ad003122a0ff59286d6d0f67ff564f662
blob + 8ab6592328bd700a385d1accd6d1104573c54a8b
--- src/lib9/quote.c
+++ src/lib9/quote.c
@@ -92,7 +92,7 @@ quotestrdup(char *s)
 
 	if(__needsquotes(s, &quotelen) == 0)
 		return strdup(s);
-	
+
 	ret = malloc(quotelen+1);
 	if(ret == nil)
 		return nil;
@@ -118,7 +118,7 @@ quoterunestrdup(Rune *s)
 
 	if(__runeneedsquotes(s, &quotelen) == 0)
 		return runestrdup(s);
-	
+
 	ret = malloc((quotelen+1)*sizeof(Rune));
 	if(ret == nil)
 		return nil;
blob - bbd08b0ac0bc6b9fa999cb1d3c90344a4e0eb6fc
blob + c737b49ddfb823a18814320932e4d93497f2cedf
--- src/lib9/rfork.c
+++ src/lib9/rfork.c
@@ -76,7 +76,7 @@ p9rfork(int flags)
 				pid = strtol(buf, &q, 0);
 			}else{
 				/*
-				 * Child - fork a new child whose wait message can't 
+				 * Child - fork a new child whose wait message can't
 				 * get back to the parent because we're going to exit!
 				 */
 				signal(SIGCHLD, SIG_IGN);
blob - 3b8e7daab10700c8c723a0f24479cc5f99df4cb6
blob + 75e0695fc9835b3baf5f27aa2e63c2df29d93f13
--- src/lib9/searchpath.c
+++ src/lib9/searchpath.c
@@ -59,4 +59,3 @@ searchpath(char *name)
 	free(path);
 	return nil;
 }
-
blob - e2abb75993d7c334d6295b24f27edd5dfcf787f4
blob + e73225e2da7332c626685e92a29ae0f52a6a6324
--- src/lib9/sendfd.c
+++ src/lib9/sendfd.c
@@ -31,7 +31,7 @@ sendfd(int s, int fd)
 	struct cmsghdr *cmsg;
 	int n;
 	char cms[CMSG_SPACE(sizeof(int))];
-	
+
 	buf[0] = 0;
 	iov.iov_base = buf;
 	iov.iov_len = 1;
blob - 5ca31866fedf265fcf534e508e5be2a6e7107a47
blob + 5c67f0b60f428adc931babf5b95007db8c7b67dd
--- src/lib9/strdup.c
+++ src/lib9/strdup.c
@@ -14,4 +14,3 @@ strdup(char *s)
 	memmove(t, s, l+1);
 	return t;
 }
-
blob - 00229db0490f5480adf3cb2da57900db995aeab9
blob + 11f4234c6a9aedf74a3f463893a99e7be57756bd
--- src/lib9/sysfatal.c
+++ src/lib9/sysfatal.c
@@ -18,4 +18,3 @@ sysfatal(char *fmt, ...)
 	fprint(2, "%s: %s\n", argv0 ? argv0 : "<prog>", buf);
 	exits("fatal");
 }
-
blob - 06ab5a6036f2357464351485e3fc57411d4b4191
blob + c602ce452a889301ea7e80ec622ea481dc2a784a
--- src/lib9/testfltfmt.c
+++ src/lib9/testfltfmt.c
@@ -142,9 +142,9 @@ doit(int just, int plus, int alt, int zero, int width,
 		&& !numclose(ref, buf)) {
 			d1 = fmtstrtod(ref, 0);
 			d2 = fmtstrtod(buf, 0);
-			fprintf(stderr, "%s: ref='%s'%s fmt='%s'%s\n", 
-				format, 
-				ref, d1==fmtvals[i] ? "" : " (ref is inexact!)", 
+			fprintf(stderr, "%s: ref='%s'%s fmt='%s'%s\n",
+				format,
+				ref, d1==fmtvals[i] ? "" : " (ref is inexact!)",
 				buf, d2==fmtvals[i] ? "" : " (fmt is inexact!)");
 		//	exits("oops");
 		}
@@ -156,9 +156,9 @@ doit(int just, int plus, int alt, int zero, int width,
 		&& !numclose(ref, buf)) {
 			d1 = fmtstrtod(ref, 0);
 			d2 = fmtstrtod(buf, 0);
-			fprintf(stderr, "%s: ref='%s'%s fmt='%s'%s\n", 
-				format, 
-				ref, d1==fmtvals[i] ? "" : " (ref is inexact!)", 
+			fprintf(stderr, "%s: ref='%s'%s fmt='%s'%s\n",
+				format,
+				ref, d1==fmtvals[i] ? "" : " (ref is inexact!)",
 				buf, d2==fmtvals[i] ? "" : " (fmt is inexact!)");
 		//	exits("oops");
 		}
blob - fd2b7039f2736575a425add24a78a6ff86fe86c2
blob + 11708ba30233ddf000753eab739f7aa2428262c4
--- src/lib9/testfmt.c
+++ src/lib9/testfmt.c
@@ -90,14 +90,14 @@ main(int argc, char **argv)
 	verify(smprint("%d", 23), "23");
 	verify(smprint("%i", 23), "23");
 	verify(smprint("%Zi", 1234, 23), "23");
-	
+
 	/* ANSI and their wacky corner cases */
 	verify(smprint("%.0d", 0), "");
 	verify(smprint("%.0o", 0), "");
 	verify(smprint("%.0x", 0), "");
 	verify(smprint("%#.0o", 0), "0");
 	verify(smprint("%#.0x", 0), "");
-	
+
 	/* difficult floating point tests that many libraries get wrong */
 	verify(smprint("%.100f", 1.0), "1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
 	verify(smprint("%.100g", 1.0), "1");
@@ -112,7 +112,7 @@ main(int argc, char **argv)
 	verify(smprint("%3$d %4$*5$06d %2$d %1$d", 444, 333, 111, 222, 20), "111               000222 333 444");
 	verify(smprint("%3$hd %4$*5$06d %2$d %1$d", 444, 333, (short)111, 222, 20), "111               000222 333 444");
 	verify(smprint("%3$\xe2\x98\xba""d %5$06d %2$d %1$d", 444, 333, 555, 111, 222), "111 000222 333 444");
-	
+
 	/* test %'d formats */
 	verify(smprint("%'d %'d %'d", 1, 2222, 33333333), "1 2,222 33,333,333");
 	verify(smprint("%'019d", 0), "000,000,000,000,000");
blob - 242befb4ef956597bacea3e142410c81d230ebf5
blob + b2c04208f96c3a4e2bc1aea68ae48cf1a91fcc28
--- src/lib9/testprint.c
+++ src/lib9/testprint.c
@@ -5,7 +5,7 @@ void
 main(int argc, char **argv)
 {
 	char c;
-	
+
 	c = argv[1][strlen(argv[1])-1];
 	if(c == 'f' || c == 'e' || c == 'g' || c == 'F' || c == 'E' || c == 'G')
 		print(argv[1], atof(argv[2]));
blob - 367063678baf5c1e46c9ae06145dea695f5a1f7a
blob + 92ad2ca4725a45900aa6d2d36cd2b12bb744f7ef
--- src/lib9/time.c
+++ src/lib9/time.c
@@ -55,4 +55,3 @@ p9time(long *tt)
 		*tt = t;
 	return t;
 }
-
blob - 5edf439d1a5a882081b293f64a78aa71d1a1a61e
blob + 58bbe992705c9e362f93099c2a9b9127c09d0e16
--- src/lib9/tm2sec.c
+++ src/lib9/tm2sec.c
@@ -103,7 +103,7 @@ tm2sec(Tm *tm)
 			secs -= ti->tzoff;
 		}
 	}
-	
+
 	if(secs < 0)
 		secs = 0;
 	return secs;
blob - a17bdf1d579df9fb8367b7d2d7c0e667966dfe90
blob + 84e5fe0edd71d908ede2ed2a1586c16726af7f85
--- src/lib9/u64.c
+++ src/lib9/u64.c
@@ -35,7 +35,7 @@ dec64(uchar *out, int lim, char *in, int n)
 	b24 = 0;
 	i = 0;
 	while(n-- > 0){
- 
+
 		c = t64d[*(uchar*)in++];
 		if(c == INVAL)
 			continue;
blob - a11647236b0b6ae9ea55486e0dca057041d030cd
blob + a9c4cb6867d16ed8f4194da42dd55afd9e0997db
--- src/lib9/udp.c
+++ src/lib9/udp.c
@@ -49,4 +49,3 @@ udpwrite(int fd, Udphdr *hdr, void *buf, long n)
 	*(u16int*)&sin.sin_port = *(u16int*)hdr->rport;
 	return sendto(fd, buf, n, 0, (struct sockaddr*)&sin, sizeof sin);
 }
-
blob - b7db700c0e85744e4768bbb06a29b973a4c92fdd
blob + 251cae5d9a4b7d66a8fee735c46bdbbf9d85aa6d
--- src/lib9/unsharp.c
+++ src/lib9/unsharp.c
@@ -3,7 +3,7 @@
 
 /*
  * I don't want too many of these,
- * but the ones we have are just too useful. 
+ * but the ones we have are just too useful.
  */
 static struct {
 	char *old;
blob - e6128ae4daa3902aa0780f84cf8224454bc838c9
blob + 450f28f084c82855d723b0f342c1e03062213bd4
--- src/lib9/utf/lib9.h
+++ src/lib9/utf/lib9.h
@@ -14,4 +14,3 @@ typedef unsigned char		uchar;
 typedef unsigned short		ushort;
 typedef unsigned int		uint;
 typedef unsigned long		ulong;
-
blob - e40e33eb60f3a7311edad7475ae7180531bc6c4c
blob + 1ca8ace72e7834d6c0d901822136f9c9bbdfee6b
--- src/lib9/utf/plan9.h
+++ src/lib9/utf/plan9.h
@@ -26,4 +26,3 @@ typedef unsigned long		ulong;
 
 #undef	nelem
 #define	nelem(x)	(sizeof (x)/sizeof (x)[0])
-
blob - f5944806f28d457c6d0875524ca20b338733e440
blob + bb2d82cb55ab7e19622cf7366922701033ac3bb4
--- src/lib9/utf/rune.c
+++ src/lib9/utf/rune.c
@@ -155,7 +155,7 @@ runetochar(char *str, Rune *rune)
 		str[2] = Tx |  (c & Maskx);
 		return 3;
 	}
-	
+
 	/*
 	 * four character sequence
 	 *	010000-1FFFFF => T4 Tx Tx Tx
blob - 8170e7bcb811ec66ce1fc8e262ab9fba38c649c5
blob + 4f9d6f424e5563677c7df8a0dcfc44146f8e8131
--- src/lib9/utf/runestrdup.c
+++ src/lib9/utf/runestrdup.c
@@ -18,8 +18,8 @@
 #include "utf.h"
 
 Rune*
-runestrdup(Rune *s) 
-{  
+runestrdup(Rune *s)
+{
 	Rune *ns;
 
 	ns = malloc(sizeof(Rune)*(runestrlen(s) + 1));
blob - 1ff41813b86d48e39d7e8d9258c5a894018e3025
blob + 1db7076d5772664229d465aa935cf11228bee065
--- src/lib9/utf/utfdef.h
+++ src/lib9/utf/utfdef.h
@@ -30,4 +30,3 @@ typedef long long		vlong;
 
 #undef	nelem
 #define	nelem	((void*)0)
-
blob - 31d8c02af7aba63d3944c8837a6c7a3cf5c1ae2e
blob + 17d767865cc351772407f48f99a88a66b9c84578
--- src/lib9/wait.c
+++ src/lib9/wait.c
@@ -51,4 +51,3 @@ waitfor(int pid)
 
 	return _wait(awaitfor(pid, buf, sizeof buf-1), buf);
 }
-
blob - 3df8ef89cda2c503373c8212112314f279ea0f29
blob + 4c90bb7861642e573f34e7e642eac8bf4815048f
--- src/lib9/waitpid.c
+++ src/lib9/waitpid.c
@@ -17,4 +17,3 @@ waitpid(void)
 	}
 	return atoi(fld[0]);
 }
-
blob - 91f1885a85236e1dc5b360d747feefff870dedef
blob + f8ae442dd3348d6557aad37fe694a052c7aee08a
--- src/lib9/zoneinfo.c
+++ src/lib9/zoneinfo.c
@@ -4,7 +4,7 @@
 /*
  * Access local time entries of zoneinfo files.
  * Formats 0 and 2 are supported, and 4-byte timestamps
- * 
+ *
  * Copyright © 2008 M. Teichgräber
  * Contributed under the terms of the Lucent Public License 1.02.
  */
blob - 55e60df9f1f3558a65169463a895278dab698fda
blob + e2ea963d5a362ac9ca4902995c7d2f392b0b281f
--- src/lib9/zoneinfo.h
+++ src/lib9/zoneinfo.h
@@ -16,4 +16,3 @@ struct Tinfo
 extern	int	zonelookuptinfo(Tinfo*, tlong);
 extern	int	zonetinfo(Tinfo*, int);
 extern	void	zonedump(int fd);
-
blob - 151e45ffa36d994a575a4126fbffeae72cccd279
blob + 56f614fe61e3161d7ea0014891a93e3de136629b
--- src/lib9p/_post.c
+++ src/lib9p/_post.c
@@ -75,4 +75,3 @@ _post3(Postcrud *p)
 		close(p->s->srvfd);
 	free(p);
 }
-
blob - a18b09236243038e74b8fa4c3ed2ef52298d9039
blob + ea083993baa57f1fb743750730d9d60246b59a1c
--- src/lib9p/file.c
+++ src/lib9p/file.c
@@ -86,7 +86,7 @@ removefile(File *f)
 {
 	File *fp;
 	Filelist *fl;
-	
+
 	fp = f->parent;
 	if(fp == nil){
 		werrstr("no parent");
@@ -261,7 +261,7 @@ mkqid(vlong path, long vers, int type)
 	return q;
 }
 
-			
+
 Tree*
 alloctree(char *uid, char *gid, ulong mode, void (*destroy)(File*))
 {
blob - 1be11ce0fbd74853ab7d5869e68c88f07194252c
blob + 152493a3141099277a376feb7995941b8f23c859
--- src/lib9p/intmap.c
+++ src/lib9p/intmap.c
@@ -62,7 +62,7 @@ freemap(Intmap *map, void (*destroy)(void*))
 			free(p);
 		}
 	}
-			
+
 	free(map);
 }
 
@@ -74,7 +74,7 @@ llookup(Intmap *map, ulong id)
 	for(lf=&map->hash[hashid(id)]; *lf; lf=&(*lf)->link)
 		if((*lf)->id == id)
 			break;
-	return lf;	
+	return lf;
 }
 
 /*
@@ -121,7 +121,7 @@ insertkey(Intmap *map, ulong id, void *v)
 		ov = nil;
 	}
 	wunlock(&map->rwlock);
-	return ov;	
+	return ov;
 }
 
 int
@@ -144,7 +144,7 @@ caninsertkey(Intmap *map, ulong id, void *v)
 		rv = 1;
 	}
 	wunlock(&map->rwlock);
-	return rv;	
+	return rv;
 }
 
 void*
blob - 397bca0f12c90c88dab35689d9c1fad3b0561544
blob + 88d24cd43e6b91886c932a56560f4556d194b7bd
--- src/lib9p/mem.c
+++ src/lib9p/mem.c
@@ -39,4 +39,3 @@ estrdup9p(char *s)
 	setmalloctag(t, getcallerpc(&s));
 	return t;
 }
-
blob - 753ae79db404da55f8ae9c85d4db067aa4522b9f
blob + b8dff3d37b2643cd5e370343f37a81ca6c36d778
--- src/lib9p/parse.c
+++ src/lib9p/parse.c
@@ -70,7 +70,7 @@ respondcmderror(Req *r, Cmdbuf *cb, char *fmt, ...)
 	va_list arg;
 	char *p, *e;
 	char err[ERRMAX];
-	
+
 	e = err+ERRMAX-10;
 	va_start(arg, fmt);
 	p = vseprint(err, e, fmt, arg);
blob - 09296a8899338c6a412742afeb4e53e61e67ae49
blob + 4ee99bc8df69deb2f6179dbe1f3dc8ddfce7e697
--- src/lib9p/post.c
+++ src/lib9p/post.c
@@ -21,4 +21,3 @@ postmountsrv(Srv *s, char *name, char *mtpt, int flag)
 		_post3(p);
 	}
 }
-
blob - 83347050b96c8b3aecfba0998c5a4ff10da3dc32
blob + 9acbcdc5bce27610c2e85a657567b217dfc2f19e
--- src/lib9p/req.c
+++ src/lib9p/req.c
@@ -33,7 +33,7 @@ freereqpool(Reqpool *p)
 {
 	freemap(p->map, (void(*)(void*))p->destroy);
 	free(p);
-}	
+}
 
 Req*
 allocreq(Reqpool *pool, ulong tag)
blob - d12e35223f1a06411f4f886feaca3810a0de2bbd
blob + c3d654793091f5976a2ee3b6d5f0c01c9c9bc14e
--- src/lib9p/srv.c
+++ src/lib9p/srv.c
@@ -98,7 +98,7 @@ if(chatty9p)
 if(chatty9p)
 	if(r->error)
 		fprint(2, "<-%d- %F: %s\n", s->infd, &r->ifcall, r->error);
-	else	
+	else
 		fprint(2, "<-%d- %F\n", s->infd, &r->ifcall);
 
 	return r;
@@ -378,7 +378,7 @@ sopen(Srv *srv, Req *r)
 	default:
 		assert(0);
 	case OREAD:
-		p = AREAD;	
+		p = AREAD;
 		break;
 	case OWRITE:
 		p = AWRITE;
@@ -387,7 +387,7 @@ sopen(Srv *srv, Req *r)
 		p = AREAD|AWRITE;
 		break;
 	case OEXEC:
-		p = AEXEC;	
+		p = AEXEC;
 		break;
 	}
 	if(r->ifcall.mode&OTRUNC)
@@ -588,7 +588,7 @@ rremove(Req *r, char *error, char *errbuf)
 		return;
 	if(r->fid->file){
 		if(removefile(r->fid->file) < 0){
-			snprint(errbuf, ERRMAX, "remove %s: %r", 
+			snprint(errbuf, ERRMAX, "remove %s: %r",
 				r->fid->file->dir.name);
 			r->error = errbuf;
 		}
@@ -614,8 +614,8 @@ sstat(Srv *srv, Req *r)
 		if(r->d.muid)
 			r->d.muid = estrdup9p(r->d.muid);
 	}
-	if(srv->stat)	
-		srv->stat(r);	
+	if(srv->stat)
+		srv->stat(r);
 	else if(r->fid->file)
 		respond(r, nil);
 	else
@@ -720,7 +720,7 @@ srv(Srv *srv)
 	while(r = getreq(srv)){
 		if(r->error){
 			respond(r, r->error);
-			continue;	
+			continue;
 		}
 		switch(r->ifcall.type){
 		default:
@@ -760,7 +760,7 @@ respond(Req *r, char *error)
 		assert(r->pool);
 		goto free;
 	}
-		
+
 	assert(r->responded == 0);
 	r->error = error;
 
@@ -812,8 +812,8 @@ if(chatty9p)
 	 * There is a race here - we must remove the entry before
 	 * the write, so that if the client is very fast and reuses the
 	 * tag, the read loop won't think it is still in use.
-	 * 
-	 * By removing the entry before the write, we open up a 
+	 *
+	 * By removing the entry before the write, we open up a
 	 * race with incoming Tflush messages.  Specifically, an
 	 * incoming Tflush might not see r even though it has not
 	 * yet been responded to.  It would then send an Rflush
@@ -833,12 +833,12 @@ if(chatty9p)
 		 * There are no references other than in our r->flush array,
 		 * so no one else should be accessing r concurrently.
 		 * Close the fid now, before responding to the message.
-		 * 
+		 *
 		 * If the client is behaving (there are no outstanding T-messages
 		 * that reference r->fid) and the message is a Tclunk or Tremove,
-		 * then this closefid will call destroyfid.  
-		 * 
-		 * This means destroyfid can't piddle around 
+		 * then this closefid will call destroyfid.
+		 *
+		 * This means destroyfid can't piddle around
 		 * indefinitely (we're holding srv->wlock!), but it provides
 		 * for tighter semantics as to when destroyfid is called.
 		 *
@@ -899,4 +899,3 @@ postfd(char *name, int pfd)
 		fprint(2, "postfd successful\n");
 	return 0;
 }
-
blob - 210b16849df20ae241a8a6332af511415c29a6e6 (mode 755)
blob + 210b16849df20ae241a8a6332af511415c29a6e6 (mode 644)
blob - 9303b17dd209afd77ed044c3e2f088c9d46d40f8
blob + 34737b31baf5d38160c06c1ba029630759b9d77f
--- src/lib9pclient/close.c
+++ src/lib9pclient/close.c
@@ -33,7 +33,7 @@ fsfremove(CFid *fid)
 {
 	int n;
 	Fcall tx, rx;
-	
+
 	tx.type = Tremove;
 	tx.fid = fid->fid;
 	n = _fsrpc(fid->fs, &tx, &rx, 0);
blob - 62e26b2293455200a8bddd08b19d65b8d7901b57
blob + f18b6547eeeb42312e0e4bb547769e782059eb28
--- src/lib9pclient/create.c
+++ src/lib9pclient/create.c
@@ -26,7 +26,7 @@ fscreate(CFsys *fs, char *name, int mode, ulong perm)
 {
 	CFid *fid;
 	char *p, *dir, *elem;
-	
+
 	p = strrchr(name, '/');
 	if(p == nil){
 		dir = "";
blob - c6b1c3e92b016ce44aefa50b19848bf2e98879bf
blob + f1b9b0857998c749b891ca439bdaefd86bac0aed
--- src/lib9pclient/fs.c
+++ src/lib9pclient/fs.c
@@ -26,7 +26,7 @@ fsinit(int fd)
 {
 	CFsys *fs;
 	int n;
-	
+
 	fmtinstall('F', fcallfmt);
 	fmtinstall('D', dirfmt);
 	fmtinstall('M', dirmodefmt);
@@ -48,7 +48,7 @@ fsinit(int fd)
 	fs->iorecv = ioproc();
 	fs->iosend = ioproc();
 	muxinit(&fs->mux);
-	
+
 	strcpy(fs->version, "9P2000");
 	if((n = fsversion(fs, 8192, fs->version, sizeof fs->version)) < 0){
 		werrstr("fsversion: %r");
blob - a9cc29e6611b3e4039fdc2ec463bdf33774bde6b
blob + 65225ecbc19d4b0e917fa0ef6aeedf14ba4fa1e6
--- src/lib9pclient/ns.c
+++ src/lib9pclient/ns.c
@@ -65,4 +65,3 @@ nsopen(char *name, char *aname, char *fname, int mode)
 	fsunmount(fs);
 	return fid;
 }
-
blob - 7ed44450300690a2bae59b222b8820979374906f
blob + 5effa78b1e271b78e187b2350ece1128e4962ab1
--- src/lib9pclient/print.c
+++ src/lib9pclient/print.c
@@ -65,4 +65,3 @@ fsvprint(CFid *fd, char *fmt, va_list args)
 		return -1;
 	return n;
 }
-
blob - 605372884cd371b0f3f41476c76e5a98f1e49aa8
blob + ea94e9aa406e1798a7f760edd51b4386e499ca9c
--- src/lib9pclient/read.c
+++ src/lib9pclient/read.c
@@ -43,7 +43,7 @@ fspread(CFid *fid, void *buf, long n, vlong offset)
 		}
 	}
 	free(freep);
-	
+
 	return rx.count;
 }
 
@@ -68,5 +68,3 @@ fsreadn(CFid *fid, void *buf, long n)
 	}
 	return tot;
 }
-			
-
blob - b0ce2da8d01897ce22817faa9afad4452e344441
blob + 4f0e85c8ae686e9d86f9282d875e64df140f253a
--- src/lib9pclient/remove.c
+++ src/lib9pclient/remove.c
@@ -16,4 +16,3 @@ fsremove(CFsys *fs, char *name)
 		return -1;
 	return fsfremove(fid);
 }
-
blob - 9c69446aa74e2705649db85b7a7d0cffc508c062
blob + 96450fbd4068294e958a50c79ef2f8c17f6262dc
--- src/lib9pclient/stat.c
+++ src/lib9pclient/stat.c
@@ -15,7 +15,7 @@ fsdirstat(CFsys *fs, char *name)
 
 	if((fid = fswalk(fs->root, name)) == nil)
 		return nil;
-	
+
 	d = fsdirfstat(fid);
 	fsclose(fid);
 	return d;
@@ -51,4 +51,3 @@ fsdirfstat(CFid *fid)
 	}
 	return d;
 }
-
blob - 26e44f8e86cdb3926b4149378640caccba8a9774
blob + 633f39e390bbb7d68c75d464e1b677406bcc7eb4
--- src/lib9pclient/wstat.c
+++ src/lib9pclient/wstat.c
@@ -15,7 +15,7 @@ fsdirwstat(CFsys *fs, char *name, Dir *d)
 
 	if((fid = fswalk(fs->root, name)) == nil)
 		return -1;
-	
+
 	n = fsdirfwstat(fid, d);
 	fsclose(fid);
 	return n;
blob - 86c9bf0c91a4e6f3c89e9437eb6e9d3efa4b148f
blob + 38252a736f97e6d26d048a14498a2df6f7747549
--- src/libString/s_getline.c
+++ src/libString/s_getline.c
@@ -9,7 +9,7 @@
  * Leading whitespace and newlines are removed.
  *
  * Empty lines and lines starting with '#' are ignored.
- */ 
+ */
 extern char *
 s_getline(Biobuf *fp, String *to)
 {
blob - 5cf2a1414ceb01f50e3e2e2990ce7df75d15bc26
blob + 62cda996c1972cc0208bef0397b80bcb3e1091cf
--- src/libString/s_grow.c
+++ src/libString/s_grow.c
@@ -4,7 +4,7 @@
 
 /* grow a String's allocation by at least `incr' bytes */
 extern String*
-s_grow(String *s, int incr)	
+s_grow(String *s, int incr)
 {
 	char *cp;
 	int size;
@@ -31,4 +31,3 @@ s_grow(String *s, int incr)	
 
 	return s;
 }
-
blob - 27b69850ea0f1ba3dd17a159884e75933dcfb112
blob + 8cbacd185fed8a36982a6064dce672d28e0c1a45
--- src/libString/s_memappend.c
+++ src/libString/s_memappend.c
@@ -17,4 +17,3 @@ s_memappend(String *to, char *from, int n)
 	s_terminate(to);
 	return to;
 }
-
blob - fb41f9328c3576c47a6330c2b747ec205e0fee18
blob + 32470a9e420b20ed75123165dea2b711968b259d
--- src/libString/s_nappend.c
+++ src/libString/s_nappend.c
@@ -15,4 +15,3 @@ s_nappend(String *to, char *from, int n)
 	s_terminate(to);
 	return to;
 }
-
blob - bcf2aef9dcecc7a19cdf3b9c033281a385de624e
blob + 6691356f0709aa03efcdde3683c2a8fea22b076f
--- src/libString/s_parse.c
+++ src/libString/s_parse.c
@@ -19,13 +19,13 @@ s_parse(String *from, String *to)
 		from->ptr++;
 		for (;*from->ptr != '\'' && *from->ptr != '\0'; from->ptr++)
 			s_putc(to, *from->ptr);
-		if (*from->ptr == '\'')	
+		if (*from->ptr == '\'')
 			from->ptr++;
 	} else if (*from->ptr == '"') {
 		from->ptr++;
 		for (;*from->ptr != '"' && *from->ptr != '\0'; from->ptr++)
 			s_putc(to, *from->ptr);
-		if (*from->ptr == '"')	
+		if (*from->ptr == '"')
 			from->ptr++;
 	} else {
 		for (;!isspace(*from->ptr) && *from->ptr != '\0'; from->ptr++)
blob - 520f16a68749966fb3490d9f6bd8e51da1b2fefb
blob + c859b2c518ec3927f79270f36860586f3422801c
--- src/libString/s_rdinstack.c
+++ src/libString/s_rdinstack.c
@@ -89,7 +89,7 @@ out:
  * Leading whitespace and newlines are removed.
  * Lines starting with #include cause us to descend into the new file.
  * Empty lines and other lines starting with '#' are ignored.
- */ 
+ */
 extern char *
 s_rdinstack(Sinstack *sp, String *to)
 {
blob - 7745d677a0d5afea8b4e843acf60fa5afa8c1a7f
blob + 20583ef2590585b51a16067b3394eb1a474a7c69
--- src/libString/s_read.c
+++ src/libString/s_read.c
@@ -11,7 +11,7 @@ enum
 /* Append up to 'len' input bytes to the string 'to'.
  *
  * Returns the number of characters read.
- */ 
+ */
 extern int
 s_read(Biobuf *fp, String *to, int len)
 {
blob - b1de5ac458fd24092c55a3751b5b62c5749e2ac3
blob + e5e2a1d93136185029135987ba139e297895855f
--- src/libString/s_read_line.c
+++ src/libString/s_read_line.c
@@ -7,7 +7,7 @@
  *
  * Returns a pointer to the character string (or 0).
  * Trailing newline is left on.
- */ 
+ */
 extern char *
 s_read_line(Biobuf *fp, String *to)
 {
blob - 8904b4c20e2dc84364868ddab5e1076617cd6839
blob + 3fd9d4fc030e7949e50707578f73a075792dc989
--- src/libacme/acme.c
+++ src/libacme/acme.c
@@ -45,7 +45,7 @@ openwin(int id, CFid *ctl)
 {
 	char buf[100];
 	Win *w;
-	
+
 	mountacme();
 	if(ctl == nil){
 		snprint(buf, sizeof buf, "%d/ctl", id);
@@ -166,7 +166,7 @@ int
 winopenfd(Win *w, char *name, int mode)
 {
 	char buf[100];
-	
+
 	snprint(buf, sizeof buf, "%d/%s", w->id, name);
 	return fsopenfd(acmefs, buf, mode);
 }
@@ -243,7 +243,7 @@ winreadaddr(Win *w, uint *q1)
 	char buf[40], *p;
 	uint q0;
 	int n;
-	
+
 	n = fspread(wfid(w, "addr"), buf, sizeof buf-1, 0);
 	if(n <= 0)
 		return -1;
@@ -271,7 +271,7 @@ winmread(Win *w, char *file)
 {
 	char *buf;
 	int n, tot, m;
-	
+
 	m = 128;
 	buf = emalloc(m+1);
 	tot = 0;
@@ -568,7 +568,7 @@ eventreader(void *v)
 	Event e[2];
 	Win *w;
 	int i;
-	
+
 	w = v;
 	i = 0;
 	for(;;){
blob - 8adeefe6c7841135c880ed70607085d44909c088
blob + be8d1ad31bbd372a7d332c0b514a1114e7bcf4bd
--- src/libauth/attr.c
+++ src/libauth/attr.c
@@ -174,4 +174,3 @@ _strfindattr(Attr *a, char *n)
 		return nil;
 	return a->val;
 }
-
blob - 257bafe76e5526b308de60971599c7440c495d83
blob + a5fe4411719bba5bfce246dd060d7c1ce7e7b71a
--- src/libauth/auth_proxy.c
+++ src/libauth/auth_proxy.c
@@ -5,7 +5,7 @@
 #include <9pclient.h>
 #include "authlocal.h"
 
-enum { 
+enum {
 	ARgiveup = 100
 };
 
@@ -291,4 +291,3 @@ fsauth_proxy(CFid *fid, AuthGetkey *getkey, char *fmt,
 	auth_freerpc(rpc);
 	return ai;
 }
-
blob - b3cf6665f16a877f6e0899d81066a83c45a2c31a
blob + 4e27190037a9b57aaef511f73c05157c43edc60a
--- src/libauth/auth_respond.c
+++ src/libauth/auth_respond.c
@@ -61,5 +61,5 @@ auth_respond(void *chal, uint nchal, char *user, uint 
 
 	_freeattr(a);
 	auth_freerpc(rpc);
-	return nresp;	
+	return nresp;
 }
blob - bece208a305d138dab08ab0d1d4c5026fa3acc2f
blob + 4cb33bbd1fd0bf158c468cd7ef027e179da3aa8c
--- src/libauth/fsamount.c
+++ src/libauth/fsamount.c
@@ -11,7 +11,7 @@ fsamount(int fd, char *aname)
 	CFid *afid, *fid;
 	AuthInfo *ai;
 	CFsys *fs;
-	
+
 	fs = fsinit(fd);
 	if(fs == nil)
 		return nil;
@@ -30,4 +30,3 @@ noauth:
 	fssetroot(fs, fid);
 	return fs;
 }
-
blob - 1447904ac733cc5d26a386cca9e4f16e04bc987d
blob + 4e9b827afc8366215fd869b16f3935bfbaf7d012
--- src/libauth/nsamount.c
+++ src/libauth/nsamount.c
@@ -11,7 +11,7 @@ nsamount(char *name, char *aname)
 	CFid *afid, *fid;
 	AuthInfo *ai;
 	CFsys *fs;
-	
+
 	fs = nsinit(name);
 	if(fs == nil)
 		return nil;
@@ -30,4 +30,3 @@ noauth:
 	fssetroot(fs, fid);
 	return fs;
 }
-
blob - 372825a872ac39dc29500518363db2bc11bf1e6b
blob + 427520a535c632a54688c948f96266fefaa1a2d2
--- src/libauthsrv/convM2T.c
+++ src/libauthsrv/convM2T.c
@@ -25,4 +25,3 @@ convM2T(char *ap, Ticket *f, char *key)
 	STRING(key, DESKEYLEN);
 	USED(p);
 }
-
blob - 8b2422f1b5e2064e6655b777972a2547f9bdc2a6
blob + 7efc0b2dd878dea8caab0c1fde54939643c19e51
--- src/libauthsrv/convPR2M.c
+++ src/libauthsrv/convPR2M.c
@@ -25,4 +25,3 @@ convPR2M(Passwordreq *f, char *ap, char *key)
 		encrypt(key, ap, n);
 	return n;
 }
-
blob - 3a7610a713808d3e0c72a95e4d6519a3564fb1a3
blob + 04000aad4b368a49f21e997c2a552b4e0e00817a
--- src/libauthsrv/convTR2M.c
+++ src/libauthsrv/convTR2M.c
@@ -24,4 +24,3 @@ convTR2M(Ticketreq *f, char *ap)
 	n = p - (uchar*)ap;
 	return n;
 }
-
blob - f65db9846139ccfc7f88c8c8ea37f94252c2400a
blob + 337203f78d7dfd9fd6e5f267dc635b8e4ceac2a7
--- src/libauthsrv/readnvram.c
+++ src/libauthsrv/readnvram.c
@@ -45,7 +45,7 @@ static char*
 xreadcons(char *prompt, char *def, int secret, char *buf, int nbuf)
 {
 	char *p;
-	
+
 	p = readcons(prompt, def, secret);
 	if(p == nil)
 		return nil;
@@ -280,7 +280,7 @@ finddosfile(int fd, char *file)
 	if(rootsects <= 0 || rootsects > 64)
 		return -1;
 
-	/* 
+	/*
 	 *  read root. it is contiguous to make stuff like
 	 *  this easier
 	 */
@@ -305,4 +305,3 @@ finddosfile(int fd, char *file)
 	 */
 	return rootoff + rootsects*sectsize + (n-2)*sectsize*b->clustsize;
 }
-
blob - 7c9b39e9325fb6d422448fca06aed9a86a23bd1c
blob + cc8e53d828bc8e2a6a88deabfd1838129b80f5e3
--- src/libbio/bcat.c
+++ src/libbio/bcat.c
@@ -14,7 +14,7 @@ bcat(Biobuf *b, char *name)
 			fprint(2, "writing during %s: %r\n", name);
 	}
 	if(n < 0)
-		fprint(2, "reading %s: %r\n", name);	
+		fprint(2, "reading %s: %r\n", name);
 }
 
 int
blob - 52baf517178584aa36f24c7b397f00f420b53fc8
blob + 30d40db4c224e2056531f63445a931e1f96908f9
--- src/libbio/brdstr.c
+++ src/libbio/brdstr.c
@@ -99,7 +99,7 @@ Brdstr(Biobuf *bp, int delim, int nulldelim)
 			}
 			ip += j;
 		}
-	
+
 		/*
 		 * full buffer without finding; add to user string and continue
 		 */
blob - 60b105fa5092c5cbfb0a8a11248bd24eb706a40c
blob + 0b1aaf6b928c25b8f90ab4438e3995115db9e558
--- src/libbio/bvprint.c
+++ src/libbio/bvprint.c
@@ -1,7 +1,7 @@
 #include "lib9.h"
 #include <bio.h>
 
-static int 
+static int
 fmtBflush(Fmt *f)
 {
 	Biobuf *bp;
blob - 180471e16c78f0e1e559670b2be3083d2640958f
blob + e4897023a988b7f01f375bf51f7cdf2096ec078d
--- src/libbio/lib9.std.h
+++ src/libbio/lib9.std.h
@@ -23,4 +23,3 @@ typedef unsigned long long uvlong;
 
 #define seek(fd, offset, whence) lseek(fd, offset, whence)
 #define create(name, mode, perm) creat(name, perm)
-
blob - 3428c46758a9a14264e6263070145bec124a9f69
blob + 0230d3290356a006e04e61955f278e166e0c658c
--- src/libdisk/disk.c
+++ src/libdisk/disk.c
@@ -16,16 +16,16 @@ mkwidth(Disk *disk)
 
 /*
  * Discover the disk geometry by various sleazeful means.
- * 
+ *
  * First, if there is a partition table in sector 0,
  * see if all the partitions have the same end head
- * and sector; if so, we'll assume that that's the 
+ * and sector; if so, we'll assume that that's the
  * right count.
- * 
+ *
  * If that fails, we'll try looking at the geometry that the ATA
  * driver supplied, if any, and translate that as a
- * BIOS might. 
- * 
+ * BIOS might.
+ *
  * If that too fails, which should only happen on a SCSI
  * disk with no currently defined partitions, we'll try
  * various common (h, s) pairs used by BIOSes when faking
@@ -252,7 +252,7 @@ opensd(Disk *disk)
 		}
 	}
 
-	
+
 	disk->size = disk->secs * disk->secsize;
 	if(disk->size <= 0) {
 		strcpy(disk->part, "");
@@ -345,4 +345,3 @@ opendisk(char *disk, int rdonly, int noctl)
 	d->type = Tfile;
 	return openfile(d);
 }
-
blob - ee30fc92a5d278e9aaaebad58aaba5c8f05b78f8
blob + 43e3d9c49d11f39b4e1d5e54cd9b9617189d9d41
--- src/libdisk/proto.c
+++ src/libdisk/proto.c
@@ -13,7 +13,7 @@ enum {
 #undef warn
 #define warn protowarn
 
-#undef getmode 
+#undef getmode
 #define getmode protogetmode
 
 typedef struct File File;
@@ -287,7 +287,7 @@ mkpath(Mkaux *mkaux, char *prefix, char *elem)
 static void
 setnames(Mkaux *mkaux, File *f)
 {
-	
+
 	if(f->old){
 		if(f->old[0] == '/')
 			setname(mkaux, &mkaux->oldfile, f->old, "");
blob - 3f351053a369d74a85114140d68a959b905961f2
blob + b790ef3b0756310c8755aee8efa7b3aa1e94fb84
--- src/libdisk/scsi.c
+++ src/libdisk/scsi.c
@@ -1,7 +1,7 @@
 /*
  * Now thread-safe.
  *
- * The codeqlock guarantees that once codes != nil, that pointer will never 
+ * The codeqlock guarantees that once codes != nil, that pointer will never
  * change nor become invalid.
  *
  * The QLock in the Scsi structure moderates access to the raw device.
@@ -62,7 +62,7 @@ getcodes(void)
 	codes[n] = '\0';
 	qunlock(&codeqlock);
 }
-	
+
 char*
 scsierror(int asc, int ascq)
 {
@@ -228,11 +228,11 @@ scsi(Scsi *s, uchar *cmd, int ccount, void *v, int dco
 		if((n=_scsicmd(s, req, sizeof(req), sense, sizeof(sense), Sread, 0)) < 14)
 			if(scsiverbose)
 				fprint(2, "reqsense scsicmd %d: %r\n", n);
-	
+
 		if(_scsiready(s, 0) < 0)
 			if(scsiverbose)
 				fprint(2, "unit not ready\n");
-	
+
 		key = sense[2];
 		code = sense[12];
 		if(code == 0x17 || code == 0x18) {	/* recovered errors */
@@ -319,7 +319,7 @@ openscsi(char *dev)
 	s->rawfd = rawfd;
 	s->inquire = p;
 	s->changetime = time(0);
-	
+
 	if(scsiready(s) < 0)
 		goto Error1;
 
blob - 94ea511163f17741c45dfe03a861743ab0082188
blob + 552078a9e5ecda28fd5421273ba24ab3248d51ca
--- src/libdiskfs/block.c
+++ src/libdiskfs/block.c
@@ -46,7 +46,7 @@ blockput(Block *b)
 		return;
 	if(!b->_close){
 		fprint(2, "no blockPut\n");
-		abort();	
+		abort();
 	}
 	(*b->_close)(b);
 }
blob - 7b06fa4f3e0235809ca35e3c2012d54bd9364d02
blob + 2888ae8369eacda90185446424cbfddedf30f798
--- src/libdiskfs/cache.c
+++ src/libdiskfs/cache.c
@@ -3,7 +3,7 @@
 #include <diskfs.h>
 
 /*
- * Disk cache.  Caches by offset, so higher levels have 
+ * Disk cache.  Caches by offset, so higher levels have
  * to deal with alignment issues (if we get asked for the
  * blocks at offsets 0 and 1, we'll do two reads).
  */
@@ -43,7 +43,7 @@ addtohash(DiskCache *d, DiskCacheBlock *b, u64int offs
 
 	if(b->offset != ~(u64int)0){
 		fprint(2, "bad offset in addtohash\n");
-		return;	
+		return;
 	}
 	b->offset = offset;
 	h = offset % d->nhash;
@@ -227,8 +227,8 @@ diskcacheread(Disk *dd, u32int len, u64int offset)
 	return b;
 }
 
-/* 
- * It's okay to remove these from the hash table. 
+/*
+ * It's okay to remove these from the hash table.
  * Either the block is in use by someone or it is on
  * the lru list.  If it's in use it will get put on the lru
  * list once the refs go away.
@@ -264,7 +264,7 @@ diskcacheclose(Disk *dd)
 		blockput(b->subblock);
 	free(d);
 }
-		
+
 /* needn't be fast */
 static int
 isprime(int n)
blob - b55f1eb3dadc4d18291f14212b1d1b77af23ffac
blob + ce16f37d3d8e9b3858f89ed0d890b88d14849aac
--- src/libdiskfs/ext2.c
+++ src/libdiskfs/ext2.c
@@ -103,7 +103,7 @@ ext2blockread(Fsys *fsys, u64int vbno)
 	if(bno != vbno)
 		return nil;
 
-/*	
+/*
 	if(bno < fs->firstblock)
 		return diskread(fs->disk, fs->blocksize, (u64int)bno*fs->blocksize);
 */
@@ -142,7 +142,7 @@ ext2blockread(Fsys *fsys, u64int vbno)
 	if((bits[boff>>3] & (1<<(boff&7))) == 0){
 		if(debug)
 			fprint(2, "block %d not allocated in group %d: bitblock %d/%lld bits[%d] = %#x\n",
-				boff, bno/fs->blockspergroup, 
+				boff, bno/fs->blockspergroup,
 				(int)bitblock,
 				bitpos,
 				boff>>3,
@@ -174,7 +174,7 @@ ext2fileblock(Ext2 *fs, Inode *ino, u32int bno, int si
 	obno = bno;
 	if(bno < NDIRBLOCKS){
 		if(debug)
-			fprint(2, "fileblock %d -> %d...", 
+			fprint(2, "fileblock %d -> %d...",
 				bno, ino->block[bno]);
 		return ext2datablock(fs, ino->block[bno], size);
 	}
@@ -592,7 +592,7 @@ ext2readdir(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h
 	if((ok = inoperm(&ino, au, AREAD)) != Nfs3Ok)
 		return ok;
 
-	if(debug) print("readdir cookie %#llux ino.size %#llux\n", 
+	if(debug) print("readdir cookie %#llux ino.size %#llux\n",
 		(u64int)cookie, (u64int)ino.size);
 
 	if(cookie >= ino.size){
blob - 7ddd400a94457930b7e37d45a6a32d297edb3bb6
blob + f4c32ce3a9d1aa297927965769f1ef2d92a97243
--- src/libdiskfs/ext2.h
+++ src/libdiskfs/ext2.h
@@ -80,7 +80,7 @@ struct Super
 	u32int	revlevel;		/* Revision level */
 	u16int	defresuid;		/* Default uid for reserved blocks */
 	u16int	defresgid;		/* Default gid for reserved blocks */
-	
+
 	/* the following are only available with revlevel = 1 */
 	u32int	firstino;		/* First non-reserved inode */
 	u16int	inosize;		/* size of inode structure */
@@ -161,4 +161,3 @@ struct Ext2
 	Disk *disk;
 	Fsys *fsys;
 };
-
blob - 4d12512c832090dafb8f0d810353305b12b676de
blob + 0eb1c995e962ddf0c13cff235606a7b3c6d34ae2
--- src/libdiskfs/fat.c
+++ src/libdiskfs/fat.c
@@ -8,4 +8,3 @@ fsysopenfat(Disk *disk)
 	USED(disk);
 	return nil;
 }
-
blob - d8e2339245c284d54173c45f8d837f9ad958519c
blob + 70552e492fa1a9202f06656f9e5ee48de82a27a2
--- src/libdiskfs/ffs.c
+++ src/libdiskfs/ffs.c
@@ -124,8 +124,8 @@ okay:
 	fs->nfrag = fsblk->nfrag;
 	fs->ndfrag = fsblk->ndfrag;
 	/*
-	 * used to use 
-	 *	fs->blockspergroup = (u64int)fsblk->_cylspergroup * 
+	 * used to use
+	 *	fs->blockspergroup = (u64int)fsblk->_cylspergroup *
 	 *		fsblk->secspercyl * BYTESPERSEC / fsblk->blocksize;
 	 * for UFS1, but this should work for both UFS1 and UFS2
 	 */
@@ -190,7 +190,7 @@ ffsclose(Fsys *fsys)
 	free(fs);
 	free(fsys);
 }
-	
+
 static int
 checkfsblk(Fsblk *super)
 {
@@ -311,7 +311,7 @@ ffsdatablock(Ffs *fs, u64int bno, int size)
 		blockput(b);
 		return nil;
 	}
-	
+
 	return b;
 }
 
@@ -319,7 +319,7 @@ static u64int
 ifetch(Ffs *fs, u64int bno, u32int off)
 {
 	Block *b;
-	
+
 	if(bno == BADBNO)
 		return BADBNO;
 	b = ffsdatablock(fs, bno, fs->blocksize);
@@ -352,10 +352,10 @@ ffsfileblockno(Ffs *fs, Inode *ino, u64int bno)
 	if(bno < ppb*ppb)
 		return ifetch(fs, ifetch(fs, ino->ib[1], bno/ppb), bno%ppb);
 	bno -= ppb*ppb;
-	
+
 	if(bno/ppb/ppb/ppb == 0)	/* bno < ppb*ppb*ppb w/o overflow */
 		return ifetch(fs, ifetch(fs, ifetch(fs, ino->ib[2], bno/ppb/ppb), (bno/ppb)%ppb), bno%ppb);
-	
+
 	fprint(2, "ffsfileblock %llud: way too big\n", bno+NDADDR+ppb+ppb*ppb);
 	return BADBNO;
 }
@@ -364,7 +364,7 @@ static Block*
 ffsfileblock(Ffs *fs, Inode *ino, u64int bno, int size)
 {
 	u64int b;
-	
+
 	b = ffsfileblockno(fs, ino, bno);
 	if(b == ~0)
 		return nil;
@@ -396,7 +396,7 @@ static void
 inode1to2(Inode1 *i1, Inode *i2)
 {
 	int i;
-	
+
 	memset(i2, 0, sizeof *i2);
 	i2->mode = i1->mode;
 	i2->nlink = i1->nlink;
@@ -777,7 +777,7 @@ ffsxfileblock(Fsys *fsys, Nfs3Handle *h, u64int offset
 	Inode ino;
 	Nfs3Status ok;
 	Ffs *fs;
-	
+
 	fs = fsys->priv;
 	if((ok = handle2ino(fs, h, nil, &ino)) != Nfs3Ok){
 		nfs3errstr(ok);
blob - 6a5a387d3c6fc2ed3101a92603b0fe90c62d37bc
blob + d7881f15f8d03d6537286fdc2bd7a218ff75dccb
--- src/libdiskfs/ffs.h
+++ src/libdiskfs/ffs.h
@@ -40,7 +40,7 @@ enum
 	FSMAGIC = 0x011954,
 	FSMAGIC2 = 0x19540119,
 	FSCHECKSUM = 0x7c269d38,
-	
+
 	/* Fsblk.inodefmt */
 	FS42INODEFMT = -1,
 	FS44INODEFMT = 2,
@@ -341,4 +341,3 @@ struct Ffs
 
 	Disk		*disk;
 };
-
blob - 6784dab4009c0225a1f63056587202ab9a60e5e6
blob + 03e97a15a4bc14acee8a2a7881344e64761be733
--- src/libdiskfs/hfs.c
+++ src/libdiskfs/hfs.c
@@ -89,7 +89,7 @@ fsysopenhfs(Disk *disk)
 	fsys->_readdir = hfsreaddir;
 	fsys->_close = hfsclose;
 	fsys->disk = disk;
-	
+
 	if(hfswrapper(fsys) < 0 || hfssync(fsys) < 0)
 		goto error;
 
@@ -130,7 +130,7 @@ hfswrapper(Fsys *fsys)
 	int magic, hfsstart, subsig, substart, subnblocks;
 	u32int hfsblocksize;
 	u64int offset, size;
-	
+
 	fs = fsys->priv;
 	disk = fsys->disk;
 	if((b = diskread(disk, 162, 1024)) == nil)
@@ -143,12 +143,12 @@ hfswrapper(Fsys *fsys)
 	substart = get16(mdb+126);
 	subnblocks = get16(mdb+128);
 	blockput(b);
-	
+
 	if(magic != Hfssig)
 		return 0;
 	if(subsig != Hfsplussig && subsig != Hfsxsig)
 		return 0;
-	
+
 	offset = hfsstart*512 + substart*hfsblocksize;
 	size = subnblocks*hfsblocksize;
 
@@ -748,7 +748,7 @@ hfsreaddir(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h,
 	if(ino.u.nentries>>31)
 		return Nfs3ErrIo;
 	nentries = ino.u.nentries*2;	/* even data, odd resource */
-	
+
 	i = cookie>>32;
 	cnid = cookie&0xFFFFFFFF;
 	if(debug) print("readdir %ud %ud %ud...", cnid, i, nentries);
@@ -784,7 +784,7 @@ hfsreaddir(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h,
 			goto badparent;
 		i++;
 	}
-	
+
 	memset(&e, 0, sizeof e);
 	for(; i<nentries; i++){
 		rsrc = i&1;
blob - 662c33895eda4c70f41827bb7112f9f2fb829832
blob + bf5ebc9fe7016ed478385d2f492e9de5a76e4f5d
--- src/libdiskfs/hfs.h
+++ src/libdiskfs/hfs.h
@@ -3,12 +3,12 @@
 	wrapper.
 
 	Apple technical note 1150 documents the file system:
-	
+
 	http://developer.apple.com/technotes/tn/tn1150.html
-	
+
 	Briefly an hfs file system comprises a volume header, an
 	optional journal, and a set of forks.
-	
+
 	Most fs metadata resides in forks including a block allocation
 	bitmap, a tree storing extents (q.v.) for forks and bad disk
 	blocks, and a tree storing catalog (file and directory)
@@ -52,11 +52,11 @@ enum
 
 	NAMELEN = 255,
 	UTFNAMELEN = NAMELEN*UTFmax,
-	
+
 	NEXTENTS = 8,
-	
+
 	Dfork = 0, Rfork = 255,
-	
+
 	/* fixed cnids */
 	RootpId = 1, RootId, ExtentsId, CatalogId,
 	BadblockId, AllocId, MinuserId = 16,
@@ -71,7 +71,7 @@ enum
 
 	/* values in Node.type */
 	LeafNode = -1, IndexNode, HeaderNode, MapNode,
-	
+
 	/* catalog record types */
 	Folder = 1, File, FolderThread, FileThread,
 
@@ -163,14 +163,14 @@ struct Treeref
 {
 	Tree	*tree;
 	u32int	cnid;		/* tree->fork->cnid, for debugging prints */
-	
+
 	Block	*block;		/* a node in the tree */
 	u32int	nno;
 	Node	node;
-	
+
 	int	rno;		/* a record in the node */
 	int	klen;
-	uchar	*key;	
+	uchar	*key;
 	int	dlen;
 	uchar	*data;
 };
blob - 51d7c5e30b3ed61e35e17a56bceee1e1747a6953
blob + 216ad2775ee446b7724104af82e9bd707d5aaac4
--- src/libdiskfs/kfs.c
+++ src/libdiskfs/kfs.c
@@ -8,4 +8,3 @@ fsysopenkfs(Disk *disk)
 	USED(disk);
 	return nil;
 }
-
blob - dc5d171f877e0bf0692e6526c895e5a606506146
blob + 0da5a2346cc67cc9fd90a64ce72f791e60e2dd09
--- src/libdiskfs/part.c
+++ src/libdiskfs/part.c
@@ -27,7 +27,7 @@ static int
 diskpartsync(Disk *dd)
 {
 	DiskPart *d = (DiskPart*)dd;
-	
+
 	if(d->subdisk)
 		return disksync(d->subdisk);
 	return 0;
@@ -37,7 +37,7 @@ static void
 diskpartclose(Disk *dd)
 {
 	DiskPart *d = (DiskPart*)dd;
-	
+
 	if(d->subdisk)
 		diskclose(d->subdisk);
 	free(d);
@@ -47,18 +47,18 @@ Disk*
 diskpart(Disk *subdisk, u64int offset, u64int size)
 {
 	DiskPart *d;
-	
+
 	d = mallocz(sizeof(DiskPart), 1);
 	if(d == nil)
 		return nil;
-	
+
 	d->subdisk = subdisk;
 	d->offset = offset;
 	d->size = size;
 	d->disk._read = diskpartread;
 	d->disk._sync = diskpartsync;
 	d->disk._close = diskpartclose;
-	
+
 	return &d->disk;
 }
 
blob - a497d5e06d3034168c026fed54a04eac78f29b67
blob + c6f15cae1e66d9c22c766eb4a0fc0cb07b93390e
--- src/libdiskfs/venti.c
+++ src/libdiskfs/venti.c
@@ -159,4 +159,3 @@ Err:
 	_nfilereads_darwin_sucks();  /* force Darwin ld to pull in file.o */
 	return nil;
 }
-
blob - 72ca0446c71c73aff19c60236211b6e2613321ec
blob + d9be4b123e8b18b2898e4cbd97550e1e8c2fb76f
--- src/libdiskfs/vfile.c
+++ src/libdiskfs/vfile.c
@@ -31,5 +31,3 @@ diskVentiRead(Disk *dd, u32int len, u64int offset)
 	walk down blocks
 	return the one
 }
-
-
blob - 09d60ec9cb3b19f17fdb87ee56bff20dbfa48d8f
blob + 6d2b2d1567835232c0049ef5b0cb8f77d73d4d50
--- src/libdraw/allocimagemix.c
+++ src/libdraw/allocimagemix.c
@@ -10,7 +10,7 @@ allocimagemix(Display *d, u32int color1, u32int color3
 
 	if(qmask == nil)
 		qmask = allocimage(d, Rect(0,0,1,1), GREY8, 1, 0x3F3F3FFF);
-		
+
 	if(d->screenimage->depth <= 8){	/* create a 2×2 texture */
 		t = allocimage(d, Rect(0,0,1,1), d->screenimage->chan, 0, color1);
 		if(t == nil)
blob - 1b19fc1c42a98bf81368b1a519134304a3175651
blob + d7c067a3fb6d8a588da2c72d922e6fcad1b8483a
--- src/libdraw/arith.c
+++ src/libdraw/arith.c
@@ -201,4 +201,3 @@ Pfmt(Fmt *f)
 	p = va_arg(f->args, Point);
 	return fmtprint(f, "[%d %d]", p.x, p.y);
 }
-
blob - 02d976e1745ada42bc9355bb669a3e138847fd0a
blob + 5425ad44685c37f9a70fb51af60b7982c40b137d
--- src/libdraw/buildfont.c
+++ src/libdraw/buildfont.c
@@ -154,7 +154,7 @@ freefont(Font *f)
 			f->display->firstfont = f->next;
 	}
 
-	if(f->lodpi != f)	
+	if(f->lodpi != f)
 		freefont(f->lodpi);
 	if(f->hidpi != f)
 		freefont(f->hidpi);
blob - 5e94b016145ca11d827a7880b971137304833ab3
blob + 0cf2b668e36bd444259a06de61fbac156d0d6723
--- src/libdraw/chan.c
+++ src/libdraw/chan.c
@@ -42,7 +42,7 @@ strtochan(char *s)
 		p++;
 
 	while(*p && !isspace((uchar)*p)){
-		if((q = strchr(channames, p[0])) == nil) 
+		if((q = strchr(channames, p[0])) == nil)
 			return 0;
 		t = q-channames;
 		if(p[1] < '0' || p[1] > '9')
blob - 30a3d11e63e9a969b03993229f875643fd99d50b
blob + b1dc2999b9d2145a4d9a17fb7f882fbf18dfe99c
--- src/libdraw/computil.c
+++ src/libdraw/computil.c
@@ -3,7 +3,7 @@
 #include <draw.h>
 
 /*
- * compressed data are seuences of byte codes.  
+ * compressed data are seuences of byte codes.
  * if the first byte b has the 0x80 bit set, the next (b^0x80)+1 bytes
  * are data.  otherwise, it's two bytes specifying a previous string to repeat.
  */
blob - d3f83e8859975294320676ee3b302c1438c17581
blob + f72d35dff1f2db87d72a5e18b8e2282253472e8b
--- src/libdraw/draw.c
+++ src/libdraw/draw.c
@@ -15,7 +15,7 @@ _setdrawop(Display *d, Drawop op)
 		a[1] = op;
 	}
 }
-		
+
 static void
 draw1(Image *dst, Rectangle *r, Image *src, Point *p0, Image *mask, Point *p1, Drawop op)
 {
blob - f0b1d388a4d15be9ff5a93a5077754944d396f94
blob + ef0356b8b0d2c38ef83d7b4372f689dd8b68f5fc
--- src/libdraw/drawclient.c
+++ src/libdraw/drawclient.c
@@ -23,10 +23,10 @@ int
 _displayconnect(Display *d)
 {
 	int pid, p[2];
-	
+
 	fmtinstall('W', drawfcallfmt);
 	fmtinstall('H', encodefmt);
-	
+
 	if(pipe(p) < 0)
 		return -1;
 	if((pid=fork()) < 0){
@@ -84,7 +84,7 @@ _displaymux(Display *d)
 	d->mux->settag = drawsettag;
 	d->mux->aux = d;
 	muxinit(d->mux);
-	
+
 	return 0;
 }
 
@@ -94,7 +94,7 @@ drawsend(Mux *mux, void *vmsg)
 	int n;
 	uchar *msg;
 	Display *d;
-	
+
 	msg = vmsg;
 	GET(msg, n);
 	d = mux->aux;
@@ -148,7 +148,7 @@ drawgettag(Mux *mux, void *vmsg)
 {
 	uchar *msg;
 	USED(mux);
-	
+
 	msg = vmsg;
 	return msg[4];
 }
@@ -158,7 +158,7 @@ drawsettag(Mux *mux, void *vmsg, uint tag)
 {
 	uchar *msg;
 	USED(mux);
-	
+
 	msg = vmsg;
 	msg[4] = tag;
 	return 0;
@@ -169,7 +169,7 @@ displayrpc(Display *d, Wsysmsg *tx, Wsysmsg *rx, void 
 {
 	int n, nn;
 	void *tpkt, *rpkt;
-	
+
 	n = sizeW2M(tx);
 	tpkt = malloc(n);
 	if(freep)
@@ -295,7 +295,7 @@ int
 _displaycursor(Display *d, Cursor *c, Cursor2 *c2)
 {
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Tcursor2;
 	if(c == nil){
 		memset(&tx.cursor, 0, sizeof tx.cursor);
@@ -316,7 +316,7 @@ int
 _displaybouncemouse(Display *d, Mouse *m)
 {
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Tbouncemouse;
 	tx.mouse = *m;
 	return displayrpc(d, &tx, &rx, nil);
@@ -326,7 +326,7 @@ int
 _displaylabel(Display *d, char *label)
 {
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Tlabel;
 	tx.label = label;
 	return displayrpc(d, &tx, &rx, nil);
@@ -338,7 +338,7 @@ _displayrdsnarf(Display *d)
 	void *p;
 	char *s;
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Trdsnarf;
 	if(displayrpc(d, &tx, &rx, &p) < 0)
 		return nil;
@@ -351,7 +351,7 @@ int
 _displaywrsnarf(Display *d, char *snarf)
 {
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Twrsnarf;
 	tx.snarf = snarf;
 	return displayrpc(d, &tx, &rx, nil);
@@ -362,7 +362,7 @@ _displayrddraw(Display *d, void *v, int n)
 {
 	void *p;
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Trddraw;
 	tx.count = n;
 	if(displayrpc(d, &tx, &rx, &p) < 0)
@@ -376,7 +376,7 @@ int
 _displaywrdraw(Display *d, void *v, int n)
 {
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Twrdraw;
 	tx.count = n;
 	tx.data = v;
@@ -398,7 +398,7 @@ int
 _displayresize(Display *d, Rectangle r)
 {
 	Wsysmsg tx, rx;
-	
+
 	tx.type = Tresize;
 	tx.rect = r;
 	return displayrpc(d, &tx, &rx, nil);
@@ -409,7 +409,7 @@ canreadfd(int fd)
 {
 	fd_set rs, ws, xs;
 	struct timeval tv;
-	
+
 	FD_ZERO(&rs);
 	FD_ZERO(&ws);
 	FD_ZERO(&xs);
@@ -423,4 +423,3 @@ canreadfd(int fd)
 		return 1;
 	return 0;
 }
-
blob - 09051bbc00861fdefabdcac15498f6c39190dfb1
blob + c74b3fafb6d22d56d621fee72a74ade97db7ce87
--- src/libdraw/drawfcall.c
+++ src/libdraw/drawfcall.c
@@ -17,7 +17,7 @@ static int
 PUTSTRING(uchar *p, char *s)
 {
 	int n;
-	
+
 	if(s == nil)
 		s = "";
 	n = strlen(s);
@@ -30,14 +30,14 @@ static int
 GETSTRING(uchar *p, char **s)
 {
 	int n;
-	
+
 	GET(p, n);
 	memmove(p, p+4, n);
 	*s = (char*)p;
 	p[n] = 0;
 	return n+4;
 }
-	
+
 uint
 sizeW2M(Wsysmsg *m)
 {
@@ -96,7 +96,7 @@ uint
 convW2M(Wsysmsg *m, uchar *p, uint n)
 {
 	int nn;
-	
+
 	nn = sizeW2M(m);
 	if(n < nn || nn == 0 || n < 6)
 		return 0;
@@ -188,7 +188,7 @@ convW2M(Wsysmsg *m, uchar *p, uint n)
 		PUT(p+14, m->rect.max.x);
 		PUT(p+18, m->rect.max.y);
 		break;
-	}		
+	}
 	return nn;
 }
 
@@ -196,7 +196,7 @@ uint
 convM2W(uchar *p, uint n, Wsysmsg *m)
 {
 	int nn;
-	
+
 	if(n < 6)
 		return 0;
 	GET(p, nn);
@@ -288,7 +288,7 @@ convM2W(uchar *p, uint n, Wsysmsg *m)
 		GET(p+14, m->rect.max.x);
 		GET(p+18, m->rect.max.y);
 		break;
-	}	
+	}
 	return nn;
 }
 
@@ -313,7 +313,7 @@ int
 drawfcallfmt(Fmt *fmt)
 {
 	Wsysmsg *m;
-	
+
 	m = va_arg(fmt->args, Wsysmsg*);
 	fmtprint(fmt, "tag=%d ", m->tag);
 	switch(m->type){
@@ -325,7 +325,7 @@ drawfcallfmt(Fmt *fmt)
 		return fmtprint(fmt, "Trdmouse");
 	case Rrdmouse:
 		return fmtprint(fmt, "Rrdmouse x=%d y=%d buttons=%d msec=%d resized=%d",
-			m->mouse.xy.x, m->mouse.xy.y, 
+			m->mouse.xy.x, m->mouse.xy.y,
 			m->mouse.buttons, m->mouse.msec, m->resized);
 	case Tbouncemouse:
 		return fmtprint(fmt, "Tbouncemouse x=%d y=%d buttons=%d",
blob - c72fee26a737325752a67b228fd5d68887e39ad7
blob + 77c20d43aefd143a7f63055b4d239b19e7223c5f
--- src/libdraw/drawrepl.c
+++ src/libdraw/drawrepl.c
@@ -20,4 +20,3 @@ drawrepl(Rectangle r, Point p)
 	p.y = drawreplxy(r.min.y, r.max.y, p.y);
 	return p;
 }
-
blob - b369c020020e51491281414351844e949b17e169
blob + 9d7e10c23607cf5f624ed3368150ce72bf128064
--- src/libdraw/event.c
+++ src/libdraw/event.c
@@ -187,7 +187,7 @@ static Ebuf*
 newebuf(Slave *s, int n)
 {
 	Ebuf *eb;
-	
+
 	eb = malloc(sizeof(*eb) - sizeof(eb->u.buf) + n);
 	if(eb == nil)
 		drawerror(display, "events: out of memory");
@@ -205,7 +205,7 @@ startrpc(int type)
 {
 	uchar buf[100];
 	Wsysmsg w;
-	
+
 	w.type = type;
 	convW2M(&w, buf, sizeof buf);
 	return muxrpcstart(display->mux, buf);
@@ -217,7 +217,7 @@ finishrpc(Muxrpc *r, Wsysmsg *w)
 	uchar *p;
 	void *v;
 	int n;
-	
+
 	if(!muxrpccanfinish(r, &v))
 		return 0;
 	p = v;
@@ -245,9 +245,9 @@ extract(int canblock)
 	 * Also make sure that we don't interfere with app-specific locking.
 	 */
 	if(display->locking){
-		/* 
-		 * if locking is being done by program, 
-		 * this means it can't depend on automatic 
+		/*
+		 * if locking is being done by program,
+		 * this means it can't depend on automatic
 		 * flush in emouse() etc.
 		 */
 		if(canqlock(&display->qlock)){
@@ -311,7 +311,7 @@ extract(int canblock)
 				max = eslave[i].fd;
 		}
 	}
-	
+
 	if(!canblock){
 		tv.tv_sec = 0;
 		tv.tv_usec = 0;
@@ -437,4 +437,3 @@ ereadmouse(Mouse *m)
 		eresized(1);
 	return 1;
 }
-
blob - c0235c4b3a57b5e5cd59f8d71a4276aa6f784e84
blob + 34121aafac7ea8c15d5c3b2e96f93b563a6ed21f
--- src/libdraw/font.c
+++ src/libdraw/font.c
@@ -54,7 +54,7 @@ cachechars(Font *f, char **ss, Rune **rr, ushort *cp, 
 			c++;
 			h++;
 		}
-	
+
 		/*
 		 * Not found; toss out oldest entry
 		 */
@@ -91,7 +91,7 @@ cachechars(Font *f, char **ss, Rune **rr, ushort *cp, 
 			break;
 		}
 		c = &f->cache[h];	/* may have reallocated f->cache */
-	
+
 	    Found:
 		wid += c->width;
 		c->age = f->age;
blob - ba6753909402e8e7eb505c6d685c4dd287227884
blob + ec4ccfe3ed7fe2f1dbc59f9b912352d90f42ef0b
--- src/libdraw/getsubfont.c
+++ src/libdraw/getsubfont.c
@@ -73,14 +73,14 @@ scalesubfont(Subfont *f, int scale)
 	int y, x, x2, j;
 	uchar *src, *dst;
 	int srcn, dstn, n, mask, v, pack;
-	
+
 	r = f->bits->r;
 	r2 = r;
 	r2.min.x *= scale;
 	r2.min.y *= scale;
 	r2.max.x *= scale;
 	r2.max.y *= scale;
-	
+
 	srcn = bytesperline(r, f->bits->depth);
 	src = malloc(srcn);
 	dstn = bytesperline(r2, f->bits->depth);
@@ -111,7 +111,7 @@ scalesubfont(Subfont *f, int scale)
 	f->bits = i;
 	f->height *= scale;
 	f->ascent *= scale;
-	
+
 	for(j=0; j<f->n; j++) {
 		f->info[j].x *= scale;
 		f->info[j].top *= scale;
blob - aa864e1a3050599564fb79adb38752f49114c815
blob + c8cfebc806d5f8e9db49d31ccb89358b93c951e5
--- src/libdraw/icossin2.c
+++ src/libdraw/icossin2.c
@@ -3,7 +3,7 @@
 #include	<draw.h>
 
 /*
- * Sine and Cosine of arctangents, calculated by 
+ * Sine and Cosine of arctangents, calculated by
  *   (sin(atan(index/100.0))*1024.+0.5)
  *   (cos(atan(index/100.0))*1024.+0.5)
  * To use, get rational tangent between 0<=tan<=1, scale by 100,
blob - 350365fe186e8045950b6714a65fada1b5a68bd1
blob + 31d90144052863c023906b70accbc823dcf77c88
--- src/libdraw/init.c
+++ src/libdraw/init.c
@@ -90,7 +90,7 @@ geninitdraw(char *devdir, void(*error)(Display*, char*
 	visibleclicks = p != nil && *p == '1';
 	if(visibleclicks) {
 		Font *f;
-		
+
 		f = display->defaultfont;
 		mousebuttons = allocimage(display, Rect(0,0,64,22), screen->chan, 0, DWhite);
 		border(mousebuttons, mousebuttons->r, 1, display->black, ZP);
@@ -129,7 +129,7 @@ getimage0(Display *d, Image *image)
 
 	/*
 	 * If there's an old screen, it has id 0.  The 'J' request below
-	 * will try to install the new screen as id 0, so the old one 
+	 * will try to install the new screen as id 0, so the old one
 	 * must be freed first.
 	 */
 	if(image){
@@ -172,7 +172,7 @@ getimage0(Display *d, Image *image)
 	image->clipr.min.y = atoi(info+9*12);
 	image->clipr.max.x = atoi(info+10*12);
 	image->clipr.max.y = atoi(info+11*12);
-	
+
 	a = bufimage(d, 3);
 	a[0] = 'q';
 	a[1] = 1;
@@ -193,9 +193,9 @@ getwindow(Display *d, int ref)
 {
 	Image *i, *oi;
 	Font *f;
-	
+
 	/* XXX check for destroyed? */
-	
+
 	/*
 	 * Libdraw promises not to change the value of "screen",
 	 * so we have to reuse the image structure
@@ -262,7 +262,7 @@ _initdisplay(void (*error)(Display*, char*), char *lab
 		free(disp->buf);
 		goto Error2;
 	}
-	
+
 	if(_displaymux(disp) < 0
 	|| _displayconnect(disp) < 0
 	|| _displayinit(disp, label, winsize) < 0)
@@ -276,7 +276,7 @@ _initdisplay(void (*error)(Display*, char*), char *lab
 	image = getimage0(disp, nil);
 	if(image == nil)
 		goto Error4;
-	
+
 	disp->image = image;
 	disp->white = allocimage(disp, Rect(0, 0, 1, 1), GREY1, 1, DWhite);
 	disp->black = allocimage(disp, Rect(0, 0, 1, 1), GREY1, 1, DBlack);
@@ -285,7 +285,7 @@ _initdisplay(void (*error)(Display*, char*), char *lab
 		free(disp->black);
 		goto Error4;
 	}
-	
+
 	disp->opaque = disp->white;
 	disp->transparent = disp->black;
 
@@ -390,7 +390,7 @@ flushimage(Display *d, int visible)
 		r = rectaddpt(r, _drawmouse.xy);
 		r = rectaddpt(r, Pt(-Dx(mousebuttons->r)/2, -Dy(mousebuttons->r)-3));
 		drawop(mousesave, mousesave->r, screen, nil, r.min, S);
-		
+
 		r1 = rectaddpt(Rect(0, 0, 22, 22), r.min);
 		if(_drawmouse.buttons & 1)
 			drawop(screen, r1, mousebuttons, nil, ZP, S);
@@ -404,7 +404,7 @@ flushimage(Display *d, int visible)
 		drawop(screen, r, mousesave, nil, ZP, S);
 		return ret;
 	}
-	
+
 	if(visible){
 		*d->bufp++ = 'v';	/* five bytes always reserved for this */
 		if(d->_isnewdisplay){
blob - 206044e7fb48e6bed8e586f630257be54e9bbd71
blob + 58654868a39af6da6cae2d51c350b06f726644c9
--- src/libdraw/iprint.c
+++ src/libdraw/iprint.c
@@ -4,7 +4,7 @@
 
 int
 iprint(char *fmt, ...)
-{	
+{
 	va_list arg;
 
 	va_start(arg, fmt);
blob - 755ffbd327361a61847c9dbeb9f40b5c856af88b
blob + ef7b5802215f0f6d8f58772ae546aabeab02d146
--- src/libdraw/keyboard.c
+++ src/libdraw/keyboard.c
@@ -25,7 +25,7 @@ _ioproc(void *arg)
 {
 	Rune r;
 	Keyboardctl *kc;
-	
+
 	kc = arg;
 	threadsetname("kbdproc");
 	for(;;){
@@ -49,4 +49,3 @@ initkeyboard(char *file)
 	proccreate(_ioproc, kc, 32*1024);
 	return kc;
 }
-
blob - fc486be4367e1da2a069e1b3376eadc74438f331
blob + 64a7f73dae90f1582687b523ca8b70277ff568b3
--- src/libdraw/mouse.c
+++ src/libdraw/mouse.c
@@ -93,4 +93,3 @@ setcursor2(Mousectl *mc, Cursor *c, Cursor2 *c2)
 {
 	_displaycursor(mc->display, c, c2);
 }
-
blob - 88784adf50aff453b0b380e8b9375fd44fc98846
blob + e77b54dbfa757d19ec4402d2aa0ede9c339a8a41
--- src/libdraw/newwindow.c
+++ src/libdraw/newwindow.c
@@ -24,4 +24,3 @@ newwindow(char *str)
 		strcpy(buf, "new");
 	return mount(fd, -1, "/dev", MBEFORE, buf);
 }
-
blob - 366664ae9c53c2efc8d78b7e3a36747aaba1f1ed
blob + 9312eb437f801f3057af39072757655d60258eaa
--- src/libdraw/openfont.c
+++ src/libdraw/openfont.c
@@ -10,7 +10,7 @@ parsefontscale(char *name, char **base)
 {
 	char *p;
 	int scale;
-	
+
 	p = name;
 	scale = 0;
 	while('0' <= *p && *p <= '9') {
@@ -24,7 +24,7 @@ parsefontscale(char *name, char **base)
 		scale = 1;
 	}
 	return scale;
-}	
+}
 
 extern char _defontfile[];
 
@@ -114,7 +114,7 @@ swapfont(Font *targ, Font **oldp, Font **newp)
 
 	if(targ != *oldp)
 		sysfatal("bad swapfont %p %p %p", targ, *oldp, *newp);
-	
+
 	old = *oldp;
 	new = *newp;
 
@@ -175,12 +175,12 @@ hidpiname(Font *f)
 {
 	char *p, *q;
 	int size;
-	
+
 	// If font name has form x,y return y.
 	p = strchr(f->namespec, ',');
 	if(p != nil)
 		return strdup(p+1);
-	
+
 	// If font name is /mnt/font/Name/Size/font, scale Size.
 	if(strncmp(f->name, "/mnt/font/", 10) == 0) {
 		p = strchr(f->name+10, '/');
@@ -191,9 +191,9 @@ hidpiname(Font *f)
 		while('0' <= *q && *q <= '9')
 			size = size*10 + *q++ - '0';
 		return smprint("%.*s%d%s", utfnlen(f->name, p-f->name), f->name, size*2, q);
-	}		
+	}
 
-	// Otherwise use pixel doubling.	
+	// Otherwise use pixel doubling.
 scale:
 	return smprint("%d*%s", f->scale*2, f->name);
 }
@@ -210,7 +210,7 @@ loadhidpi(Font *f)
 		swapfont(f, &f->lodpi, &f->hidpi);
 		return;
 	}
-	
+
 	name = hidpiname(f);
 	fnew = openfont1(f->display, name);
 	if(fnew == nil)
@@ -227,7 +227,7 @@ openfont(Display *d, char *name)
 	Font *f;
 	char *p;
 	char *namespec;
-	
+
 	// If font name has form x,y use x for lodpi, y for hidpi.
 	name = strdup(name);
 	namespec = strdup(name);
@@ -240,7 +240,7 @@ openfont(Display *d, char *name)
 	f->lodpi = f;
 	free(f->namespec);
 	f->namespec = namespec;
-	
+
 	/* add to display list for when dpi changes */
 	/* d can be nil when invoked from mc. */
 	if(d != nil) {
@@ -252,12 +252,12 @@ openfont(Display *d, char *name)
 		else
 			d->firstfont = f;
 		d->lastfont = f;
-	
+
 		/* if this is a hi-dpi display, find hi-dpi version and swap */
 		if(d->dpi >= DefaultDPI*3/2)
 			loadhidpi(f);
 	}
-	
+
 	free(name);
 
 	return f;
@@ -270,7 +270,7 @@ _fontpipe(char *name)
 	char c;
 	char buf[1024], *argv[10];
 	int nbuf, pid;
-	
+
 	if(pipe(p) < 0)
 		return -1;
 	pid = rfork(RFNOWAIT|RFFDG|RFPROC);
@@ -294,7 +294,7 @@ _fontpipe(char *name)
 		_exit(0);
 	}
 	close(p[1]);
-	
+
 	// success marked with leading \001.
 	// otherwise an error happened.
 	for(nbuf=0; nbuf<sizeof buf-1; nbuf++) {
blob - e8f7f51b1c44563b1119dc7d343feef8c32ce1fb
blob + b537533d120f5cc08d0f905f54896500cba629f6
--- src/libdraw/rgb.c
+++ src/libdraw/rgb.c
@@ -11,7 +11,7 @@
  * over the color map looking for the nearest point in RGB
  * space.  There is no visual psychology reason for that
  * criterion, but it's easy to implement and the results are
- * far more pleasing. 
+ * far more pleasing.
  *
 int
 rgb2cmap(int cr, int cg, int cb)
blob - ea0aa25c72f9315466207f4fde78645ee8b47989
blob + fa2f3d9f449cc7add972ee5a796444c60533406f
--- src/libdraw/scroll.c
+++ src/libdraw/scroll.c
@@ -25,5 +25,5 @@ mousescrollsize(int maxlines)
 
 	if(lines)
 		return lines;
-	return pcnt * maxlines/100.0;	
+	return pcnt * maxlines/100.0;
 }
blob - 392a7e8a7fb3c24cedd503f378569ce6f7ff24ce
blob + 5ba5016a4e87dee7c53a8f6ff282aa3a0f7775af
--- src/libdraw/string.c
+++ src/libdraw/string.c
@@ -137,7 +137,7 @@ _string(Image *dst, Point pt, Image *src, Point sp, Fo
 				else
 					break;
 			}
-			/* 
+			/*
 			 * must not free sf until cachechars has found it in the cache
 			 * and picked up its own reference.
 			 */
blob - 522fbc0115d07609314b5133b5ef1adf11eddbb7
blob + 52d9fd67008047bb4b411c69d8608f533be75a4b
--- src/libdraw/stringwidth.c
+++ src/libdraw/stringwidth.c
@@ -55,7 +55,7 @@ _stringnwidth(Font *f, char *s, Rune *r, int len)
 					else
 						break;
 				}
-				/* 
+				/*
 				 * must not free sf until cachechars has found it in the cache
 				 * and picked up its own reference.
 				 */
blob - 9630a087fc7c4277877ed2fdbc9cbed7942aac29
blob + 494cd574332c7e7180e597e6a8df7249f2cb1cd9
--- src/libdraw/subfont.c
+++ src/libdraw/subfont.c
@@ -20,9 +20,9 @@ allocsubfont(char *name, int n, int height, int ascent
 	f->ref = 1;
 	if(name){
 		/*
-		 * if already caching this subfont, leave older 
+		 * if already caching this subfont, leave older
 		 * (and hopefully more widely used) copy in cache.
-		 * this case should not happen -- we got called 
+		 * this case should not happen -- we got called
 		 * because cachechars needed this subfont and it
 		 * wasn't in the cache.
 		 */
blob - e6059d0e8fb9552bd768259863433380c121946b
blob + d247cb6166aaba746c22c0371d51f7bacd2890c9
--- src/libdraw/subfontname.c
+++ src/libdraw/subfontname.c
@@ -11,7 +11,7 @@ subfontname(char *cfname, char *fname, int maxdepth)
 {
 	char *t, *u, *tmp1, *tmp2, *base;
 	int i, scale;
-	
+
 	scale = parsefontscale(fname, &base);
 
 	t = strdup(cfname);  /* t is the return string */
blob - 76bc75d0d618b00e31c3154508f3fd94d9d73de9
blob + be45b75a52950fec9b93e13eb71391ee439e9b26
--- src/libdraw/unix.c
+++ src/libdraw/unix.c
@@ -12,4 +12,3 @@ _drawflength(int fd)
 		return -1;
 	return s.st_size;
 }
-
blob - d9632503dc848773843c31b8acb6d03ce7f96128
blob + 572bc1d2a48e587ac32eb2abaa05a3cfd9f62c59
--- src/libdraw/wsys.c
+++ src/libdraw/wsys.c
@@ -27,4 +27,3 @@ drawresizewindow(Rectangle r)
 {
 	_displayresize(display, r);
 }
-
blob - e333abd8b65daad8054da55b2f6944d7ffa02527
blob + d7c3f5ea9d24ab8e8db46f196dadd53e47befe6c
--- src/libframe/frdelete.c
+++ src/libframe/frdelete.c
@@ -60,7 +60,7 @@ frdelete(Frame *f, ulong p0, ulong p1)
 			r.max.x += b->wid;
 			draw(f->b, r, f->b, nil, pt1);
 			cn1 += b->nrune;
-			
+
 			/* blank remainder of line */
 			r.min.x = r.max.x;
 			r.max.x += w0 - b->wid;
blob - 05a45fe2c6ea10893f0cbe608d5f3028d372c55c
blob + 9573b1c8b3268257ccf16ec01fe4e2ac824789f8
--- src/libframe/frdraw.c
+++ src/libframe/frdraw.c
@@ -62,7 +62,7 @@ frdrawsel0(Frame *f, Point pt, ulong p0, ulong p1, Ima
 	Point qt;
 	uint p;
 	char *ptr;
-	
+
 	if(p0 > p1)
 		sysfatal("libframe: frdrawsel0 p0=%lud > p1=%lud", p0, p1);
 
blob - 1f920f5a8cd4768fe9352b710aaa00087721e021
blob + 0da221450f52c530d9e8779486c3e93bdb167119
--- src/libgeometry/quaternion.c
+++ src/libgeometry/quaternion.c
@@ -10,7 +10,7 @@
  *	qunit(q)	returns a unit quaternion parallel to q
  * The following only work on unit quaternions and rotation matrices:
  *	slerp(q, r, a)	returns q*(r*q^-1)^a
- *	qmid(q, r)	slerp(q, r, .5) 
+ *	qmid(q, r)	slerp(q, r, .5)
  *	qsqrt(q)	qmid(q, (Quaternion){1,0,0,0})
  *	qtom(m, q)	converts a unit quaternion q into a rotation matrix m
  *	mtoq(m)		returns a quaternion equivalent to a rotation matrix m
@@ -93,7 +93,7 @@ Quaternion mtoq(Matrix mat){
 	 */
 	Quaternion qu;
 	double tr, s;
-	
+
 	tr = mat[0][0] + mat[1][1] + mat[2][2];
 	if (tr >= 0.0) {
 		s = sqrt(tr + mat[3][3]);
blob - bc41c4acfdf0fcfe3af7dd968e9dfd95fcde31d9
blob + a6cea994711b92593faa12f12f739a9f4b507fc1
--- src/libgeometry/tstack.c
+++ src/libgeometry/tstack.c
@@ -1,6 +1,6 @@
 /*% cc -gpc %
  * These transformation routines maintain stacks of transformations
- * and their inverses.  
+ * and their inverses.
  * t=pushmat(t)		push matrix stack
  * t=popmat(t)		pop matrix stack
  * rot(t, a, axis)	multiply stack top by rotation
blob - 78b6efff46a62a164ccfd8eb4a5b32efc13d4242
blob + b2387006f534e8ab4547d42513b0c9e17b7367a8
--- src/libhtml/build.c
+++ src/libhtml/build.c
@@ -1815,7 +1815,7 @@ getitems(ItemSource* is, uchar* data, int datalen)
 				tab = newtable(++is->ntables,
 						aalign(tok),
 						adimen(tok, Awidth),
-						aflagval(tok, Aborder), 
+						aflagval(tok, Aborder),
 						auintval(tok, Acellspacing, TABSP),
 						auintval(tok, Acellpadding, TABPAD),
 						makebackground(nil, acolorval(tok, Abgcolor, ps->curbg.color)),
@@ -1916,8 +1916,8 @@ getitems(ItemSource* is, uchar* data, int datalen)
 					flags |= TFisth;
 				c = newtablecell(curtab->cells==nil? 1 : curtab->cells->cellid+1,
 						auintval(tok, Arowspan, 1),
-						auintval(tok, Acolspan, 1), 
-						aalign(tok), 
+						auintval(tok, Acolspan, 1),
+						aalign(tok),
 						adimen(tok, Awidth),
 						auintval(tok, Aheight, 0),
 						makebackground(nil, acolorval(tok, Abgcolor, tr->background.color)),
@@ -4440,7 +4440,7 @@ validtable(Table* t)
 	/* only when parsing is done is t->nrow set > 0 */
 	if(ok && t->nrow > 0 && t->ncol > 0) {
 		/* table is "finished" */
-		for(i = 0; i < t->nrow && ok; i++) 
+		for(i = 0; i < t->nrow && ok; i++)
 			ok = validtablerow(t->rows+i);
 		for(j = 0; j < t->ncol && ok; j++)
 			ok = validtablecol(t->cols+j);
blob - 258807dd09cac49e2ea1bfe058e15c0e373834f4
blob + 49c5f502eb718e559b90b0266774ff127ac1ea35
--- src/libhtml/lex.c
+++ src/libhtml/lex.c
@@ -31,11 +31,11 @@ Rune **tagnames;
 char *_tagnames[] = {
 	" ",
 	"!",
-	"a", 
+	"a",
 	"abbr",
 	"acronym",
 	"address",
-	"applet", 
+	"applet",
 	"area",
 	"b",
 	"base",
@@ -614,7 +614,7 @@ buftostr(Rune* s, Rune* buf, int j)
 	buf[j] = 0;
 	if(s == nil)
 		tmp = _Strndup(buf, j);
-	else 
+	else
 		tmp = _Strdup2(s, buf);
 	free(s);
 	return tmp;
blob - c2419457c18090fdae4860691b522691087bfb91
blob + 3602d8751d6c48f2e86d973ade2272e466fa1d91
--- src/libhttpd/redirected.c
+++ src/libhttpd/redirected.c
@@ -24,7 +24,7 @@ hredirected(HConnect *c, char *how, char *uri)
 			*s = '/';
 	}
 
-	n = snprint(c->xferbuf, HBufSize, 
+	n = snprint(c->xferbuf, HBufSize,
 			"<head><title>Redirection</title></head>\r\n"
 			"<body><h1>Redirection</h1>\r\n"
 			"Your selection can be found <a href=\"%U\"> here</a>.<p></body>\r\n", uri);
blob - 9bf2db0c22d2b7b1f996df09b031335b90f60379
blob + 573061634cc8fc4f7473f1e4c164cfce2e58407e
--- src/libip/BSD.c
+++ src/libip/BSD.c
@@ -22,7 +22,7 @@ static void
 sockaddr2ip(uchar *ip, struct sockaddr *sa)
 {
 	struct sockaddr_in *sin;
-	
+
 	sin = (struct sockaddr_in*)sa;
 	memmove(ip, v4prefix, IPaddrlen);
 	memmove(ip+IPv4off, &sin->sin_addr, 4);
@@ -59,7 +59,7 @@ readipifc(char *net, Ipifc *ifc, int index)
 	mib[3] = 0;
 	mib[4] = NET_RT_IFLIST;
 	mib[5] = 0;
-	
+
 	n = 0;
 	if(sysctl(mib, 6, nil, &n, nil, 0) < 0)
 		return nil;
@@ -115,7 +115,7 @@ readipifc(char *net, Ipifc *ifc, int index)
 						continue;
 					*lastlifc = lifc;
 					lastlifc = &lifc->next;
-				}	
+				}
 				sockaddr2ip(ip, sa);
 				switch(i){
 				case RTAX_IFA:
blob - edc67e897b53dddf81565f3fe51a082a4dc67ec3
blob + 3a1411b9d76763bc0b1ba11a53a889917dd671b9
--- src/libip/Linux.c
+++ src/libip/Linux.c
@@ -16,7 +16,7 @@
  * Thanks to Erik Quanstrom.
  */
 static int
-netlinkrequest(int fd, int type, int (*fn)(struct nlmsghdr *h, Ipifc**, int), 
+netlinkrequest(int fd, int type, int (*fn)(struct nlmsghdr *h, Ipifc**, int),
 	Ipifc **ifc, int index)
 {
 	char buf[1024];
@@ -64,7 +64,7 @@ devsocket(void)
 	/* we couldn't care less which one; just want to talk to the kernel! */
 	static int dumb[3] = { AF_INET, AF_PACKET, AF_INET6 };
 	int i, fd;
-	
+
 	for(i=0; i<nelem(dumb); i++)
 		if((fd = socket(dumb[i], SOCK_DGRAM, 0)) >= 0)
 			return fd;
@@ -76,7 +76,7 @@ parsertattr(struct rtattr **dst, int ndst, struct nlms
 {
 	struct rtattr *src;
 	int len;
-	
+
 	len = h->nlmsg_len - NLMSG_LENGTH(skip);
 	if(len < 0 || h->nlmsg_type != type){
 		werrstr("attrs too short");
@@ -95,7 +95,7 @@ static void
 rta2ip(int af, uchar *ip, struct rtattr *rta)
 {
 	memset(ip, 0, IPaddrlen);
-	
+
 	switch(af){
 	case AF_INET:
 		memmove(ip, v4prefix, IPv4off);
@@ -115,7 +115,7 @@ getlink(struct nlmsghdr *h, Ipifc **ipifclist, int ind
 	struct rtattr *attr[IFLA_MAX+1];
 	struct ifinfomsg *ifi;
 	Ipifc *ifc;
-	
+
 	ifi = (struct ifinfomsg*)NLMSG_DATA(h);
 	if(index >= 0 && ifi->ifi_index != index)
 		return 0;
@@ -172,7 +172,7 @@ getlink(struct nlmsghdr *h, Ipifc **ipifclist, int ind
 		if(ioctl(fd, SIOCGIFHWADDR, &ifr) >= 0
 		&& ifr.ifr_hwaddr.sa_family == ARPHRD_ETHER)
 			memmove(ifc->ether, ifr.ifr_hwaddr.sa_data, 6);
-		
+
 		close(fd);
 	}
 	return 0;
@@ -186,7 +186,7 @@ getaddr(struct nlmsghdr *h, Ipifc **ipifclist, int ind
 	Iplifc *lifc, **l;
 	struct ifaddrmsg *ifa;
 	struct rtattr *attr[IFA_MAX+1];
-	
+
 	USED(index);
 
 	ifa = (struct ifaddrmsg*)NLMSG_DATA(h);
@@ -197,7 +197,7 @@ getaddr(struct nlmsghdr *h, Ipifc **ipifclist, int ind
 		return 0;
 	if(parsertattr(attr, nelem(attr), h, RTM_NEWADDR, sizeof(struct ifaddrmsg)) < 0)
 		return -1;
-	
+
 	lifc = mallocz(sizeof *lifc, 1);
 	if(lifc == nil)
 		return -1;
@@ -211,13 +211,13 @@ getaddr(struct nlmsghdr *h, Ipifc **ipifclist, int ind
 		return 0;
 
 	rta2ip(ifa->ifa_family, lifc->ip, attr[IFA_ADDRESS]);
-	
+
 	mask = ifa->ifa_prefixlen/8;
 	if(ifa->ifa_family == AF_INET)
 		mask += IPv4off;
 	memset(lifc->mask, 0xFF, mask);
 	memmove(lifc->net, lifc->ip, mask);
-	
+
 	if(attr[IFA_CACHEINFO]){
 		struct ifa_cacheinfo *ci;
 
@@ -236,7 +236,7 @@ readipifc(char *net, Ipifc *ifc, int index)
 	USED(net);
 	freeipifc(ifc);
 	ifc = nil;
-	
+
 	fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
 	if(fd < 0)
 		return nil;
@@ -250,4 +250,3 @@ readipifc(char *net, Ipifc *ifc, int index)
 	close(fd);
 	return ifc;
 }
-
blob - 7899facc041988bc5a0bb5e2eb4a3d1d604948b1
blob + 1b3bf0210e4e2f5c22e5851f35cec9fd3f41d7ed
--- src/libip/freeipifc.c
+++ src/libip/freeipifc.c
@@ -17,4 +17,3 @@ freeipifc(Ipifc *i)
 		free(i);
 	}
 }
-
blob - a6b12def48c7783a6e75fd8be9a7604b503a891e
blob + 3849bfe80ec936e5440270dd11ae2dadeb365d3f
--- src/libip/myetheraddr.c
+++ src/libip/myetheraddr.c
@@ -8,7 +8,7 @@ int
 myetheraddr(uchar *to, char *dev)
 {
 	Ipifc *ifclist, *ifc;
-	
+
 	ifclist = readipifc(nil, nil, -1);
 	for(ifc=ifclist; ifc; ifc=ifc->next){
 		if(dev && strcmp(ifc->dev, dev) != 0)
@@ -23,4 +23,3 @@ myetheraddr(uchar *to, char *dev)
 	werrstr("no ethernet devices");
 	return -1;
 }
-
blob - bbde18f78ed6e4818163ac4d1847a5fa36182d42
blob + 24faf9ffdbadd1147a13050c6e0be40eedb8fc17
--- src/libip/myipaddr.c
+++ src/libip/myipaddr.c
@@ -42,4 +42,3 @@ myipaddr(uchar *ip, char *net)
 	freeipifc(ifc);
 	return -1;
 }
-
blob - 80110a64a15cc242c4b8665924be6f6b1ccfe462
blob + caf5cf8f627267b6507af290244e2b1ccf53c572
--- src/libip/none.c
+++ src/libip/none.c
@@ -8,7 +8,7 @@ readipifc(char *net, Ipifc *ipifc, int index)
 	USED(net);
 	USED(ipifc);
 	USED(index);
-	
+
 	werrstr("not implemented");
 	return nil;
 }
blob - c0dd55ccdc549f37abffb024b7926360873dbbe7
blob + dba614ce31b2303a6417131ce645733a42ba013e
--- src/libip/parseip.c
+++ src/libip/parseip.c
@@ -129,7 +129,7 @@ v4parsecidr(uchar *addr, uchar *mask, char *from)
 			*a++ = 0xff;
 		if(i > 0)
 			*a = ~((1<<(8-i))-1);
-	} else 
+	} else
 		memcpy(mask, defmask(addr), IPv4addrlen);
 	return p;
 }
blob - ae413a248932ed6714c17b6b090c344ca360aff8
blob + 07f6403dad76a4525771fa0fbff94e55d57e2d76
--- src/libip/udp.c
+++ src/libip/udp.c
@@ -50,4 +50,3 @@ udpwrite(int fd, Udphdr *hdr, void *buf, long n)
 	memmove(&sin.sin_port, hdr->rport, 2);
 	return sendto(fd, buf, n, 0, (struct sockaddr*)&sin, sizeof sin);
 }
-
blob - 92ffdb925df0f73e28dde9e8bd735bb191b177e3
blob + 33bd8e9c6a1d3fbf2ce53e1a14ffddf2240c79e8
--- src/libmach/DragonFly.c
+++ src/libmach/DragonFly.c
@@ -43,7 +43,7 @@ unmapproc(Map *map)
 	for(i=0; i<map->nseg; i++)
 		while(i<map->nseg && map->seg[i].pid){
 			map->nseg--;
-			memmove(&map->seg[i], &map->seg[i+1], 
+			memmove(&map->seg[i], &map->seg[i+1],
 				(map->nseg-i)*sizeof(map->seg[0]));
 		}
 }
blob - 7cf5c1f44869ca0a8bce621fb746776393d2b64d
blob + 80c8935a30cde2dae1c5b7c2fa0a994d84c8869d
--- src/libmach/FreeBSD.c
+++ src/libmach/FreeBSD.c
@@ -43,7 +43,7 @@ unmapproc(Map *map)
 	for(i=0; i<map->nseg; i++)
 		while(i<map->nseg && map->seg[i].pid){
 			map->nseg--;
-			memmove(&map->seg[i], &map->seg[i+1], 
+			memmove(&map->seg[i], &map->seg[i+1],
 				(map->nseg-i)*sizeof(map->seg[0]));
 		}
 }
blob - 005d6b38824e83a8523b9efc51b968994e58e56b
blob + 30b40bbf88ec4860757a5318c38d93cb853cb1db
--- src/libmach/Linux.c
+++ src/libmach/Linux.c
@@ -1,6 +1,6 @@
 /*
  * process interface for Linux.
- * 
+ *
  * Uses ptrace for registers and data,
  * /proc for some process status.
  * There's not much point to worrying about
@@ -59,7 +59,7 @@ ptraceattach(int pid)
 		werrstr("ptrace attach %d: %r", pid);
 		return -1;
 	}
-	
+
 	if(ctlproc(pid, "waitstop") < 0){
 		fprint(2, "waitstop: %r");
 		ptrace(PTRACE_DETACH, pid, 0, 0);
@@ -79,7 +79,7 @@ unmapproc(Map *map)
 	for(i=0; i<map->nseg; i++)
 		while(i<map->nseg && map->seg[i].pid){
 			map->nseg--;
-			memmove(&map->seg[i], &map->seg[i+1], 
+			memmove(&map->seg[i], &map->seg[i+1],
 				(map->nseg-i)*sizeof(map->seg[0]));
 		}
 }
@@ -272,7 +272,7 @@ isstopped(int pid)
 	return *p == 'T';
 }
 
-/* /proc/pid/stat contains 
+/* /proc/pid/stat contains
 	pid
 	command in parens
 	0. state
@@ -456,4 +456,3 @@ proctextfile(int pid)
 		return pbuf;
 	return nil;
 }
-
blob - 36d0fb930cc6b353d574c8dda1e734fba1c365ca
blob + 18643e10ecc965f3f24f3cb3edf218d61be0c22f
--- src/libmach/cmdline.c
+++ src/libmach/cmdline.c
@@ -134,7 +134,7 @@ attachargs(int argc, char **argv, int omode, int verbo
 		mapfile(symhdr, 0, cormap, nil);
 	}
 
-	if(corpid)	
+	if(corpid)
 		attachproc(corpid);
 	if(corhdr)
 		attachcore(corhdr);
@@ -200,4 +200,3 @@ attachdynamic(int verbose)
 		elfdl386mapdl(verbose);
 	return 0;
 }
-
blob - 5695b7eb8fc9dab4e5b2d39066b78972917b4c87
blob + a2106f050d0f8e2b44661d632992f33a54507a96
--- src/libmach/crack.c
+++ src/libmach/crack.c
@@ -10,7 +10,7 @@ Mach *mach;
 extern Mach mach386;
 extern Mach machpower;
 
-static Mach *machs[] = 
+static Mach *machs[] =
 {
 	&mach386,
 	&machpower,
@@ -125,7 +125,7 @@ unmapfile(Fhdr *fp, Map *map)
 	for(i=0; i<map->nseg; i++){
 		while(i<map->nseg && map->seg[i].fd == fp->fd){
 			map->nseg--;
-			memmove(&map->seg[i], &map->seg[i+1], 
+			memmove(&map->seg[i], &map->seg[i+1],
 				(map->nseg-i)*sizeof(map->seg[0]));
 		}
 	}
@@ -149,4 +149,3 @@ coreregs(Fhdr *fp, uint id)
 	werrstr("thread not found");
 	return nil;
 }
-
blob - 22f4307e50275c72d471164dbe4ccded23529726
blob + 1b051eec2aae596b6a48b514c0956a4cb6431ad9
--- src/libmach/crackelf.c
+++ src/libmach/crackelf.c
@@ -13,7 +13,7 @@ static struct
 	uint mtype;
 	Mach *mach;
 	char *name;
-} mtab[] = 
+} mtab[] =
 {	/* Font Tab 4 */
 	ElfMachSparc,	MSPARC,		nil,		"sparc",
 	ElfMach386,		M386,		&mach386,	"386",
@@ -29,7 +29,7 @@ static struct
 	uint etype;
 	uint atype;
 	char *aname;
-} atab[] = 
+} atab[] =
 {	/* Font Tab 4 */
 	ElfAbiSystemV,	ALINUX,		"linux",	/* [sic] */
 	ElfAbiLinux,	ALINUX,		"linux",
@@ -41,7 +41,7 @@ static struct
 	uint mtype;
 	uint atype;
 	void (*elfcore)(Fhdr*, Elf*, ElfNote*);
-} ctab[] = 
+} ctab[] =
 {	/* Font Tab 4 */
 	M386,		ALINUX,		elfcorelinux386,
 	M386,		ANONE,		elfcorelinux386,	/* [sic] */
@@ -273,13 +273,13 @@ mapelf(Fhdr *fp, u64int base, Map *map, Regs **regs)
 				if(addseg(map, s) < 0)
 					return -1;
 			}
-		}			
+		}
 	}
 
 	if(fp->nthread && regs)
 		*regs = coreregs(fp, fp->thread[0].id);
 
-	return 0;	
+	return 0;
 }
 
 static int
@@ -301,4 +301,3 @@ unpacknote(Elf *elf, uchar *a, uchar *ea, ElfNote *not
 	*pa = a;
 	return 0;
 }
-
blob - 77b0339bb970870979487038b5f79f151515757c
blob + 25d1aa7ab043b9eb8a7bc7c13885f506fdf316b5
--- src/libmach/crackmacho.c
+++ src/libmach/crackmacho.c
@@ -12,7 +12,7 @@ static struct
 	Mach *mach;
 	char *name;
 	int (*coreregs)(Macho*, uchar**);
-} mtab[] = 
+} mtab[] =
 {
 	MachoCpuPower,	MPOWER,		&machpower, 		"powerpc",	coreregsmachopower,
 };
@@ -190,7 +190,7 @@ mapmacho(Fhdr *fp, u64int base, Map *map, Regs **rp)
 		if((r = mallocz(sizeof *r, 1)) == nil)
 			return -1;
 		r->r.rw = _uregrw;
-		r->ureg = u;	
+		r->ureg = u;
 		*rp = &r->r;
 	}
 noregs:
blob - a2a9b9636ee59ea7d32ea85e9c4747d332cc10f4
blob + c6bb8756b65db4ca354f5e502a1881aee94e3cde
--- src/libmach/demangler.c
+++ src/libmach/demangler.c
@@ -9,10 +9,10 @@ main(void)
 	Biobuf b, bout;
 	char *p, *s;
 	char buf[100000];
-	
+
 	Binit(&b, 0, OREAD);
 	Binit(&bout, 1, OWRITE);
-	
+
 	while((p = Brdline(&b, '\n')) != nil){
 		p[Blinelen(&b)-1] = 0;
 		werrstr("no error");
blob - bd0fe56d905642aaaef296a9604ca5be3a764a95
blob + 31e13900c795bc6f10508b71229fae5ae6072f44
--- src/libmach/dwarf.h
+++ src/libmach/dwarf.h
@@ -458,4 +458,3 @@ int dwarfgetinfounit(Dwarf*, ulong, DwarfBlock*);
 extern int dwarf386nregs;
 extern char *dwarf386regs[];
 extern char *dwarf386fp;
-
blob - 3cefeea2f8d1258016466fcf953d50957bcacffa
blob + cd13194c263704dc1f732572822e00a72c2f6467
--- src/libmach/dwarf386.c
+++ src/libmach/dwarf386.c
@@ -5,7 +5,7 @@
 #include "dwarf.h"
 
 char*
-dwarf386regs[] = 
+dwarf386regs[] =
 {
 	"AX",
 	"CX",
@@ -18,5 +18,3 @@ dwarf386regs[] = 
 };
 
 int dwarf386nregs = nelem(dwarf386regs);
-
-
blob - 503d51492ae6dc694bdd624d9b35c8797978a267
blob + 24418ef304fdcb9d1faa9c69be02d8fbaa8dbcbb
--- src/libmach/dwarfabbrev.c
+++ src/libmach/dwarfabbrev.c
@@ -2,7 +2,7 @@
  * Dwarf abbreviation parsing code.
  *
  * The convention here is that calling dwarfgetabbrevs relinquishes
- * access to any abbrevs returned previously.  Will have to add 
+ * access to any abbrevs returned previously.  Will have to add
  * explicit reference counting if this turns out not to be acceptable.
  */
 
@@ -129,4 +129,3 @@ dwarfgetabbrev(Dwarf *d, ulong off, ulong num)
 	}
 	return findabbrev(a, na, num);
 }
-
blob - 212995881c2e6a6ce4bb31d54080c079ca0b7283
blob + 7e7152d331c80eaffb808850096194ca8c51a696
--- src/libmach/dwarfaranges.c
+++ src/libmach/dwarfaranges.c
@@ -60,4 +60,3 @@ dwarfaddrtounit(Dwarf *d, ulong addr, ulong *unit)
 	werrstr("address 0x%lux is not listed in dwarf debugging symbols", addr);
 	return -1;
 }
-
blob - 4980c2cf0d78f54694d45975bafa45e961420848
blob + ee303009710024cf5dd7f854bffd640e60bd4f81
--- src/libmach/dwarfcfa.c
+++ src/libmach/dwarfcfa.c
@@ -1,11 +1,11 @@
 /*
  * Dwarf call frame unwinding.
  *
- * The call frame unwinding values are encoded using a state machine 
- * like the pc<->line mapping, but it's a different machine.  
- * The expressions to generate the old values are similar in function to the 
+ * The call frame unwinding values are encoded using a state machine
+ * like the pc<->line mapping, but it's a different machine.
+ * The expressions to generate the old values are similar in function to the
  * ``dwarf expressions'' used for locations in the code, but of course not
- * the same encoding.  
+ * the same encoding.
  */
 #include <u.h>
 #include <libc.h>
@@ -97,7 +97,7 @@ out:
 /*
  * XXX This turns out to be much more expensive than the actual
  * running of the machine in dexec.  It probably makes sense to
- * cache the last 10 or so fde's we've found, since stack traces 
+ * cache the last 10 or so fde's we've found, since stack traces
  * will keep asking for the same info over and over.
  */
 static int
@@ -167,7 +167,7 @@ findfde(Dwarf *d, ulong pc, State *s, DwarfBuf *fde)
 	}
 	werrstr("cannot find call frame information for pc 0x%lux", pc);
 	return -1;
-			
+
 }
 
 static int
@@ -209,7 +209,7 @@ dexec(DwarfBuf *b, State *s, int locstop)
 			if(locstop)
 				return 0;
 			continue;
-		
+
 		case 2:	/* offset rule */
 			arg1 = c&0x3F;
 			arg2 = dwarfget128(b);
@@ -331,12 +331,12 @@ dexec(DwarfBuf *b, State *s, int locstop)
 			s->cfa->offset = arg2;
 			continue;
 
-		case 0x0D:	/* def cfa register */	
+		case 0x0D:	/* def cfa register */
 			arg1 = dwarfget128(b);
 			if(trace) fprint(2, "cfa reg r%ld\n", arg1);
 			if(s->cfa->type != RuleRegOff){
 				werrstr("change CFA register but CFA not in register+offset form");
-				return -1;	
+				return -1;
 			}
 			if(checkreg(s, arg1) < 0)
 				return -1;
@@ -390,6 +390,5 @@ dexec(DwarfBuf *b, State *s, int locstop)
 			return -1;
 		}
 	}
-	/* not reached */		
+	/* not reached */
 }
-
blob - 30c227b3f52e2786443e6eb583a68d601b5b3639
blob + 30e68c2d0c5f0d80adfbac5f6646ecc972af64e0
--- src/libmach/dwarfeval.c
+++ src/libmach/dwarfeval.c
@@ -59,4 +59,3 @@
 	OpCall4 = 0x99,	/* 4-byte offset of DIE */
 	OpCallRef = 0x9A,	/* 4- or 8- byte offset of DIE */
 	/* 0xE0-0xFF reserved for user-specific */
-
blob - 3e9fe650659f1f1d39140538afb1adf066aa84e4
blob + fd3ec817273759a0b3568f13368cb92ab509dc1c
--- src/libmach/dwarfget.c
+++ src/libmach/dwarfget.c
@@ -215,4 +215,3 @@ dwarfget128s(DwarfBuf *b)
 	}
 	return v;
 }
-
blob - 4c0eacd8bc2d4ff971de02cc1d223a57517f706d
blob + d6c2b79edae0b44677778a4fb7f3b0299c208ea9
--- src/libmach/dwarfinfo.c
+++ src/libmach/dwarfinfo.c
@@ -128,8 +128,8 @@ dwarflookupnameinunit(Dwarf *d, ulong unit, char *name
 	werrstr("symbol '%s' not found", name);
 	return -1;
 }
-	
 
+
 int
 dwarflookupsubname(Dwarf *d, DwarfSym *parent, char *name, DwarfSym *s)
 {
@@ -183,7 +183,7 @@ dwarflookupfn(Dwarf *d, ulong unit, ulong pc, DwarfSym
 			continue;
 		if(s->attrs.lowpc <= pc && pc < s->attrs.highpc)
 			return 0;
-	} 
+	}
 	werrstr("fn containing pc 0x%lux not found", pc);
 	return -1;
 }
@@ -291,11 +291,11 @@ dwarfnextsymat(Dwarf *d, DwarfSym *s, int depth)
 	}
 
 	/*
-	 * The funny game with t and s make sure that 
+	 * The funny game with t and s make sure that
 	 * if we get to the end of a run of a particular
 	 * depth, we leave s so that a call to nextsymat with depth-1
 	 * will actually produce the desired guy.  We could change
-	 * the interface to dwarfnextsym instead, but I'm scared 
+	 * the interface to dwarfnextsym instead, but I'm scared
 	 * to touch it.
 	 */
 	t = *s;
blob - 728944f42a94e33c9f364817c1c28393ea87046e
blob + 27e965a36d178c4bab9b438618054ba35492039a
--- src/libmach/dwarfopen.c
+++ src/libmach/dwarfopen.c
@@ -30,7 +30,7 @@ findsection(Elf *elf, char *name, ulong *off, ulong *l
 	*len = s->size;
 	return s - elf->sect;
 }
-	
+
 static int
 loadsection(Elf *elf, char *name, DwarfBlock *b)
 {
blob - 31b6bb41c9dfcb30a4e0fa57736772594da46d51
blob + 628b3eb818ba02ca3ce1a3d8f6af4439b5a466ff
--- src/libmach/dwarfpc.c
+++ src/libmach/dwarfpc.c
@@ -1,6 +1,6 @@
 /*
  * Dwarf pc to source line conversion.
- * 
+ *
  * Maybe should do the reverse here, but what should the interface look like?
  * One possibility is to use the Plan 9 line2addr interface:
  *
blob - 5b7494d98c40b53aa98c04053d6fbf4a83975802
blob + b3cb9e8c1956579a7e6174beed7607fade13ac8a
--- src/libmach/elf.c
+++ src/libmach/elf.c
@@ -343,7 +343,7 @@ unpackhdr(ElfHdr *h, void *v)
 	h->e2 = e2;
 	h->e4 = e4;
 	h->e8 = e8;
-	
+
 	if(h->class == ElfClass64)
 		goto b64;
 
@@ -388,7 +388,7 @@ unpackprog(ElfHdr *h, ElfProg *p, void *v)
 
 	if(h->class == ElfClass32) {
 		ElfProgBytes *b;
-		
+
 		b = v;
 		e4 = h->e4;
 		p->type = e4(b->type);
@@ -401,7 +401,7 @@ unpackprog(ElfHdr *h, ElfProg *p, void *v)
 		p->align = e4(b->align);
 	} else {
 		ElfProgBytes64 *b;
-		
+
 		b = v;
 		e4 = h->e4;
 		e8 = h->e8;
@@ -424,7 +424,7 @@ unpacksect(ElfHdr *h, ElfSect *s, void *v)
 
 	if(h->class == ElfClass32) {
 		ElfSectBytes *b;
-		
+
 		b = v;
 		e4 = h->e4;
 		s->name = (char*)(uintptr)e4(b->name);
@@ -439,7 +439,7 @@ unpacksect(ElfHdr *h, ElfSect *s, void *v)
 		s->entsize = e4(b->entsize);
 	} else {
 		ElfSectBytes64 *b;
-		
+
 		b = v;
 		e4 = h->e4;
 		e8 = h->e8;
@@ -554,4 +554,3 @@ elfsym(Elf *elf, int i, ElfSym *sym)
 	werrstr("symbol index out of range");
 	return -1;
 }
-
blob - 0d01d969d6759d2abc75ebfa6120807a1a943d42
blob + bd146784f794cb1221fba0dc4a33e061eb8aaee6
--- src/libmach/elfcorefreebsd386.c
+++ src/libmach/elfcorefreebsd386.c
@@ -117,4 +117,3 @@ corecmdfreebsd386(Elf *elf, ElfNote *note, char **pp)
 	*pp = t;
 	return 0;
 }
-
blob - fde6514f507c778efa5108a0b8ac22e0642df450
blob + a5fc6ed7993bd4b06107b4a20d15d7d6de219522
--- src/libmach/elfcorefreebsdamd64.c
+++ src/libmach/elfcorefreebsdamd64.c
@@ -83,7 +83,7 @@ elfcorefreebsdamd64(Fhdr *fp, Elf *elf, ElfNote *note)
 		}
 		l = &s->reg;
 		u = malloc(sizeof(Ureg));
-	
+
 		/* no byte order problems - just copying and rearranging */
 		u->ax = l->rax;
 		u->bx = l->rbx;
@@ -100,12 +100,12 @@ elfcorefreebsdamd64(Fhdr *fp, Elf *elf, ElfNote *note)
 		u->r13 = l->r13;
 		u->r14 = l->r14;
 		u->r15 = l->r15;
-		
+
 		u->ds = l->ds;
 		u->es = l->es;
 		u->fs = l->fs;
 		u->gs = l->gs;
-		
+
 		u->type = l->trapno;
 		u->error = l->err;
 		u->ip = l->rip;
@@ -147,4 +147,3 @@ corecmdfreebsd386(Elf *elf, ElfNote *note, char **pp)
 	*pp = t;
 	return 0;
 }
-
blob - 6cd0a5f99a9d08f160ae103c0d3f53cad7bcb755
blob + d32932882e2ad07eaa8dd729f9f51f9e10d315cb
--- src/libmach/elfcorelinux386.c
+++ src/libmach/elfcorelinux386.c
@@ -12,8 +12,8 @@ typedef struct Status Status;
 typedef struct Psinfo Psinfo;
 
 /*
- * UregLinux386 is 64-bit aligned within status, so we shouldn't 
- * have any packing problems. 
+ * UregLinux386 is 64-bit aligned within status, so we shouldn't
+ * have any packing problems.
  */
 struct Status
 {
@@ -158,7 +158,7 @@ elfcorelinux386(Fhdr *fp, Elf *elf, ElfNote *note)
 			(uint)m->swap4(st->sighold));
 		dprint("pid=%ud ppid=%ud pgrp=%ud sid=%ud\n",
 			(uint)m->swap4(st->pid),
-			(uint)m->swap4(st->ppid),	
+			(uint)m->swap4(st->ppid),
 			(uint)m->swap4(st->pgrp),
 			(uint)m->swap4(st->sid));
 		dprint("utime=%ud.%06ud stime=%ud.%06ud cutime=%ud.%06ud cstime=%ud.%06ud\n",
@@ -199,4 +199,3 @@ elfcorelinux386(Fhdr *fp, Elf *elf, ElfNote *note)
 		dprint("note %d\n", note->type);
 	}
 }
-
blob - fc4e37fbc3c004cb45c2f70eab54a44cb7bcffce
blob + a67ed13cfe8018d464771e3813bb9c67b2f3b70f
--- src/libmach/elfdl386.c
+++ src/libmach/elfdl386.c
@@ -131,4 +131,3 @@ elfdl386mapdl(int verbose)
 			fprint(2, "syminit %s: %r\n", buf);
 	}
 }
-
blob - 06bb41a63fb6cf85b97c58b0961068574d028d68
blob + 0f3a974c03edc74ab1e09b45645bf500e17fa56e
--- src/libmach/elfdynsym.c
+++ src/libmach/elfdynsym.c
@@ -3,4 +3,4 @@
 #include "elf.h"
 
 int
-elfsym(Elf *elf, ElfSect *symtab, ElfSect *strtab, int ndx, ElfSym *
\ No newline at end of file
+elfsym(Elf *elf, ElfSect *symtab, ElfSect *strtab, int ndx, ElfSym *
blob - a94a096a95bccd29de1f9a79496fa3696ccd9466
blob + c76cca3ee7c2465cb89598cd84db2841d5d51723
--- src/libmach/fpformat.c
+++ src/libmach/fpformat.c
@@ -35,7 +35,7 @@ fpformat(Map *map, Regdesc *rp, char *buf, uint n, uin
 			if (rp->format == 'F')
 				return 1;
 			return 2;
-		}	
+		}
 			/* treat it like 'f' */
 		if (get1(map, rp->offset, (uchar *)reg, 4) < 0)
 			return -1;
blob - 2b7f8b3041f2f63e7b6692c83921bdd9c384655d
blob + 53450805afbf400d0111a0aca232850440703cfe
--- src/libmach/frame.c
+++ src/libmach/frame.c
@@ -49,13 +49,13 @@ stacktrace(Map *map, Regs *regs, Tracer trace)
 	next = malloc(mach->nwindreg*sizeof(cur[0]));
 	if(cur==nil || next==nil)
 		goto out;
-	
+
 	/*
 	 * Initialize current registers using regs.
 	 */
 	if(rget(regs, mach->pc, &pc) < 0){
 		werrstr("cannot fetch initial pc: %r");
-		goto out;	
+		goto out;
 	}
 
 	for(i=0; i<mach->nwindreg; i++){
blob - b095e8ffd9269785f5443cb2d51977096e9a3d6f
blob + cf8537ef63a8b093daa01aea64f15533a144887f
--- src/libmach/hexify.c
+++ src/libmach/hexify.c
@@ -17,4 +17,3 @@ _hexify(char *buf, u64int p, int zeros)
 	*buf++ = "0123456789abcdef"[p&0x0f];
 	return buf;
 }
-
blob - 9d5dc85788ce0d766e019046431f226f334272d6
blob + 00ce2e6804bdf8069171def9b8142eb41d8f6759
--- src/libmach/loc.c
+++ src/libmach/loc.c
@@ -271,4 +271,3 @@ locsimplify(Map *map, Regs *regs, Loc loc, Loc *newloc
 		*newloc = loc;
 	return 0;
 }
-
blob - 336cec352d6d41b22eeea233441e7308cad81467
blob + 109256304b45494b66092a7b4169cbd2bac483f6
--- src/libmach/mach386.c
+++ src/libmach/mach386.c
@@ -128,10 +128,10 @@ Mach mach386 =
 };
 
 /*
- * The wrapper code around Linux system calls 
+ * The wrapper code around Linux system calls
  * saves AX on the stack before calling some calls
- * (at least, __libc_nanosleep), when running in 
- * threaded programs. 
+ * (at least, __libc_nanosleep), when running in
+ * threaded programs.
  */
 static void
 syscallhack(Map *map, Regs *regs, int *spoff)
@@ -146,7 +146,7 @@ syscallhack(Map *map, Regs *regs, int *spoff)
 		return;
 	if(i386das(map, pc+2, 0, buf, sizeof buf) != 3 || strcmp(buf, "XCHGL\tAX,0(SP)") != 0)
 		return;
-	*spoff += 4;	
+	*spoff += 4;
 }
 
 int
@@ -1968,14 +1968,14 @@ plocal(Instr *ip)
 	Symbol s;
 	char *name;
 	Loc l, li;
-	
+
 	l.type = LOFFSET;
 	l.offset = ip->disp;
 	if(ip->base == SP)
 		l.reg = "SP";
 	else
 		l.reg = "BP";
-	
+
 	li.type = LADDR;
 	li.addr = ip->addr;
 	if(findsym(li, CTEXT, &s) < 0)
@@ -1989,7 +1989,7 @@ plocal(Instr *ip)
 
 	if(name==nil && findlsym(&s, l, &s) >= 0)
 		name = s.name;
-	
+
 	if(name)
 		bprint(ip, "%s+", name);
 
blob - f220ebcf767899e7d5cb6700390c124a1ae214cd
blob + d10257c83796e7cb74d2ba5076e78141b4c2f2bf
--- src/libmach/machamd64.c
+++ src/libmach/machamd64.c
@@ -171,10 +171,10 @@ Mach machamd64=
 	4,			/* szreg */
 	4,			/* szfloat */
 	8,			/* szdouble */
-	
+
 	amd64windregs,	/* locations unwound in stack trace */
 	17,
-	
+
 	{0xCC, 0, 0, 0},	/* break point: INT 3 */
 	1,			/* break point size */
 
blob - 38cb23745ac3a0e5adb51321cf1ce31ef265aef0
blob + ce74bcbbbd382d7e1478c1f1d98b974483575682
--- src/libmach/macho.c
+++ src/libmach/macho.c
@@ -4,7 +4,7 @@
 #include "macho.h"
 
 /*
-http://www.channelu.com/NeXT/NeXTStep/3.3/nd/DevTools/14_MachO/MachO.htmld/ 
+http://www.channelu.com/NeXT/NeXTStep/3.3/nd/DevTools/14_MachO/MachO.htmld/
 */
 
 Macho*
@@ -144,7 +144,7 @@ macholoadrel(Macho *m, MachoSect *sect)
 	uchar *buf, *p;
 	int i, n;
 	uint32 v;
-	
+
 	if(sect->rel != nil || sect->nreloc == 0)
 		return 0;
 	rel = mallocz(sect->nreloc * sizeof r[0], 1);
@@ -165,7 +165,7 @@ macholoadrel(Macho *m, MachoSect *sect)
 		r = &rel[i];
 		p = buf+i*8;
 		r->addr = m->e4(p);
-		
+
 		// TODO(rsc): Wrong interpretation for big-endian bitfields?
 		v = m->e4(p+4);
 		r->symnum = v & 0xFFFFFF;
@@ -183,7 +183,7 @@ macholoadrel(Macho *m, MachoSect *sect)
 	return 0;
 }
 
-int 
+int
 macholoadsym(Macho *m, MachoSymtab *symtab)
 {
 	char *strbuf;
@@ -202,7 +202,7 @@ macholoadsym(Macho *m, MachoSymtab *symtab)
 		free(strbuf);
 		return -1;
 	}
-	
+
 	symsize = 12;
 	if(m->is64)
 		symsize = 16;
blob - 2b449f04cdbbaefedecc6e31969c00f143e5f2b7
blob + 3537c0fccf5abfaa28d5f17733d868b6a34047d8
--- src/libmach/macho.h
+++ src/libmach/macho.h
@@ -62,7 +62,7 @@ struct MachoSect
 	uint32 reloff;
 	uint32 nreloc;
 	uint32 flags;
-	
+
 	MachoRel *rel;
 };
 
@@ -82,7 +82,7 @@ struct MachoSymtab
 	uint32 nsym;
 	uint32 stroff;
 	uint32 strsize;
-	
+
 	char *str;
 	MachoSym *sym;
 };
blob - 9cd06afbac01e22260fdede8570accef567697c0
blob + 89fc564f767008e53e334d07920927f4b5eb5165
--- src/libmach/machocorepower.c
+++ src/libmach/machocorepower.c
@@ -170,4 +170,3 @@ coreregsmachopower(Macho *m, uchar **up)
 	*up = (uchar*)u;
 	return sizeof(*u);
 }
-
blob - 2799f37aed5f7f83882f8ae51ba682e3315af5b5
blob + dd26e45a72eeb1a4ebcb4bd16e1d98fd8780b70f
--- src/libmach/machpower.c
+++ src/libmach/machpower.c
@@ -960,7 +960,7 @@ static	Spr	sprname[] = {
 	{26, "SRR0"},
 	{27, "SRR1"},
 	{284, "TBLW"},
-	{285, "TBUW"},	
+	{285, "TBUW"},
 	{22, "DEC"},
 	{282, "EAR"},
 	{1008, "HID0"},
@@ -1213,7 +1213,7 @@ powerfoll(Map *map, Regs *regs, u64int pc, u64int *fol
 		if(!i.aa)
 			foll[0] += pc;
 		break;
-			
+
 	case 16:	/* conditional branch */
 		foll[0] = i.bd;
 		if(!i.aa)
@@ -1246,7 +1246,7 @@ powerfoll(Map *map, Regs *regs, u64int pc, u64int *fol
 #define FP_REG(x)	(R31+4+8*(x))
 
 #define	REGSIZE		sizeof(struct Ureg)
-#define	FPREGSIZE	(8*33)	
+#define	FPREGSIZE	(8*33)
 
 Regdesc powerreglist[] =
 {
@@ -1328,7 +1328,7 @@ Regdesc powerreglist[] =
 	{  0 }
 };
 
-static char *powerwindregs[] = 
+static char *powerwindregs[] =
 {
 	"PC",
 	"SP",
@@ -1404,4 +1404,3 @@ Mach machpower =
 	powerhexinst,		/* print instruction */
 	powerinstlen,		/* instruction size calculation */
 };
-
blob - 852a29ea69044ac08dc02220393cb35dce92f1fe
blob + 5bf49c9d4287afa97b4d0aa0dabb95dff08a61a8
--- src/libmach/mangle.c
+++ src/libmach/mangle.c
@@ -3,19 +3,19 @@
 #include <bio.h>
 #include <mach.h>
 
-static char *(*demanglers[])(char*, char*) = 
+static char *(*demanglers[])(char*, char*) =
 {
 	demanglegcc2,
 	demanglegcc3,
 };
-	
+
 char*
 demangle(char *s, char *buf, int strip)
 {
 	char *t;
 	char *r, *w;
 	int i, nangle, nparen;
-	
+
 	t = nil;
 	for(i=0; i<nelem(demanglers); i++){
 		t = demanglers[i](s, buf);
blob - 9dae425b6bf2dd97410a11b429ca9e772b51da87
blob + 66231637b3644796720132bc82b50eb782812afb
--- src/libmach/manglegcc2.c
+++ src/libmach/manglegcc2.c
@@ -63,7 +63,7 @@ static Chartab modifiertab[] =
 	'S',	"signed",		/* means static for member functions */
 	'U',	"unsigned",
 	'V',	"volatile",
-	
+
 	'G',	"garbage",	/* no idea what this is */
 	0, 0
 };
@@ -86,8 +86,8 @@ demanglegcc2(char *s, char *buf)
 {
 	char *name, *os, *p, *t;
 	int isfn, namelen;
-	
 
+
 	/*
 	 * Pick off some cases that seem not to fit the pattern.
 	 */
@@ -119,22 +119,22 @@ demanglegcc2(char *s, char *buf)
 		isfn = 1;
 		name = gdestructor;
 		namelen = strlen(name);
-		s += 13;		
+		s += 13;
 	}else if(memcmp(s, "_GLOBAL_.D._", 12) == 0){
 		isfn = 0;
 		name = gdestructor;
 		namelen = strlen(name);
-		s += 12;		
+		s += 12;
 	}else if(memcmp(s, "_GLOBAL_.I.__", 13) == 0){
 		isfn = 1;
 		name = gconstructor;
 		namelen = strlen(name);
-		s += 13;		
+		s += 13;
 	}else if(memcmp(s, "_GLOBAL_.I._", 12) == 0){
 		isfn = 0;
 		name = gconstructor;
 		namelen = strlen(name);
-		s += 12;		
+		s += 12;
 	}else{
 		t = strstr(os, "__");
 		if(t == nil)
@@ -144,7 +144,7 @@ demanglegcc2(char *s, char *buf)
 			if(strchr(manglestarts, *(s+2)))
 				break;
 		}while((t = strstr(s+1, "__")) != nil);
-	
+
 		name = os;
 		namelen = s - os;
 		if(namelen == 0){
@@ -154,14 +154,14 @@ demanglegcc2(char *s, char *buf)
 		}
 		s += 2;
 	}
-	
+
 	/*
 	 * Now s points at the mangled crap (maybe).
 	 * and name is the final element of the name.
 	 */
 	if(strchr(manglestarts, *s) == nil)
 		return os;
-	
+
 	p = buf;
 	if(*s == 'F'){
 		/* global function, no extra name pieces, just types */
@@ -173,7 +173,7 @@ demanglegcc2(char *s, char *buf)
 				fprint(2, "parsename %s: %r\n", s);
 			return os;
 		}
-		
+
 		/* if we have a constructor or destructor, try to use the C++ name */
 		t = nil;
 		if(name == constructor || name == destructor){
@@ -197,7 +197,7 @@ demanglegcc2(char *s, char *buf)
 		p -= 2;
 	memmove(p, name, namelen);
 	p += namelen;
-	
+
 	if(*s == 'F'){
 		/* might be from above, or might follow name pieces */
 		s++;
@@ -219,8 +219,8 @@ demanglegcc2(char *s, char *buf)
 
 	if(*s == '_'){
 		/* return type (left over from H) */
-	}	
-	
+	}
+
 	*p = 0;
 	return buf;
 }
@@ -234,7 +234,7 @@ static char*
 demanglegcc2a(char *s, char *buf)
 {
 	char *p;
-	
+
 	if(*s != '_' || strchr(manglestarts, *(s+1)) == nil)
 		return nil;
 	p = buf;
@@ -259,7 +259,7 @@ demanglegcc2b(char *s, char *buf)
 {
 	char *p;
 	char *t;
-	
+
 	if(memcmp(s, "__ti", 4) == 0){
 		t = "$typeinfo";
 		s += 4;
@@ -325,7 +325,7 @@ gccnumber(char **ps, int *pn, int many)
 {
 	char *s;
 	int n, eatunderscore;
-	
+
 	s = *ps;
 	eatunderscore = 0;
 	if(!many && *s == '_'){
@@ -362,7 +362,7 @@ gccname(char **ps, char **pp)
 {
 	int i, n, m, val;
 	char *os, *s, *t, *p, *p0, *p1;
-	
+
 	s = *ps;
 	os = s;
 	p = *pp;
@@ -376,7 +376,7 @@ gccname(char **ps, char **pp)
 		p += strlen(t);
 		goto out;
 	}
-	
+
 	/* modifiers */
 	if((t = chartabsearch(modifiertab, *s)) != nil){
 		s++;
@@ -394,7 +394,7 @@ gccname(char **ps, char **pp)
 		*/
 		goto out;
 	}
-	
+
 	switch(*s){
 	default:
 	bad:
@@ -546,7 +546,7 @@ gccname(char **ps, char **pp)
 		if(!gccname(&s, &p))
 			return 0;
 		break;
-	
+
 	case 'Q':	/* qualified name */
 		s++;
 		if(!gccnumber(&s, &n, 0))
@@ -601,7 +601,7 @@ gccname(char **ps, char **pp)
 		}
 		*p++ = '>';
 		break;
-		
+
 	case 'T':	/* once-repeated type */
 		s++;
 		if(!gccnumber(&s, &n, 0))
@@ -609,7 +609,7 @@ gccname(char **ps, char **pp)
 		sprint(p, "T%d", n);
 		p += strlen(p);
 		break;
-	
+
 	case 'X':	/* type parameter in 'H' */
 		if(!isdigit((uchar)*(s+1)) || !isdigit((uchar)*(s+2)))
 			goto bad;
@@ -622,9 +622,8 @@ gccname(char **ps, char **pp)
 	USED(p1);
 	USED(p0);
 
-out:	
+out:
 	*ps = s;
 	*pp = p;
 	return 1;
 }
-
blob - eca26eb1b9af3aee17c5d10acfc2e45294649cac
blob + c0e73758c21bec3099f949a85567de8c34db6068
--- src/libmach/manglegcc3.c
+++ src/libmach/manglegcc3.c
@@ -34,14 +34,14 @@ demanglegcc3(char *s, char *buf)
 {
 	char *p, *os;
 	Gccstate state;
-	
+
 	state.nname = 0;
 	os = s;
 	/* mangled names always start with _Z */
 	if(s[0] != '_' || s[1] != 'Z')
 		return s;
 	s += 2;
-	
+
 	p = buf;
 	if(!gccname(&s, &p, &state)){
 		if(strchr(os, '@') == nil)
@@ -138,7 +138,7 @@ static struct {
 	"rs",	">>",		"rsh",
 	"st",	"sizeof",	"sizeoftype",
 	"sz",	"sizeof",	"sizeofexpr",
-	
+
 	0,0,0
 };
 
@@ -153,7 +153,7 @@ gccname(char **ps, char **pp, Gccstate *state)
 	int i, n;
 	char *os, *s, *t, *p;
 	Gccstate nstate;
-	
+
 	s = *ps;
 	os = s;
 	p = *pp;
@@ -170,7 +170,7 @@ gccname(char **ps, char **pp, Gccstate *state)
 			goto suffix;
 		}
 	}
-	
+
 	/* basic types */
 	if((t = chartabsearch(typetab, *s)) != nil){
 		s++;
@@ -178,7 +178,7 @@ gccname(char **ps, char **pp, Gccstate *state)
 		p += strlen(t);
 		goto suffix;
 	}
-	
+
 	switch(*s){
 	default:
 	bad:
@@ -245,7 +245,7 @@ gccname(char **ps, char **pp, Gccstate *state)
 		p -= 2;
 		s++;
 		break;
-	
+
 	case 'P':	/* pointer to */
 		s++;
 		if(!gccname(&s, &p, state))
@@ -282,7 +282,7 @@ gccname(char **ps, char **pp, Gccstate *state)
 			s += 2;
 			break;
 		}
-		
+
 		/* standard name */
 		if(*s == 't'){
 			strcpy(p, "std::");
@@ -300,7 +300,7 @@ gccname(char **ps, char **pp, Gccstate *state)
 			*p++ = *s++;
 		}
 		break;
-	
+
 	case 'T':	/* previously-seen type??? T0_ also T_*/
 		t = s;
 		for(; *s != '_'; s++){
@@ -312,9 +312,9 @@ gccname(char **ps, char **pp, Gccstate *state)
 		s++;
 		memmove(p, t, s-t);
 		p += s-t;
-		break;		
+		break;
 	}
-	
+
 suffix:
 	if(*s == 'I'){
 		/* template suffix */
@@ -336,4 +336,3 @@ suffix:
 	*pp = p;
 	return 1;
 }
-
blob - 392efbeddcbc8f1068cfd037420458008974723e
blob + db8c15fc095d4ea6fbaf1b144a36a8d3ad6dc65e
--- src/libmach/map.c
+++ src/libmach/map.c
@@ -281,7 +281,7 @@ fdrw(Map *map, Seg *seg, u64int addr, void *a, uint n,
 		else
 			nn = pwrite(seg->fd, a, n-tot, off+tot);
 		if(nn < 0)
-			return -1;	
+			return -1;
 		if(nn == 0){
 			werrstr("partial %s at address 0x%lux in %s",
 				r ? "read" : "write", off+tot, seg->file);
blob - 07616c1fb1a2a2ff770224ff2df61eb191e0b1ed
blob + cdab6108d5ec76b5eb3d4d7aed9beb430470af31
--- src/libmach/regs.c
+++ src/libmach/regs.c
@@ -59,4 +59,3 @@ _uregrw(Regs *regs, char *name, u64int *u, int isr)
 		return 0;
 	}
 }
-
blob - 18805a51943d46a64135f10c7a6e0a7e6b523733
blob + 91950657c32c862bd5e04d8104354fd766be54e8
--- src/libmach/stabs.c
+++ src/libmach/stabs.c
@@ -51,4 +51,3 @@ stabsym(Stab *stabs, int i, StabSym *sym)
 	sym->value = stabs->e4(p+8);
 	return 0;
 }
-
blob - ad67cfe648162d58a0b604f11fcb2b3ddfb18c1f
blob + 4743f780da1983910db74df4bc2b7c2ce88b0037
--- src/libmach/stabs.h
+++ src/libmach/stabs.h
@@ -114,4 +114,3 @@ X		function return variable
 */
 
 int stabsym(Stab*, int, StabSym*);
-
blob - 6369cdd1638160cdceee144a72de3fc747026f59
blob + b165e125a001e1ff19712124df0560b57d7c8718
--- src/libmach/sym.c
+++ src/libmach/sym.c
@@ -296,7 +296,7 @@ ffindsym(Fhdr *fhdr, Loc loc, uint class)
 	 * We want to find the largest index i such that
 	 * a[i] <= loc.  This cannot be done with a simple
 	 * binary search.  Instead we binary search to find
-	 * where the location should be. 
+	 * where the location should be.
 	 */
 	lo = 0;
 	hi = n;
@@ -529,7 +529,7 @@ symopen(Fhdr *hdr)
 			hdr->byname[i] = &hdr->sym[i];
 		qsort(hdr->byname, hdr->nsym, sizeof(hdr->byname[0]), bynamecmp);
 	}
-	
+
 	hdr->byxname = malloc(hdr->nsym*sizeof(hdr->byxname[0]));
 	if(hdr->byxname == nil){
 		fprint(2, "could not allocate table to sort by xname\n");
@@ -581,4 +581,3 @@ _addsym(Fhdr *fp, Symbol *sym)
 	*s = *sym;
 	return s;
 }
-
blob - 4552b0347d687be062bf5f1da4b74aaa338605c6
blob + 49a66dad48c38f68cf2f1dc771b4b999b8e0a452
--- src/libmach/symdwarf.c
+++ src/libmach/symdwarf.c
@@ -79,7 +79,7 @@ top:
 			name, unit, tref);
 		return 0;
 	}
-	
+
 	if(ds.attrs.have.bytesize)
 		return ds.attrs.bytesize;
 
@@ -230,7 +230,7 @@ dwarftosym(Fhdr *fp, Dwarf *d, DwarfSym *ds, Symbol *s
 {
 	DwarfBuf buf;
 	DwarfBlock b;
-	
+
 	memset(s, 0, sizeof *s);
 	s->u.dwarf.uoff = ds->uoff;
 	s->u.dwarf.unit = ds->unit;
@@ -356,7 +356,7 @@ dwarfeval(Dwarf *d, Map *map, Regs *regs, ulong cfa, i
 		if(rget(regs, regname(d, e.reg), &uu) < 0)
 			return -1;
 		if(get4(map, uu+e.offset, &u4) < 0)
-			return -1;	
+			return -1;
 		*u = u4;
 		return 0;
 	case RuleLocation:
@@ -465,4 +465,3 @@ err:
 	free(e);
 	return -1;
 }
-
blob - 40dec1132e6ce9a5c14c2cc5faedc8b8a2a9a1ca
blob + dd1752eb2699bea065eede1eaf77556063567ef6
--- src/libmach/symelf.c
+++ src/libmach/symelf.c
@@ -118,4 +118,3 @@ symelf(Fhdr *fhdr)
 		ret = 0;
 	return ret;
 }
-
blob - 674190ffe4e0c63e596bf6476b17a30182344a6d
blob + 89e87fe7bc0cfa2fe7e2a1883f4066ad4fd34420
--- src/libmach/symmacho.c
+++ src/libmach/symmacho.c
@@ -47,4 +47,3 @@ symmacho(Fhdr *fp)
 	}
 	return ret;
 }
-
blob - e253f023be14fd1487827acc9bee60959b4a9fd0
blob + 9afa4c164f9cd9dadc7e40991606bdf7184474e9
--- src/libmach/symstabs.c
+++ src/libmach/symstabs.c
@@ -112,7 +112,7 @@ stabcvtsym(StabSym *stab, Symbol *sym, char *dir, char
 		}
 		break;
 	}
-	return 0;	
+	return 0;
 }
 
 static int
@@ -209,15 +209,15 @@ stabssyminit(Fhdr *fp)
 				if(fun->u.stabs.frameptr == -1){
 					/*
 					 * Try to distinguish functions with a real frame pointer
-				 	 * from functions with a virtual frame pointer, based on 
+				 	 * from functions with a virtual frame pointer, based on
 					 * whether the first parameter is in the right location and
-					 * whether the autos have negative offsets.  
-					 * 
+					 * whether the autos have negative offsets.
+					 *
 					 * This heuristic works most of the time.  On the 386, we
 					 * cannot distinguish between a v. function with no autos
 					 * but a frame of size 4 and a f.p. function with no autos and
 					 * no frame.   Anything else we'll get right.
-					 * 
+					 *
 					 * Another way to go about this would be to have
 					 * mach-specific functions to inspect the function
 					 * prologues when we're not sure.  What we have
blob - 37d4b505ccb6bd791cfed83b37c21ee2e141e4ec
blob + 0322dc35deb07d965dd3f4f881cabcba57a4106c
--- src/libmach/t.c
+++ src/libmach/t.c
@@ -97,7 +97,7 @@ printparams(Symbol *fn, Regs *regs)
 	int first = 0;
 	ulong pc, sp, bp;
 
-	if(0) print("pc=%lux sp=%lux bp=%lux ", 
+	if(0) print("pc=%lux sp=%lux bp=%lux ",
 		(rget(regs, "PC", &pc), pc),
 		(rget(regs, "SP", &sp), sp),
 		(rget(regs, "BP", &bp), bp));
@@ -180,7 +180,7 @@ main(int argc, char **argv)
 		if((e = td_thr_get_info(&ts[i], &info)) != TD_OK)
 			sysfatal("td_thr_get_info: %s", terr(e));
 		print("%d: startfunc=%lux stkbase=%lux pc=%lux sp=%lux lid=%d\n",
-			i, info.ti_startfunc, info.ti_stkbase, info.ti_pc, info.ti_sp, info.ti_lid);	
+			i, info.ti_startfunc, info.ti_stkbase, info.ti_pc, info.ti_sp, info.ti_lid);
 		if((e = td_thr_getgregs(&ts[i], regs)) != TD_OK)
 			sysfatal("td_thr_getregs: %s", terr(e));
 		print("%d: pc=%lux sp=%lux gs=%lux\n", i, regs[12], regs[15], regs[10]);
@@ -233,7 +233,7 @@ td_get_allthreads(td_thragent_t *ta, td_thrhandle_t **
 	a.a = nil;
 	a.n = 0;
 	a.err = 0;
-	if((e = td_ta_thr_iter(ta, thritercb, &a, 
+	if((e = td_ta_thr_iter(ta, thritercb, &a,
 		TD_THR_ANY_STATE,
 		TD_THR_LOWEST_PRIORITY,
 		TD_SIGNO_MASK,
@@ -251,7 +251,7 @@ td_get_allthreads(td_thragent_t *ta, td_thrhandle_t **
 	return a.n;
 }
 
-/* 
+/*
 td_err_e td_ta_map_id2thr(const td_thragent_t *ta_p, thread_t tid,td_thrhandle_t *th_p);
 */
 
blob - b2df1fe7e368211955063cd7ac2f64c0a5a827dd
blob + 06770d2d44a68e46326608935cd16b90b32e691a
--- src/libmach/ureg386.c
+++ src/libmach/ureg386.c
@@ -48,4 +48,3 @@ ureg2linux386(Ureg *u, UregLinux386 *l)
 	l->esp = u->sp;
 	l->xss = u->ss;
 }
-
blob - 2c92f6feefdfeccbbb2f0eadba4a8dc3f07e4871
blob + ea4d1198ef441f0a7b12fe30f95d4d44d83ad808
--- src/libmemdraw/alloc-stub.c
+++ src/libmemdraw/alloc-stub.c
@@ -14,4 +14,3 @@ freememimage(Memimage *m)
 {
 	_freememimage(m);
 }
-
blob - fa23b5e03cd8a5db59d03610494d0c20423e2d35
blob + af7f6d430e083801723690c550a756deb5142202
--- src/libmemdraw/alloc.c
+++ src/libmemdraw/alloc.c
@@ -47,7 +47,7 @@ allocmemimaged(Rectangle r, u32int chan, Memdata *md, 
 	i->X = X;
 	i->data = md;
 	i->zero = sizeof(u32int)*l*r.min.y;
-	
+
 	if(r.min.x >= 0)
 		i->zero += (r.min.x*d)/8;
 	else
blob - b3a8c21119b67ad4a227fbe2caa4e497b1ed1350
blob + ad7fc326fd4d68c0df58af5910b945705fa1ba82
--- src/libmemdraw/arctest.c
+++ src/libmemdraw/arctest.c
@@ -47,7 +47,7 @@ rdb(void)
 int
 iprint(char *fmt, ...)
 {
-	int n;	
+	int n;
 	va_list va;
 	char buf[1024];
 
@@ -58,4 +58,3 @@ iprint(char *fmt, ...)
 	write(1,buf,n);
 	return 1;
 }
-
blob - 08e46a1c10dee60bc1f6bb68dcbf392e8f889b43
blob + be411011f536aa4922d07653b7502c4217610b73
--- src/libmemdraw/draw-stub.c
+++ src/libmemdraw/draw-stub.c
@@ -7,7 +7,7 @@ void
 memimagedraw(Memimage *dst, Rectangle r, Memimage *src, Point sp, Memimage *mask, Point mp, int op)
 {
 	Memdrawparam *par;
-	
+
 	if((par = _memimagedrawsetup(dst, r, src, sp, mask, mp, op)) == nil)
 		return;
 	_memimagedraw(par);
@@ -24,4 +24,3 @@ pixelbits(Memimage *m, Point p)
 {
 	return _pixelbits(m, p);
 }
-
blob - 4b9885863575f2914df65bb6a3fb93521016f799
blob + 4075023ed4125fe35bdc4cfc4334017c7881b4b7
--- src/libmemdraw/draw.c
+++ src/libmemdraw/draw.c
@@ -65,7 +65,7 @@ memimageinit(void)
 	mktables();
 	_memmkcmap();
 
-	fmtinstall('R', Rfmt); 
+	fmtinstall('R', Rfmt);
 	fmtinstall('P', Pfmt);
 	fmtinstall('b', __ifmt);
 
@@ -166,7 +166,7 @@ void
 _memimagedraw(Memdrawparam *par)
 {
 	/*
-	 * Now that we've clipped the parameters down to be consistent, we 
+	 * Now that we've clipped the parameters down to be consistent, we
 	 * simply try sub-drawing routines in order until we find one that was able
 	 * to handle us.  If the sub-drawing routine returns zero, it means it was
 	 * unable to satisfy the request, so we do not return.
@@ -215,7 +215,7 @@ DBG print("alphadraw handled\n");
 #undef DBG
 
 /*
- * Clip the destination rectangle further based on the properties of the 
+ * Clip the destination rectangle further based on the properties of the
  * source and mask rectangles.  Once the destination rectangle is properly
  * clipped, adjust the source and mask rectangles to be the same size.
  * Then if source or mask is replicated, move its clipped rectangle
@@ -343,7 +343,7 @@ static int replmul[1+8] = {
 	a _ _ X _ _ X _ _ X _ _ X _ _ X _,
 	a _ _ _ X _ _ _ X _ _ _ X _ _ _ X,
 	a _ _ _ _ X _ _ _ _ X _ _ _ _ X _,
-	a _ _ _ _ _ X _ _ _ _ _ X _ _ _ _, 
+	a _ _ _ _ _ X _ _ _ _ _ X _ _ _ _,
 	a _ _ _ _ _ _ X _ _ _ _ _ _ X _ _,
 	a _ _ _ _ _ _ _ X _ _ _ _ _ _ _ X,
 };
@@ -355,7 +355,7 @@ static void
 mktables(void)
 {
 	int i, j, mask, sh, small;
-		
+
 	if(tablesbuilt)
 		return;
 
@@ -421,7 +421,7 @@ enum {
 /* giant rathole to customize functions with */
 struct Param {
 	Readfn	*replcall;
-	Readfn	*greymaskcall;	
+	Readfn	*greymaskcall;
 	Readfn	*convreadcall;
 	Writefn	*convwritecall;
 
@@ -468,7 +468,7 @@ static Writefn*	writefn(Memimage*);
 static Calcfn*	boolcopyfn(Memimage*, Memimage*);
 static Readfn*	convfn(Memimage*, Param*, Memimage*, Param*);
 
-static Calcfn *alphacalc[Ncomp] = 
+static Calcfn *alphacalc[Ncomp] =
 {
 	alphacalc0,		/* Clear */
 	alphacalc14,		/* DoutS */
@@ -570,14 +570,14 @@ dumpbuf(char *s, Buffer b, int n)
 {
 	int i;
 	uchar *p;
-	
+
 	print("%s", s);
 	for(i=0; i<n; i++){
 		print(" ");
 		if(p=b.grey){
 			print(" k%.2uX", *p);
 			b.grey += b.delta;
-		}else{	
+		}else{
 			if(p=b.red){
 				print(" r%.2uX", *p);
 				b.red += b.delta;
@@ -607,7 +607,7 @@ dumpbuf(char *s, Buffer b, int n)
  * If the destination image is grey and the source is not, it is converted using the NTSC
  * formula.
  *
- * Once we have all the channels, we call either rgbcalc or greycalc, depending on 
+ * Once we have all the channels, we call either rgbcalc or greycalc, depending on
  * whether the destination image is color.  This is allowed to overwrite the dst buffer (perhaps
  * the actual data, perhaps a copy) with its result.  It should only overwrite the dst buffer
  * with the same format (i.e. red bytes with red bytes, etc.)  A new buffer is returned from
@@ -637,7 +637,7 @@ alphadraw(Memdrawparam *par)
 	ndrawbuf = 0;
 
 	src = par->src;
-	mask = par->mask;	
+	mask = par->mask;
 	dst = par->dst;
 	sr = par->sr;
 	mr = par->mr;
@@ -646,7 +646,7 @@ alphadraw(Memdrawparam *par)
 	isgrey = dst->flags&Fgrey;
 
 	/*
-	 * Buffering when src and dst are the same bitmap is sufficient but not 
+	 * Buffering when src and dst are the same bitmap is sufficient but not
 	 * necessary.  There are stronger conditions we could use.  We could
 	 * check to see if the rectangles intersect, and if simply moving in the
 	 * correct y direction can avoid the need to buffer.
@@ -807,7 +807,7 @@ static int
 chanmatch(Buffer *bdst, Buffer *bsrc)
 {
 	uchar *drgb, *srgb;
-	
+
 	/*
 	 * first, r, g, b must be in the same place
 	 * in the rgba word.
@@ -818,7 +818,7 @@ chanmatch(Buffer *bdst, Buffer *bsrc)
 	|| bdst->blu - drgb != bsrc->blu - srgb
 	|| bdst->grn - drgb != bsrc->grn - srgb)
 		return 0;
-	
+
 	/*
 	 * that implies alpha is in the same place,
 	 * if it is there at all (it might be == &ones).
@@ -827,7 +827,7 @@ chanmatch(Buffer *bdst, Buffer *bsrc)
 	 */
 	if(bdst->alpha == &ones)
 		return 1;
-	
+
 	/*
 	 * if the destination is not ones but the src is,
 	 * then the simultaneous calculation will use
@@ -835,7 +835,7 @@ chanmatch(Buffer *bdst, Buffer *bsrc)
 	 */
 	if(bsrc->alpha == &ones)
 		return 0;
-	
+
 	/*
 	 * otherwise, alphas are in the same place.
 	 */
@@ -1526,7 +1526,7 @@ writecmap(Param *p, uchar *w, Buffer src)
 	int i, dx, delta;
 
 	cmap = p->img->cmap->rgb2cmap;
-	
+
 	delta = src.delta;
 	red= src.red;
 	grn = src.grn;
@@ -1615,7 +1615,7 @@ readbyte(Param *p, uchar *buf, int y)
 		if(r == end)
 			r = begin;
 	}
-	
+
 	b.alpha = copyalpha ? buf : &ones;
 	b.rgba = (u32int*)buf;
 	if(alphaonly){
@@ -1868,7 +1868,7 @@ genconv(Param *p, uchar *buf, int y)
 	b.blu = b.grn = b.grey = b.alpha = nil;
 	b.rgba = (u32int*)buf;
 	b.delta = 0;
-	
+
 	return b;
 }
 
@@ -2050,12 +2050,12 @@ _imgtorgba(Memimage *img, u32int val)
 		case CMap:
 			p = img->cmap->cmap2rgb+3*ov;
 			r = *p++;
-			g = *p++;	
+			g = *p++;
 			b = *p;
 			break;
 		}
 	}
-	return (r<<24)|(g<<16)|(b<<8)|a;	
+	return (r<<24)|(g<<16)|(b<<8)|a;
 }
 
 u32int
@@ -2148,14 +2148,14 @@ DBG print("sdval %lud, depth %d\n", v, dst->depth);
 			dx -= (ppb-np);
 			nb = 8 - np * dst->depth;		/* no. bits used on right side of word */
 			lm = (1<<nb)-1;
-DBG print("np %d x %d nb %d lm %ux ppb %d m %ux\n", np, par->r.min.x, nb, lm, ppb, m);	
+DBG print("np %d x %d nb %d lm %ux ppb %d m %ux\n", np, par->r.min.x, nb, lm, ppb, m);
 
 			/* right edge */
 			np = par->r.max.x&m;	/* no. pixels used on left side of word */
 			dx -= np;
 			nb = 8 - np * dst->depth;		/* no. bits unused on right side of word */
 			rm = ~((1<<nb)-1);
-DBG print("np %d x %d nb %d rm %ux ppb %d m %ux\n", np, par->r.max.x, nb, rm, ppb, m);	
+DBG print("np %d x %d nb %d rm %ux ppb %d m %ux\n", np, par->r.max.x, nb, rm, ppb, m);
 
 DBG print("dx %d Dx %d\n", dx, Dx(par->r));
 			/* lm, rm are masks that are 1 where we should touch the bits */
@@ -2230,7 +2230,7 @@ DBG print("dp=%p; dx=%d; for(y=0; y<%d; y++, dp+=%d)\n
 	 * the source is not replicated, memmove suffices.
 	 */
 	m = Simplemask|Fullmask;
-	if((par->state&(m|Replsrc))==m && src->depth >= 8 
+	if((par->state&(m|Replsrc))==m && src->depth >= 8
 	&& src->chan == dst->chan && !(src->flags&Falpha) && (op == S || op == SoverD)){
 		uchar *sp, *dp;
 		long swid, dwid, nb;
@@ -2262,8 +2262,8 @@ DBG print("dp=%p; dx=%d; for(y=0; y<%d; y++, dp+=%d)\n
 	 * they're all bit aligned, we can just use bit operators.  This happens
 	 * when we're manipulating boolean masks, e.g. in the arc code.
 	 */
-	if((par->state&(Simplemask|Simplesrc|Replmask|Replsrc))==0 
-	&& dst->chan==GREY1 && src->chan==GREY1 && par->mask->chan==GREY1 
+	if((par->state&(Simplemask|Simplesrc|Replmask|Replsrc))==0
+	&& dst->chan==GREY1 && src->chan==GREY1 && par->mask->chan==GREY1
 	&& (par->r.min.x&7)==(par->sr.min.x&7) && (par->r.min.x&7)==(par->mr.min.x&7)){
 		uchar *sp, *dp, *mp;
 		uchar lm, rm;
@@ -2352,7 +2352,7 @@ DBG print("dp=%p; dx=%d; for(y=0; y<%d; y++, dp+=%d)\n
 		}
 		return 1;
 	}
-	return 0;	
+	return 0;
 }
 #undef DBG
 
@@ -2382,7 +2382,7 @@ chardraw(Memdrawparam *par)
 	} gcc_black_box;
 
 if(0) if(drawdebug) iprint("chardraw? mf %lux md %d sf %lux dxs %d dys %d dd %d ddat %p sdat %p\n",
-		par->mask->flags, par->mask->depth, par->src->flags, 
+		par->mask->flags, par->mask->depth, par->src->flags,
 		Dx(par->src->r), Dy(par->src->r), par->dst->depth, par->dst->data, par->src->data);
 
 	mask = par->mask;
@@ -2417,7 +2417,7 @@ DBG print("bsh %d\n", bsh);
 	 * for loop counts from bsh to bsh+dx
 	 *
 	 * we want the bottom bits to be the amount
-	 * to shift the pixels down, so for n≡0 (mod 8) we want 
+	 * to shift the pixels down, so for n≡0 (mod 8) we want
 	 * bottom bits 7.  for n≡1, 6, etc.
 	 * the bits come from -n-1.
 	 */
@@ -2496,8 +2496,8 @@ DBG iprint("bits %lux sh %d...", bits, i);
 		}
 	}
 
-DBG print("\n");	
-	return 1;	
+DBG print("\n");
+	return 1;
 }
 #undef DBG
 
@@ -2518,13 +2518,13 @@ membyteval(Memimage *src)
 	bpp = src->depth;
 	uc <<= (src->r.min.x&(7/src->depth))*src->depth;
 	uc &= ~(0xFF>>bpp);
-	* pixel value is now in high part of byte. repeat throughout byte 
+	* pixel value is now in high part of byte. repeat throughout byte
 	val = uc;
 	for(i=bpp; i<8; i<<=1)
 		val |= val>>i;
 	return val;
 }
- * 
+ *
  */
 
 void
@@ -2555,4 +2555,3 @@ _memfillcolor(Memimage *i, u32int val)
 		break;
 	}
 }
-
blob - 07cda45df25f888ad028fb8ad0fc09c0b11c47cf
blob + fb883d4e3ea940342f1bf92e39eb2a86594331a2
--- src/libmemdraw/drawtest.c
+++ src/libmemdraw/drawtest.c
@@ -57,7 +57,7 @@ rdb(void)
 int
 iprint(char *fmt, ...)
 {
-	int n;	
+	int n;
 	va_list va;
 	char buf[1024];
 
@@ -362,7 +362,7 @@ fill(Memimage *img, uchar *ucbits)
 		}
 		img->data->bdata = data;
 	}
-		
+
 }
 
 /*
@@ -391,7 +391,7 @@ verifyonemask(void)
 	drawonepixel(dst, dp, src, sp, mask, mp);
 	memmove(mask->data->bdata, maskbits, mask->width*sizeof(u32int)*Yrange);
 	memmove(savedstbits, dst->data->bdata, dst->width*sizeof(u32int)*Yrange);
-	
+
 	memmove(dst->data->bdata, dstbits, dst->width*sizeof(u32int)*Yrange);
 	memimagedraw(dst, Rect(dp.x, dp.y, dp.x+1, dp.y+1), src, sp, mask, mp, SoverD);
 	memmove(mask->data->bdata, maskbits, mask->width*sizeof(u32int)*Yrange);
@@ -606,7 +606,7 @@ replicate(Memimage *i, Memimage *tmp)
 		else
 			r.max.y = r.min.y+3 + nrand(Yrange-(r.min.y+3));
 	}
-	assert(r.min.x >= 0);	
+	assert(r.min.x >= 0);
 	assert(r.max.x <= Xrange);
 	assert(r.min.y >= 0);
 	assert(r.max.y <= Yrange);
@@ -871,7 +871,7 @@ getmask(Memimage *img, Point pt)
 #define DBG if(0)
 /*
  * Write a pixel to img at point pt.
- * 
+ *
  * We do this by reading a 32-bit little endian
  * value from p and then writing it back
  * after tweaking the appropriate bits.  Because
@@ -896,7 +896,7 @@ DBG print("v %.8lux...", v);
 		/*
 		 * Sub-byte greyscale pixels.  We need to skip the leftmost pt.x%npack pixels,
 		 * which is equivalent to skipping the rightmost npack - pt.x%npack - 1 pixels.
-		 */	
+		 */
 		npack = 8/bpp;
 		sh = bpp*(npack - pt.x%npack - 1);
 		bits = RGB2K(r,g,b);
@@ -959,7 +959,7 @@ DBG print("v %.8lux\n", v);
 	p[0] = v;
 	p[1] = v>>8;
 	p[2] = v>>16;
-	p[3] = v>>24;	
+	p[3] = v>>24;
 }
 #undef DBG
 
blob - 7dc45cd6fee3dab9ea799c8b0dcdb62422018e20
blob + a467c248bd5f281d10e7f4b8c1b4a98486296abc
--- src/libmemdraw/ellipse.c
+++ src/libmemdraw/ellipse.c
@@ -83,24 +83,24 @@ step(State *s)
 	while(s->x < s->a) {
 		if(s->ee+s->b2x <= s->c1 ||	/* e(x+1,y-1/2) <= 0 */
 		   s->ee+s->a2y <= s->c2) {	/* e(x+1/2,y) <= 0 (rare) */
-			s->dxe += s->d2xe;	  
-			s->ee += s->dxe;	  
+			s->dxe += s->d2xe;
+			s->ee += s->dxe;
 			s->b2x += s->b2;
-			s->x++;	  
+			s->x++;
 			continue;
 		}
-		s->dye += s->d2ye;	  
-		s->ee += s->dye;	  
+		s->dye += s->d2ye;
+		s->ee += s->dye;
 		s->a2y -= s->a2;
 		if(s->ee-s->a2y <= s->c2) {	/* e(x+1/2,y-1) <= 0 */
-			s->dxe += s->d2xe;	  
-			s->ee += s->dxe;	  
+			s->dxe += s->d2xe;
+			s->ee += s->dxe;
 			s->b2x += s->b2;
 			return s->x++;
 		}
 		break;
 	}
-	return s->x;	  
+	return s->x;
 }
 
 void
@@ -132,7 +132,7 @@ memellipse(Memimage *dst, Point c, int a, int b, int t
 	if(t < 0) {
 		inb = -1;
 		newstate(&out, a, y = b);
-	} else {	
+	} else {
 		inb = b - t;
 		newstate(&out, a+t, y = b+t);
 	}
@@ -229,7 +229,7 @@ epoint(int x, int y, Param *p)
 	memdraw(p->dst, r, p->src, addpt(p->sp, r.min), p->disc, p->disc->r.min, p->op);
 }
 
-/* 
+/*
  * a brushed horizontal or vertical line similarly specified
  */
 static
blob - d75459f1780b5ed24f9e690dea080479877b60b7
blob + 37d2635b5f4625c04c389e718f0799b837a55713
--- src/libmemdraw/fill-stub.c
+++ src/libmemdraw/fill-stub.c
@@ -8,4 +8,3 @@ memfillcolor(Memimage *m, u32int val)
 {
 	_memfillcolor(m, val);
 }
-
blob - 3f36250f22ec43c8bf6cb3d064bc2cc8e01333e5
blob + 59f63be2fc2a58717340b2c4f3f0010650dbae24
--- src/libmemdraw/hwdraw.c
+++ src/libmemdraw/hwdraw.c
@@ -9,4 +9,3 @@ hwdraw(Memdrawparam *p)
 	USED(p);
 	return 0;	/* could not satisfy request */
 }
-
blob - 923b6b448c8e075b6c258e5777eb21a24de21cdd
blob + 5243970be29b8e5910c8d3e7ec9ea60d2ba8b1ae
--- src/libmemdraw/iprint.c
+++ src/libmemdraw/iprint.c
@@ -9,4 +9,3 @@ iprint(char *fmt,...)
 	USED(fmt);
 	return -1;
 }
-
blob - b0d5fcee18d715c9b7f1327dcf6b113bc45328e1
blob + 7cca3a6fd3b2f8522905beae7e55786c2696a456
--- src/libmemdraw/load-stub.c
+++ src/libmemdraw/load-stub.c
@@ -8,4 +8,3 @@ loadmemimage(Memimage *i, Rectangle r, uchar *data, in
 {
 	return _loadmemimage(i, r, data, ndata);
 }
-
blob - 6dc6eea68abcc45d45d55902fbdca4bd06ca2f72
blob + 85646abf210b0bd4dedcfcb7edad76dc253888c8
--- src/libmp/port/crt.c
+++ src/libmp/port/crt.c
@@ -53,7 +53,7 @@ crtpre(int n, mpint **m)
 
 	mpfree(u);
 
-	return crt;		
+	return crt;
 }
 
 void
blob - ef94813a2f6e849ed00b318e57b52ff7eaf283c9
blob + 213a013071d3543f12feab913503b21da556624c
--- src/libmp/port/mpaux.c
+++ src/libmp/port/mpaux.c
@@ -186,4 +186,3 @@ mplowbits0(mpint *n)
 	}
 	return k;
 }
-
blob - 712db1706b322d1ffe93fa443b935a1354bbd4bb
blob + 696b16b0987431f79d48e79f65dffb21c5cf06d5
--- src/libmp/port/mpextendedgcd.c
+++ src/libmp/port/mpextendedgcd.c
@@ -63,7 +63,7 @@ mpextendedgcd(mpint *a, mpint *b, mpint *v, mpint *x, 
 			mpright(A, 1, A);
 			mpright(B, 1, B);
 		}
-	
+
 /*		print("%B %B %B %B %B %B\n", u, v, A, B, C, D); */
 		while(iseven(v)){
 			mpright(v, 1, v);
@@ -74,7 +74,7 @@ mpextendedgcd(mpint *a, mpint *b, mpint *v, mpint *x, 
 			mpright(C, 1, C);
 			mpright(D, 1, D);
 		}
-	
+
 /*		print("%B %B %B %B %B %B\n", u, v, A, B, C, D); */
 		if(mpcmp(u, v) >= 0){
 			mpsub(u, v, u);
blob - 7e34597dd21ae9899d7ab180e04be6d8d51c85ae
blob + 7da82ed76758f36e6d101b65393c252c10c41a13
--- src/libmp/port/mpfmt.c
+++ src/libmp/port/mpfmt.c
@@ -200,4 +200,3 @@ mpfmt(Fmt *fmt)
 		return 0;
 	}
 }
-
blob - d49225e9edbc4bd91bfb4ebf111b82c12134d529
blob + a6e4f4579d76be67b308da81baaf8db8178118b0
--- src/libmp/port/mptobe.c
+++ src/libmp/port/mptobe.c
@@ -29,7 +29,7 @@ mptobe(mpint *b, uchar *p, uint n, uchar **pp)
 		else
 			return 1;
 	}
-		
+
 	s = p;
 	e = s+n;
 	suppress = 1;
blob - 0b676ef658983b7ede806db51bab06c141146302
blob + ffefd48ed7c9614fd5a2b984d5b06b6b6a927463
--- src/libmp/port/mptole.c
+++ src/libmp/port/mptole.c
@@ -30,7 +30,7 @@ mptole(mpint *b, uchar *p, uint n, uchar **pp)
 		else
 			return 0;
 	}
-		
+
 	s = p;
 	e = s+n;
 	for(i = 0; i < b->top-1; i++){
blob - 9cb74ea468c72f248a418f998dda21b738afe255
blob + b4aff1337f8ed21d6c52bfd125d8d22e7ca5d203
--- src/libmp/port/mptouv.c
+++ src/libmp/port/mptouv.c
@@ -23,7 +23,7 @@ uvtomp(uvlong v, mpint *b)
 	for(s = 0; s < VLDIGITS && v != 0; s++){
 		b->p[s] = v;
 	/* !@*$&!@$ gcc gives warnings about the >> here
-	 * when running on 64-bit machines, even though 
+	 * when running on 64-bit machines, even though
 	 * it's in dead code.  fake it out with two shifts.
 		if(sizeof(mpdigit) == sizeof(uvlong))
 			v = 0;
blob - b24b8e3e7d1ff271011787c27f87505f8a0e2094
blob + 349bf335e1063ae1442452dfdd77ca7f57f30d6a
--- src/libmp/port/mptov.c
+++ src/libmp/port/mptov.c
@@ -29,7 +29,7 @@ vtomp(vlong v, mpint *b)
 	for(s = 0; s < VLDIGITS && uv != 0; s++){
 		b->p[s] = uv;
 	/* !@*$&!@$ gcc gives warnings about the >> here
-	 * when running on 64-bit machines, even though 
+	 * when running on 64-bit machines, even though
 	 * it's in dead code.  fake it out with two shifts.
 		if(sizeof(mpdigit) == sizeof(uvlong))
 			uv = 0;
blob - dae875d66b2c120295534d274f869e9ad4be3b02
blob + 07a1f976581732cfc565e5e3fbb8ac3cbc9a6784
--- src/libmp/port/os.h
+++ src/libmp/port/os.h
@@ -1,3 +1,2 @@
 #include <u.h>
 #include <libc.h>
-
blob - 3a2a933197b5a0168577476360ec3e0ecf38b915
blob + 644f07de5589e8d2aa53567b7dd0ab117e4acfbc
--- src/libmux/io.c
+++ src/libmux/io.c
@@ -7,7 +7,7 @@
 
 /*
  * If you fork off two procs running muxrecvproc and muxsendproc,
- * then muxrecv/muxsend (and thus muxrpc) will never block except on 
+ * then muxrecv/muxsend (and thus muxrpc) will never block except on
  * rendevouses, which is nice when it's running in one thread of many.
  */
 void
@@ -137,9 +137,8 @@ _muxsend(Mux *mux, void *p)
 	if(mux->send(mux, p) < 0){
 		qunlock(&mux->outlk);
 		/* vthangup(mux); */
-		return -1;	
+		return -1;
 	}
 	qunlock(&mux->outlk);
 	return 0;
 }
-
blob - 8257fb0e7200fc947ade5b2832f97f5b8507ad39
blob + e778607959304e7f361f6df69bffc7f53ea72471
--- src/libmux/mux.c
+++ src/libmux/mux.c
@@ -30,7 +30,7 @@ static Muxrpc*
 allocmuxrpc(Mux *mux)
 {
 	Muxrpc *r;
-	
+
 	/* must malloc because stack could be private */
 	r = mallocz(sizeof(Muxrpc), 1);
 	if(r == nil){
@@ -40,7 +40,7 @@ allocmuxrpc(Mux *mux)
 	r->mux = mux;
 	r->r.l = &mux->lk;
 	r->waiting = 1;
-	
+
 	return r;
 }
 
@@ -49,7 +49,7 @@ tagmuxrpc(Muxrpc *r, void *tx)
 {
 	int tag;
 	Mux *mux;
-	
+
 	mux = r->mux;
 	/* assign the tag, add selves to response queue */
 	qlock(&mux->lk);
@@ -91,7 +91,7 @@ muxmsgandqlock(Mux *mux, void *p)
 		fprint(2, "%s: bad rpc tag %ux (no one waiting on that tag)\n", argv0, tag);
 		/* must leak packet! don't know how to free it! */
 		return;
-	}	
+	}
 	r2->p = p;
 	dequeue(mux, r2);
 	rwakeup(&r2->r);
@@ -222,7 +222,7 @@ dequeue(Mux *mux, Muxrpc *r)
 	r->next = nil;
 }
 
-static int 
+static int
 gettag(Mux *mux, Muxrpc *r)
 {
 	int i, mw;
blob - 76f3d8e0950f8ef77da2517fb47f02e56acfc8f3
blob + 6ffaf172752e950a2c0155b3cb5b587653b036b6
--- src/libndb/csipinfo.c
+++ src/libndb/csipinfo.c
@@ -34,7 +34,7 @@ csipinfo(char *netroot, char *attr, char *val, char **
 			break;
 		p = seprint(p, e, " %s", *list++);
 	}
-	
+
 	if(write(fd, line, strlen(line)) < 0){
 		close(fd);
 		return 0;
blob - 4cf8735ad3ae38e94c85028d2cbcbf04dd138e84
blob + 74460b14683356487f70eea3fd2e7b06e2ae89d3
--- src/libndb/dnsquery.c
+++ src/libndb/dnsquery.c
@@ -119,11 +119,11 @@ doquery(int fd, char *dn, char *type)
 	snprint(buf, sizeof(buf), "!%s %s", dn, type);
 	if(write(fd, buf, strlen(buf)) < 0)
 		return nil;
-		
+
 	seek(fd, 0, 0);
 
 	first = last = nil;
-	
+
 	for(;;){
 		n = read(fd, buf, sizeof(buf)-2);
 		if(n <= 0)
blob - 94246fc6a97f1da8ba6c0752ce6afa1fea0b664a
blob + a2688736ca3ee9d23bed38c1dee0336c98053913
--- src/libndb/ndbaux.c
+++ src/libndb/ndbaux.c
@@ -60,7 +60,7 @@ _ndbparsetuple(char *cp, Ndbtuple **tp)
 }
 
 /*
- *  parse all tuples in a line.  we assume that the 
+ *  parse all tuples in a line.  we assume that the
  *  line ends in a '\n'.
  *
  *  the tuples are linked as a list using ->entry and
blob - 80dbc35b4c9e50950459d3d61b11918ba20b2237
blob + d02530f528032ac1cb1b6fdfd1ad242e5cf0637b
--- src/libndb/ndbcache.c
+++ src/libndb/ndbcache.c
@@ -9,7 +9,7 @@ struct Ndbcache
 	char		*attr;
 	char		*val;
 	Ndbs		s;
-	Ndbtuple	*t;	
+	Ndbtuple	*t;
 };
 
 enum
blob - 647bff03c0c17f7b5bbfcfea492c058f567eae07
blob + 506261319a53339144fb1dfaeade31a54216c76c
--- src/libndb/ndbfree.c
+++ src/libndb/ndbfree.c
@@ -61,5 +61,5 @@ ndbnew(char *attr, char *val)
 	t->val = t->valbuf;
 	if(val != nil)
 		ndbsetval(t, val, strlen(val));
-	return t;	
+	return t;
 }
blob - 4f9cb4b644031c89817dd43b0b189989197b5af1
blob + 8dee18a5e4d674290cb2316c353e51393776c9fb
--- src/libndb/ndbhash.c
+++ src/libndb/ndbhash.c
@@ -198,7 +198,7 @@ ndbsnext(Ndbs *s, char *attr, char *val)
 			ndbfree(t);
 		} else if(s->type == Cptr){
 			if(Bseek(&db->b, s->ptr, 0) < 0)
-				break; 
+				break;
 			s->ptr = s->ptr1;
 			s->type = Cptr1;
 			t = ndbparse(db);
@@ -218,7 +218,7 @@ ndbsnext(Ndbs *s, char *attr, char *val)
 				s->type = Cptr;
 			} else {		/* end of hash chain */
 				if(Bseek(&db->b, s->ptr, 0) < 0)
-					break; 
+					break;
 				s->ptr = NDBNAP;
 				t = ndbparse(db);
 				if(t == 0)
blob - fdda79ec7d2bf92ac075574af880b139d7e3214d
blob + 1002b4d686a22d544a04a44dd5cc498920d39e4e
--- src/libndb/ndbopen.c
+++ src/libndb/ndbopen.c
@@ -77,7 +77,7 @@ doopen(char *file, char *rel)
 	 * Unrooted paths are taken relative to db we opened.
 	 */
 	if(file[0]!='/' && rel && (p=strrchr(rel, '/'))!=nil)
-		snprint(db->file, sizeof(db->file), "%.*s/%s", 
+		snprint(db->file, sizeof(db->file), "%.*s/%s",
 			utfnlen(rel, p-rel), rel, file);
 	else
 		strncpy(db->file, file, sizeof(db->file)-1);
blob - 390d7818f1bbe88fc8bbc9dad731bc95ee34f9e8
blob + c25d7b5f32248f39af1178fae017b58d35c08fa6
--- src/libndb/ndbreorder.c
+++ src/libndb/ndbreorder.c
@@ -27,7 +27,7 @@ ndbreorder(Ndbtuple *t, Ndbtuple *x)
 		for(nt = t; nt->entry != last->line; nt = nt->entry)
 			;
 		nt->entry = nil;
-	
+
 		/* switch */
 		for(nt = last; nt->entry != nil; nt = nt->entry)
 			;
blob - 0a771e2b9f0158c91f542985f300ff0ef123d56e
blob + 1f6cbb58bb762aba2ef647e60c9070ee63a60a6c
--- src/libndb/sysdnsquery.c
+++ src/libndb/sysdnsquery.c
@@ -20,11 +20,11 @@ Ndbtuple*
 dnsquery(char *net, char *val, char *type)
 {
 	static int init;
-	char rip[128];	
+	char rip[128];
 	Ndbtuple *t;
 
 	USED(net);
-	
+
 	if(!init){
 		init = 1;
 		fmtinstall('I', eipfmt);
@@ -32,17 +32,17 @@ dnsquery(char *net, char *val, char *type)
 	/* give up early on stupid questions - vwhois */
 	if(strcmp(val, "::") == 0 || strcmp(val, "0.0.0.0") == 0)
 		return nil;
-	
+
 	/* zero out the error string */
 	werrstr("");
-	
+
 	/* if this is a reverse lookup, first look up the domain name */
 	if(strcmp(type, "ptr") == 0){
 		mkptrname(val, rip, sizeof rip);
 		t = doquery(rip, "ptr");
 	}else
 		t = doquery(val, type);
-	
+
 	return t;
 }
 
@@ -123,7 +123,7 @@ enum
 	/* query types (all RR types are also queries) */
 	Tixfr=	251,	/* incremental zone transfer */
 	Taxfr=	252,	/* zone transfer */
-	Tmailb=	253,	/* { Tmb, Tmg, Tmr } */	
+	Tmailb=	253,	/* { Tmb, Tmg, Tmr } */
 	Tall=	255,	/* all records */
 
 	/* classes */
@@ -173,7 +173,7 @@ doquery(char *name, char *type)
 
 	qdcount = (buf[4]<<8)|buf[5];
 	ancount = (buf[6]<<8)|buf[7];
-	
+
 	p = buf+12;
 	p = skipquestion(buf, buf+n, p, qdcount);
 	p = unpack(buf, buf+n, p, &t, ancount);
@@ -215,7 +215,7 @@ static char*
 type2name(int t)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(dnsnames); i++)
 		if(dnsnames[i].t == t)
 			return dnsnames[i].s;
@@ -226,7 +226,7 @@ static int
 name2type(char *name)
 {
 	int i;
-	
+
 	for(i=0; i<nelem(dnsnames); i++)
 		if(strcmp(name, dnsnames[i].s) == 0)
 			return dnsnames[i].t;
@@ -238,7 +238,7 @@ skipquestion(uchar *buf, uchar *ebuf, uchar *p, int n)
 {
 	int i, len;
 	char tmp[100];
-	
+
 	for(i=0; i<n; i++){
 		if((len = dn_expand(buf, ebuf, p, tmp, sizeof tmp)) <= 0)
 			return nil;
@@ -304,11 +304,11 @@ rrnext(uchar *buf, uchar *ebuf, uchar *p, Ndbtuple **t
 		return nil;
 	}
 	p += len;
-	
+
 	rrtype = G2(p);
 	rrlen = G2(p+8);
 	p += 10;
-	
+
 	if(rrtype == Tptr)
 		first = ndbnew("ptr", b);
 	else
@@ -363,19 +363,19 @@ rrnext(uchar *buf, uchar *ebuf, uchar *p, Ndbtuple **t
 		break;
 
 	case Tsoa:
-		t = rrunpack(buf, ebuf, &p, "NNLLLLL", "ns", "mbox", 
+		t = rrunpack(buf, ebuf, &p, "NNLLLLL", "ns", "mbox",
 			"serial", "refresh", "retry", "expire", "ttl");
 		break;
 
 	case Tkey:
 		t = rrunpack(buf, ebuf, &p, "SCCY", "flags", "proto", "alg", "key");
 		break;
-	
+
 	case Tsig:
 		t = rrunpack(buf, ebuf, &p, "SCCLLLSNY", "type", "alg", "labels",
 			"ttl", "exp", "incep", "tag", "signer", "sig");
 		break;
-	
+
 	case Tcert:
 		t = rrunpack(buf, ebuf, &p, "SSCY", "type", "tag", "alg", "cert");
 		break;
@@ -398,7 +398,7 @@ rrunpack(uchar *buf, uchar *ebuf, uchar **pp, char *fm
 	va_list arg;
 	Ndbtuple *t, *first, *last;
 	char tmp[Ndbvlen];
-	
+
 	p = *pp;
 	va_start(arg, fmt);
 	first = nil;
blob - 6c72c5d86fb95ba0de361327439366d16c90c83b
blob + 96cbec57cef8c95f10eedfa6e5adc7977784c271
--- src/libndb/testdns.c
+++ src/libndb/testdns.c
@@ -7,22 +7,22 @@ void
 main(int argc, char **argv)
 {
 	Ndbtuple *t, *t0;
-	
+
 	ARGBEGIN{
 	default:
 		goto usage;
 	}ARGEND
-	
+
 	if(argc != 2){
 	usage:
 		fprint(2, "usage: testdns name val\n");
 		exits("usage");
 	}
-	
+
 	quotefmtinstall();
 	if((t = dnsquery(nil, argv[0], argv[1])) == nil)
 		sysfatal("dnsquery: %r");
-	
+
 	for(t0=t; t; t=t->entry){
 		print("%s=%q ", t->attr, t->val);
 		if(t->line == t0){
@@ -32,4 +32,3 @@ main(int argc, char **argv)
 	}
 	exits(0);
 }
-
blob - 36a95d687f882f4cac738da882a22788bde65f01 (mode 755)
blob + 36a95d687f882f4cac738da882a22788bde65f01 (mode 644)
blob - 017f92c3ee290660da1e3683aaaa7c4f6cb47618
blob + 8628f9f3085b6f7a265a19f4cda289679b3975e8
--- src/libplumb/fid.c
+++ src/libplumb/fid.c
@@ -161,4 +161,3 @@ plumbrecvfid(CFid *fid)
 	free(buf);
 	return m;
 }
-
blob - c9379307c7d79b807ec2985b9d3966968729492b (mode 755)
blob + acc0ac3234d1e90843b1744ab6cac1aea17b656c (mode 644)
--- src/libplumb/mesg.c
+++ src/libplumb/mesg.c
@@ -338,4 +338,3 @@ plumbunpack(char *buf, int n)
 {
 	return plumbunpackpartial(buf, n, nil);
 }
-
blob - 1d7aaa627f133c69006a479af7ae6c881e41915f
blob + f309c094faf1f9dbf2128fec91aee681df182375
--- src/libregexp/lib9.std.h
+++ src/libregexp/lib9.std.h
@@ -8,4 +8,3 @@
 #define	exits(x)	exit(x && *x ? 1 : 0)
 
 #define	nil	0
-
blob - cd299a54a5e85e3c6b1aeb678d30b384a3158eae
blob + c58b4d846e73d37f8511f760680b8914a556bf92
--- src/libregexp/regcomp.c
+++ src/libregexp/regcomp.c
@@ -109,7 +109,7 @@ regerr2(char *s, int c)
 	while(*s)
 		*cp++ = *s++;
 	*cp++ = c;
-	*cp = '\0'; 
+	*cp = '\0';
 	rcerror(buf);
 }
 
blob - 9cbb6bd90a6341a60b1e7a344f40bbbb112e2389
blob + 7612842e19266dadd958de2b3b0e16e4b158298a
--- src/libsec/port/aes.c
+++ src/libsec/port/aes.c
@@ -138,13 +138,13 @@ static int rijndaelKeySetup(u32 erk[/*4*(Nr + 1)*/], u
 	 * invert the order of the round keys and
 	 * apply the inverse MixColumn transform to all round keys but the first and the last
 	 */
-	drk[0       ] = erk[4*Nr    ]; 
+	drk[0       ] = erk[4*Nr    ];
 	drk[1       ] = erk[4*Nr + 1];
-	drk[2       ] = erk[4*Nr + 2]; 
+	drk[2       ] = erk[4*Nr + 2];
 	drk[3       ] = erk[4*Nr + 3];
-	drk[4*Nr    ] = erk[0       ]; 
+	drk[4*Nr    ] = erk[0       ];
 	drk[4*Nr + 1] = erk[1       ];
-	drk[4*Nr + 2] = erk[2       ]; 
+	drk[4*Nr + 2] = erk[2       ];
 	drk[4*Nr + 3] = erk[3       ];
 	erk += 4 * Nr;
 	for (i = 1; i < Nr; i++) {
@@ -1443,7 +1443,7 @@ static void rijndaelEncryptRound(const u32 rk[/*4*(Nr 
     		(Te4[(s1 >>  8) & 0xff] <<  8) ^
     		(Te4[(s2      ) & 0xff]      ) ^
     		rk[3];
-		
+
 		s0 = t0;
 		s1 = t1;
 		s2 = t2;
blob - 0eed2939ae04cd51a331ba43111275bbb6398f94
blob + abfe912eb7f7789b5696a7167e4e7737dfe343bc
--- src/libsec/port/blowfish.c
+++ src/libsec/port/blowfish.c
@@ -31,7 +31,7 @@ setupBFstate(BFstate *s, uchar key[], int keybytes, uc
 		memmove(s->ivec, ivec, sizeof(s->ivec));
 	else
 		memset(s->ivec, 0, sizeof(s->ivec));
-		
+
 	memmove(s->pbox, pbox, sizeof(pbox));
 	memmove(s->sbox, sbox, sizeof(sbox));
 
@@ -238,7 +238,7 @@ bfECBdecrypt(uchar *buf, int n, BFstate *s)
 		buf[0] = b[0];
 	}
 
-	return;		
+	return;
 }
 
 static void
@@ -258,11 +258,11 @@ bfencrypt(u32int *b, BFstate *s)
 
 	for(i=1; i<16; i += 2) {
 		r ^= pb[i];
-		r ^= ( (sb[ (uchar) (l>>24)] + sb[256 + ((uchar) (l>>16))]) ^  
+		r ^= ( (sb[ (uchar) (l>>24)] + sb[256 + ((uchar) (l>>16))]) ^
 			sb[512 + ((uchar) (l>>8))]) + sb[768 +((uchar) l)];
 
 		l ^= pb[i+1];
-		l ^= ( (sb[ (uchar) (r>>24)] + sb[256 + ((uchar) (r>>16))]) ^  
+		l ^= ( (sb[ (uchar) (r>>24)] + sb[256 + ((uchar) (r>>16))]) ^
 			sb[512 + ((uchar) (r>>8))]) + sb[768 +((uchar) r)];
 	}
 
@@ -292,11 +292,11 @@ bfdecrypt(u32int *b, BFstate *s)
 
 	for(i=16; i > 0; i -= 2) {
 		r ^= pb[i];
-		r ^= ( (sb[ (uchar) (l>>24)] + sb[256 + ((uchar) (l>>16))]) ^  
+		r ^= ( (sb[ (uchar) (l>>24)] + sb[256 + ((uchar) (l>>16))]) ^
 			sb[512 + ((uchar) (l>>8))]) + sb[768 +((uchar) l)];
 
 		l ^= pb[i-1];
-		l ^= ( (sb[ (uchar) (r>>24)] + sb[256 + ((uchar) (r>>16))]) ^  
+		l ^= ( (sb[ (uchar) (r>>24)] + sb[256 + ((uchar) (r>>16))]) ^
 			sb[512 + ((uchar) (r>>8))]) + sb[768 +((uchar) r)];
 	}
 
@@ -310,270 +310,268 @@ bfdecrypt(u32int *b, BFstate *s)
 }
 
 static u32int pbox[BFrounds+2] = {
-	0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 
-	0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, 
-	0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 
-	0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 
+	0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
+	0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
+	0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
+	0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
 	0x9216d5d9, 0x8979fb1b
 };
 
 static u32int sbox[1024] = {
-	0xd1310ba6L, 0x98dfb5acL, 0x2ffd72dbL, 0xd01adfb7L, 
-	0xb8e1afedL, 0x6a267e96L, 0xba7c9045L, 0xf12c7f99L, 
-	0x24a19947L, 0xb3916cf7L, 0x0801f2e2L, 0x858efc16L, 
-	0x636920d8L, 0x71574e69L, 0xa458fea3L, 0xf4933d7eL, 
-	0x0d95748fL, 0x728eb658L, 0x718bcd58L, 0x82154aeeL, 
-	0x7b54a41dL, 0xc25a59b5L, 0x9c30d539L, 0x2af26013L, 
-	0xc5d1b023L, 0x286085f0L, 0xca417918L, 0xb8db38efL, 
-	0x8e79dcb0L, 0x603a180eL, 0x6c9e0e8bL, 0xb01e8a3eL, 
-	0xd71577c1L, 0xbd314b27L, 0x78af2fdaL, 0x55605c60L, 
-	0xe65525f3L, 0xaa55ab94L, 0x57489862L, 0x63e81440L, 
-	0x55ca396aL, 0x2aab10b6L, 0xb4cc5c34L, 0x1141e8ceL, 
-	0xa15486afL, 0x7c72e993L, 0xb3ee1411L, 0x636fbc2aL, 
-	0x2ba9c55dL, 0x741831f6L, 0xce5c3e16L, 0x9b87931eL, 
-	0xafd6ba33L, 0x6c24cf5cL, 0x7a325381L, 0x28958677L, 
-	0x3b8f4898L, 0x6b4bb9afL, 0xc4bfe81bL, 0x66282193L, 
-	0x61d809ccL, 0xfb21a991L, 0x487cac60L, 0x5dec8032L, 
-	0xef845d5dL, 0xe98575b1L, 0xdc262302L, 0xeb651b88L, 
-	0x23893e81L, 0xd396acc5L, 0x0f6d6ff3L, 0x83f44239L, 
-	0x2e0b4482L, 0xa4842004L, 0x69c8f04aL, 0x9e1f9b5eL, 
-	0x21c66842L, 0xf6e96c9aL, 0x670c9c61L, 0xabd388f0L, 
-	0x6a51a0d2L, 0xd8542f68L, 0x960fa728L, 0xab5133a3L, 
-	0x6eef0b6cL, 0x137a3be4L, 0xba3bf050L, 0x7efb2a98L, 
-	0xa1f1651dL, 0x39af0176L, 0x66ca593eL, 0x82430e88L, 
-	0x8cee8619L, 0x456f9fb4L, 0x7d84a5c3L, 0x3b8b5ebeL, 
-	0xe06f75d8L, 0x85c12073L, 0x401a449fL, 0x56c16aa6L, 
-	0x4ed3aa62L, 0x363f7706L, 0x1bfedf72L, 0x429b023dL, 
-	0x37d0d724L, 0xd00a1248L, 0xdb0fead3L, 0x49f1c09bL, 
-	0x075372c9L, 0x80991b7bL, 0x25d479d8L, 0xf6e8def7L, 
-	0xe3fe501aL, 0xb6794c3bL, 0x976ce0bdL, 0x04c006baL, 
-	0xc1a94fb6L, 0x409f60c4L, 0x5e5c9ec2L, 0x196a2463L, 
-	0x68fb6fafL, 0x3e6c53b5L, 0x1339b2ebL, 0x3b52ec6fL, 
-	0x6dfc511fL, 0x9b30952cL, 0xcc814544L, 0xaf5ebd09L, 
-	0xbee3d004L, 0xde334afdL, 0x660f2807L, 0x192e4bb3L, 
-	0xc0cba857L, 0x45c8740fL, 0xd20b5f39L, 0xb9d3fbdbL, 
-	0x5579c0bdL, 0x1a60320aL, 0xd6a100c6L, 0x402c7279L, 
-	0x679f25feL, 0xfb1fa3ccL, 0x8ea5e9f8L, 0xdb3222f8L, 
-	0x3c7516dfL, 0xfd616b15L, 0x2f501ec8L, 0xad0552abL, 
-	0x323db5faL, 0xfd238760L, 0x53317b48L, 0x3e00df82L, 
-	0x9e5c57bbL, 0xca6f8ca0L, 0x1a87562eL, 0xdf1769dbL, 
-	0xd542a8f6L, 0x287effc3L, 0xac6732c6L, 0x8c4f5573L, 
-	0x695b27b0L, 0xbbca58c8L, 0xe1ffa35dL, 0xb8f011a0L, 
-	0x10fa3d98L, 0xfd2183b8L, 0x4afcb56cL, 0x2dd1d35bL, 
-	0x9a53e479L, 0xb6f84565L, 0xd28e49bcL, 0x4bfb9790L, 
-	0xe1ddf2daL, 0xa4cb7e33L, 0x62fb1341L, 0xcee4c6e8L, 
-	0xef20cadaL, 0x36774c01L, 0xd07e9efeL, 0x2bf11fb4L, 
-	0x95dbda4dL, 0xae909198L, 0xeaad8e71L, 0x6b93d5a0L, 
-	0xd08ed1d0L, 0xafc725e0L, 0x8e3c5b2fL, 0x8e7594b7L, 
-	0x8ff6e2fbL, 0xf2122b64L, 0x8888b812L, 0x900df01cL, 
-	0x4fad5ea0L, 0x688fc31cL, 0xd1cff191L, 0xb3a8c1adL, 
-	0x2f2f2218L, 0xbe0e1777L, 0xea752dfeL, 0x8b021fa1L, 
-	0xe5a0cc0fL, 0xb56f74e8L, 0x18acf3d6L, 0xce89e299L, 
-	0xb4a84fe0L, 0xfd13e0b7L, 0x7cc43b81L, 0xd2ada8d9L, 
-	0x165fa266L, 0x80957705L, 0x93cc7314L, 0x211a1477L, 
-	0xe6ad2065L, 0x77b5fa86L, 0xc75442f5L, 0xfb9d35cfL, 
-	0xebcdaf0cL, 0x7b3e89a0L, 0xd6411bd3L, 0xae1e7e49L, 
-	0x00250e2dL, 0x2071b35eL, 0x226800bbL, 0x57b8e0afL, 
-	0x2464369bL, 0xf009b91eL, 0x5563911dL, 0x59dfa6aaL, 
-	0x78c14389L, 0xd95a537fL, 0x207d5ba2L, 0x02e5b9c5L, 
-	0x83260376L, 0x6295cfa9L, 0x11c81968L, 0x4e734a41L, 
-	0xb3472dcaL, 0x7b14a94aL, 0x1b510052L, 0x9a532915L, 
-	0xd60f573fL, 0xbc9bc6e4L, 0x2b60a476L, 0x81e67400L, 
-	0x08ba6fb5L, 0x571be91fL, 0xf296ec6bL, 0x2a0dd915L, 
-	0xb6636521L, 0xe7b9f9b6L, 0xff34052eL, 0xc5855664L, 
-	0x53b02d5dL, 0xa99f8fa1L, 0x08ba4799L, 0x6e85076aL, 
-	0x4b7a70e9L, 0xb5b32944L, 0xdb75092eL, 0xc4192623L, 
-	0xad6ea6b0L, 0x49a7df7dL, 0x9cee60b8L, 0x8fedb266L, 
-	0xecaa8c71L, 0x699a17ffL, 0x5664526cL, 0xc2b19ee1L, 
-	0x193602a5L, 0x75094c29L, 0xa0591340L, 0xe4183a3eL, 
-	0x3f54989aL, 0x5b429d65L, 0x6b8fe4d6L, 0x99f73fd6L, 
-	0xa1d29c07L, 0xefe830f5L, 0x4d2d38e6L, 0xf0255dc1L, 
-	0x4cdd2086L, 0x8470eb26L, 0x6382e9c6L, 0x021ecc5eL, 
-	0x09686b3fL, 0x3ebaefc9L, 0x3c971814L, 0x6b6a70a1L, 
-	0x687f3584L, 0x52a0e286L, 0xb79c5305L, 0xaa500737L, 
-	0x3e07841cL, 0x7fdeae5cL, 0x8e7d44ecL, 0x5716f2b8L, 
-	0xb03ada37L, 0xf0500c0dL, 0xf01c1f04L, 0x0200b3ffL, 
-	0xae0cf51aL, 0x3cb574b2L, 0x25837a58L, 0xdc0921bdL, 
-	0xd19113f9L, 0x7ca92ff6L, 0x94324773L, 0x22f54701L, 
-	0x3ae5e581L, 0x37c2dadcL, 0xc8b57634L, 0x9af3dda7L, 
-	0xa9446146L, 0x0fd0030eL, 0xecc8c73eL, 0xa4751e41L, 
-	0xe238cd99L, 0x3bea0e2fL, 0x3280bba1L, 0x183eb331L, 
-	0x4e548b38L, 0x4f6db908L, 0x6f420d03L, 0xf60a04bfL, 
-	0x2cb81290L, 0x24977c79L, 0x5679b072L, 0xbcaf89afL, 
-	0xde9a771fL, 0xd9930810L, 0xb38bae12L, 0xdccf3f2eL, 
-	0x5512721fL, 0x2e6b7124L, 0x501adde6L, 0x9f84cd87L, 
-	0x7a584718L, 0x7408da17L, 0xbc9f9abcL, 0xe94b7d8cL, 
-	0xec7aec3aL, 0xdb851dfaL, 0x63094366L, 0xc464c3d2L, 
-	0xef1c1847L, 0x3215d908L, 0xdd433b37L, 0x24c2ba16L, 
-	0x12a14d43L, 0x2a65c451L, 0x50940002L, 0x133ae4ddL, 
-	0x71dff89eL, 0x10314e55L, 0x81ac77d6L, 0x5f11199bL, 
-	0x043556f1L, 0xd7a3c76bL, 0x3c11183bL, 0x5924a509L, 
-	0xf28fe6edL, 0x97f1fbfaL, 0x9ebabf2cL, 0x1e153c6eL, 
-	0x86e34570L, 0xeae96fb1L, 0x860e5e0aL, 0x5a3e2ab3L, 
-	0x771fe71cL, 0x4e3d06faL, 0x2965dcb9L, 0x99e71d0fL, 
-	0x803e89d6L, 0x5266c825L, 0x2e4cc978L, 0x9c10b36aL, 
-	0xc6150ebaL, 0x94e2ea78L, 0xa5fc3c53L, 0x1e0a2df4L, 
-	0xf2f74ea7L, 0x361d2b3dL, 0x1939260fL, 0x19c27960L, 
-	0x5223a708L, 0xf71312b6L, 0xebadfe6eL, 0xeac31f66L, 
-	0xe3bc4595L, 0xa67bc883L, 0xb17f37d1L, 0x018cff28L, 
-	0xc332ddefL, 0xbe6c5aa5L, 0x65582185L, 0x68ab9802L, 
-	0xeecea50fL, 0xdb2f953bL, 0x2aef7dadL, 0x5b6e2f84L, 
-	0x1521b628L, 0x29076170L, 0xecdd4775L, 0x619f1510L, 
-	0x13cca830L, 0xeb61bd96L, 0x0334fe1eL, 0xaa0363cfL, 
-	0xb5735c90L, 0x4c70a239L, 0xd59e9e0bL, 0xcbaade14L, 
-	0xeecc86bcL, 0x60622ca7L, 0x9cab5cabL, 0xb2f3846eL, 
-	0x648b1eafL, 0x19bdf0caL, 0xa02369b9L, 0x655abb50L, 
-	0x40685a32L, 0x3c2ab4b3L, 0x319ee9d5L, 0xc021b8f7L, 
-	0x9b540b19L, 0x875fa099L, 0x95f7997eL, 0x623d7da8L, 
-	0xf837889aL, 0x97e32d77L, 0x11ed935fL, 0x16681281L, 
-	0x0e358829L, 0xc7e61fd6L, 0x96dedfa1L, 0x7858ba99L, 
-	0x57f584a5L, 0x1b227263L, 0x9b83c3ffL, 0x1ac24696L, 
-	0xcdb30aebL, 0x532e3054L, 0x8fd948e4L, 0x6dbc3128L, 
-	0x58ebf2efL, 0x34c6ffeaL, 0xfe28ed61L, 0xee7c3c73L, 
-	0x5d4a14d9L, 0xe864b7e3L, 0x42105d14L, 0x203e13e0L, 
-	0x45eee2b6L, 0xa3aaabeaL, 0xdb6c4f15L, 0xfacb4fd0L, 
-	0xc742f442L, 0xef6abbb5L, 0x654f3b1dL, 0x41cd2105L, 
-	0xd81e799eL, 0x86854dc7L, 0xe44b476aL, 0x3d816250L, 
-	0xcf62a1f2L, 0x5b8d2646L, 0xfc8883a0L, 0xc1c7b6a3L, 
-	0x7f1524c3L, 0x69cb7492L, 0x47848a0bL, 0x5692b285L, 
-	0x095bbf00L, 0xad19489dL, 0x1462b174L, 0x23820e00L, 
-	0x58428d2aL, 0x0c55f5eaL, 0x1dadf43eL, 0x233f7061L, 
-	0x3372f092L, 0x8d937e41L, 0xd65fecf1L, 0x6c223bdbL, 
-	0x7cde3759L, 0xcbee7460L, 0x4085f2a7L, 0xce77326eL, 
-	0xa6078084L, 0x19f8509eL, 0xe8efd855L, 0x61d99735L, 
-	0xa969a7aaL, 0xc50c06c2L, 0x5a04abfcL, 0x800bcadcL, 
-	0x9e447a2eL, 0xc3453484L, 0xfdd56705L, 0x0e1e9ec9L, 
-	0xdb73dbd3L, 0x105588cdL, 0x675fda79L, 0xe3674340L, 
-	0xc5c43465L, 0x713e38d8L, 0x3d28f89eL, 0xf16dff20L, 
-	0x153e21e7L, 0x8fb03d4aL, 0xe6e39f2bL, 0xdb83adf7L, 
-	0xe93d5a68L, 0x948140f7L, 0xf64c261cL, 0x94692934L, 
-	0x411520f7L, 0x7602d4f7L, 0xbcf46b2eL, 0xd4a20068L, 
-	0xd4082471L, 0x3320f46aL, 0x43b7d4b7L, 0x500061afL, 
-	0x1e39f62eL, 0x97244546L, 0x14214f74L, 0xbf8b8840L, 
-	0x4d95fc1dL, 0x96b591afL, 0x70f4ddd3L, 0x66a02f45L, 
-	0xbfbc09ecL, 0x03bd9785L, 0x7fac6dd0L, 0x31cb8504L, 
-	0x96eb27b3L, 0x55fd3941L, 0xda2547e6L, 0xabca0a9aL, 
-	0x28507825L, 0x530429f4L, 0x0a2c86daL, 0xe9b66dfbL, 
-	0x68dc1462L, 0xd7486900L, 0x680ec0a4L, 0x27a18deeL, 
-	0x4f3ffea2L, 0xe887ad8cL, 0xb58ce006L, 0x7af4d6b6L, 
-	0xaace1e7cL, 0xd3375fecL, 0xce78a399L, 0x406b2a42L, 
-	0x20fe9e35L, 0xd9f385b9L, 0xee39d7abL, 0x3b124e8bL, 
-	0x1dc9faf7L, 0x4b6d1856L, 0x26a36631L, 0xeae397b2L, 
-	0x3a6efa74L, 0xdd5b4332L, 0x6841e7f7L, 0xca7820fbL, 
-	0xfb0af54eL, 0xd8feb397L, 0x454056acL, 0xba489527L, 
-	0x55533a3aL, 0x20838d87L, 0xfe6ba9b7L, 0xd096954bL, 
-	0x55a867bcL, 0xa1159a58L, 0xcca92963L, 0x99e1db33L, 
-	0xa62a4a56L, 0x3f3125f9L, 0x5ef47e1cL, 0x9029317cL, 
-	0xfdf8e802L, 0x04272f70L, 0x80bb155cL, 0x05282ce3L, 
-	0x95c11548L, 0xe4c66d22L, 0x48c1133fL, 0xc70f86dcL, 
-	0x07f9c9eeL, 0x41041f0fL, 0x404779a4L, 0x5d886e17L, 
-	0x325f51ebL, 0xd59bc0d1L, 0xf2bcc18fL, 0x41113564L, 
-	0x257b7834L, 0x602a9c60L, 0xdff8e8a3L, 0x1f636c1bL, 
-	0x0e12b4c2L, 0x02e1329eL, 0xaf664fd1L, 0xcad18115L, 
-	0x6b2395e0L, 0x333e92e1L, 0x3b240b62L, 0xeebeb922L, 
-	0x85b2a20eL, 0xe6ba0d99L, 0xde720c8cL, 0x2da2f728L, 
-	0xd0127845L, 0x95b794fdL, 0x647d0862L, 0xe7ccf5f0L, 
-	0x5449a36fL, 0x877d48faL, 0xc39dfd27L, 0xf33e8d1eL, 
-	0x0a476341L, 0x992eff74L, 0x3a6f6eabL, 0xf4f8fd37L, 
-	0xa812dc60L, 0xa1ebddf8L, 0x991be14cL, 0xdb6e6b0dL, 
-	0xc67b5510L, 0x6d672c37L, 0x2765d43bL, 0xdcd0e804L, 
-	0xf1290dc7L, 0xcc00ffa3L, 0xb5390f92L, 0x690fed0bL, 
-	0x667b9ffbL, 0xcedb7d9cL, 0xa091cf0bL, 0xd9155ea3L, 
-	0xbb132f88L, 0x515bad24L, 0x7b9479bfL, 0x763bd6ebL, 
-	0x37392eb3L, 0xcc115979L, 0x8026e297L, 0xf42e312dL, 
-	0x6842ada7L, 0xc66a2b3bL, 0x12754cccL, 0x782ef11cL, 
-	0x6a124237L, 0xb79251e7L, 0x06a1bbe6L, 0x4bfb6350L, 
-	0x1a6b1018L, 0x11caedfaL, 0x3d25bdd8L, 0xe2e1c3c9L, 
-	0x44421659L, 0x0a121386L, 0xd90cec6eL, 0xd5abea2aL, 
-	0x64af674eL, 0xda86a85fL, 0xbebfe988L, 0x64e4c3feL, 
-	0x9dbc8057L, 0xf0f7c086L, 0x60787bf8L, 0x6003604dL, 
-	0xd1fd8346L, 0xf6381fb0L, 0x7745ae04L, 0xd736fcccL, 
-	0x83426b33L, 0xf01eab71L, 0xb0804187L, 0x3c005e5fL, 
-	0x77a057beL, 0xbde8ae24L, 0x55464299L, 0xbf582e61L, 
-	0x4e58f48fL, 0xf2ddfda2L, 0xf474ef38L, 0x8789bdc2L, 
-	0x5366f9c3L, 0xc8b38e74L, 0xb475f255L, 0x46fcd9b9L, 
-	0x7aeb2661L, 0x8b1ddf84L, 0x846a0e79L, 0x915f95e2L, 
-	0x466e598eL, 0x20b45770L, 0x8cd55591L, 0xc902de4cL, 
-	0xb90bace1L, 0xbb8205d0L, 0x11a86248L, 0x7574a99eL, 
-	0xb77f19b6L, 0xe0a9dc09L, 0x662d09a1L, 0xc4324633L, 
-	0xe85a1f02L, 0x09f0be8cL, 0x4a99a025L, 0x1d6efe10L, 
-	0x1ab93d1dL, 0x0ba5a4dfL, 0xa186f20fL, 0x2868f169L, 
-	0xdcb7da83L, 0x573906feL, 0xa1e2ce9bL, 0x4fcd7f52L, 
-	0x50115e01L, 0xa70683faL, 0xa002b5c4L, 0x0de6d027L, 
-	0x9af88c27L, 0x773f8641L, 0xc3604c06L, 0x61a806b5L, 
-	0xf0177a28L, 0xc0f586e0L, 0x006058aaL, 0x30dc7d62L, 
-	0x11e69ed7L, 0x2338ea63L, 0x53c2dd94L, 0xc2c21634L, 
-	0xbbcbee56L, 0x90bcb6deL, 0xebfc7da1L, 0xce591d76L, 
-	0x6f05e409L, 0x4b7c0188L, 0x39720a3dL, 0x7c927c24L, 
-	0x86e3725fL, 0x724d9db9L, 0x1ac15bb4L, 0xd39eb8fcL, 
-	0xed545578L, 0x08fca5b5L, 0xd83d7cd3L, 0x4dad0fc4L, 
-	0x1e50ef5eL, 0xb161e6f8L, 0xa28514d9L, 0x6c51133cL, 
-	0x6fd5c7e7L, 0x56e14ec4L, 0x362abfceL, 0xddc6c837L, 
-	0xd79a3234L, 0x92638212L, 0x670efa8eL, 0x406000e0L, 
-	0x3a39ce37L, 0xd3faf5cfL, 0xabc27737L, 0x5ac52d1bL, 
-	0x5cb0679eL, 0x4fa33742L, 0xd3822740L, 0x99bc9bbeL, 
-	0xd5118e9dL, 0xbf0f7315L, 0xd62d1c7eL, 0xc700c47bL, 
-	0xb78c1b6bL, 0x21a19045L, 0xb26eb1beL, 0x6a366eb4L, 
-	0x5748ab2fL, 0xbc946e79L, 0xc6a376d2L, 0x6549c2c8L, 
-	0x530ff8eeL, 0x468dde7dL, 0xd5730a1dL, 0x4cd04dc6L, 
-	0x2939bbdbL, 0xa9ba4650L, 0xac9526e8L, 0xbe5ee304L, 
-	0xa1fad5f0L, 0x6a2d519aL, 0x63ef8ce2L, 0x9a86ee22L, 
-	0xc089c2b8L, 0x43242ef6L, 0xa51e03aaL, 0x9cf2d0a4L, 
-	0x83c061baL, 0x9be96a4dL, 0x8fe51550L, 0xba645bd6L, 
-	0x2826a2f9L, 0xa73a3ae1L, 0x4ba99586L, 0xef5562e9L, 
-	0xc72fefd3L, 0xf752f7daL, 0x3f046f69L, 0x77fa0a59L, 
-	0x80e4a915L, 0x87b08601L, 0x9b09e6adL, 0x3b3ee593L, 
-	0xe990fd5aL, 0x9e34d797L, 0x2cf0b7d9L, 0x022b8b51L, 
-	0x96d5ac3aL, 0x017da67dL, 0xd1cf3ed6L, 0x7c7d2d28L, 
-	0x1f9f25cfL, 0xadf2b89bL, 0x5ad6b472L, 0x5a88f54cL, 
-	0xe029ac71L, 0xe019a5e6L, 0x47b0acfdL, 0xed93fa9bL, 
-	0xe8d3c48dL, 0x283b57ccL, 0xf8d56629L, 0x79132e28L, 
-	0x785f0191L, 0xed756055L, 0xf7960e44L, 0xe3d35e8cL, 
-	0x15056dd4L, 0x88f46dbaL, 0x03a16125L, 0x0564f0bdL, 
-	0xc3eb9e15L, 0x3c9057a2L, 0x97271aecL, 0xa93a072aL, 
-	0x1b3f6d9bL, 0x1e6321f5L, 0xf59c66fbL, 0x26dcf319L, 
-	0x7533d928L, 0xb155fdf5L, 0x03563482L, 0x8aba3cbbL, 
-	0x28517711L, 0xc20ad9f8L, 0xabcc5167L, 0xccad925fL, 
-	0x4de81751L, 0x3830dc8eL, 0x379d5862L, 0x9320f991L, 
-	0xea7a90c2L, 0xfb3e7bceL, 0x5121ce64L, 0x774fbe32L, 
-	0xa8b6e37eL, 0xc3293d46L, 0x48de5369L, 0x6413e680L, 
-	0xa2ae0810L, 0xdd6db224L, 0x69852dfdL, 0x09072166L, 
-	0xb39a460aL, 0x6445c0ddL, 0x586cdecfL, 0x1c20c8aeL, 
-	0x5bbef7ddL, 0x1b588d40L, 0xccd2017fL, 0x6bb4e3bbL, 
-	0xdda26a7eL, 0x3a59ff45L, 0x3e350a44L, 0xbcb4cdd5L, 
-	0x72eacea8L, 0xfa6484bbL, 0x8d6612aeL, 0xbf3c6f47L, 
-	0xd29be463L, 0x542f5d9eL, 0xaec2771bL, 0xf64e6370L, 
-	0x740e0d8dL, 0xe75b1357L, 0xf8721671L, 0xaf537d5dL, 
-	0x4040cb08L, 0x4eb4e2ccL, 0x34d2466aL, 0x0115af84L, 
-	0xe1b00428L, 0x95983a1dL, 0x06b89fb4L, 0xce6ea048L, 
-	0x6f3f3b82L, 0x3520ab82L, 0x011a1d4bL, 0x277227f8L, 
-	0x611560b1L, 0xe7933fdcL, 0xbb3a792bL, 0x344525bdL, 
-	0xa08839e1L, 0x51ce794bL, 0x2f32c9b7L, 0xa01fbac9L, 
-	0xe01cc87eL, 0xbcc7d1f6L, 0xcf0111c3L, 0xa1e8aac7L, 
-	0x1a908749L, 0xd44fbd9aL, 0xd0dadecbL, 0xd50ada38L, 
-	0x0339c32aL, 0xc6913667L, 0x8df9317cL, 0xe0b12b4fL, 
-	0xf79e59b7L, 0x43f5bb3aL, 0xf2d519ffL, 0x27d9459cL, 
-	0xbf97222cL, 0x15e6fc2aL, 0x0f91fc71L, 0x9b941525L, 
-	0xfae59361L, 0xceb69cebL, 0xc2a86459L, 0x12baa8d1L, 
-	0xb6c1075eL, 0xe3056a0cL, 0x10d25065L, 0xcb03a442L, 
-	0xe0ec6e0eL, 0x1698db3bL, 0x4c98a0beL, 0x3278e964L, 
-	0x9f1f9532L, 0xe0d392dfL, 0xd3a0342bL, 0x8971f21eL, 
-	0x1b0a7441L, 0x4ba3348cL, 0xc5be7120L, 0xc37632d8L, 
-	0xdf359f8dL, 0x9b992f2eL, 0xe60b6f47L, 0x0fe3f11dL, 
-	0xe54cda54L, 0x1edad891L, 0xce6279cfL, 0xcd3e7e6fL, 
-	0x1618b166L, 0xfd2c1d05L, 0x848fd2c5L, 0xf6fb2299L, 
-	0xf523f357L, 0xa6327623L, 0x93a83531L, 0x56cccd02L, 
-	0xacf08162L, 0x5a75ebb5L, 0x6e163697L, 0x88d273ccL, 
-	0xde966292L, 0x81b949d0L, 0x4c50901bL, 0x71c65614L, 
-	0xe6c6c7bdL, 0x327a140aL, 0x45e1d006L, 0xc3f27b9aL, 
-	0xc9aa53fdL, 0x62a80f00L, 0xbb25bfe2L, 0x35bdd2f6L, 
-	0x71126905L, 0xb2040222L, 0xb6cbcf7cL, 0xcd769c2bL, 
-	0x53113ec0L, 0x1640e3d3L, 0x38abbd60L, 0x2547adf0L, 
-	0xba38209cL, 0xf746ce76L, 0x77afa1c5L, 0x20756060L, 
-	0x85cbfe4eL, 0x8ae88dd8L, 0x7aaaf9b0L, 0x4cf9aa7eL, 
-	0x1948c25cL, 0x02fb8a8cL, 0x01c36ae4L, 0xd6ebe1f9L, 
-	0x90d4f869L, 0xa65cdea0L, 0x3f09252dL, 0xc208e69fL, 
-	0xb74e6132L, 0xce77e25bL, 0x578fdfe3L, 0x3ac372e6L, 
+	0xd1310ba6L, 0x98dfb5acL, 0x2ffd72dbL, 0xd01adfb7L,
+	0xb8e1afedL, 0x6a267e96L, 0xba7c9045L, 0xf12c7f99L,
+	0x24a19947L, 0xb3916cf7L, 0x0801f2e2L, 0x858efc16L,
+	0x636920d8L, 0x71574e69L, 0xa458fea3L, 0xf4933d7eL,
+	0x0d95748fL, 0x728eb658L, 0x718bcd58L, 0x82154aeeL,
+	0x7b54a41dL, 0xc25a59b5L, 0x9c30d539L, 0x2af26013L,
+	0xc5d1b023L, 0x286085f0L, 0xca417918L, 0xb8db38efL,
+	0x8e79dcb0L, 0x603a180eL, 0x6c9e0e8bL, 0xb01e8a3eL,
+	0xd71577c1L, 0xbd314b27L, 0x78af2fdaL, 0x55605c60L,
+	0xe65525f3L, 0xaa55ab94L, 0x57489862L, 0x63e81440L,
+	0x55ca396aL, 0x2aab10b6L, 0xb4cc5c34L, 0x1141e8ceL,
+	0xa15486afL, 0x7c72e993L, 0xb3ee1411L, 0x636fbc2aL,
+	0x2ba9c55dL, 0x741831f6L, 0xce5c3e16L, 0x9b87931eL,
+	0xafd6ba33L, 0x6c24cf5cL, 0x7a325381L, 0x28958677L,
+	0x3b8f4898L, 0x6b4bb9afL, 0xc4bfe81bL, 0x66282193L,
+	0x61d809ccL, 0xfb21a991L, 0x487cac60L, 0x5dec8032L,
+	0xef845d5dL, 0xe98575b1L, 0xdc262302L, 0xeb651b88L,
+	0x23893e81L, 0xd396acc5L, 0x0f6d6ff3L, 0x83f44239L,
+	0x2e0b4482L, 0xa4842004L, 0x69c8f04aL, 0x9e1f9b5eL,
+	0x21c66842L, 0xf6e96c9aL, 0x670c9c61L, 0xabd388f0L,
+	0x6a51a0d2L, 0xd8542f68L, 0x960fa728L, 0xab5133a3L,
+	0x6eef0b6cL, 0x137a3be4L, 0xba3bf050L, 0x7efb2a98L,
+	0xa1f1651dL, 0x39af0176L, 0x66ca593eL, 0x82430e88L,
+	0x8cee8619L, 0x456f9fb4L, 0x7d84a5c3L, 0x3b8b5ebeL,
+	0xe06f75d8L, 0x85c12073L, 0x401a449fL, 0x56c16aa6L,
+	0x4ed3aa62L, 0x363f7706L, 0x1bfedf72L, 0x429b023dL,
+	0x37d0d724L, 0xd00a1248L, 0xdb0fead3L, 0x49f1c09bL,
+	0x075372c9L, 0x80991b7bL, 0x25d479d8L, 0xf6e8def7L,
+	0xe3fe501aL, 0xb6794c3bL, 0x976ce0bdL, 0x04c006baL,
+	0xc1a94fb6L, 0x409f60c4L, 0x5e5c9ec2L, 0x196a2463L,
+	0x68fb6fafL, 0x3e6c53b5L, 0x1339b2ebL, 0x3b52ec6fL,
+	0x6dfc511fL, 0x9b30952cL, 0xcc814544L, 0xaf5ebd09L,
+	0xbee3d004L, 0xde334afdL, 0x660f2807L, 0x192e4bb3L,
+	0xc0cba857L, 0x45c8740fL, 0xd20b5f39L, 0xb9d3fbdbL,
+	0x5579c0bdL, 0x1a60320aL, 0xd6a100c6L, 0x402c7279L,
+	0x679f25feL, 0xfb1fa3ccL, 0x8ea5e9f8L, 0xdb3222f8L,
+	0x3c7516dfL, 0xfd616b15L, 0x2f501ec8L, 0xad0552abL,
+	0x323db5faL, 0xfd238760L, 0x53317b48L, 0x3e00df82L,
+	0x9e5c57bbL, 0xca6f8ca0L, 0x1a87562eL, 0xdf1769dbL,
+	0xd542a8f6L, 0x287effc3L, 0xac6732c6L, 0x8c4f5573L,
+	0x695b27b0L, 0xbbca58c8L, 0xe1ffa35dL, 0xb8f011a0L,
+	0x10fa3d98L, 0xfd2183b8L, 0x4afcb56cL, 0x2dd1d35bL,
+	0x9a53e479L, 0xb6f84565L, 0xd28e49bcL, 0x4bfb9790L,
+	0xe1ddf2daL, 0xa4cb7e33L, 0x62fb1341L, 0xcee4c6e8L,
+	0xef20cadaL, 0x36774c01L, 0xd07e9efeL, 0x2bf11fb4L,
+	0x95dbda4dL, 0xae909198L, 0xeaad8e71L, 0x6b93d5a0L,
+	0xd08ed1d0L, 0xafc725e0L, 0x8e3c5b2fL, 0x8e7594b7L,
+	0x8ff6e2fbL, 0xf2122b64L, 0x8888b812L, 0x900df01cL,
+	0x4fad5ea0L, 0x688fc31cL, 0xd1cff191L, 0xb3a8c1adL,
+	0x2f2f2218L, 0xbe0e1777L, 0xea752dfeL, 0x8b021fa1L,
+	0xe5a0cc0fL, 0xb56f74e8L, 0x18acf3d6L, 0xce89e299L,
+	0xb4a84fe0L, 0xfd13e0b7L, 0x7cc43b81L, 0xd2ada8d9L,
+	0x165fa266L, 0x80957705L, 0x93cc7314L, 0x211a1477L,
+	0xe6ad2065L, 0x77b5fa86L, 0xc75442f5L, 0xfb9d35cfL,
+	0xebcdaf0cL, 0x7b3e89a0L, 0xd6411bd3L, 0xae1e7e49L,
+	0x00250e2dL, 0x2071b35eL, 0x226800bbL, 0x57b8e0afL,
+	0x2464369bL, 0xf009b91eL, 0x5563911dL, 0x59dfa6aaL,
+	0x78c14389L, 0xd95a537fL, 0x207d5ba2L, 0x02e5b9c5L,
+	0x83260376L, 0x6295cfa9L, 0x11c81968L, 0x4e734a41L,
+	0xb3472dcaL, 0x7b14a94aL, 0x1b510052L, 0x9a532915L,
+	0xd60f573fL, 0xbc9bc6e4L, 0x2b60a476L, 0x81e67400L,
+	0x08ba6fb5L, 0x571be91fL, 0xf296ec6bL, 0x2a0dd915L,
+	0xb6636521L, 0xe7b9f9b6L, 0xff34052eL, 0xc5855664L,
+	0x53b02d5dL, 0xa99f8fa1L, 0x08ba4799L, 0x6e85076aL,
+	0x4b7a70e9L, 0xb5b32944L, 0xdb75092eL, 0xc4192623L,
+	0xad6ea6b0L, 0x49a7df7dL, 0x9cee60b8L, 0x8fedb266L,
+	0xecaa8c71L, 0x699a17ffL, 0x5664526cL, 0xc2b19ee1L,
+	0x193602a5L, 0x75094c29L, 0xa0591340L, 0xe4183a3eL,
+	0x3f54989aL, 0x5b429d65L, 0x6b8fe4d6L, 0x99f73fd6L,
+	0xa1d29c07L, 0xefe830f5L, 0x4d2d38e6L, 0xf0255dc1L,
+	0x4cdd2086L, 0x8470eb26L, 0x6382e9c6L, 0x021ecc5eL,
+	0x09686b3fL, 0x3ebaefc9L, 0x3c971814L, 0x6b6a70a1L,
+	0x687f3584L, 0x52a0e286L, 0xb79c5305L, 0xaa500737L,
+	0x3e07841cL, 0x7fdeae5cL, 0x8e7d44ecL, 0x5716f2b8L,
+	0xb03ada37L, 0xf0500c0dL, 0xf01c1f04L, 0x0200b3ffL,
+	0xae0cf51aL, 0x3cb574b2L, 0x25837a58L, 0xdc0921bdL,
+	0xd19113f9L, 0x7ca92ff6L, 0x94324773L, 0x22f54701L,
+	0x3ae5e581L, 0x37c2dadcL, 0xc8b57634L, 0x9af3dda7L,
+	0xa9446146L, 0x0fd0030eL, 0xecc8c73eL, 0xa4751e41L,
+	0xe238cd99L, 0x3bea0e2fL, 0x3280bba1L, 0x183eb331L,
+	0x4e548b38L, 0x4f6db908L, 0x6f420d03L, 0xf60a04bfL,
+	0x2cb81290L, 0x24977c79L, 0x5679b072L, 0xbcaf89afL,
+	0xde9a771fL, 0xd9930810L, 0xb38bae12L, 0xdccf3f2eL,
+	0x5512721fL, 0x2e6b7124L, 0x501adde6L, 0x9f84cd87L,
+	0x7a584718L, 0x7408da17L, 0xbc9f9abcL, 0xe94b7d8cL,
+	0xec7aec3aL, 0xdb851dfaL, 0x63094366L, 0xc464c3d2L,
+	0xef1c1847L, 0x3215d908L, 0xdd433b37L, 0x24c2ba16L,
+	0x12a14d43L, 0x2a65c451L, 0x50940002L, 0x133ae4ddL,
+	0x71dff89eL, 0x10314e55L, 0x81ac77d6L, 0x5f11199bL,
+	0x043556f1L, 0xd7a3c76bL, 0x3c11183bL, 0x5924a509L,
+	0xf28fe6edL, 0x97f1fbfaL, 0x9ebabf2cL, 0x1e153c6eL,
+	0x86e34570L, 0xeae96fb1L, 0x860e5e0aL, 0x5a3e2ab3L,
+	0x771fe71cL, 0x4e3d06faL, 0x2965dcb9L, 0x99e71d0fL,
+	0x803e89d6L, 0x5266c825L, 0x2e4cc978L, 0x9c10b36aL,
+	0xc6150ebaL, 0x94e2ea78L, 0xa5fc3c53L, 0x1e0a2df4L,
+	0xf2f74ea7L, 0x361d2b3dL, 0x1939260fL, 0x19c27960L,
+	0x5223a708L, 0xf71312b6L, 0xebadfe6eL, 0xeac31f66L,
+	0xe3bc4595L, 0xa67bc883L, 0xb17f37d1L, 0x018cff28L,
+	0xc332ddefL, 0xbe6c5aa5L, 0x65582185L, 0x68ab9802L,
+	0xeecea50fL, 0xdb2f953bL, 0x2aef7dadL, 0x5b6e2f84L,
+	0x1521b628L, 0x29076170L, 0xecdd4775L, 0x619f1510L,
+	0x13cca830L, 0xeb61bd96L, 0x0334fe1eL, 0xaa0363cfL,
+	0xb5735c90L, 0x4c70a239L, 0xd59e9e0bL, 0xcbaade14L,
+	0xeecc86bcL, 0x60622ca7L, 0x9cab5cabL, 0xb2f3846eL,
+	0x648b1eafL, 0x19bdf0caL, 0xa02369b9L, 0x655abb50L,
+	0x40685a32L, 0x3c2ab4b3L, 0x319ee9d5L, 0xc021b8f7L,
+	0x9b540b19L, 0x875fa099L, 0x95f7997eL, 0x623d7da8L,
+	0xf837889aL, 0x97e32d77L, 0x11ed935fL, 0x16681281L,
+	0x0e358829L, 0xc7e61fd6L, 0x96dedfa1L, 0x7858ba99L,
+	0x57f584a5L, 0x1b227263L, 0x9b83c3ffL, 0x1ac24696L,
+	0xcdb30aebL, 0x532e3054L, 0x8fd948e4L, 0x6dbc3128L,
+	0x58ebf2efL, 0x34c6ffeaL, 0xfe28ed61L, 0xee7c3c73L,
+	0x5d4a14d9L, 0xe864b7e3L, 0x42105d14L, 0x203e13e0L,
+	0x45eee2b6L, 0xa3aaabeaL, 0xdb6c4f15L, 0xfacb4fd0L,
+	0xc742f442L, 0xef6abbb5L, 0x654f3b1dL, 0x41cd2105L,
+	0xd81e799eL, 0x86854dc7L, 0xe44b476aL, 0x3d816250L,
+	0xcf62a1f2L, 0x5b8d2646L, 0xfc8883a0L, 0xc1c7b6a3L,
+	0x7f1524c3L, 0x69cb7492L, 0x47848a0bL, 0x5692b285L,
+	0x095bbf00L, 0xad19489dL, 0x1462b174L, 0x23820e00L,
+	0x58428d2aL, 0x0c55f5eaL, 0x1dadf43eL, 0x233f7061L,
+	0x3372f092L, 0x8d937e41L, 0xd65fecf1L, 0x6c223bdbL,
+	0x7cde3759L, 0xcbee7460L, 0x4085f2a7L, 0xce77326eL,
+	0xa6078084L, 0x19f8509eL, 0xe8efd855L, 0x61d99735L,
+	0xa969a7aaL, 0xc50c06c2L, 0x5a04abfcL, 0x800bcadcL,
+	0x9e447a2eL, 0xc3453484L, 0xfdd56705L, 0x0e1e9ec9L,
+	0xdb73dbd3L, 0x105588cdL, 0x675fda79L, 0xe3674340L,
+	0xc5c43465L, 0x713e38d8L, 0x3d28f89eL, 0xf16dff20L,
+	0x153e21e7L, 0x8fb03d4aL, 0xe6e39f2bL, 0xdb83adf7L,
+	0xe93d5a68L, 0x948140f7L, 0xf64c261cL, 0x94692934L,
+	0x411520f7L, 0x7602d4f7L, 0xbcf46b2eL, 0xd4a20068L,
+	0xd4082471L, 0x3320f46aL, 0x43b7d4b7L, 0x500061afL,
+	0x1e39f62eL, 0x97244546L, 0x14214f74L, 0xbf8b8840L,
+	0x4d95fc1dL, 0x96b591afL, 0x70f4ddd3L, 0x66a02f45L,
+	0xbfbc09ecL, 0x03bd9785L, 0x7fac6dd0L, 0x31cb8504L,
+	0x96eb27b3L, 0x55fd3941L, 0xda2547e6L, 0xabca0a9aL,
+	0x28507825L, 0x530429f4L, 0x0a2c86daL, 0xe9b66dfbL,
+	0x68dc1462L, 0xd7486900L, 0x680ec0a4L, 0x27a18deeL,
+	0x4f3ffea2L, 0xe887ad8cL, 0xb58ce006L, 0x7af4d6b6L,
+	0xaace1e7cL, 0xd3375fecL, 0xce78a399L, 0x406b2a42L,
+	0x20fe9e35L, 0xd9f385b9L, 0xee39d7abL, 0x3b124e8bL,
+	0x1dc9faf7L, 0x4b6d1856L, 0x26a36631L, 0xeae397b2L,
+	0x3a6efa74L, 0xdd5b4332L, 0x6841e7f7L, 0xca7820fbL,
+	0xfb0af54eL, 0xd8feb397L, 0x454056acL, 0xba489527L,
+	0x55533a3aL, 0x20838d87L, 0xfe6ba9b7L, 0xd096954bL,
+	0x55a867bcL, 0xa1159a58L, 0xcca92963L, 0x99e1db33L,
+	0xa62a4a56L, 0x3f3125f9L, 0x5ef47e1cL, 0x9029317cL,
+	0xfdf8e802L, 0x04272f70L, 0x80bb155cL, 0x05282ce3L,
+	0x95c11548L, 0xe4c66d22L, 0x48c1133fL, 0xc70f86dcL,
+	0x07f9c9eeL, 0x41041f0fL, 0x404779a4L, 0x5d886e17L,
+	0x325f51ebL, 0xd59bc0d1L, 0xf2bcc18fL, 0x41113564L,
+	0x257b7834L, 0x602a9c60L, 0xdff8e8a3L, 0x1f636c1bL,
+	0x0e12b4c2L, 0x02e1329eL, 0xaf664fd1L, 0xcad18115L,
+	0x6b2395e0L, 0x333e92e1L, 0x3b240b62L, 0xeebeb922L,
+	0x85b2a20eL, 0xe6ba0d99L, 0xde720c8cL, 0x2da2f728L,
+	0xd0127845L, 0x95b794fdL, 0x647d0862L, 0xe7ccf5f0L,
+	0x5449a36fL, 0x877d48faL, 0xc39dfd27L, 0xf33e8d1eL,
+	0x0a476341L, 0x992eff74L, 0x3a6f6eabL, 0xf4f8fd37L,
+	0xa812dc60L, 0xa1ebddf8L, 0x991be14cL, 0xdb6e6b0dL,
+	0xc67b5510L, 0x6d672c37L, 0x2765d43bL, 0xdcd0e804L,
+	0xf1290dc7L, 0xcc00ffa3L, 0xb5390f92L, 0x690fed0bL,
+	0x667b9ffbL, 0xcedb7d9cL, 0xa091cf0bL, 0xd9155ea3L,
+	0xbb132f88L, 0x515bad24L, 0x7b9479bfL, 0x763bd6ebL,
+	0x37392eb3L, 0xcc115979L, 0x8026e297L, 0xf42e312dL,
+	0x6842ada7L, 0xc66a2b3bL, 0x12754cccL, 0x782ef11cL,
+	0x6a124237L, 0xb79251e7L, 0x06a1bbe6L, 0x4bfb6350L,
+	0x1a6b1018L, 0x11caedfaL, 0x3d25bdd8L, 0xe2e1c3c9L,
+	0x44421659L, 0x0a121386L, 0xd90cec6eL, 0xd5abea2aL,
+	0x64af674eL, 0xda86a85fL, 0xbebfe988L, 0x64e4c3feL,
+	0x9dbc8057L, 0xf0f7c086L, 0x60787bf8L, 0x6003604dL,
+	0xd1fd8346L, 0xf6381fb0L, 0x7745ae04L, 0xd736fcccL,
+	0x83426b33L, 0xf01eab71L, 0xb0804187L, 0x3c005e5fL,
+	0x77a057beL, 0xbde8ae24L, 0x55464299L, 0xbf582e61L,
+	0x4e58f48fL, 0xf2ddfda2L, 0xf474ef38L, 0x8789bdc2L,
+	0x5366f9c3L, 0xc8b38e74L, 0xb475f255L, 0x46fcd9b9L,
+	0x7aeb2661L, 0x8b1ddf84L, 0x846a0e79L, 0x915f95e2L,
+	0x466e598eL, 0x20b45770L, 0x8cd55591L, 0xc902de4cL,
+	0xb90bace1L, 0xbb8205d0L, 0x11a86248L, 0x7574a99eL,
+	0xb77f19b6L, 0xe0a9dc09L, 0x662d09a1L, 0xc4324633L,
+	0xe85a1f02L, 0x09f0be8cL, 0x4a99a025L, 0x1d6efe10L,
+	0x1ab93d1dL, 0x0ba5a4dfL, 0xa186f20fL, 0x2868f169L,
+	0xdcb7da83L, 0x573906feL, 0xa1e2ce9bL, 0x4fcd7f52L,
+	0x50115e01L, 0xa70683faL, 0xa002b5c4L, 0x0de6d027L,
+	0x9af88c27L, 0x773f8641L, 0xc3604c06L, 0x61a806b5L,
+	0xf0177a28L, 0xc0f586e0L, 0x006058aaL, 0x30dc7d62L,
+	0x11e69ed7L, 0x2338ea63L, 0x53c2dd94L, 0xc2c21634L,
+	0xbbcbee56L, 0x90bcb6deL, 0xebfc7da1L, 0xce591d76L,
+	0x6f05e409L, 0x4b7c0188L, 0x39720a3dL, 0x7c927c24L,
+	0x86e3725fL, 0x724d9db9L, 0x1ac15bb4L, 0xd39eb8fcL,
+	0xed545578L, 0x08fca5b5L, 0xd83d7cd3L, 0x4dad0fc4L,
+	0x1e50ef5eL, 0xb161e6f8L, 0xa28514d9L, 0x6c51133cL,
+	0x6fd5c7e7L, 0x56e14ec4L, 0x362abfceL, 0xddc6c837L,
+	0xd79a3234L, 0x92638212L, 0x670efa8eL, 0x406000e0L,
+	0x3a39ce37L, 0xd3faf5cfL, 0xabc27737L, 0x5ac52d1bL,
+	0x5cb0679eL, 0x4fa33742L, 0xd3822740L, 0x99bc9bbeL,
+	0xd5118e9dL, 0xbf0f7315L, 0xd62d1c7eL, 0xc700c47bL,
+	0xb78c1b6bL, 0x21a19045L, 0xb26eb1beL, 0x6a366eb4L,
+	0x5748ab2fL, 0xbc946e79L, 0xc6a376d2L, 0x6549c2c8L,
+	0x530ff8eeL, 0x468dde7dL, 0xd5730a1dL, 0x4cd04dc6L,
+	0x2939bbdbL, 0xa9ba4650L, 0xac9526e8L, 0xbe5ee304L,
+	0xa1fad5f0L, 0x6a2d519aL, 0x63ef8ce2L, 0x9a86ee22L,
+	0xc089c2b8L, 0x43242ef6L, 0xa51e03aaL, 0x9cf2d0a4L,
+	0x83c061baL, 0x9be96a4dL, 0x8fe51550L, 0xba645bd6L,
+	0x2826a2f9L, 0xa73a3ae1L, 0x4ba99586L, 0xef5562e9L,
+	0xc72fefd3L, 0xf752f7daL, 0x3f046f69L, 0x77fa0a59L,
+	0x80e4a915L, 0x87b08601L, 0x9b09e6adL, 0x3b3ee593L,
+	0xe990fd5aL, 0x9e34d797L, 0x2cf0b7d9L, 0x022b8b51L,
+	0x96d5ac3aL, 0x017da67dL, 0xd1cf3ed6L, 0x7c7d2d28L,
+	0x1f9f25cfL, 0xadf2b89bL, 0x5ad6b472L, 0x5a88f54cL,
+	0xe029ac71L, 0xe019a5e6L, 0x47b0acfdL, 0xed93fa9bL,
+	0xe8d3c48dL, 0x283b57ccL, 0xf8d56629L, 0x79132e28L,
+	0x785f0191L, 0xed756055L, 0xf7960e44L, 0xe3d35e8cL,
+	0x15056dd4L, 0x88f46dbaL, 0x03a16125L, 0x0564f0bdL,
+	0xc3eb9e15L, 0x3c9057a2L, 0x97271aecL, 0xa93a072aL,
+	0x1b3f6d9bL, 0x1e6321f5L, 0xf59c66fbL, 0x26dcf319L,
+	0x7533d928L, 0xb155fdf5L, 0x03563482L, 0x8aba3cbbL,
+	0x28517711L, 0xc20ad9f8L, 0xabcc5167L, 0xccad925fL,
+	0x4de81751L, 0x3830dc8eL, 0x379d5862L, 0x9320f991L,
+	0xea7a90c2L, 0xfb3e7bceL, 0x5121ce64L, 0x774fbe32L,
+	0xa8b6e37eL, 0xc3293d46L, 0x48de5369L, 0x6413e680L,
+	0xa2ae0810L, 0xdd6db224L, 0x69852dfdL, 0x09072166L,
+	0xb39a460aL, 0x6445c0ddL, 0x586cdecfL, 0x1c20c8aeL,
+	0x5bbef7ddL, 0x1b588d40L, 0xccd2017fL, 0x6bb4e3bbL,
+	0xdda26a7eL, 0x3a59ff45L, 0x3e350a44L, 0xbcb4cdd5L,
+	0x72eacea8L, 0xfa6484bbL, 0x8d6612aeL, 0xbf3c6f47L,
+	0xd29be463L, 0x542f5d9eL, 0xaec2771bL, 0xf64e6370L,
+	0x740e0d8dL, 0xe75b1357L, 0xf8721671L, 0xaf537d5dL,
+	0x4040cb08L, 0x4eb4e2ccL, 0x34d2466aL, 0x0115af84L,
+	0xe1b00428L, 0x95983a1dL, 0x06b89fb4L, 0xce6ea048L,
+	0x6f3f3b82L, 0x3520ab82L, 0x011a1d4bL, 0x277227f8L,
+	0x611560b1L, 0xe7933fdcL, 0xbb3a792bL, 0x344525bdL,
+	0xa08839e1L, 0x51ce794bL, 0x2f32c9b7L, 0xa01fbac9L,
+	0xe01cc87eL, 0xbcc7d1f6L, 0xcf0111c3L, 0xa1e8aac7L,
+	0x1a908749L, 0xd44fbd9aL, 0xd0dadecbL, 0xd50ada38L,
+	0x0339c32aL, 0xc6913667L, 0x8df9317cL, 0xe0b12b4fL,
+	0xf79e59b7L, 0x43f5bb3aL, 0xf2d519ffL, 0x27d9459cL,
+	0xbf97222cL, 0x15e6fc2aL, 0x0f91fc71L, 0x9b941525L,
+	0xfae59361L, 0xceb69cebL, 0xc2a86459L, 0x12baa8d1L,
+	0xb6c1075eL, 0xe3056a0cL, 0x10d25065L, 0xcb03a442L,
+	0xe0ec6e0eL, 0x1698db3bL, 0x4c98a0beL, 0x3278e964L,
+	0x9f1f9532L, 0xe0d392dfL, 0xd3a0342bL, 0x8971f21eL,
+	0x1b0a7441L, 0x4ba3348cL, 0xc5be7120L, 0xc37632d8L,
+	0xdf359f8dL, 0x9b992f2eL, 0xe60b6f47L, 0x0fe3f11dL,
+	0xe54cda54L, 0x1edad891L, 0xce6279cfL, 0xcd3e7e6fL,
+	0x1618b166L, 0xfd2c1d05L, 0x848fd2c5L, 0xf6fb2299L,
+	0xf523f357L, 0xa6327623L, 0x93a83531L, 0x56cccd02L,
+	0xacf08162L, 0x5a75ebb5L, 0x6e163697L, 0x88d273ccL,
+	0xde966292L, 0x81b949d0L, 0x4c50901bL, 0x71c65614L,
+	0xe6c6c7bdL, 0x327a140aL, 0x45e1d006L, 0xc3f27b9aL,
+	0xc9aa53fdL, 0x62a80f00L, 0xbb25bfe2L, 0x35bdd2f6L,
+	0x71126905L, 0xb2040222L, 0xb6cbcf7cL, 0xcd769c2bL,
+	0x53113ec0L, 0x1640e3d3L, 0x38abbd60L, 0x2547adf0L,
+	0xba38209cL, 0xf746ce76L, 0x77afa1c5L, 0x20756060L,
+	0x85cbfe4eL, 0x8ae88dd8L, 0x7aaaf9b0L, 0x4cf9aa7eL,
+	0x1948c25cL, 0x02fb8a8cL, 0x01c36ae4L, 0xd6ebe1f9L,
+	0x90d4f869L, 0xa65cdea0L, 0x3f09252dL, 0xc208e69fL,
+	0xb74e6132L, 0xce77e25bL, 0x578fdfe3L, 0x3ac372e6L,
 };
-
-
blob - c54541c58b96c42446f927aac644aa700869c413
blob + f14d2ea9049fe3b67feee74d6a0deed980a701f3
--- src/libsec/port/des.c
+++ src/libsec/port/des.c
@@ -133,7 +133,7 @@ block_cipher(ulong key[32], uchar text[8], int decrypt
 			^ fetch(5, v1, 8)
 			^ fetch(7, v1, 0);
 		key += keystep;
-		
+
 		v0 = key[0];
 		v0 ^= (left >> 1) | (left << 31);
 		right ^= fetch(0, v0, 24)
@@ -229,7 +229,7 @@ triple_block_cipher(ulong expanded_key[3][32], uchar t
 				^ fetch(5, v1, 8)
 				^ fetch(7, v1, 0);
 			key += keystep;
-			
+
 			v0 = key[0];
 			v0 ^= (left >> 1) | (left << 31);
 			right ^= fetch(0, v0, 24)
@@ -409,21 +409,21 @@ des_key_setup(uchar key[8], ulong *ek)
 
 static uchar parity[128] =
 {
-	0x01, 0x02, 0x04, 0x07, 0x08, 0x0b, 0x0d, 0x0e, 
-	0x10, 0x13, 0x15, 0x16, 0x19, 0x1a, 0x1c, 0x1f, 
-	0x20, 0x23, 0x25, 0x26, 0x29, 0x2a, 0x2c, 0x2f, 
-	0x31, 0x32, 0x34, 0x37, 0x38, 0x3b, 0x3d, 0x3e, 
-	0x40, 0x43, 0x45, 0x46, 0x49, 0x4a, 0x4c, 0x4f, 
-	0x51, 0x52, 0x54, 0x57, 0x58, 0x5b, 0x5d, 0x5e, 
-	0x61, 0x62, 0x64, 0x67, 0x68, 0x6b, 0x6d, 0x6e, 
-	0x70, 0x73, 0x75, 0x76, 0x79, 0x7a, 0x7c, 0x7f, 
-	0x80, 0x83, 0x85, 0x86, 0x89, 0x8a, 0x8c, 0x8f, 
-	0x91, 0x92, 0x94, 0x97, 0x98, 0x9b, 0x9d, 0x9e, 
-	0xa1, 0xa2, 0xa4, 0xa7, 0xa8, 0xab, 0xad, 0xae, 
-	0xb0, 0xb3, 0xb5, 0xb6, 0xb9, 0xba, 0xbc, 0xbf, 
-	0xc1, 0xc2, 0xc4, 0xc7, 0xc8, 0xcb, 0xcd, 0xce, 
-	0xd0, 0xd3, 0xd5, 0xd6, 0xd9, 0xda, 0xdc, 0xdf, 
-	0xe0, 0xe3, 0xe5, 0xe6, 0xe9, 0xea, 0xec, 0xef, 
+	0x01, 0x02, 0x04, 0x07, 0x08, 0x0b, 0x0d, 0x0e,
+	0x10, 0x13, 0x15, 0x16, 0x19, 0x1a, 0x1c, 0x1f,
+	0x20, 0x23, 0x25, 0x26, 0x29, 0x2a, 0x2c, 0x2f,
+	0x31, 0x32, 0x34, 0x37, 0x38, 0x3b, 0x3d, 0x3e,
+	0x40, 0x43, 0x45, 0x46, 0x49, 0x4a, 0x4c, 0x4f,
+	0x51, 0x52, 0x54, 0x57, 0x58, 0x5b, 0x5d, 0x5e,
+	0x61, 0x62, 0x64, 0x67, 0x68, 0x6b, 0x6d, 0x6e,
+	0x70, 0x73, 0x75, 0x76, 0x79, 0x7a, 0x7c, 0x7f,
+	0x80, 0x83, 0x85, 0x86, 0x89, 0x8a, 0x8c, 0x8f,
+	0x91, 0x92, 0x94, 0x97, 0x98, 0x9b, 0x9d, 0x9e,
+	0xa1, 0xa2, 0xa4, 0xa7, 0xa8, 0xab, 0xad, 0xae,
+	0xb0, 0xb3, 0xb5, 0xb6, 0xb9, 0xba, 0xbc, 0xbf,
+	0xc1, 0xc2, 0xc4, 0xc7, 0xc8, 0xcb, 0xcd, 0xce,
+	0xd0, 0xd3, 0xd5, 0xd6, 0xd9, 0xda, 0xdc, 0xdf,
+	0xe0, 0xe3, 0xe5, 0xe6, 0xe9, 0xea, 0xec, 0xef,
 	0xf1, 0xf2, 0xf4, 0xf7, 0xf8, 0xfb, 0xfd, 0xfe,
 };
 
@@ -476,5 +476,5 @@ key_setup(uchar key[7], ulong *ek)
 	uchar k64[8];
 
 	des56to64(key, k64);
-	des_key_setup(k64, ek);	
+	des_key_setup(k64, ek);
 }
blob - a03d7044e754b0cc419c4e6822ee569726793b0f
blob + cfd2ce966adde05328603a6b8cb61fbca9dd725e
--- src/libsec/port/des3ECB.c
+++ src/libsec/port/des3ECB.c
@@ -17,7 +17,7 @@ des3ECBencrypt(uchar *p, int len, DES3state *s)
 		triple_block_cipher(s->expanded, p, DES3EDE);
 		p += 8;
 	}
-	
+
 	if(len > 0){
 		for (i=0; i<8; i++)
 			tmp[i] = i;
@@ -37,7 +37,7 @@ des3ECBdecrypt(uchar *p, int len, DES3state *s)
 		triple_block_cipher(s->expanded, p, DES3DED);
 		p += 8;
 	}
-	
+
 	if(len > 0){
 		for (i=0; i<8; i++)
 			tmp[i] = i;
blob - 0bc3414193cecfa278567ac11bef186dcf962c93
blob + b38ae4fd736f6ad77ef30296b10e4bb0ffa64cd6
--- src/libsec/port/desECB.c
+++ src/libsec/port/desECB.c
@@ -17,7 +17,7 @@ desECBencrypt(uchar *p, int len, DESstate *s)
 		block_cipher(s->expanded, p, 0);
 		p += 8;
 	}
-	
+
 	if(len > 0){
 		for (i=0; i<8; i++)
 			tmp[i] = i;
@@ -37,7 +37,7 @@ desECBdecrypt(uchar *p, int len, DESstate *s)
 		block_cipher(s->expanded, p, 1);
 		p += 8;
 	}
-	
+
 	if(len > 0){
 		for (i=0; i<8; i++)
 			tmp[i] = i;
blob - 2457880069c20fc72d062e2e5db2c0f341ac42c7
blob + 31d4bdd57a4432eeb2f6c778411e8a70b5643e3e
--- src/libsec/port/egdecrypt.c
+++ src/libsec/port/egdecrypt.c
@@ -17,7 +17,7 @@ egdecrypt(EGpriv *priv, mpint *in, mpint *out)
 	delta = mpnew(0);
 	mpright(in, shift, gamma);
 	mpleft(gamma, shift, delta);
-	mpsub(in, delta, delta);	
+	mpsub(in, delta, delta);
 	mpexp(gamma, priv->secret, p, out);
 	mpinvert(out, p, gamma);
 	mpmul(gamma, delta, out);
blob - 14571277426c78edf2039d2260014fac1e7b41c5
blob + ca3c0195423ba54c7e90d1d7e9f70322287d8894
--- src/libsec/port/fastrand.c
+++ src/libsec/port/fastrand.c
@@ -2,7 +2,7 @@
 #include	<libc.h>
 #include	<libsec.h>
 
-/* 
+/*
  *  use the X917 random number generator to create random
  *  numbers (faster than truerand() but not as random).
  */
@@ -10,7 +10,7 @@ ulong
 fastrand(void)
 {
 	ulong x;
-	
+
 	genrandom((uchar*)&x, sizeof x);
 	return x;
 }
blob - dc4a8c2a87569c38dd4513e3492137cb2f40a245
blob + 6fb5c0026172667d42ef50f7a6a393777278b92a
--- src/libsec/port/md4.c
+++ src/libsec/port/md4.c
@@ -37,58 +37,58 @@ struct MD4Table
 static MD4Table tab[] =
 {
 	/* round 1 */
-/*[0]*/	{ 0,	S11},	
-	{ 1,	S12},	
-	{ 2,	S13},	
-	{ 3,	S14},	
-	{ 4,	S11},	
-	{ 5,	S12},	
-	{ 6,	S13},	
-	{ 7,	S14},	
-	{ 8,	S11},	
-	{ 9,	S12},	
-	{ 10,	S13},	
-	{ 11,	S14},	
-	{ 12,	S11},	
-	{ 13,	S12},	
-	{ 14,	S13},	
+/*[0]*/	{ 0,	S11},
+	{ 1,	S12},
+	{ 2,	S13},
+	{ 3,	S14},
+	{ 4,	S11},
+	{ 5,	S12},
+	{ 6,	S13},
+	{ 7,	S14},
+	{ 8,	S11},
+	{ 9,	S12},
+	{ 10,	S13},
+	{ 11,	S14},
+	{ 12,	S11},
+	{ 13,	S12},
+	{ 14,	S13},
 	{ 15,	S14},
 
 	/* round 2 */
-/*[16]*/{ 0,	S21},	
-	{ 4,	S22},	
-	{ 8,	S23},	
-	{ 12,	S24},	
-	{ 1,	S21},	
-	{ 5,	S22},	
-	{ 9,	S23},	
-	{ 13,	S24},	
-	{ 2,	S21},	
-	{ 6,	S22},	
-	{ 10,	S23},	
-	{ 14,	S24},	
-	{ 3,	S21},	
-	{ 7,	S22},	
-	{ 11,	S23},	
+/*[16]*/{ 0,	S21},
+	{ 4,	S22},
+	{ 8,	S23},
+	{ 12,	S24},
+	{ 1,	S21},
+	{ 5,	S22},
+	{ 9,	S23},
+	{ 13,	S24},
+	{ 2,	S21},
+	{ 6,	S22},
+	{ 10,	S23},
+	{ 14,	S24},
+	{ 3,	S21},
+	{ 7,	S22},
+	{ 11,	S23},
 	{ 15,	S24},
 
 	/* round 3 */
-/*[32]*/{ 0,	S31},	
-	{ 8,	S32},	
-	{ 4,	S33},	
-	{ 12,	S34},	
-	{ 2,	S31},	
-	{ 10,	S32},	
-	{ 6,	S33},	
-	{ 14,	S34},	
-	{ 1,	S31},	
-	{ 9,	S32},	
-	{ 5,	S33},	
-	{ 13,	S34},	
-	{ 3,	S31},	
-	{ 11,	S32},	
-	{ 7,	S33},	
-	{ 15,	S34},	
+/*[32]*/{ 0,	S31},
+	{ 8,	S32},
+	{ 4,	S33},
+	{ 12,	S34},
+	{ 2,	S31},
+	{ 10,	S32},
+	{ 6,	S33},
+	{ 14,	S34},
+	{ 1,	S31},
+	{ 9,	S32},
+	{ 5,	S33},
+	{ 13,	S34},
+	{ 3,	S31},
+	{ 11,	S32},
+	{ 7,	S33},
+	{ 15,	S34},
 };
 
 static void encode(uchar*, u32int*, ulong);
@@ -110,7 +110,7 @@ md4block(uchar *p, ulong len, MD4state *s)
 		d = s->state[3];
 
 		decode(x, p, 64);
-	
+
 		for(i = 0; i < 48; i++){
 			t = tab + i;
 			switch(i>>4){
@@ -126,7 +126,7 @@ md4block(uchar *p, ulong len, MD4state *s)
 			}
 			a += x[t->x];
 			a = (a << t->rot) | (a >> (32 - t->rot));
-	
+
 			/* rotate variables */
 			tmp = d;
 			d = c;
blob - 07fe2237978d2d603370b69b3d22ab4af39c3d39
blob + 4183f929bf3bfe01a06f649175cf2951a8cf65b1
--- src/libsec/port/md5block.c
+++ src/libsec/port/md5block.c
@@ -56,76 +56,76 @@ enum
 static u32int md5tab[] =
 {
 	/* round 1 */
-/*[0]*/	0xd76aa478,	
-	0xe8c7b756,	
-	0x242070db,	
-	0xc1bdceee,	
-	0xf57c0faf,	
-	0x4787c62a,	
-	0xa8304613,	
-	0xfd469501,	
-	0x698098d8,	
-	0x8b44f7af,	
-	0xffff5bb1,	
-	0x895cd7be,	
-	0x6b901122,	
-	0xfd987193,	
-	0xa679438e,	
+/*[0]*/	0xd76aa478,
+	0xe8c7b756,
+	0x242070db,
+	0xc1bdceee,
+	0xf57c0faf,
+	0x4787c62a,
+	0xa8304613,
+	0xfd469501,
+	0x698098d8,
+	0x8b44f7af,
+	0xffff5bb1,
+	0x895cd7be,
+	0x6b901122,
+	0xfd987193,
+	0xa679438e,
 	0x49b40821,
 
 	/* round 2 */
-/*[16]*/0xf61e2562,	
-	0xc040b340,	
-	0x265e5a51,	
-	0xe9b6c7aa,	
-	0xd62f105d,	
-	 0x2441453,	
-	0xd8a1e681,	
-	0xe7d3fbc8,	
-	0x21e1cde6,	
-	0xc33707d6,	
-	0xf4d50d87,	
-	0x455a14ed,	
-	0xa9e3e905,	
-	0xfcefa3f8,	
-	0x676f02d9,	
+/*[16]*/0xf61e2562,
+	0xc040b340,
+	0x265e5a51,
+	0xe9b6c7aa,
+	0xd62f105d,
+	 0x2441453,
+	0xd8a1e681,
+	0xe7d3fbc8,
+	0x21e1cde6,
+	0xc33707d6,
+	0xf4d50d87,
+	0x455a14ed,
+	0xa9e3e905,
+	0xfcefa3f8,
+	0x676f02d9,
 	0x8d2a4c8a,
 
 	/* round 3 */
-/*[32]*/0xfffa3942,	
-	0x8771f681,	
-	0x6d9d6122,	
-	0xfde5380c,	
-	0xa4beea44,	
-	0x4bdecfa9,	
-	0xf6bb4b60,	
-	0xbebfbc70,	
-	0x289b7ec6,	
-	0xeaa127fa,	
-	0xd4ef3085,	
-	 0x4881d05,	
-	0xd9d4d039,	
-	0xe6db99e5,	
-	0x1fa27cf8,	
-	0xc4ac5665,	
+/*[32]*/0xfffa3942,
+	0x8771f681,
+	0x6d9d6122,
+	0xfde5380c,
+	0xa4beea44,
+	0x4bdecfa9,
+	0xf6bb4b60,
+	0xbebfbc70,
+	0x289b7ec6,
+	0xeaa127fa,
+	0xd4ef3085,
+	 0x4881d05,
+	0xd9d4d039,
+	0xe6db99e5,
+	0x1fa27cf8,
+	0xc4ac5665,
 
 	/* round 4 */
-/*[48]*/0xf4292244,	
-	0x432aff97,	
-	0xab9423a7,	
-	0xfc93a039,	
-	0x655b59c3,	
-	0x8f0ccc92,	
-	0xffeff47d,	
-	0x85845dd1,	
-	0x6fa87e4f,	
-	0xfe2ce6e0,	
-	0xa3014314,	
-	0x4e0811a1,	
-	0xf7537e82,	
-	0xbd3af235,	
-	0x2ad7d2bb,	
-	0xeb86d391,	
+/*[48]*/0xf4292244,
+	0x432aff97,
+	0xab9423a7,
+	0xfc93a039,
+	0x655b59c3,
+	0x8f0ccc92,
+	0xffeff47d,
+	0x85845dd1,
+	0x6fa87e4f,
+	0xfe2ce6e0,
+	0xa3014314,
+	0x4e0811a1,
+	0xf7537e82,
+	0xbd3af235,
+	0x2ad7d2bb,
+	0xeb86d391,
 };
 
 static void decode(u32int*, uchar*, ulong);
@@ -146,7 +146,7 @@ _md5block(uchar *p, ulong len, u32int *s)
 		d = s[3];
 
 		decode(x, p, 64);
-	
+
 		t = md5tab;
 		sh = 0;
 		for(; sh != 16; t += 4){
blob - 3ba77003d400a3929f6acc9b6972622237d089a8
blob + a4d640dd7d04d2e5e6afa6976a59c85371c82b3d
--- src/libsec/port/nfastrand.c
+++ src/libsec/port/nfastrand.c
@@ -8,7 +8,7 @@ ulong
 nfastrand(ulong n)
 {
 	ulong m, r;
-	
+
 	/*
 	 * set m to the maximum multiple of n <= 2^31-1
 	 * so we want a random number < m.
blob - b8ddf6d2f74b06a2dd2e9a5861dbba5f95384a33
blob + 69a5a9d3e6e2bfeeb96cb82a24d2f107ec349bc3
--- src/libsec/port/readcert.c
+++ src/libsec/port/readcert.c
@@ -64,4 +64,3 @@ readcertchain(char *filename)
 	chp = decodepemchain(chfile, "CERTIFICATE");
 	return chp;
 }
-
blob - 82e2eeea0e72a2d997e1d59e56acae7899f72ae9
blob + 147cafd8f7bd6f7a7bd8c830669cee6a6a9faa7c
--- src/libsec/port/rsadecrypt.c
+++ src/libsec/port/rsadecrypt.c
@@ -22,7 +22,7 @@ rsadecrypt(RSApriv *rsa, mpint *in, mpint *out)
 	/* exponentiate the modular rep */
 	mpexp(v1, rsa->kp, rsa->p, v1);
 	mpexp(v2, rsa->kq, rsa->q, v2);
-	
+
 	/* out = v1 + p*((v2-v1)*c2 mod q) */
 	mpsub(v2, v1, v2);
 	mpmul(v2, rsa->c2, v2);
blob - 7b7156140fabe1e0ebc97f25c950b608ecf7ff33
blob + cc123a23963608d076491083f89063cd842581b7
--- src/libsec/port/rsafill.c
+++ src/libsec/port/rsafill.c
@@ -58,4 +58,3 @@ rsafill(mpint *n, mpint *e, mpint *d, mpint *p, mpint 
 
 	return rsa;
 }
-
blob - 9ff66b5c266fdc6c674537e909936ccb2a292ee2
blob + 270e7694314bd0ffb747caceb565893e52fd461e
--- src/libsec/port/rsatest.c
+++ src/libsec/port/rsatest.c
@@ -27,7 +27,7 @@ main(void)
 
 	strtomp("123456789abcdef123456789abcdef123456789abcdef123456789abcdef", nil, 16, clr);
 	rsaencrypt(&rsa->pub, clr, enc);
-	
+
 	start = nsec();
 	for(n = 0; n < 10; n++)
 		rsadecrypt(rsa, enc, clr);
@@ -40,7 +40,7 @@ main(void)
 
 	if(mpcmp(clr, clr2) != 0)
 		print("%B != %B\n", clr, clr2);
-	
+
 	print("> ");
 	while(p = Brdline(&b, '\n')){
 		n = Blinelen(&b);
blob - 82566f21029c551fb9cd42bb09c2c86b31959906
blob + 6d7122630e459abc399d829c49fb9401925d99b2
--- src/libsec/port/sha1block.c
+++ src/libsec/port/sha1block.c
@@ -42,7 +42,7 @@ _sha1block(uchar *p, ulong len, u32int *s)
 			a += ((b<<5) | (b>>27)) + wp[4];
 			a += 0x5a827999 + (((d^e)&c)^e);
 			c = (c<<30)|(c>>2);
-			
+
 			p += 20;
 		}
 
blob - cac95a436cedf0d2d34cf3173805d7687ba105d4
blob + 6010342ccf360ff66d49a2a59049548ad083509d
--- src/libsec/port/thumb.c
+++ src/libsec/port/thumb.c
@@ -94,4 +94,3 @@ initThumbprints(char *ok, char *crl)
 	free(crltab);
 	return table;
 }
-
blob - ae216716da9c5ced55ec17105657c8289e1a750e
blob + f12d8ce9a75d8cd07e8c70fdba7069eb73393b79
--- src/libsec/port/tlshand.c
+++ src/libsec/port/tlshand.c
@@ -1789,7 +1789,7 @@ tlsSecSecretc(TlsSec *sec, uchar *sid, int nsid, uchar
 
 	USED(sid);
 	USED(nsid);
-	
+
 	memmove(sec->srandom, srandom, RandomSize);
 
 	if(setVers(sec, vers) < 0)
@@ -1918,7 +1918,7 @@ serverMasterSecret(TlsSec *sec, uchar *epm, int nepm)
 		genrandom(pm->data, MasterSecretSize);
 	}
 	setMasterSecret(sec, pm);
-	memset(pm->data, 0, pm->len);	
+	memset(pm->data, 0, pm->len);
 	freebytes(pm);
 }
 
blob - 2bbf85381d12780383c7df419a51f319d03c97a2
blob + 47900253346931b8956d02918364aff7399f3be9
--- src/libsec/port/x509.c
+++ src/libsec/port/x509.c
@@ -2123,7 +2123,7 @@ verify_signature(Bytes* signature, RSApub *pk, uchar *
 		return nil;
 	return "digests did not match";
 }
-	
+
 RSApub*
 X509toRSApub(uchar *cert, int ncert, char *name, int nname)
 {
blob - 692ab59161abe9692e2bcdf5e4fa4a737d076120
blob + 44ead7d17c1e747c9ac159380deaed862da4ad58
--- src/libsunrpc/client.c
+++ src/libsunrpc/client.c
@@ -243,7 +243,7 @@ if(cli->chatty) fprint(2, "resend %lux %lud %lud\n", o
 			if(nout == 0)
 				a[1].op = CHANNOP;
 			break;
-			
+
 		case 2:	/* tag = <-flushchan */
 			for(i=0; i<nout; i++){
 				o = out[i];
@@ -374,7 +374,7 @@ sunclientclose(SunClient *cli)
 	chanfree(cli->timerchan);
 	free(cli);
 }
-	
+
 void
 sunclientflushrpc(SunClient *cli, ulong tag)
 {
blob - 8a09eda784e8721b5ab26b24b0ce0972e87fc5e7
blob + ce617412256089359171223d7dbbc5d6e8ab6e02
--- src/libsunrpc/emalloc.c
+++ src/libsunrpc/emalloc.c
@@ -30,5 +30,3 @@ abort();
 	setrealloctag(v, getcallerpc(&n));
 	return v;
 }
-
-
blob - d487c8064792901f89912352c0daa338a4a4a9fa
blob + 4da94896ab88fdda9dbb3b25bbfc69d6b1cf30fa
--- src/libsunrpc/mount3.c
+++ src/libsunrpc/mount3.c
@@ -709,7 +709,7 @@ static SunProc proc1[] = {
 	(P)nfsmount3rexportpack, (P)nfsmount3rexportunpack, (S)nfsmount3rexportsize, (F)nfsmount3rexportprint, sizeof(NfsMount3RExport),
 };
 
-SunProg nfsmount3prog = 
+SunProg nfsmount3prog =
 {
 	NfsMount3Program,
 	NfsMount3Version,
blob - 706d9c4f47910bc71cefb4f54c62954d0d725254
blob + 8cf52db1a76ef15ffa346e088088d8030cb0f186
--- src/libsunrpc/nfs3.c
+++ src/libsunrpc/nfs3.c
@@ -3377,7 +3377,7 @@ countEntryPlus(uchar *a, uchar *ea, uchar **pa, u32int
 	*pa = a;
 	return 0;
 }
-		
+
 int
 nfs3rreaddirplusunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RReadDirPlus *x)
 {
@@ -4042,7 +4042,7 @@ static SunProc proc[] = {
 	(P)nfs3rcommitpack, (P)nfs3rcommitunpack, (S)nfs3rcommitsize, (F)nfs3rcommitprint, sizeof(Nfs3RCommit)
 };
 
-SunProg nfs3prog = 
+SunProg nfs3prog =
 {
 	Nfs3Program,
 	Nfs3Version,
blob - 2bb401534ce8285340b245b763c2226971b93174
blob + 76a1dde1d7e6e1b9d6db82b800c5bc19e9a3c035
--- src/libsunrpc/portmap.c
+++ src/libsunrpc/portmap.c
@@ -489,7 +489,7 @@ static SunProc proc[] = {
 	(P)portRCallitPack, (P)portRCallitUnpack, (S)portRCallitSize, (F)portRCallitPrint, sizeof(PortRCallit),
 };
 
-SunProg portprog = 
+SunProg portprog =
 {
 	PortProgram,
 	PortVersion,
blob - 4ebe1ec89ba229d128f493ea63ff999baf07fb3c
blob + a4b3f011ba14a73fdb4639cfc29fe02018d7cfb3
--- src/libsunrpc/rpc.c
+++ src/libsunrpc/rpc.c
@@ -78,7 +78,7 @@ sunrpcpack(uchar *a, uchar *ea, uchar **pa, SunRpc *rp
 				goto Err;
 			break;
 		}
-	
+
 		switch(rpc->status){
 		case SunSuccess:
 			if(sunuint32pack(a, ea, &a, (x=MsgSuccess, &x)) < 0
@@ -538,4 +538,3 @@ Err:
 	*pa = ea;
 	return -1;
 }
-
blob - 6e024fca70a2a0c07b6cf2fa91b5a06a7cc55f58
blob + b94b7643947352a0ee4806082a5931910ebdec1c
--- src/libsunrpc/server.c
+++ src/libsunrpc/server.c
@@ -194,7 +194,7 @@ sunrpcreplythread(void *v)
 	while((m = recvp(srv->creply)) != nil){
 		/* could record in cache here? */
 		sendp(m->creply, m);
-	}	
+	}
 }
 
 int
@@ -286,4 +286,3 @@ sunmsgdrop(SunMsg *m)
 	free(m);
 	return 0;
 }
-
blob - 21327d9bc4cc17cbfaabdb8caca1a819fe322a24
blob + b1ee81b30837fa2615a4cccd151ce26c03022817
--- src/libthread/386-ucontext.h
+++ src/libthread/386-ucontext.h
@@ -16,7 +16,7 @@ extern	void		setmcontext(mcontext_t*);
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer 
+ *    notice, this list of conditions and the following disclaimer
  *    in this position and unchanged.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
@@ -48,7 +48,7 @@ extern	void		setmcontext(mcontext_t*);
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer 
+ *    notice, this list of conditions and the following disclaimer
  *    in this position and unchanged.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
@@ -117,5 +117,3 @@ struct ucontext {
 	stack_t		uc_stack;
 	int		__spare__[8];
 };
-
-
blob - b9e8888e4c193ec6bb9a73d1c102415398414742
blob + 737c0a63a073c2bd781081409b0169d1614aa570
--- src/libthread/BSD.c
+++ src/libthread/BSD.c
@@ -288,7 +288,7 @@ threadexitsall(char *msg)
 	if(msg == nil)
 		msg = "";
 
-	/* 
+	/*
 	 * Only one guy, ever, gets to run this.
 	 * If two guys do it, inevitably they end up
 	 * tripping over each other in the underlying
@@ -401,4 +401,3 @@ _threadpexit(void)
 {
 	_exit(0);
 }
-
blob - 3ad1941c9ef745fd35a044a25dea9e298f5ae6c5
blob + b138e420043787d8f9ddce34ae01bc1e1885d5e8
--- src/libthread/Darwin-386.c
+++ src/libthread/Darwin-386.c
@@ -28,4 +28,3 @@ swapcontext(ucontext_t *oucp, ucontext_t *ucp)
 		setcontext(ucp);
 	return 0;
 }
-
blob - efcdb18c6f0004ba725dafdbc6d8fa09967d4bc9
blob + 3f2bf5669a9124b89d6e9a71301f01f666c5b3d8
--- src/libthread/Darwin-power.c
+++ src/libthread/Darwin-power.c
@@ -7,7 +7,7 @@ makecontext(ucontext_t *ucp, void (*func)(void), int a
 	va_list arg;
 
 	tos = (ulong*)ucp->uc_stack.ss_sp+ucp->uc_stack.ss_size/sizeof(ulong);
-	sp = tos - 16;	
+	sp = tos - 16;
 	ucp->mc.pc = (long)func;
 	ucp->mc.sp = (long)sp;
 	va_start(arg, argc);
@@ -22,4 +22,3 @@ swapcontext(ucontext_t *oucp, ucontext_t *ucp)
 		setcontext(ucp);
 	return 0;
 }
-
blob - 0593e481dd6399d10b6a8e11df4d17bcc2295b94
blob + 27931456d6d0d9bf6377056fe280ef31437c4a62
--- src/libthread/Darwin-x86_64-swapcontext.c
+++ src/libthread/Darwin-x86_64-swapcontext.c
@@ -28,5 +28,3 @@ swapcontext(ucontext_t *oucp, ucontext_t *ucp)
 		setcontext(ucp);
 	return 0;
 }
-
-
blob - 907fb0c3fd4b29e0279c5de34eb0e374b2514d97
blob + fc0dfddaa03cbd92f88456486f189585fc73b24f
--- src/libthread/Linux-arm-swapcontext.c
+++ src/libthread/Linux-arm-swapcontext.c
@@ -22,5 +22,3 @@ swapcontext(ucontext_t *oucp, const ucontext_t *ucp)
 		setcontext(ucp);
 	return 0;
 }
-
-
blob - a621b7a1b8fd1e979490d344c17d0d9e518f143f
blob + e4800c19ccb07521c5448fefd34f52ee05519dbd
--- src/libthread/Linux-sparc64-swapcontext.c
+++ src/libthread/Linux-sparc64-swapcontext.c
@@ -47,4 +47,3 @@ __swapcontext_ret:					\n\
 	 clr	%o0					\n\
 	.size	__swapcontext_ret, .-__swapcontext_ret	\n\
      ");
-
blob - 17e8c12bb8ec7bddad7d1c9b15701e33d74c0f0c
blob + 31577e876dc7be7d2c6d59e67e02887eadf5c25c
--- src/libthread/Linux.c
+++ src/libthread/Linux.c
@@ -6,13 +6,13 @@
 static int
 timefmt(Fmt *fmt)
 {
-	static char *mon[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", 
+	static char *mon[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
 		"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
 	vlong ns;
 	Tm tm;
 	ns = nsec();
 	tm = *localtime(time(0));
-	return fmtprint(fmt, "%s %2d %02d:%02d:%02d.%03d", 
+	return fmtprint(fmt, "%s %2d %02d:%02d:%02d.%03d",
 		mon[tm.mon], tm.mday, tm.hour, tm.min, tm.sec,
 		(int)(ns%1000000000)/1000000);
 }
@@ -246,8 +246,8 @@ startprocfn(void *v)
 
 /*
  * indirect through here so that parent need not wait for child zombie
- * 
- * slight race - if child exits and then another process starts before we 
+ *
+ * slight race - if child exits and then another process starts before we
  * manage to exit, we'll be running on a freed stack.
  */
 static int
@@ -314,7 +314,7 @@ threadexitsall(char *msg)
 	if(msg == nil)
 		msg = "";
 
-	/* 
+	/*
 	 * Only one guy, ever, gets to run this.
 	 * If two guys do it, inevitably they end up
 	 * tripping over each other in the underlying
@@ -442,7 +442,7 @@ makecontext(ucontext_t *uc, void (*fn)(void), int argc
 {
 	int i, *sp;
 	va_list arg;
-	
+
 	sp = (int*)uc->uc_stack.ss_sp+uc->uc_stack.ss_size/4;
 	va_start(arg, argc);
 	for(i=0; i<4 && i<argc; i++)
@@ -460,4 +460,3 @@ swapcontext(ucontext_t *oucp, const ucontext_t *ucp)
 	return 0;
 }
 #endif
-
blob - cb19514957dafba00dc40aad3aad58ed5589c29c
blob + 37dabe9c909f047f45cd39c8daf9ec699061528c
--- src/libthread/NetBSD.c
+++ src/libthread/NetBSD.c
@@ -1,2 +1 @@
 #include "Linux.c"
-
blob - 3725f264a4ef4f7b132095d58194cc55820437c3
blob + 89bfedcd985079d81b12d77062db6bb55de5994b
--- src/libthread/OpenBSD-386.c
+++ src/libthread/OpenBSD-386.c
@@ -20,4 +20,3 @@ swapcontext(ucontext_t *oucp, ucontext_t *ucp)
 		setcontext(ucp);
 	return 0;
 }
-
blob - b83522f00e6725fba2d9f975e9eae0e945f8bcad
blob + eab711f22577a9910515ee3a005484968de34977
--- src/libthread/OpenBSD-power.c
+++ src/libthread/OpenBSD-power.c
@@ -22,4 +22,3 @@ swapcontext(ucontext_t *oucp, ucontext_t *ucp)
 		setcontext(ucp);
 	return 0;
 }
-
blob - 0593e481dd6399d10b6a8e11df4d17bcc2295b94
blob + 27931456d6d0d9bf6377056fe280ef31437c4a62
--- src/libthread/OpenBSD-x86_64.c
+++ src/libthread/OpenBSD-x86_64.c
@@ -28,5 +28,3 @@ swapcontext(ucontext_t *oucp, ucontext_t *ucp)
 		setcontext(ucp);
 	return 0;
 }
-
-
blob - cd7750c0cc6a5dcbe50745818fe324c79024ca3c
blob + b6b2e3e63d48b1165efc818b8d8d9a3cfad9b67c
--- src/libthread/channel.c
+++ src/libthread/channel.c
@@ -5,10 +5,10 @@
  * You have to put locks in all the channels and all the Alt
  * structures.  At the beginning of an alt you have to lock all
  * the channels, but then to try to actually exec an op you
- * have to lock the other guy's alt structure, so that other 
+ * have to lock the other guy's alt structure, so that other
  * people aren't trying to use him in some other op at the
  * same time.
- * 
+ *
  * For Plan 9 apps, it's just not worth the extra effort.
  */
 static QLock chanlock;
@@ -415,4 +415,3 @@ channbrecvul(Channel *c)
 		return val;
 	return -1;
 }
-
blob - e047ab02e249bdb5e530befb7d667c140dee27c0
blob + 387d1527280d0a6b584e26851e35f3d622616d53
--- src/libthread/daemonize.c
+++ src/libthread/daemonize.c
@@ -66,13 +66,13 @@ sigpass(int sig)
 		kill(sigpid, sig);
 }
 
-static int sigs[] = 
+static int sigs[] =
 {
 	SIGHUP, SIGINT, SIGQUIT, SIGILL,
 	SIGTRAP, SIGABRT, SIGBUS, SIGFPE,
 	SIGUSR1, SIGSEGV, SIGUSR2, SIGPIPE,
 	SIGALRM, SIGTERM, SIGCHLD, SIGSTOP,
-	/*SIGTSTP, SIGTTIN, SIGTTOU,*/ SIGURG, 
+	/*SIGTSTP, SIGTTIN, SIGTTOU,*/ SIGURG,
 	SIGXCPU, SIGXFSZ, SIGVTALRM, SIGPROF,
 #ifdef SIGWINCH
 	SIGWINCH,
@@ -84,7 +84,7 @@ static int sigs[] = 
 	SIGEMT,
 #endif
 #ifdef SIGPWR
-	SIGPWR, 
+	SIGPWR,
 #endif
 #ifdef SIGINFO
 	SIGINFO,
blob - 62805ba282d15a825403cb516e379f6fd3a3602b
blob + fb5d521a6dfca833f403493446a60bf784b557c7
--- src/libthread/exec.c
+++ src/libthread/exec.c
@@ -206,4 +206,3 @@ threadexecl(Channel *cpid, int fd[3], char *cmd, ...)
 	if(pid >= 0)
 		threadexits("threadexecl");
 }
-
blob - f3a488d3ce493b2f4177ef1cc794b8c715a279b8
blob + 831beade97ee3ac9e33e20e8c842b059840de14c
--- src/libthread/ioproc.h
+++ src/libthread/ioproc.h
@@ -11,4 +11,3 @@ struct Ioproc
 	char err[ERRMAX];
 	Ioproc *next;
 };
-
blob - 27ed3390e295f2c48626acea9b496eadba8eceea
blob + 1985d98d235e1ea7a0412b8599e64fde79d7701b
--- src/libthread/power-ucontext.h
+++ src/libthread/power-ucontext.h
@@ -34,4 +34,3 @@ void makecontext(ucontext_t*, void(*)(void), int, ...)
 int swapcontext(ucontext_t*, ucontext_t*);
 int _getmcontext(mcontext_t*);
 void _setmcontext(mcontext_t*);
-
blob - 0031d2a46df864a8c71b6ed18df7aefa6cc7f4ce
blob + 36b8817103a0d70a1a9a9cf7d9a186c06e5d0b95
--- src/libthread/sparc-ucontext.h
+++ src/libthread/sparc-ucontext.h
@@ -21,4 +21,3 @@ void makecontext(ucontext_t*, void(*)(void), int, ...)
 int swapcontext(ucontext_t*, ucontext_t*);
 int _getmcontext(mcontext_t*);
 void _setmcontext(mcontext_t*);
-
blob - c5732165cd9ed7d1e8bd4d491d9b0327e877029d
blob + c237b7cdcd2912c8dd6ad9fc0daa5743abec580e
--- src/libthread/test/thello.c
+++ src/libthread/test/thello.c
@@ -7,4 +7,3 @@ threadmain(int argc, char **argv)
 {
 	print("hello, world\n");
 }
-
blob - 542a2437a4f03c6c18cfad5af890e7731594b870
blob + cbad185c4a7fa7ad4dd85caf341894514ff56b6a
--- src/libthread/thread.c
+++ src/libthread/thread.c
@@ -137,7 +137,7 @@ threadalloc(void (*fn)(void*), void *arg, uint stack)
 	t->context.uc.uc_stack.ss_size = t->stksize-64;
 #if defined(__sun__) && !defined(__MAKECONTEXT_V2_SOURCE)		/* sigh */
 	/* can avoid this with __MAKECONTEXT_V2_SOURCE but only on SunOS 5.9 */
-	t->context.uc.uc_stack.ss_sp = 
+	t->context.uc.uc_stack.ss_sp =
 		(char*)t->context.uc.uc_stack.ss_sp
 		+t->context.uc.uc_stack.ss_size;
 #endif
@@ -164,7 +164,7 @@ _threadcreate(Proc *p, void (*fn)(void*), void *arg, u
 	/* defend against bad C libraries */
 	if(stack < (256<<10))
 		stack = 256<<10;
-	
+
 	t = threadalloc(fn, arg, stack);
 	t->proc = p;
 	addthreadinproc(p, t);
@@ -228,7 +228,7 @@ threadidle(void)
 {
 	int n;
 	Proc *p;
-	
+
 	p = proc();
 	n = p->nswitch;
 	lock(&p->lock);
@@ -466,7 +466,7 @@ int
 threadid(void)
 {
 	_Thread *t;
-	
+
 	t = proc()->thread;
 	return t->id;
 }
@@ -534,7 +534,7 @@ static void
 threadqunlock(QLock *l, ulong pc)
 {
 	_Thread *ready;
-	
+
 	lock(&l->l);
 /*print("qlock unlock %p @%#x by %p (owner %p)\n", l, pc, (*threadnow)(), l->owner); */
 	if(l->owner == 0){
@@ -578,7 +578,7 @@ threadrlock(RWLock *l, int block, ulong pc)
 	addthread(&l->rwaiting, (*threadnow)());
 	unlock(&l->l);
 	_threadswitch();
-	return 1;	
+	return 1;
 }
 
 static int
@@ -677,7 +677,7 @@ threadrwakeup(Rendez *r, int all, ulong pc)
 		if((t = r->waiting.head) == nil)
 			break;
 		delthread(&r->waiting, t);
-		_threadready(t);	
+		_threadready(t);
 	}
 	return i;
 }
@@ -865,7 +865,7 @@ delproc(Proc *p)
 	unlock(&_threadprocslock);
 }
 
-/* 
+/*
  * notify - for now just use the usual mechanisms
  */
 void
@@ -901,14 +901,12 @@ threadinfo(void *v, char *s)
 		fprint(2, "proc %p %s%s\n", (void*)p->osprocid, p->msg,
 			p->sysproc ? " (sysproc)": "");
 		for(t=p->allthreads.head; t; t=t->allnext){
-			fprint(2, "\tthread %d %s: %s %s\n", 
-				t->id, 
-				t == p->thread ? "Running" : 
+			fprint(2, "\tthread %d %s: %s %s\n",
+				t->id,
+				t == p->thread ? "Running" :
 				onrunqueue(p, t) ? "Ready" : "Sleeping",
 				t->state, t->name);
 		}
 	}
 	return 1;
 }
-
-
blob - 144a2136b1687b2501ec3dbb3ca9af1109c1b168
blob + a8d52704db96a276c602c0fb2e5da3239115cd7c
--- src/libthread/threadimpl.h
+++ src/libthread/threadimpl.h
@@ -28,7 +28,7 @@ extern	void		makecontext(ucontext_t*, void(*)(), int, 
 	/*
 	 * OS X before 10.5 (Leopard) does not provide
 	 * swapcontext nor makecontext, so we have to use our own.
-	 * In theory, Leopard does provide them, but when we use 
+	 * In theory, Leopard does provide them, but when we use
 	 * them, they seg fault.  Maybe we're using them wrong.
 	 * So just use our own versions, even on Leopard.
 	 */
blob - 24538e586da3569638eac9b38833edd65ba05fea
blob + ba2301f547619feb9082e4020d911f6427005877
--- src/libthread/wait.c
+++ src/libthread/wait.c
@@ -29,11 +29,11 @@ procwait(int pid)
 	Waiter me;
 	Waitmsg *msg;
 	int i;
-	
+
 	memset(&me, 0, sizeof me);
 	me.pid = pid;
 	me.r.l = &waiting.lk;
-	
+
 	qlock(&waiting.lk);
 	for(i=0; i<waiting.nmsg; i++){
 		if(waiting.msg[i]->pid == pid){
blob - 08c6d9a8e8396cc5a3ad21872eb02af021a315cb
blob + e0640761c450f51994fc091c69417a74d7b5fff1
--- src/libthread/x86_64-ucontext.h
+++ src/libthread/x86_64-ucontext.h
@@ -40,4 +40,3 @@ void makecontext(ucontext_t*, void(*)(void), int, ...)
 int swapcontext(ucontext_t*, ucontext_t*);
 int libthread_getmcontext(mcontext_t*);
 void libthread_setmcontext(mcontext_t*);
-
blob - da0d103ec24ec95547be7405960a97e97456b060
blob + aed19c55e31bdbfd92d7ee7b607ebb04f8416379
--- src/libventi/cache.c
+++ src/libventi/cache.c
@@ -176,7 +176,7 @@ upheap(int i, VtBlock *b)
 	u32int now;
 	int p;
 	VtCache *c;
-	
+
 	c = b->c;
 	now = c->now;
 	for(; i != 0; i = p){
@@ -200,7 +200,7 @@ downheap(int i, VtBlock *b)
 	u32int now;
 	int k;
 	VtCache *c;
-	
+
 	c = b->c;
 	now = c->now;
 	for(; ; i = k){
@@ -291,7 +291,7 @@ vtcachebumpblock(VtCache *c)
 		b->prev = nil;
 	}
 
- 	
+
 if(0)fprint(2, "droping %x:%V\n", b->addr, b->score);
 	/* set vtBlock to a reasonable state */
 	b->ref = 1;
@@ -306,7 +306,7 @@ static VtBlock*
 vtcacheevict(VtCache *c, ulong size)
 {
 	VtBlock *b;
-	
+
 	/*
 	 * If we were out of memory and put some blocks
 	 * to the side but now we have memory, grab one.
@@ -317,7 +317,7 @@ vtcacheevict(VtCache *c, ulong size)
 		b->next = nil;
 		goto alloc;
 	}
-	
+
 	/*
 	 * Otherwise, evict until we have memory.
 	 */
@@ -474,7 +474,7 @@ vtcacheglobal(VtCache *c, uchar score[VtScoreSize], in
 
 	/*
 	 * Lock b before unlocking c, so that others wait while we read.
-	 * 
+	 *
 	 * You might think there is a race between this qlock(b) before qunlock(c)
 	 * and the qlock(c) while holding a qlock(b) in vtblockwrite.  However,
 	 * the block here can never be the block in a vtblockwrite, so we're safe.
@@ -542,7 +542,7 @@ if(0)fprint(2, "vtblockput: %d: %x %d %d\n", getpid(),
 	 * b->nlock should probably stay at zero while
 	 * the vtBlock is unlocked, but diskThread and vtSleep
 	 * conspire to assume that they can just qlock(&b->lk); vtblockput(b),
-	 * so we have to keep b->nlock set to 1 even 
+	 * so we have to keep b->nlock set to 1 even
 	 * when the vtBlock is unlocked.
 	 */
 	assert(b->nlock == 0);
@@ -642,4 +642,3 @@ vtglobaltolocal(uchar score[VtScoreSize])
 		return NilBlock;
 	return (score[16]<<24)|(score[17]<<16)|(score[18]<<8)|score[19];
 }
-
blob - f76fd343311a1425179904239088739960a0289c
blob + 14f4543f98db97a64132c184500cc2d523a3b4d5
--- src/libventi/client.c
+++ src/libventi/client.c
@@ -182,7 +182,7 @@ int
 vtgoodbye(VtConn *z)
 {
 	VtFcall tx, rx;
-	
+
 	tx.msgtype = VtTgoodbye;
 	vtfcallrpc(z, &tx, &rx);	/* always fails: no VtRgoodbye */
 	return 0;
blob - ef4c2f51d9bf1ee0bc6433a30c38461801805a60
blob + 4d61dbed1d643bfa54600ddf7ec9d493a10b6995
--- src/libventi/cvt.h
+++ src/libventi/cvt.h
@@ -12,4 +12,3 @@
 #define	U32PUT(p,v)	(p)[0]=(v)>>24;(p)[1]=(v)>>16;(p)[2]=(v)>>8;(p)[3]=(v)
 #define	U48PUT(p,v,t32)	t32=(v)>>32;U16PUT(p,t32);t32=(v);U32PUT((p)+2,t32)
 #define	U64PUT(p,v,t32)	t32=(v)>>32;U32PUT(p,t32);t32=(v);U32PUT((p)+4,t32)
-
blob - e0452e48d5363f4a4eb179acaafc933594af5b6b
blob + 9549d89b25b8270bd0fd33ae5b18117fd8a20a4d
--- src/libventi/debug.c
+++ src/libventi/debug.c
@@ -14,4 +14,3 @@ vtdebug(VtConn *z, char *fmt, ...)
 	vfprint(2, fmt, arg);
 	va_end(arg);
 }
-
blob - 4c13bc87ee866701a2e8c9b90a28925cb50b696f
blob + 1fbfea6a2882d16a732188e8ea79fdf3b4eff22e
--- src/libventi/debugpacket.c
+++ src/libventi/debugpacket.c
@@ -19,7 +19,7 @@ Packet*
 packetalloc(void)
 {
 	Packet *p;
-	
+
 	p = vtmallocz(sizeof *p);
 	p->free = vtfree;
 	p->arg = nil;
@@ -52,7 +52,7 @@ int
 packetcmp(Packet *p, Packet *q)
 {
 	int i, len;
-	
+
 	NOTFREE(p);
 	NOTFREE(q);
 	len = p->len;
@@ -129,7 +129,7 @@ Packet*
 packetforeign(uchar *buf, int n, void (*free)(void*), void *a)
 {
 	Packet *p;
-	
+
 	if(n < 0)
 		abort();
 	p = packetalloc();
@@ -224,7 +224,7 @@ Packet*
 packetsplit(Packet *p, int n)
 {
 	Packet *q;
-	
+
 	NOTFREE(p);
 	q = packetalloc();
 	q->data = vtmalloc(n);
@@ -262,4 +262,3 @@ packettrim(Packet *p, int offset, int n)
 	p->len -= n;
 	return 0;
 }
-
blob - 7886518e2705cd2edc107e2393d2b9cdf9e6d491
blob + 7b0867ba7debcfe34f5ce6bb8e62848d0af2a580
--- src/libventi/dtype.c
+++ src/libventi/dtype.c
@@ -75,4 +75,3 @@ vtfromdisktype(uint n)
 		return VtCorruptType;
 	return fromdisk[n];
 }
-
blob - 5e9a7c1fe8e25eaf7f9b6bb384afc7e9221c8c82
blob + 12fb9589f140416c2256f5766765b04e174477a6
--- src/libventi/entry.c
+++ src/libventi/entry.c
@@ -21,7 +21,7 @@ vttobig(ulong n)
 {
 	int shift;
 	ulong n0;
-	
+
 	n0 = n;
 	shift = 0;
 	while(n >= (1<<(16 - 5))) {
@@ -30,7 +30,7 @@ vttobig(ulong n)
 		shift++;
 		n >>= 1;
 	}
-	
+
 	n = (n<<5) | shift;
 	if(((n>>5)<<(n&31)) != n0)
 		sysfatal("vttobig %#lux => %#lux failed", n0, n);
@@ -111,11 +111,11 @@ vtentryunpack(VtEntry *e, uchar *p, int index)
 	p += VtScoreSize;
 
 	assert(p-op == VtEntrySize);
-	
+
 	if(!(e->flags & VtEntryActive))
 		return 0;
 
-	/* 
+	/*
 	 * Some old vac files use psize==0 and dsize==0 when the
 	 * file itself has size 0 or is zeros.  Just to make programs not
 	 * have to figure out what block sizes of 0 means, rewrite them.
@@ -130,4 +130,3 @@ vtentryunpack(VtEntry *e, uchar *p, int index)
 
 	return 0;
 }
-
blob - e97df39c6ab8e6e03769cbd27829faac5b934f3f
blob + 8a051248113ab6d1a7003f253002f54470549c7f
--- src/libventi/file.c
+++ src/libventi/file.c
@@ -4,7 +4,7 @@
  * The single point of truth for the info about the VtFiles themselves
  * is the block data.  Because of this, there is no explicit locking of
  * VtFile structures, and indeed there may be more than one VtFile
- * structure for a given Venti file.  They synchronize through the 
+ * structure for a given Venti file.  They synchronize through the
  * block cache.
  *
  * This is a bit simpler than fossil because there are no epochs
@@ -182,7 +182,7 @@ _vtfilecreate(VtFile *r, int o, int psize, int dsize, 
 	int epb;
 	VtFile *rr;
 	u32int offset;
-	
+
 	assert(ISLOCKED(r));
 	assert(type == VtDirType || type == VtDataType);
 
@@ -574,7 +574,7 @@ growdepth(VtFile *r, VtBlock *p, VtEntry *e, int depth
 		if(bb == nil)
 			break;
 		memmove(bb->data, b->score, VtScoreSize);
-		memmove(e->score, bb->score, VtScoreSize);	
+		memmove(e->score, bb->score, VtScoreSize);
 		e->type++;
 		e->flags |= VtEntryLocal;
 		vtblockput(b);
@@ -671,7 +671,7 @@ mkindices(VtEntry *e, u32int bn, int *index)
 	}
 	return i;
 }
-	
+
 VtBlock *
 vtfileblock(VtFile *r, u32int bn, int mode)
 {
@@ -985,7 +985,7 @@ sizetodepth(uvlong s, int psize, int dsize)
 {
 	int np;
 	int d;
-	
+
 	/* determine pointer depth */
 	np = psize/VtScoreSize;
 	s = (s + dsize - 1)/dsize;
@@ -1125,7 +1125,7 @@ flushblock(VtCache *c, VtBlock *bb, uchar score[VtScor
 			vtentrypack(&e, b->data, i);
 		}
 		break;
-	
+
 	default:	/* VtPointerTypeX */
 		for(i=0; i<ppb; i++){
 			if(flushblock(c, nil, b->data+VtScoreSize*i, ppb, epb, type-1) < 0)
@@ -1233,13 +1233,13 @@ vtfileflushbefore(VtFile *r, u64int offset)
 		}else{
 			/*
 			 * interior node: pointer blocks.
-			 * specifically, b = bi[i] is a block whose index[i-1]'th entry 
-			 * points at bi[i-1].  
+			 * specifically, b = bi[i] is a block whose index[i-1]'th entry
+			 * points at bi[i-1].
 			 */
 			b = bi[i];
 
 			/*
-			 * the index entries up to but not including index[i-1] point at 
+			 * the index entries up to but not including index[i-1] point at
 			 * finished blocks, so flush them for sure.
 			 */
 			for(j=0; j<index[i-1]; j++)
blob - 365baf1daca301f70c08aa0e82741d56d5b3fa60
blob + a17b7c3f99f3c4f9a436353710a5dc43c7c7b604
--- src/libventi/hangup.c
+++ src/libventi/hangup.c
@@ -28,4 +28,3 @@ vthangup(VtConn *z)
 		_vtqhangup(z->readq);
 	qunlock(&z->lk);
 }
-
blob - 0d67a98bd05652b4c8c48313027ca075c1efe1d0
blob + a6738c7a9ebb8408bb6254712f425fe7e51ac72f
--- src/libventi/log.c
+++ src/libventi/log.c
@@ -36,7 +36,7 @@ vtlognames(int *pn)
 	int i, nname, size;
 	VtLog *l;
 	char **s, *a, *e;
-	
+
 	qlock(&vl.lk);
 	size = 0;
 	nname = 0;
@@ -45,7 +45,7 @@ vtlognames(int *pn)
 		nname++;
 		size += strlen(l->name)+1;
 	}
-	
+
 	s = vtmalloc(nname*sizeof(char*)+size);
 	a = (char*)(s+nname);
 	e = (char*)s+nname*sizeof(char*)+size;
@@ -111,12 +111,12 @@ vtlogopen(char *name, uint size)
 	}
 	strcpy(p, name);
 	l->name = p;
-	
+
 	/* insert */
 	l->next = vl.hash[h];
 	vl.hash[h] = l;
 	l->ref++;
-	
+
 	l->ref++;
 	qunlock(&vl.lk);
 	return l;
@@ -192,10 +192,10 @@ void
 vtlogprint(VtLog *l, char *fmt, ...)
 {
 	va_list arg;
-	
+
 	if(l == nil)
 		return;
-		
+
 	va_start(arg, fmt);
 	vtlogvprint(l, fmt, arg);
 	va_end(arg);
@@ -224,7 +224,7 @@ vtlogdump(int fd, VtLog *l)
 
 	if(l == nil)
 		return;
-		
+
 	c = l->w;
 	for(i=0; i<l->nchunk; i++){
 		if(++c == l->chunk+l->nchunk)
@@ -232,4 +232,3 @@ vtlogdump(int fd, VtLog *l)
 		write(fd, c->p, c->wp-c->p);
 	}
 }
-
blob - dea99a9d1a0abacef20424505f00549d516066ab
blob + 2f03de4e79e628bdd4656931053bf116be857995
--- src/libventi/mem.c
+++ src/libventi/mem.c
@@ -62,7 +62,7 @@ vtbrk(int n)
 		align = IdealAlignment;
 	else if(n > 8)
 		align = 8;
-	else	
+	else
 		align = 4;
 
 	lock(&lk);
@@ -74,8 +74,8 @@ vtbrk(int n)
 		nchunk++;
 	}
 
-	assert(n + pad <= nbuf);	
-	
+	assert(n + pad <= nbuf);
+
 	p = buf + pad;
 	buf += pad + n;
 	nbuf -= pad + n;
@@ -83,4 +83,3 @@ vtbrk(int n)
 
 	return p;
 }
-
blob - d19d85371965ae5765494e6ebad44b98b2dfda1e
blob + 8d1628188eb1df57de1b452f6b3c4bcf805fc9f0
--- src/libventi/packet.c
+++ src/libventi/packet.c
@@ -35,7 +35,7 @@ enum {
 	FragLocalAlloc,
 	FragGlobal
 };
-	
+
 struct Frag
 {
 	int state;
@@ -55,10 +55,10 @@ struct Packet
 	ulong pc;
 
 	Packet *next;
-	
+
 	Frag *first;
 	Frag *last;
-	
+
 	Frag local[NLocalFrag];
 };
 
@@ -80,7 +80,7 @@ static void checkpacket(Packet*);
 #endif
 
 /*
- * the free list is primarily for speed, but it is 
+ * the free list is primarily for speed, but it is
  * also necessary for packetsplit that packets
  * are never freed -- a packet can contain a different
  * packet's local fragments, thanks to packetsplit!
@@ -157,7 +157,7 @@ packetfree(Packet *p)
 
 Packet *
 packetdup(Packet *p, int offset, int n)
-{	
+{
 	Frag *f, *ff;
 	Packet *pp;
 
@@ -179,7 +179,7 @@ packetdup(Packet *p, int offset, int n)
 	/* skip offset */
 	for(f=p->first; offset >= FRAGSIZE(f); f=f->next)
 		offset -= FRAGSIZE(f);
-	
+
 	/* first frag */
 	ff = fragdup(pp, f);
 	ff->rp += offset;
@@ -195,7 +195,7 @@ packetdup(Packet *p, int offset, int n)
 		n -= FRAGSIZE(ff);
 		pp->asize += FRAGASIZE(ff);
 	}
-	
+
 	/* fix up last frag: note n <= 0 */
 	ff->wp += n;
 	ff->next = nil;
@@ -295,7 +295,7 @@ packettrim(Packet *p, int offset, int n)
 		NOTFREE(p);
 		return 0;
 	}
-	
+
 	/* free before offset */
 	for(f=p->first; offset >= FRAGSIZE(f); f=ff) {
 		p->asize -= FRAGASIZE(f);
@@ -341,7 +341,7 @@ packetheader(Packet *p, int n)
 	}
 
 	p->size += n;
-	
+
 	/* try and fix in current frag */
 	f = p->first;
 	if(f != nil) {
@@ -377,7 +377,7 @@ packettrailer(Packet *p, int n)
 	}
 
 	p->size += n;
-	
+
 	/* try and fix in current frag */
 	if(p->first != nil) {
 		f = p->last;
@@ -433,7 +433,7 @@ packetprefix(Packet *p, uchar *buf, int n)
 		nn = n;
 		if(nn > MaxFragSize)
 			nn = MaxFragSize;
-		f = fragalloc(p, nn, PEnd, p->first);	
+		f = fragalloc(p, nn, PEnd, p->first);
 		p->asize += FRAGASIZE(f);
 		if(p->first == nil)
 			p->last = f;
@@ -470,7 +470,7 @@ packetappend(Packet *p, uchar *buf, int n)
 			n -= nn;
 		}
 	}
-	
+
 	while(n > 0) {
 		nn = n;
 		if(nn > MaxFragSize)
@@ -537,7 +537,7 @@ packetpeek(Packet *p, uchar *buf, int offset, int n)
 		werrstr(EPacketSize);
 		return nil;
 	}
-	
+
 	/* skip up to offset */
 	for(f=p->first; offset >= FRAGSIZE(f); f=f->next)
 		offset -= FRAGSIZE(f);
@@ -586,7 +586,7 @@ packetfragments(Packet *p, IOchunk *io, int nio, int o
 	NOTFREE(p);
 	if(p->size == 0 || nio <= 0)
 		return 0;
-	
+
 	if(offset < 0 || offset > p->size) {
 		werrstr(EPacketOffset);
 		return -1;
@@ -599,7 +599,7 @@ packetfragments(Packet *p, IOchunk *io, int nio, int o
 	eio = io + nio;
 	for(; f != nil && io < eio; f=f->next) {
 		io->addr = f->rp + offset;
-		io->len = f->wp - (f->rp + offset);	
+		io->len = f->wp - (f->rp + offset);
 		offset = 0;
 		size += io->len;
 		io++;
@@ -633,7 +633,7 @@ packetstats(void)
 	nbm = 0;
 	for(m=freelist.bigmem; m; m=m->next)
 		nbm++;
-	
+
 	fprint(2, "packet: %d/%d frag: %d/%d small mem: %d/%d big mem: %d/%d\n",
 		np, freelist.npacket,
 		nf, freelist.nfrag,
@@ -651,7 +651,7 @@ packetsize(Packet *p)
 	if(1) {
 		Frag *f;
 		int size = 0;
-	
+
 		for(f=p->first; f; f=f->next)
 			size += FRAGSIZE(f);
 		if(size != p->size)
@@ -668,7 +668,7 @@ packetasize(Packet *p)
 	if(0) {
 		Frag *f;
 		int asize = 0;
-	
+
 		for(f=p->first; f; f=f->next)
 			asize += FRAGASIZE(f);
 		if(asize != p->asize)
@@ -764,7 +764,7 @@ fragalloc(Packet *p, int n, int pos, Frag *next)
 			goto Found;
 		}
 	}
-	lock(&freelist.lk);	
+	lock(&freelist.lk);
 	f = freelist.frag;
 	if(f != nil)
 		freelist.frag = f->next;
@@ -825,7 +825,7 @@ fragdup(Packet *p, Frag *f)
 	Frag *ff;
 	Mem *m;
 
-	m = f->mem;	
+	m = f->mem;
 
 	/*
 	 * m->rp && m->wp can be out of date when ref == 1
@@ -853,7 +853,7 @@ fragdup(Packet *p, Frag *f)
 		unlock(&m->lk);
 	}
 
-	
+
 	return ff;
 }
 
@@ -877,7 +877,7 @@ fragfree(Frag *f)
 	lock(&freelist.lk);
 	f->next = freelist.frag;
 	freelist.frag = f;
-	unlock(&freelist.lk);	
+	unlock(&freelist.lk);
 }
 
 static Mem *
@@ -915,7 +915,7 @@ memalloc(int n, int pos)
 		m->bp = vtbrk(nn);
 		m->ep = m->bp + nn;
 	}
-	assert(m->ref == 0);	
+	assert(m->ref == 0);
 	m->ref = 1;
 
 	switch(pos) {
@@ -930,7 +930,7 @@ memalloc(int n, int pos)
 		break;
 	case PEnd:
 		m->rp = m->ep - n;
-		break; 
+		break;
 	}
 	/* check we did not blow it */
 	if(m->rp < m->bp)
blob - bba630324e0cd1d6cfd9f456cb6b347136b38295
blob + b898ea745cc837dd2fd4f234cb668c563bf58185
--- src/libventi/queue.c
+++ src/libventi/queue.c
@@ -44,7 +44,7 @@ void
 _vtqdecref(Queue *q)
 {
 	Qel *e;
-	
+
 	qlock(&q->lk);
 	if(--q->ref > 0){
 		qunlock(&q->lk);
blob - 8f26863372f4ca13b71791b06c2321518b7bb0cb
blob + 2abe3e42f6e63b73d23d7433832c9ae4ecfc9175
--- src/libventi/rpc.c
+++ src/libventi/rpc.c
@@ -1,9 +1,9 @@
 /*
- * Multiplexed Venti client.  It would be nice if we 
+ * Multiplexed Venti client.  It would be nice if we
  * could turn this into a generic library routine rather
  * than keep it Venti specific.  A user-level 9P client
  * could use something like this too.
- * 
+ *
  * (Actually it does - this should be replaced with libmux,
  * which should be renamed librpcmux.)
  *
@@ -125,7 +125,7 @@ vtrpc(VtConn *z, Packet *p)
 	return _vtrpc(z, p, nil);
 }
 
-static int 
+static int
 gettag(VtConn *z, Rwait *r)
 {
 	int i;
@@ -176,4 +176,3 @@ abort();
 	r->done = 1;
 	rwakeup(&r->r);
 }
-
blob - 4dbe115f30d7f172b103c715619d3f0ce99c3d67
blob + 96dfe9e6e0f496c3a2f446195e16b73ef60487e2
--- src/libventi/send.c
+++ src/libventi/send.c
@@ -126,14 +126,14 @@ _vtrecv(VtConn *z)
 	p = packetsplit(p, len);
 	vtlog(VtServerLog, "<font size=-1>%T %s:</font> read packet %p len %d<br>\n", z->addr, p, len);
 	return p;
-Err:	
+Err:
 	vtlog(VtServerLog, "<font size=-1>%T %s:</font> error reading packet: %r<br>\n", z->addr);
-	return nil;	
+	return nil;
 }
 
 /*
  * If you fork off two procs running vtrecvproc and vtsendproc,
- * then vtrecv/vtsend (and thus vtrpc) will never block except on 
+ * then vtrecv/vtsend (and thus vtrpc) will never block except on
  * rendevouses, which is nice when it's running in one thread of many.
  */
 void
@@ -258,9 +258,8 @@ vtsend(VtConn *z, Packet *p)
 	if(_vtsend(z, p) < 0){
 		qunlock(&z->outlk);
 		vthangup(z);
-		return -1;	
+		return -1;
 	}
 	qunlock(&z->outlk);
 	return 0;
 }
-
blob - 917522007696539ded4d9462f5f66ae256c007ae
blob + 58ce1d8d1c7640f2b83ffc146292d64deafccb6e
--- src/libventi/server.c
+++ src/libventi/server.c
@@ -180,7 +180,7 @@ VtReq*
 vtgetreq(VtSrv *srv)
 {
 	VtReq *r;
-	
+
 	r = _vtqrecv(srv->q);
 	if (r != nil)
 		vtlog(VtServerLog, "<font size=-1>%T %s:</font> vtgetreq %F<br>\n", ((VtSconn*)r->sc)->c->addr, &r->tx);
@@ -215,4 +215,3 @@ vtrespond(VtReq *r)
 	vtfcallclear(&r->rx);
 	vtfree(r);
 }
-
blob - e191c390c03982fe9c17d7d267613e11263a639b
blob + 36fa6fc7e4c7443101524be09e661e113d303157
--- src/libventi/strdup.c
+++ src/libventi/strdup.c
@@ -15,4 +15,3 @@ vtstrdup(char *s)
 	memmove(ss, s, n);
 	return ss;
 }
-
blob - 9763149a1c93dc0f9c80a9697e0794dafcb2ab68
blob + b273b182004b89a8b067736bf4edc6731734354e
--- src/libventi/string.c
+++ src/libventi/string.c
@@ -47,4 +47,3 @@ vtgetstring(Packet *p, char **ps)
 	*ps = s;
 	return 0;
 }
-
blob - eb686b32963a870552b707d8205e32982c4f45bd
blob + e105c624f8e30129ca45081853f27ca0036cd35e
--- src/libventi/time.c
+++ src/libventi/time.c
@@ -15,14 +15,13 @@ vttimefmt(Fmt *fmt)
 		ns = nsec();
 	tm = *localtime(ns/1000000000);
 	if(fmt->flags&FmtLong){
-		return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d.%03d", 
-			tm.year+1900, tm.mon+1, tm.mday, 
+		return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d.%03d",
+			tm.year+1900, tm.mon+1, tm.mday,
 			tm.hour, tm.min, tm.sec,
 			(int)(ns%1000000000)/1000000);
 	}else{
-		return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d", 
-			tm.year+1900, tm.mon+1, tm.mday, 
+		return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d",
+			tm.year+1900, tm.mon+1, tm.mday,
 			tm.hour, tm.min, tm.sec);
 	}
 }
-
blob - c40aea96916d1608a1d69cf713c0581586006d09
blob + 33353c7865eac7a21c7fb54e2be872f2c3a71724
--- src/libventi/zero.c
+++ src/libventi/zero.c
@@ -23,7 +23,7 @@ vtzeroextend(int type, uchar *buf, uint n, uint nn)
 	}
 }
 
-uint 
+uint
 vtzerotruncate(int type, uchar *buf, uint n)
 {
 	uchar *p;
blob - 6f22d72de2616cd6d498b619a06f003e05acab1e
blob + b58b13c2b907b1e80e6479fe0d949a802f86f28d
--- src/libventi/zeroscore.c
+++ src/libventi/zeroscore.c
@@ -7,4 +7,3 @@ uchar	vtzeroscore[VtScoreSize] = {
 	0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55,
 	0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, 0xaf, 0xd8, 0x07, 0x09
 };
-