From: frank.kaefer@stasys.sta.sub.org (Frank Kaefer)
Newsgroups: de.comp.sources.os9,comp.os.os9
Subject: MNews Prerelease Part06/09
Date: 23 Dec 92 19:41:38 GMT
Followup-To: de.comp.sources.d
Organization: Stasys News Server, Starnberg, Germany
NNTP-Posting-Host: stasys.sta.sub.org

Submitted-by: Ulrich Dessauer <ud@Nightmare.ddt.sub.org>
Archive-name: mnews/part06

: ----- Cut here ----- Cut here ----- Cut here ----- Cut here -----
: Use  sh filename  to extract shell archive
: This shell archive contains following files:
:     'INEWS/uidummy.c                               350 bytes'
:     'INEWS/unln.c                                 1503 bytes'
:     'INEWS/wact.c                                 2455 bytes'
:     'INEWS/wgrp.c                                 5347 bytes'
:     'INEWS/wit.c                                  3258 bytes'
:     'LIB/Active                                      0 bytes'
:     'LIB/Aliases                                   183 bytes'
:     'LIB/Archive                                   298 bytes'
:     'LIB/Checkgroups                               251 bytes'
:     'LIB/Convtable                                 270 bytes'
:     'LIB/Distributions                             330 bytes'
:     'LIB/Followup                                  331 bytes'
:     'LIB/Logfile                                     0 bytes'
:     'LIB/Sys                                       600 bytes'
:     'LIB/send_uuname                                78 bytes'
:     'LOCK/Makefile                                 139 bytes'
:     'LOCK/lock.c                                  1888 bytes'
:     'LOCK/lock.h                                   130 bytes'
:     'MAN/8bit.prf                                 2752 bytes'
:     'MAN/Active.prf                               1141 bytes'
:     'MAN/Checkgroups.prf                           808 bytes'
:     'MAN/Delold.prf                                499 bytes'
:     'MAN/Distributions.prf                         650 bytes'
:     'MAN/Followup.prf                              721 bytes'
:     'MAN/Inews.prf                                5236 bytes'
:     'MAN/Manuals.t.Z.uu                          20145 bytes'
: 
if test -f 'INEWS/uidummy.c' ; then
  echo 'File INEWS/uidummy.c already exists, overwriting it'
  del 'INEWS/uidummy.c'
fi
echo Extracting \"'INEWS/uidummy.c'\"
sed "s/^X//" >'INEWS/uidummy.c' <<'__END__OF__THIS__FILE__'
X/*
X * $Log:	uidummy.c_v $
X * Revision 1.1  90/08/31  15:36:35  cs
X * Initial revision
X * 
X */
X# ifndef	LINT
Xstatic char rcsid[] = "$Id: uidummy.c_v 1.1 90/08/31 15:36:35 cs Exp $";
X# endif		LINT
X# include	"inews.h"
X
Xvoid
Xuser_interface (a, b)
Xint a;
Xchar *b;
X{
X	_errmsg (1, "This version doesn't support the user-inteface feature, try `mnews'\n");
X}
__END__OF__THIS__FILE__
if test -f 'INEWS/unln.c' ; then
  echo 'File INEWS/unln.c already exists, overwriting it'
  del 'INEWS/unln.c'
fi
echo Extracting \"'INEWS/unln.c'\"
sed "s/^X//" >'INEWS/unln.c' <<'__END__OF__THIS__FILE__'
X/*
X * $Log:	unln.c_v $
X * Revision 1.1  90/08/31  15:36:38  cs
X * Initial revision
X * 
X */
X# ifndef	LINT
Xstatic char rcsid[] = "$Id: unln.c_v 1.1 90/08/31 15:36:38 cs Exp $";
X# endif		LINT
X# include	<c8type.h>
X# include	<errno.h>
X# include	<dir.h>
X# include	"inews.h"
X
Xextern char	*malloc ();
X
Xchar *
Xcreate_fn (s)
Xregister char *s;
X{
X	register char	*fn;
X
X	if (!(fn = malloc (strlen (newsdir) + strlen (s) + 6)))
X		return (NULL);
X	strcpy (fn, newsdir);
X	strcat (fn, "/");
X	strcat (fn, s);
X	return (fn);
X}
X
Xvoid
Xunlink_in_newsdir_dir (dir)
Xchar *dir;
X{
X	DIR		*dp;
X	struct direct	*ent;
X	int		rmdir;
X	char		*fulldir;
X	char		*cmd;
X	register char	*ptr;
X
X	if (!(fulldir = create_fn (dir)))
X		return;
X	if (!(cmd = malloc (strlen (fulldir) + 36))) {
X		free (fulldir);
X		return;
X	}
X	if (!(dp = opendir (fulldir))) {
X		free (cmd);
X		free (fulldir);
X		return;
X	}
X	rmdir = TRUE;
X	while (ent = readdir (dp))
X		if (ent->d_name[0] != '.') {
X			ptr = ent->d_name;
X			while (is8digit (*ptr))
X				++ptr;
X			if (*ptr)
X				rmdir = FALSE;
X			else {
X				sprintf (cmd, "%s/%s", fulldir, ent->d_name);
X				unlink (cmd);
X			}
X		}
X	closedir (dp);
X	if (rmdir) {
X		sprintf (cmd, "deldir -qf '%s'", fulldir);
X		xshell (cmd);
X	}
X	free (fulldir);
X	free (cmd);
X}
X
Xint
Xunlink_in_newsdir_file (file)
Xchar *file;
X{
X	char	*fn;
X	int	err;
X
X	if (!(fn = create_fn (file)))
X		return (-1);
X	errno = 0;
X	if (((err = unlink (fn)) < 0) && (errno != E_PNNF))
X		do_log ("FATAL: Can't unlink %s (errno %d)\n", fn, errno);
X	free (fn);
X	return (err);
X}
__END__OF__THIS__FILE__
if test -f 'INEWS/wact.c' ; then
  echo 'File INEWS/wact.c already exists, overwriting it'
  del 'INEWS/wact.c'
fi
echo Extracting \"'INEWS/wact.c'\"
sed "s/^X//" >'INEWS/wact.c' <<'__END__OF__THIS__FILE__'
X/*
X * $Log:	wact.c_v $
X * Revision 1.3  91/12/26  13:37:51  ud
X * Added the writing of size limitations in the active file
X * 
X * Revision 1.2  91/12/06  14:47:26  ud
X * Changed format of active file to be compatible to BNews/CNews
X * 
X * Revision 1.1  90/08/31  15:36:42  cs
X * Initial revision
X * 
X */
X# ifndef	LINT
Xstatic char rcsid[] = "$Id: wact.c_v 1.3 91/12/26 13:37:51 ud Exp $";
X# endif		LINT
X# include	<stdio.h>
X# include	<modes.h>
X# include	"inews.h"
X
Xextern int	errno;
X
Xvoid
Xsort_active ()
X{
X	register active	*at2, *aact;
X
X	if (!hact)
X		return;
X	aact = hact;
X	at2 = NULL;
X	while (aact->next) {
X		if (_strccmp (aact->grp, aact->next->grp) < 0) {
X			if (at2) {
X				at2->next = aact->next;
X				aact->next = aact->next->next;
X				at2->next->next = aact;
X				aact = at2;
X				if (aact == hact)
X					at2 = NULL;
X				else {
X					at2 = hact;
X					while (at2)
X						if (at2->next == aact)
X							break;
X						else
X							at2 = at2->next;
X				}
X			} else {
X				aact = hact->next;
X				hact->next = aact->next;
X				aact->next = hact;
X				hact = aact;
X				aact = hact;
X				at2 = NULL;
X			}
X		} else {
X			at2 = aact;
X			aact = aact->next;
X		}
X	}
X}
X
Xstatic int
Xfull_restore_active ()
X{
X	register int	t;
X	register active	*atmp;
X	register FILE	*fp;
X
X	unlink (ACT_BAK_FILE);
X	rename (ACTIVE_FILE, ACT_BAK_FILE);
X	if (!(fp = fopen (ACTIVE_FILE, "w"))) {
X		do_log ("FATAL: Can't write %s\n", ACTIVE_FILE);
X		return (-1);
X	}
X	sort_active ();
X	atmp = hact;
X	while (atmp) {
X		fprintf (fp, "%s %08d %08d %c%c",
X			atmp->grp,
X			atmp->high, atmp->low,
X			atmp->aflag[0], atmp->aflag[1]);
X		if (atmp -> kblimit != -1)
X			fprintf (fp, " %d", atmp -> kblimit);
X		if (atmp->aflag[0] == M_MOD) {
X			for (t=0;atmp->moderator[t];++t)
X				fprintf (fp, " %s", atmp->moderator[t]);
X		}
X		fprintf (fp, "\n");
X		atmp = atmp->next;
X	}
X	fclose (fp);
X	chmod (ACTIVE_FILE, 013);
X	return (0);
X}
X
Xint
Xrestore_active ()
X{
X	register active	*tmp;
X	register int	fd;
X	char		nrbuf[32];
X
X	if (act_rewrite)
X		return (full_restore_active ());
X	if ((fd = open (ACTIVE_FILE, S_IREAD | S_IWRITE)) < 0) {
X		do_log ("FATAL: Can't open to write %s\n", ACTIVE_FILE);
X		return (-1);
X	}
X	tmp = hact;
X	while (tmp) {
X		if (tmp->changed) {
X			if (lseek (fd, tmp->pos, 0) != -1) {
X				sprintf (nrbuf, "%08d %08d", tmp->high, tmp->low);
X				write (fd, nrbuf, strlen (nrbuf));
X			} else
X				do_log ("FATAL: Can't seek to %d (errno %d)\n", tmp->pos, errno);
X		}
X		tmp = tmp->next;
X	}
X	close (fd);
X	return (0);
X}
__END__OF__THIS__FILE__
if test -f 'INEWS/wgrp.c' ; then
  echo 'File INEWS/wgrp.c already exists, overwriting it'
  del 'INEWS/wgrp.c'
fi
echo Extracting \"'INEWS/wgrp.c'\"
sed "s/^X//" >'INEWS/wgrp.c' <<'__END__OF__THIS__FILE__'
X/*
X * $Log:	wgrp.c_v $
X * Revision 1.4  91/09/11  18:14:39  ud
X * Moved del_obsolete_header from rhead to here; so we can allow
X * the mailing feature out of news (copy a written article to
X * someone via mail)
X * 
X * Revision 1.3  91/05/22  13:15:41  ud
X * Added in memory option
X * 
X * Revision 1.2  91/01/02  21:25:26  ud
X * Added ndbm support for history
X * 
X * Revision 1.1  90/08/31  15:36:46  cs
X * Initial revision
X * 
X */
X# ifndef	LINT
Xstatic char rcsid[] = "$Id: wgrp.c_v 1.4 91/09/11 18:14:39 ud Exp $";
X# endif		LINT
X# include	<c8type.h>
X# include	<modes.h>
X# include	<time.h>
X# include	"inews.h"
X# include	"hist.h"
X
Xextern char	*index ();
Xextern char	*itoa ();
Xextern char	*malloc ();
Xextern char	*strdup ();
X
Xstatic void
Xmake_path (fn)
Xregister char *fn;
X{
X	register char	*ptr;
X
X	ptr = fn;
X	do {
X		if (ptr = index (ptr, '/')) {
X			*ptr = '\0';
X			if (access (fn, S_IFDIR) < 0)
X				makdir (fn, ACCESS_PATH, 033);
X			*ptr++ = '/';
X		}
X	} while (ptr);
X}
X
Xvoid
Xmake_fn (fn)
Xregister char *fn;
X{
X	while (*fn)
X		if (*fn == '.')
X			*fn++ = '/';
X		else if (((!is8alnum (*fn)) || (!is8ascii (*fn)) || ((unsigned char) *fn >= 0x80)) && (*fn != '/'))
X			*fn++ = '_';
X		else
X			++fn;
X}
X
Xint
Xwrite_groups ()
X{
X	register int	n;
X	register char	*ptr, *p2;
X	int		fd;
X	int		siz;
X	int		fdi;
X	int		bufsiz;
X	char		*fn;
X	char		*orig;
X	char		*buf;
X	char		*mid;
X	register charc	*tmp;
X	charc		*htmp;
X	charc		*xtmp;
X	time_t		tim;
X# ifdef		IN_MEMORY
X	list		*ltmp;
X# endif		/* IN_MEMORY */
X
X# ifdef		CAN_MAIL
X	send_private_mail ();
X# endif		/* CAN_MAIL */
X	del_obsolete_header ();
X	if (chdir (newsdir) < 0) {
X		do_log ("FATAL: Can't chdir to %s.\n", newsdir);
X		return (-1);
X	}
X	siz = 0;
X	tmp = isctrl ? isctrl : ngs;
X	while (tmp) {
X		if (strlen (tmp->text) > siz)
X			siz = strlen (tmp->text);
X		tmp = tmp->next;
X	}
X	if (!(fn = malloc (siz + 20))) {
X		do_log ("FATAL: Can't alloc memory\n");
X		return (-1);
X	}
X	bufsiz = 5000;
X	do {
X		if (!(buf = malloc (bufsiz + 16)))
X			bufsiz -= 500;
X	} while ((!buf) && (bufsiz >= 500));
X	if (!buf) {
X		do_log ("FATAL: Can't alloc memory\n");
X		return (-1);
X	}
X	tmp = isctrl ? isctrl : ngs;
X	orig = NULL;
X	while (tmp) {
X		sprintf (fn, "%s/%d", tmp->text, tmp->nr);
X		make_fn (fn);
X		make_path (fn);
X# ifdef		SOFT_LINKS
X		if ((fd = create (fn, S_IWRITE, 013)) < 0) {
X			do_log ("FATAL: Can't create %s.\n", fn);
X			return (-1);
X		} else if (!orig) { /* } */
X# else		/* SOFT_LINKS */
X		if (! orig) {
X			if ((fd = create (fn, S_IWRITE, 013)) < 0) {
X				do_log ("FATAL: Can't create %s.\n", fn);
X				return (-1);
X			}
X# endif		/* SOFT_LINKS */
X# ifdef		USE_XREF
X# ifdef		USE_FULLHOST
X			strcpy (buf, fhost);
X# else		/* USE_FULLHOST */
X			strcpy (buf, hostname);
X# endif		/* USE_FULLHOST */
X			xtmp = isctrl ? isctrl : ngs;
X			while (xtmp) {
X				if ((strlen (buf) + strlen (xtmp->text)) < 500) {
X					strcat (buf, " ");
X					strcat (buf, xtmp->text);
X					strcat (buf, ":");
X					strcat (buf, itoa (xtmp->nr));
X				} else
X					break;
X				xtmp = xtmp->next;
X			}
X			insert_header (H_XREF, buf, TRUE);
X# endif		/* USE_XREF */
X			htmp = head;
X			while (htmp) {
X				write (fd, htmp->text, strlen (htmp->text));
X				write (fd, "\n", 1);
X				htmp = htmp->next;
X			}
X			write (fd, "\n", 1);
X# ifndef	IN_MEMORY
X			if ((fdi = open (newstmp, S_IREAD)) != -1) {
X				while ((n = read (fdi, buf, bufsiz)) > 0)
X					write (fd, buf, n);
X				close (fdi);
X			} else {
X				do_log ("FATAL: Can't read previously created %s\n", newstmp);
X				return (-1);
X			}
X# else		/* IN_MEMORY */
X			for (ltmp = newstmp; ltmp; ltmp = ltmp->next)
X				write (fd, ltmp->text, ltmp->len);
X# endif		/* IN_MEMORY */
X			orig = strdup (fn);
X# ifndef	SOFT_LINKS
X			close (fd);
X# endif		/* SOFT_LINKS */
X		} else {
X# ifdef		SOFT_LINKS
X			write (fd, LINK_ID, strlen (LINK_ID));
X			write (fd, orig, strlen (orig));
X			write (fd, "\n", 1);
X# else		/* SOFT_LINKS */
X			link (orig, fn);
X# endif		/* SOFT_LINKS */
X		}
X# ifdef		SOFT_LINKS
X		close (fd);
X# endif		/* SOFT_LINKS */
X		tmp = tmp->next;
X	}
X	if (chdir (newslib) != -1) {
X		mid = get_msgid ();
X# ifndef	USE_NDBM
X		if ((fd = open_hist (mid, S_IREAD | S_IWRITE)) < 0) {
X			do_log ("FATAL: Can't open/create %s\n", HIST_FILE);
X			return (-1);
X		} else
X			lseek (fd, 0, 2);
X		time (&tim);
X		sprintf (buf, "%d %s %c", tim, mid, ART_EXISTS);
X		write (fd, buf, strlen (buf));
X		tmp = isctrl ? isctrl : ngs;
X		while (tmp) {
X			sprintf (fn, "%s/%d", tmp->text, tmp->nr);
X			make_fn (fn);
X			write (fd, " ", 1);
X			write (fd, fn, strlen (fn));
X			tmp = tmp->next;
X		}
X		write (fd, "\n", 1);
X		close (fd);
X# else		/* USE_NDBM */
X		if (!(db = open_hist (S_IREAD | S_IWRITE))) {
X			do_log ("FATAL: Can't open/create %s\n", HISTORY);
X			return (-1);
X		}
X		key.dptr = lower_mid (mid);
X		key.dsize = strlen (mid) + 1;
X		time (&hist.tim);
X		hist.flag = ART_EXISTS;
X		ptr = hist.fns;
X		n = 0;
X		tmp = isctrl ? isctrl : ngs;
X		while (tmp && (n < 768)) {
X			sprintf (fn, "%s/%d", tmp->text, tmp->nr);
X			make_fn (fn);
X			if (ptr != hist.fns) {
X				*ptr++ = ' ';
X				++n;
X			}
X			p2 = fn;
X			while (*p2) {
X				*ptr++ = *p2++;
X				++n;
X			}
X			tmp = tmp->next;
X		}
X		*ptr = '\0';
X		++n;
X		fill_hist ();
X		dbm_store (db, key, dat, DBM_INSERT);
X		dbm_close (db);
X# endif		/* USE_NDBM */
X	}
X	free (fn);
X	free (buf);
X	if (!orig) {
X		do_log ("FATAL: Haven't stored the proper filename\n");
X		return (-1);
X	} else
X		realfile = orig;
X	return (0);
X}
__END__OF__THIS__FILE__
if test -f 'INEWS/wit.c' ; then
  echo 'File INEWS/wit.c already exists, overwriting it'
  del 'INEWS/wit.c'
fi
echo Extracting \"'INEWS/wit.c'\"
sed "s/^X//" >'INEWS/wit.c' <<'__END__OF__THIS__FILE__'
X/*
X * $Log:	wit.c_v $
X * Revision 1.2  91/12/26  13:36:28  ud
X * Added forwarding of flags to sendbatch (currently only N for non
X * convert from 8 bit, C for convert from 8 bit and S=<siz> to
X * specify the largest article to be forwarded
X * 
X * Revision 1.1  90/08/31  15:36:51  cs
X * Initial revision
X * 
X */
X# ifndef	LINT
Xstatic char rcsid[] = "$Id: wit.c_v 1.2 91/12/26 13:36:28 ud Exp $";
X# endif		LINT
X# include	<stdio.h>
X# include	<modes.h>
X# include	<direct.h>
X# include	<c8type.h>
X# include	"inews.h"
X
X# define	TEMPFILE	".wit_2_vanish"
X
Xextern char	*malloc ();
Xextern char	*rindex ();
X
Xstatic int
Xcheck_overflow (fd)
Xint fd;
X{
X	struct fildes	fdes;
X	register int	t;
X
X	if (_gs_gfd (fd, &fdes, sizeof (fdes)) == -1)
X		return (FALSE);
X	for (t = 0; t < 45; ++t)
X		if (! (fdes.fdseg[t].addr[0] || fdes.fdseg[t].addr[1] || fdes.fdseg[t].addr[2]))
X			return (FALSE);
X	return (TRUE);
X}
X
Xstatic void
Xdo_copy (src, dest)
Xchar *src, *dest;
X{
X	int	siz;
X	int	n;
X	char	*buf;
X	char	c;
X	int	fd1, fd2;
X
X	if ((fd1 = open (src, S_IREAD)) == -1)
X		return;
X	siz = _gs_size (fd1);
X	if ((fd2 = create (dest, S_IWRITE | S_ISIZE, 03, siz)) == -1) {
X		close (fd1);
X		return;
X	}
X	if (siz > 8192)
X		siz = 8192;
X	if (! (buf = malloc (siz + 2)))
X		while (read (fd1, &c, 1) == 1)
X			write (fd2, &c, 1);
X	else {
X		while ((n = read (fd1, buf, siz)) > 0)
X			write (fd2, buf, n);
X		free (buf);
X	}
X	close (fd1);
X	close (fd2);
X}
X
Xvoid
Xwrite_it (st)
Xsys *st;
X{
X	register char	*ptr;
X	char		*fn, *fn2;
X	FILE		*fp;
X
X	if (st->cmd && (st->cmd[0] == '-')) {
X		ptr = st->cmd + 1;
X		if (*ptr != '/') {
X			if (!(fn = malloc (strlen (batchdir) + strlen (ptr) + 40))) {
X				do_log ("FATAL: Can't malloc for file %s\n", ptr);
X				return;
X			}
X			sprintf (fn, "%s/%s", batchdir, ptr);
X		} else if (access (ptr, S_IFDIR) == 0) {
X			if (!(fn = malloc (strlen (ptr) + strlen (st->site) + 40))) {
X				do_log ("FATAL: Can't malloc for file %s in %s\n", st->site, ptr);
X				return;
X			}
X			sprintf (fn, "%s/%s", ptr, st->site);
X		} else {
X			if (!(fn = malloc (strlen (ptr) + 40))) {
X				do_log ("FATAL: Can't malloc for file %s\n", ptr);
X				return;
X			}
X			strcpy (fn, ptr);
X		}
X	} else {
X		if (!(fn = malloc (strlen (batchdir) + strlen (st->site) + 40))) {
X			do_log ("FATAL: Can't malloc for site %s\n", st->site);
X			return;
X		}
X		sprintf (fn, "%s/%s", batchdir, st->site);
X	}
X	if (ptr = rindex (fn, '/'))
X		++ptr;
X	else
X		ptr = fn;
X	while (*ptr)
X		if (*ptr == '.') {
X			*ptr = '\0';
X			break;
X		} else if (is8alnum (*ptr) && is8ascii (*ptr))
X			++ptr;
X		else
X			*ptr++ = '_';
X	if (!(fp = fopen (fn, "a+"))) {
X		do_log ("FATAL: Can't open %s\n", fn);
X		return;
X	}
X	if (check_overflow (fp->_fd) && (fn2 = malloc (strlen (fn) + 40))) {
X		fclose (fp);
X		strcpy (fn2, fn);
X		if (ptr = rindex (fn2, '/'))
X			++ptr;
X		else
X			ptr = fn2;
X		strcpy (ptr, "wittempXXXXXX");
X		mktemp (fn2);
X		if (rename (fn, fn2)) {
X			do_log ("Can't rename %s to %s\n", fn, fn2);
X			free (fn);
X			free (fn2);
X			return;
X		}
X		do_copy (fn2, fn);
X		unlink (fn2);
X		free (fn2);
X		if (! (fp = fopen (fn, "a"))) {
X			do_log ("FATAL: Can't open recreated file %s\n", fn);
X			free (fn);
X			return;
X		}
X	}
X	if (st -> fflags)
X		fprintf (fp, "%s|", st -> fflags);
X	fprintf (fp, "%s/%s\n", newsdir, realfile);
X	fclose (fp);
X	free (fn);
X}
__END__OF__THIS__FILE__
if test -f 'LIB/Active' ; then
  echo 'File LIB/Active already exists, overwriting it'
  del 'LIB/Active'
fi
echo Extracting \"'LIB/Active'\"
sed "s/^X//" >'LIB/Active' <<'__END__OF__THIS__FILE__'
__END__OF__THIS__FILE__
if test -f 'LIB/Aliases' ; then
  echo 'File LIB/Aliases already exists, overwriting it'
  del 'LIB/Aliases'
fi
echo Extracting \"'LIB/Aliases'\"
sed "s/^X//" >'LIB/Aliases' <<'__END__OF__THIS__FILE__'
X#
X# $Log$
X#
X#	A file to alias newgroup
X#	Warning: Only acts on incoming messages,
X#	doesn't makes a revers aliasing on outgoing
X#	messages
X#	Format:
X#	newsgroup newsgroup{,newsgroup}
__END__OF__THIS__FILE__
if test -f 'LIB/Archive' ; then
  echo 'File LIB/Archive already exists, overwriting it'
  del 'LIB/Archive'
fi
echo Extracting \"'LIB/Archive'\"
sed "s/^X//" >'LIB/Archive' <<'__END__OF__THIS__FILE__'
X#
X# $Log$
X#
X#	You can archive articles during expire
X#	instead of deleting them
X#	Format:
X#	newsgroup destination-directory prefix
Xcomp.sources.unix	/h0/SPOOL/ARCHIVE/SOURCE	csu
Xcomp.sources.misc	/h0/SPOOL/ARCHIVE/SOURCE	csm
Xde.comp.os.os9		/h0/SPOOL/ARCHIVE/OSK
Xcomp.text*		/h0/SPOOL/ARCHIVE/TEXT
__END__OF__THIS__FILE__
if test -f 'LIB/Checkgroups' ; then
  echo 'File LIB/Checkgroups already exists, overwriting it'
  del 'LIB/Checkgroups'
fi
echo Extracting \"'LIB/Checkgroups'\"
sed "s/^X//" >'LIB/Checkgroups' <<'__END__OF__THIS__FILE__'
X#
X# $Log$
X#
X#	This file limits a checkgroupsmessage to
X#	a subset of newsgroups, so if a checkgroup
X#	for a subnetwork is posted only the newsgroups
X#	of this network are checked
X#	Format:
X#	distribution newsgroups
Xworld		!de.alt.*,de.*
Xlocal		local*
__END__OF__THIS__FILE__
if test -f 'LIB/Convtable' ; then
  echo 'File LIB/Convtable already exists, overwriting it'
  del 'LIB/Convtable'
fi
echo Extracting \"'LIB/Convtable'\"
sed "s/^X//" >'LIB/Convtable' <<'__END__OF__THIS__FILE__'
X#
X# $Log$
X#
X#	This file is used by sbatch when a conversion from
X#	international 8 bit character to 7 bit ASCII is
X#	required
X#	Format
X#	character replace-sequence
X$c4	Ae
X$d6	Oe
X$dc	Ue
X$e4	ae
X$f6	oe
X$fc	ue
X$df	ss
X$a7	Par.
X$a0	\ 
X$a9	(C)
X$a3	Pound
X$ae	(R)
X$b0	Grad
X$b5	u
__END__OF__THIS__FILE__
if test -f 'LIB/Distributions' ; then
  echo 'File LIB/Distributions already exists, overwriting it'
  del 'LIB/Distributions'
fi
echo Extracting \"'LIB/Distributions'\"
sed "s/^X//" >'LIB/Distributions' <<'__END__OF__THIS__FILE__'
X#
X# $Log$
X#
X#	Some examples of default distribuitons
X#	(the newsgroups are in regular expression)
X#
X^local\..*	local		Local groups
X^muc\..*	muc		Some groups for the munich area
X^sub\..*	sub		Subnet groups
X^de\..*		world		sub&dnet --> de
X^dnet\.and\..*	sub,dnet	Mixed group for two networks
X^(rec|comp)\..*	world		Worldwide groups
__END__OF__THIS__FILE__
if test -f 'LIB/Followup' ; then
  echo 'File LIB/Followup already exists, overwriting it'
  del 'LIB/Followup'
fi
echo Extracting \"'LIB/Followup'\"
sed "s/^X//" >'LIB/Followup' <<'__END__OF__THIS__FILE__'
X#
X# $Log$
X#
X#	This file is used during creation of a new
X#	article. In some newsgroups a followup should
X#	be placed to a different group. To ensure that
X#	there is a proper Followup-To: Line in the article,
X#	this file is used.
X#	Format:
X#	newsgroup newsgroup{,newsgroup}
Xalt.sources		alt.sources.d
Xde.talk.jokes		de.talk.jokes.d
__END__OF__THIS__FILE__
if test -f 'LIB/Logfile' ; then
  echo 'File LIB/Logfile already exists, overwriting it'
  del 'LIB/Logfile'
fi
echo Extracting \"'LIB/Logfile'\"
sed "s/^X//" >'LIB/Logfile' <<'__END__OF__THIS__FILE__'
__END__OF__THIS__FILE__
if test -f 'LIB/Sys' ; then
  echo 'File LIB/Sys already exists, overwriting it'
  del 'LIB/Sys'
fi
echo Extracting \"'LIB/Sys'\"
sed "s/^X//" >'LIB/Sys' <<'__END__OF__THIS__FILE__'
X#
X# $Log$
X#
X#	Send all local written news and all news not received
X#	(expect local distributions and local groups)
X#	from `myfeed' to `myfeed':
Xmyfeed> C:!local\..* .*:!local *
X#
X#	Send articles to scndfeed if articles haven't passed scndfeed
X#	and myfeed (expect local stuff):
Xscndfeed/myfeed> C:!local\..* .*:!local *
X#
X#	Hisfeed just get articles with distribution sub and muc, don't
X#	convert eight bit characters to a seven bit sequence
Xhisfeed> N:.*:sub muc
X#
X#	Forward all articels to local notes system (No change takes
X#	place on direct feeding to another program):
Xto-notes:.*:*:newsinput
__END__OF__THIS__FILE__
if test -f 'LIB/send_uuname' ; then
  echo 'File LIB/send_uuname already exists, overwriting it'
  del 'LIB/send_uuname'
fi
echo Extracting \"'LIB/send_uuname'\"
sed "s/^X//" >'LIB/send_uuname' <<'__END__OF__THIS__FILE__'
Xmyfeed		My main feed
Xscndfeed	My 2nd feed
Xhisfeed		A system I forward news to
__END__OF__THIS__FILE__
if test -f 'LOCK/Makefile' ; then
  echo 'File LOCK/Makefile already exists, overwriting it'
  del 'LOCK/Makefile'
fi
echo Extracting \"'LOCK/Makefile'\"
sed "s/^X//" >'LOCK/Makefile' <<'__END__OF__THIS__FILE__'
X# $Log$
X#
X#
X# $Id$
X#
XG=	-g
XCC=	cc
XCFLAGS=	-qt=/dd/TMP -V=.. $G
XOBJS=	lock.r
XLIBDIR=	/dd/LIB
X
X$(LIBDIR)/lock.l:	$(OBJS)
X	merge $(OBJS) >-$@
__END__OF__THIS__FILE__
if test -f 'LOCK/lock.c' ; then
  echo 'File LOCK/lock.c already exists, overwriting it'
  del 'LOCK/lock.c'
fi
echo Extracting \"'LOCK/lock.c'\"
sed "s/^X//" >'LOCK/lock.c' <<'__END__OF__THIS__FILE__'
X# include	<signal.h>
X# include	<events.h>
X# include	"news.h"
X# include	"lock.h"
X
Xextern char	*_prgname ();
Xextern char	*malloc ();
X
Xtypedef struct _lock	lock;
X
Xstruct _lock {
X	char	name[14];
X	int	evid;
X	lock	*next;
X};
X
Xint		_got_alarm;
Xstatic lock	*lroot = NULL;
X
Xint
Xdo_lock (name, timeout)
Xchar *name;
Xint timeout;
X{
X	int		evid;
X	int		almid;
X	int		err;
X	register lock	*tmp;
X	register int	len;
X
X	if (! name)
X		if (! (name = _prgname ()))
X			return (-1);
X	if ((len = strlen (name)) > 12)
X		len = 12;
X	for (tmp = lroot; tmp; tmp = tmp -> next)
X		if (_cmpnam (tmp -> name, name, len) == 0)
X			break;
X	if (tmp)
X		return (0);
X	if (! (tmp = (lock *) malloc (sizeof (lock))))
X		return (-1);
X	strncpy (tmp -> name, name, 12);
X	tmp -> name[12] = '\0';
X	if ((evid = _ev_link (tmp -> name)) == -1)
X		if ((evid = _ev_creat (1, -1, 1, tmp -> name)) == -1)
X			if ((evid = _ev_link (tmp -> name)) == -1) {
X				free ((char *) tmp);
X				return (-1);
X			}
X	if (timeout > 0) {
X		_got_alarm = FALSE;
X		almid = alm_set (SIGALRM, (timeout << 8) | (1 << 31));
X		err = _ev_wait (evid, 1, 1);
X		if ((! _got_alarm) && (almid != -1))
X			alm_delete (almid);
X	} else if (timeout == 0)
X		err = _ev_wait (evid, 1, 1);
X	else
X		if (_ev_read (evid) != 1)
X			err = -1;
X		else
X			err = _ev_wait (evid, 1, 1);
X	if (err == -1) {
X		_ev_unlink (evid);
X		free ((char *) tmp);
X		return (-1);
X	}
X	tmp -> evid = evid;
X	tmp -> next = lroot;
X	lroot = tmp;
X	return (0);
X}
X
Xvoid
Xdo_unlock (name)
Xchar *name;
X{
X	register lock	*tmp, *prev;
X	int		len;
X
X	prev = NULL;
X	tmp = lroot;
X	if ((len = strlen (name)) > 12)
X		len = 12;
X	while (tmp)
X		if (_cmpnam (tmp -> name, name, len) == 0) {
X			_ev_signal (tmp -> evid, 0);
X			if (prev)
X				prev -> next = tmp -> next;
X			else
X				lroot = lroot -> next;
X			free ((char *) tmp);
X			if (prev)
X				tmp = prev -> next;
X			else
X				tmp = lroot;
X		} else {
X			prev = tmp;
X			tmp = tmp -> next;
X		}
X}
__END__OF__THIS__FILE__
if test -f 'LOCK/lock.h' ; then
  echo 'File LOCK/lock.h already exists, overwriting it'
  del 'LOCK/lock.h'
fi
echo Extracting \"'LOCK/lock.h'\"
sed "s/^X//" >'LOCK/lock.h' <<'__END__OF__THIS__FILE__'
X# ifndef	_LOCK_H
X# define	_LOCK_H
Xextern int	_got_alarm;
X
Xextern int	do_lock ();
Xextern void	do_unlock ();
X# endif		/* _LOCK_H */
__END__OF__THIS__FILE__
if test -f 'MAN/8bit.prf' ; then
  echo 'File MAN/8bit.prf already exists, overwriting it'
  del 'MAN/8bit.prf'
fi
echo Extracting \"'MAN/8bit.prf'\"
sed "s/^X//" >'MAN/8bit.prf' <<'__END__OF__THIS__FILE__'
X.THS 8Bit 3L News
X.SH NAME
X$N - A small Library to manage language dependent character with 8th bit
Xsupport. 
X.SH FUNCTIONS
Xvoid
X.B setup_convtable
X(doit, rev)
X.br
Xint doit;
X.br
Xint rev;
X
Xvoid
X.B conv_charset
X(buf, siz)
X.br
Xchar *buf;
X.br
Xint siz;
X
Xchar
X.B conv_char
X(c)
X.br
Xchar c;
X.SH DESCRIPTION
X.ti +3
XThis library allows software to handle different standards of
Xinternational character sets. As a suggestion all characters should be
Xtransformed to a unique standard (ISO 8859/1). The MNews system converts
Xthe local written character to the ISO character set and the Newsreader
Xcan convert it back if desired.
X.PP
XTo use the library you have to call first
X.B setup_convtable()
Xwith two arguments. The first tells the library if converting should
Xtake place and the second one if the converting should be done to or
Xfrom ISO (e.g. MNews uses to ISO, so the 2nd parameter is FALSE, the
XNewsreader converts back from ISO, so the parameter is TRUE.) To convert
Xa block of characters use
X.B conv_charset()
Xwith two arguments. The first is a pointer to a buffer where the data is
Xplaced (and will be stored back) and the second is the number of bytes
Xto convert. To convert a single character use
X.B conv_char()
Xwith the source character as an argument; the matching character will be
Xreturned. 
X.PP
XThe library determinates the type of the used character set by examnin
Xthe enviroment variable
X.B CHARSET
Xto examine then a file where the converting table is stored. The file
Xhas the name of the value of the enviroment variable and is located in
X.B /h0/USR/LIB/CHARSET
Xor can be specified with the entry
X.B CHARSET.LIB
Xin the Sysinfo database.
X.SH FORMAT OF A CONVERTING TABLE
X.ti +3
XEach line in this file is a converting rule for one character. A line
Xwith a leading hash (`#') is treated as a comment. The format of a line
Xis
X.ce
X<local-char>     <iso-char>
Xwhere one can use several versions of expressing these characters. The
Xtype of expression is determinated using the prefix. Following prefixes
Xare allowed:
X.O '
Xthe following character is the used literal.
X.NO 1..9
XThe number is treated as a decimal number.
X.NO 0x
Xthe following number is treated as a hexadecimal number in the range of
Xa byte (0 - 255).
X.NO 0
Xthe number is teated as an octal number.
X.NO %
Xthe number is treated as a binary number.
X.EO
X.PP
XFor hexadecimal there may also be a dollar sign (`\$') instead of the `0x'
Xand for decimal numbers there may be a hash sign (`#') to mark them.
XNOTE: never use the hash sign at the beginning of a line; this line will
Xbe treated as a comment.
X.SH EXAMPLE OF A FILE
X.raw 3
X#
X#  Convert IBM to ISO characterset
X#  (only german Umlaut)
X#
X\$8e    \$c4
X\$99    \$d6
X\$9a    \$dc
X\$84    \$e4
X\$94    \$f6
X\$81    \$fc
X\$e1    \$df
X.noraw
__END__OF__THIS__FILE__
if test -f 'MAN/Active.prf' ; then
  echo 'File MAN/Active.prf already exists, overwriting it'
  del 'MAN/Active.prf'
fi
echo Extracting \"'MAN/Active.prf'\"
sed "s/^X//" >'MAN/Active.prf' <<'__END__OF__THIS__FILE__'
X.THS Active 5L News
X.SH NAME
XActive - List of existing newsgroups with indicies.
X.SH DESCRIPTION
X.ti +3
XThis file contains a list of all existing newsgroup on the local
Xinstallation. The file is in general managed via
X.B controlmessages
Xbut for some reasons you may edit it. It
X.I must
Xbe sorted to ensure that news works properly. the format is in general
X.ce
X<group> <last> <first> n<flag> [<sizelimit>]
Xfor non moderated groups,
X.ce
X<group> <last> <first> y<flag> [<sizelimit>] [<moderator(s)>]
Xfor moderated groups and
X.ce
X<group> <last> <first> r<flag> [<sizelimit>]
Xfor read-only groups where
X.B <group>
Xis the name of the newsgroup in lowercase letters,
X.B <first>
Xis the first (oldest) avaiable article and
X.B <last>
Xis the last <newest> avaiable article. The newsarticel are stored with a
Xfilename of a number. The
X.B <flag>
Xmay be either
X.B u
Xor
X.B i
Xto tell that this newsgroup is \fBu\fBsed or \fBi\fBgnored.  If a group
Xis moderated then the moderator(s) should be inserted after the
X.B y
Xflag with their full mail address.
XIf there is a number after the flags only articles with less or equal in
Xsize of kBytes will be stored.
__END__OF__THIS__FILE__
if test -f 'MAN/Checkgroups.prf' ; then
  echo 'File MAN/Checkgroups.prf already exists, overwriting it'
  del 'MAN/Checkgroups.prf'
fi
echo Extracting \"'MAN/Checkgroups.prf'\"
sed "s/^X//" >'MAN/Checkgroups.prf' <<'__END__OF__THIS__FILE__'
X.THS Checkgroups 5L News
X.SH NAME
XCheckgroups - a list of newsgroups to be affected by a checkgroups
Xcontrol message.
X.SH DESCRIPTION
X.ti +3
XIf a checkgroups control message is received then this file is used to
Xlimit the newsgroups to be checked, so it is avoided that all groups are
Xchecked when a local (or other limited) checkgroups control message
Xarrived.
X.SH FORMAT
X.ti +3
XEach line of the file contains one limitation of the form
X.ce
X<dist>   <group>{,<group>}
Xwhere
X.B <dist>
Xis the distribution of this control message and
X.B <group>
Xis a newsgroup expression on which this checkgroups is limited. In
X.B <group>
Xthere are the wildcards
X.B ?
Xand
X.B *
Xallowed (as known by the shell).
X.SH EXAMPLE
X.raw 4
Xsub      sub.*
Xmuc      muc.*
Xlocal    local*
Xworld    rec.*,comp.*,talk.*,news.*,misc.*
X.noraw
__END__OF__THIS__FILE__
if test -f 'MAN/Delold.prf' ; then
  echo 'File MAN/Delold.prf already exists, overwriting it'
  del 'MAN/Delold.prf'
fi
echo Extracting \"'MAN/Delold.prf'\"
sed "s/^X//" >'MAN/Delold.prf' <<'__END__OF__THIS__FILE__'
X.THS Delold 8L News
X.SH NAME
X$N - delete unconditional old article.
X.SH SYNOPSIS
Xdelold <days>
X.SH DESCRIPTION
X$N scans through all news directories, checks the creation date and
Xdeletes an article if it is older than
X.BR <days> .
XThis can be used if some problems has occured (e.g. a corrupted history
Xfile) which disables a proper expire.
X.SH PROBLEMS
X$N deletes without asking if this is okay and you can only scan the
Xwhole news subdirectories. It is not possible to just delete some
Xsubgroups.
__END__OF__THIS__FILE__
if test -f 'MAN/Distributions.prf' ; then
  echo 'File MAN/Distributions.prf already exists, overwriting it'
  del 'MAN/Distributions.prf'
fi
echo Extracting \"'MAN/Distributions.prf'\"
sed "s/^X//" >'MAN/Distributions.prf' <<'__END__OF__THIS__FILE__'
X.THS Distributions 5L News
X.SH NAME
XDistributions - a list of default distributions for given groups.
X.SH DESCRIPTION
X.ti +3
XIf no
X.B Distribution:
Xfield is given in the header mnews try to determinate a default
Xdistribution form this file.
X.SH FORMAT
XThe format of the file is
X.ce
X<newsgroup> <distribution>{ <comment>}
Xwhere
X.B <newsgroups>
Xis a newsgroup in regular expression format. If this matches the
Xnewsgroup in the header, then the distribution
X.B <distribution>
Xis used. The comment is currently not used but can contain some
Xexplanation about each distribution.
X.SH EXAMPLE
X.raw 4
X^muc\\..*   muc
X^sub\\..*   sub
X^rec\\..*   world
X.noraw
__END__OF__THIS__FILE__
if test -f 'MAN/Followup.prf' ; then
  echo 'File MAN/Followup.prf already exists, overwriting it'
  del 'MAN/Followup.prf'
fi
echo Extracting \"'MAN/Followup.prf'\"
sed "s/^X//" >'MAN/Followup.prf' <<'__END__OF__THIS__FILE__'
X.THS Followup 5L News
X.SH NAME
X$N - a file to describe default newgroups to followup-to to a specific
Xother newsgroup.
X.SH DESCRIPTION
X.ti +3
XIf an article is posted to a newsgroup where an answer should be placed
Xin a different newsgroup the mechanism of a
X.B Followup-To:
Xline in the header can be used. If no such line is given then this file
Xis examined to find the proper destination newgroup.
X.SH FORMAT
X.ti +3
XThe format of the file is
X.ce
X<source-ng>     <destination-ng>{,<destination-ng>}
Xand describes the mapping from the source newsgroup to a destiantion
Xnewgroup (or a list of them.)
X.SH EXAMPLE
X.raw 4
X#
X#    Replies to postings in sub.jokes should
X#    go to sub.jokes.d
Xsub.jokes      sub.jokes.d
X.noraw
__END__OF__THIS__FILE__
if test -f 'MAN/Inews.prf' ; then
  echo 'File MAN/Inews.prf already exists, overwriting it'
  del 'MAN/Inews.prf'
fi
echo Extracting \"'MAN/Inews.prf'\"
sed "s/^X//" >'MAN/Inews.prf' <<'__END__OF__THIS__FILE__'
X.THS Inews 8L News
X.SH NAME
XInews - NetNews Management System
X.SH SYNOPSIS
X.raw 0
Xinews [-v] [-a] [-g=<grplist>] [-d=<distlist>] [-t] [-D]
X      [-e=<days>] [-E=<days>] [-r]
X      [-h] [-R]
X      [-c=<ctrlmsg>:<ctrl-opts>]
X      [-M=<msgid>]
X.noraw
X.SH DESCRIPTION
X.ti +3
XInews is the program which does the whole management on the local news
Xsystem. In normal use it is started without any option and parses the
Xheader, then write the article in the right directory matching the given
Xnewsgroups. A special kind of a message is the control message (refer to
XRFC1036) where only a few are executed immediately, other are mailed to
Xthe news administrator. To execute these you have to start inews with
Xthe option
X.B -a
Xto switch to admin mode. An explaination of the options follows.
X.in +3
X.O -a
XRuns inews in admin mode to execute all fed control messages. This
Xoption is obsolete, to enter admin mode you have to be user news or
Xsuperuser.
X.NO -e=<days>
XStarts to delete all article which have been arrived here more than
X<days> ago. If a list of groups is given, only these groups are
Xaffected.
X.NO -E=<days>
XThis option is used in combination with `-e'.  While `-e' give the time
Xto expire old articles, `-E' gives the time to delete the Message-ID: from
Xthe history database.  It is useful to keep a historyfile as large as
Xpossible to avoid duplicate article. 
X.NO -r
XRebuild the active file, mostly used in combination with `-e' to
Xrecollect the articles in each group. If no groups are specified all
Xgroups are updated.
X.NO -h
XInews adds all missing headerlines in the article and executes inews
Xrecrusively. This option may be used when writing a new article and feed
Xit incompletely to inews.
X.NO -v
XAll logmessages are then also written to stderr.
X.NO -g=<groups>
XThis is a list of groups (seperated by commas) where the actual action
Xmay take place. Mostly used in combination with `-h', `-e' and `-r'. In
Xuse with `-e' the list may also contain wildcards as known by the shell
X(these are
X.B ?
Xand
X.BR * ).
X.NO -d=<dist>
XThis is a list of distributions (seperated by commas) to where the
Xmessage should be send. Mostly used with `-h' and `-c' (see below).
X.NO -c=<ctrlmsg>
XThis creates a control message which may change something on the local
X(and on remote) news systems. The syntax is
X.ce
X-c=<ctrlmsg>[:<option>]{ <option>}
XAll in RFC1036 mentioned control messages are availble, only the `ihave'
Xand `sendme' aren't supported. Refer to RFC1036 for details on each
Xcontrol message.
X.NO -M=<msgid>
XIf an external process wants to retreive an article with a given message
Xid and doesn't know which filename belongs to this id he can call inews
Xwith this option and the required message id. If he wants to retreive
Xmore than one, this option can be given as often as desired. The output
Xwill be either
X.ce 3
X+<message-id> <TAB> <filename>
Xor
X-<message-id>
Xwhere the first line will be written, if the message id was found,
Xotherwise the other line will be the format of the output.
X.EO
X.in -3
X.SH CAVEATS
X.ti +3
XInews isn't a complete newssystem, but just a working subset. It is
Xtested against BNews 2.11 and seems to work okay. It won't work with
Xolder ANews versions.
X.SH BUGS
X.ti +3
XMaybe a lot. But none known. It runs just fine for years on several
Xsystems until now.
X.SH FILES
X.O /h0/SPOOL/NEWS
XHere in all articles are placed in subdirectories.
X.NO /h0/USR/LIB/NEWS
XAll configuration files are placed here, these are:
X.O Active
XThe active list of newsgroups.
X.NO Aliases
XA list of aliases for newsgroups.
X.NO Archive
XIf articles of a specific group shouldn't be deleted but archived during
Xan expire this files contains details which groups are affected and
Xwhere to store them.
X.NO Checkgroups
XA kist to limit checkgroups depending on the distribution.
X.NO Convtable
XIf you forward news to a system which only supports 7 bit character and
Xyou use locally 8 bit character this files descripes how to map these
Xcharacters. This file can also map 7 bit to 7 bit (if you want to change
Xsomething, e.g. replace every tab by two spaces.)
X.NO Distributions
XThe default distributions for several newsgroups.
X.NO Followup
XThis describes default followups to some newsgroups, e.g. a followup in
Xalt.sources should be placed in alt.sources.d.
X.NO Logfile
XThe logfile of news; if not existing, it isn't written.
X.NO Sys
XThe systems to feed news to.
X.NO send_uuname
XThe file to be send on an senduuname control message.
X.EO
X.NO /h0/USR/LIB/NEWS/HISTORY or
X.NO /h0/USR/LIB/NEWS/HistoryDBM.(dir|pag)
XAll arrived article IDs to prevent duplicate articles (the 2nd format is
Xvalid, if you are using ndbm.)
X.EO
X.SH SYSINFO
X.raw 4
XMNEWS.BATCH,s=/h0/SPOOL/BATCH
XMNEWS.DIR,s=/h0/SPOOL/NEWS
XMNEWS.LIB,s=/h0/USR/LIB/NEWS
Xlck.inews,l
Xhostname,s=<your hostname>
Xhostdomain,s=<your hostdomain>
X.in +3
XRefer to source for details.
X.in -3
X.noraw
X.SH ENVIROMENT
X.O USER
Xis used if no other way can be found to get the login name
Xof an user.
X.NO NAME
X.NO FULLNAME
Xis used if no other way can be found to get the fullname
Xof an user.
X.NO ORGANIZATION
Xis used if no other way can be found to get the organization
Xof an user.
X.EO
X.SH SEE ALSO
X rnews - in this distribution
X sbatch - in this distribution
X RFC1036 - found by your newsfeed (hope so)
__END__OF__THIS__FILE__
if test -f 'MAN/Manuals.t.Z.uu' ; then
  echo 'File MAN/Manuals.t.Z.uu already exists, overwriting it'
  del 'MAN/Manuals.t.Z.uu'
fi
echo Extracting \"'MAN/Manuals.t.Z.uu'\"
sed "s/^X//" >'MAN/Manuals.t.Z.uu' <<'__END__OF__THIS__FILE__'
X
Xbegin 644 Manuals.t.Z
XM'YV0.,2DH>.B31@W`!(J7,BPH<.'$"-*G$@1`(R+-FS``&'QHD>.'C]V#!D#8
XM!@T9,4#`J#$C1@T;,6[(J$%#)0R8,V@``,&QHL^?0(,*'4JTJ-&C2),J7<HTD
XM8@.>4'$(&8AB!I,44+-JY?ED2HL<(%`X*7-G#M:M:*52M9JB@5NM3A`X"8(@R
XM2!,$38H@*(*6Y].^:NE`;0$U"-0Y!MFPX<DDC1@Y8>3DX4GG#4^#;L*<*<.3X
XMS<$S=327^8N63!DX9=R8=B-X#)K(8<;0*2,'Q)V!:$#@H)-;H.`Y=>#`>2.'#
XMH%_2/(T@,%(%096X3H8@&$(%`94D")(\0?`$^A0$4_J"0*[5SILT9$#,03"GP
XM#((R=!#0J8,@.`(X7Q!\&8-@S!L$;[B!@!MV(&!'?'2$@4`88B`@!AL(L.$>K
XM9RB0<1X=+(`@1QEV8$5>5FFP!H*%`^TPGG@A"K:A'2:^U9=YZ('`GW\`"DB@#
XM@?GMUQ\:"+RVH!P(R+%>>^\A&)88=9B1X1QIZ.&A>*Y%!H(*2)K1(HHB,JE'K
XMBQ]"%65M,_X7X(`%VI'CC#SZ&%F088WQ9%]?RLBE5D0@0(1>17PWA71#2(&`B
XM%-@E`04"4%1W77;;=2>7>%UJ104::<P!`AN.02995F$H]D996<WQAAETW!$9]
XM9Y19QM-KJDG8Z(AIF&$&;:D)QM,<":H6&1F2@O`I3RG2EAD=:028*4]?QC:;`
XM'*NV1\<<+O`41*YAS%K'&9O1&JP;/&6ZF(RO028;;9+.@<8;=;"1GABCB4<'$
XM9&[,809Q;921'@B5@1!M'6ZD$4<=G-%Z$!FWAI7$%$_HAD,-.;P00PK-/IIN1
XM7TV,Q:EZ>=!:1AO$!F@';<O2BP9G;+PQQK!WR#'0;-@6^RVRZIK*&ZD#%\PM'
XM;"O/"I^]JGG,F<1S;!B&:6`>M*I_!'(,PD`@B!';&D>;,6(93&Y(1K/CK0H5#
XM%9;5T1YE'W=6:623@9`'N:>&L7&IQ&K+DQEI"$E'LNQ-B"!]]N&G7Y@UDFD@D
XM@@HRZ""$$KZ'`@(HI(#`6;?Q1MD=ID8&6KRL,<N3PR"P[?:JLRF6Z\M>/P9V2
XMTS)JS'&(9Z@W;KGI);@&9W!X-L;#:/W+-:GM$3UO@*2V.GOH11='NNGDFILT]
XM[%M9Z`:I]>I:6^5RO($Q"#&'588+9S0;,5F2:@TUO9;%O.0;F'?-DPPY\P0'Y
XM;/$>"U6DR07!Q!1%9*@S3SS[#/30HA>7J])C,&U&\QCSGGHLP[GS029]M#F:O
XMI*@@A2H4P05M$0_6LD*TC14'4UEYD,B8QI-=$:M;Q@(75+0WM/Z(R49E.M..R
XM>M0W(`DI;D62S^`*=SB>)"XW]&*<O>3PN%A)CG*6HY4"[;6JX?1J><F+5I5>X
XM59L[?&Q#\P-8@H;8NMC(*RS_6M5M%,,3=,VJ,E)+VM*P(CO.U2Y`Z6$?Y]Q0Z
XMAS:@BV5]\:`8\C`;2=6K@AQKF&7P>,%H,<D-9Y#0S+QUK%5ICU@FS-N-S'2W]
XM%:K)A3,T'.)PL[L!UD$.KQMD"&L3!DD)33R.:V.L3`05SETF#'1PS>\^2#/UC
XMV3`-7.SB:%P$%2B(!@0I$8\N^P(%D['FBBB0@0Q`0(0RC`&7.<B!#-K"`/($#
XMIBI7V254NO*5L/#L+-)\)EMHN94-S4<.QYO:<:1).4IY[E)/.U8;0H3*[<V/0
XM7GE`C:Z<QCGMD6%H(*R9>FZ6M+"5`0]A:$.^L,6YU-BA;<Z+%0CL$)DT,$A5>
XMXN$3$A"`!+H$P4]2T!.>#%5*4X'@GP$-$:ETAJULK0V6I'(BK&:'O]X!"Y"4D
XM>6CNP@5&>36L:VP3Y&OLV+7,Q&M5'C0E0]G`KPXZ[9T&12CD!,-0D\D49VF<6
XMPZI"-K+9S"M$('@!`EZ0)A@@``9:?4%SJJ`GC(:5"0A@0J"$@``AA%6B%+4H?
XM1C6Z%XX21T8'&9YZ4#.&5J5!7EJD9"4_RAIT@@"N%:W+7,&S4>NX``$N0*M:G
XML\-6(:ROI*:<0L5"]*Y529%!G9S>.+.B'",D"J-W:8)%.9JHTH+`HH>=3J*@)
XM8P4$6`%/&#54H*!S!`0<`02&LFAE)8LGK5B-)T6(36XH=3Q>$112DLHI9]@7W
XM+3Z^M'1R*!=GW@5'M.".E82D3;,,PUS.W-!>DRK#SWZWT]R@``PC.`%6(H4YF
XMGUG57IX,71N6>M/MP@N5\T1O>8=X7%WR@*J9:L&7?*`5'D3J#0KNE@^T^$12V
XM?1>O)3UD>RPX+`LR*4"2VM4_X;"A.?SQ#.&#VDA5=BS)34Y\=(BGA8\ZXA)_?
XMN*3T%8]IU,G.^X)`:ZLLX(;8AH=F&>$-FKH-3$E<!B)#;56CLE>2Y:6#JNWR2
XM!`@XP?S>E>3?L3B!:NR:/2<U$-IDBFK<1$L,$!"#Q[K`S3E``%@HQT8W@MF.Z
XM]KUB)]%KFKXF!@1U?B.:C^M5&.`!`7AX9^60'#(EEXXG@4X@KW)%KSS/:\]$1
XME"8(/@;0/J?ASX!NXQN/]ES.L&LS`58B'2FTD184&`0SJ0'#1BN>0L\OTK51E
XMHWKON^>\BBQ!B\'UH'=9`@24X-:BOG.E=ZWG_`HD,Y<2-JW%<^3:</IGQOST+
XML'0&18-,)E.>TFNT+*08*3'I#&Y8U7M)(%_G6NQG1IT?&`RM9=EQ]VE^'A:NQ
XMI:JN"I\R;%Y$[Z8[B<-SE_2]\3U+O0PB!Z:]K`TN6)43GD"%(E09T!R2]"$YP
XMUU[UI`'=]A(,Y]!UAA`-M'2?@C*9CV<BWK!OP%M<C!?7Q>ST]%J__#V.6\ACH
XM2U0/4]-`[V6OTA/,81;SF#%(YC(;T$RM:#.:FJ8F6,2"/6SN\NEM23.>L(``A
XM+%@TM8."`G'W`H+6+N>U=0%!:0,U=KX85YHC*/`(>#*$_`DF"4)H`O>@1S!-!
XMKDQ9<N<)"@+$ALEL1@Z8`4$5VN"9.M`A@KN,NS1)@(.1@H`$8Z!!@4F0S*R0"
XM@`PVV'P.H@65SX]A\SBH2>G+H/G)YT#U/"&!&4(_>1SD,O9F./WDRW#[RY/!:
XM##L/OO"'3WSA:Z7GG)D!T(/NR_L6G9C&1*8RF7G\Y@-3F-!'NM*9Z<RIT`&:_
XM5M>EU*U9=:!C?>=:V7K7OXZ7L+>][-QQ+6S7GIWWOSWR@3^LW:&7][U'[\M"5
XM`A_Y-WAN4'@@<'B)5P5!(!MIL#$%<1!-$8%,X1$9L1$C(1(A<1$@D8$PT!(S@
XM,$PKT1(O$1,S41,840,P(`,[T1,2V((N^((P&(,R.(,TR!3DL8#`LC$H4`-0Q
XM)WY>,777)$TXV(!EL(-7@7Y9`1WLEQ=DUQ>K,H1GPQ.$P1B1(BL!QA/_5(6K(
XM=#QE<0;-$QRY<D.K$B)DD`9]!37#EA5U<B=[H2=\@E&!$G:ZA2C<`1V,0D[0J
XM53DHY24!DB`A`BU>(T17J#8?A0=:"$BKPH5SX(7D`@<=A%GB@V"+\8?`YAG`*
XM$B#]I8>"E&-]@54'F!IFMBV8(1KS<E"DAS=CPAKRX4)B`CAM@`#Q\AY#,B1]'
XM<P8(L!FRR!Y=Y'B+UEU;X2GQPA,^XRGM(C9DXVT?58:",1#-D@2"T09:(QA>S
XMY"G%<465L2JI`1Q0Y#$`AG&<PC@-)RDD]@:H(0>%URR<PUT&L8R2$B*KLAG''
XM`QF+46`\P(C!P6`'UDET@(]!M(^`Q@-FX!EGP&!;P`-:4@:4LD[[V`6K<F]N0
XM$"`@T`9O`#3ME![V"`=SD"'D48]?"`?XZ!FTPH]M$Y)B`Y`"29`&V20(^6D#3
XMX0-=``(%*9$4"48H8!8NV9!W)9-F=E\7Z4DY0X\7^9'Z*))NPV!R8)*:@9('6
XMF9`MR9#B<6\:HEYDT`*$%S8]:1O^Q@,(4(^WR(H`0C=P<!\^@``,%F:<X5.<T
XMD7+]1BJ*>)&D-BF;0ALCLS420@<MEB%:"9`(P#8(T#9!,B0(,I9ER5/$HQ7]H
XM*'A(9AJT<A9F$P8.]2"<$1G`,@:")#MY"3A]`YCR(9A#]#)3I8\\P0-<"#7^I
XM:"\,]9B"M$.3*2%40V?8(YEFB)!0MHVT0AQ7=%[1(EUHF6JA9F=RD(EY:09[[
XMB9D+8HL#29:K@HQZ]5&XH7'UH3Q'TY=[ESF+P1L`YG*2TI8=.8:Y0C?M<3NYF
XMUI?H9IOB!#U.$RUNR3XZ"1GW]3+IMI:7,9$[21PU>1;B$CSS$G!_R#%Z!BH)X
XMQ#EY@`!YT)`"^4J*HS-M4SGELA@&`4OV0@9D8&-4DP3TY&_4E8C)MCQAX)](9
XMA%,"&6(%^&V^0YG;<UX28F+*@XW[,BQ8=9`!M@9"L&J2$G-Z59M2,VC%9WQ9R
XM@7RXM'R:)G2_1'38=W32MW0,L!51IAXUE1ZXJ8FI$5!I>9Z]*6C`U37!.9P11
XM4HNW*)C)&08`1RIET)S+0S?0F0;262_4R8TBEX?:V8C<R1/>>45E*IX/>:,\9
XM0:'HE9Z2LIX525(I%I\S29]F,2NG(SS+N9_5:',<.C\!.J!/6:"V(5@ODZ!F2
XML*`1Z9B+\3,1"C4NAJ<O`T47*AZXEBV+NF4?JBLAJIIF>**1JC@G&F*^J!5E&
XML**3B"TNNBLP*J.1JAA#\#']TY,/B!`U.*PC48$;&!+'BH$<*`,S<`,;$8(N9
XM`1,R01,V<0,T<0,K2*S:NJW<VJW>^JTM2!Z]:DQKT)-&&'Y<\8/D5Q;H>EB^]
XM6JX=.0?GBH10H81UD5K%Y801]:Y7"0)3&"V4(D2[TJ9@N'=>M*&O\BWW)!YST
XMA%ZN0:Y7233K@F01R:FBD890L89XXH;3`8?9(8?6$2BSM2CZNDMX>HK\&J\9;
XM4U@46[$F=DM#M"&O0X0+VQ?NR37LXZ1#-&;UPI1K>I;8<Y77R+"D\K#](R_RU
XM$VY'PXZF>1ZFD3JO(1AJ<Y6C@D_D*J=8F1I007IP.3+;$A9WU4&?"A4^*R^0Q
XMAQ9&"Z^-*"D2VSP,:K&H%ADFLS'EF6:E=5I_DEJK91UWN$O)Y1HK-V.5)%V\U
XMXX?%^%T^BTK7`E05ZE^(=R(^FA4\4(8D&9I!N0<LP)&-Z`-]0&$K!0)Y208(O
XM4(9]J9G[2):3MCN4NRZ.X7C7$F#86;ANFYQP2RJR`[I;:9Q>22[U$98>B;I#V
XM%"T$ZX@UQJFO&R`49H8X%+O<`K$J.T1DII`V=:<EE9>Z&R1B`I9BB9QKN8U)V
XMRCE;1`8C(P>X`@(_@``_`%53@@`J(&6-!DQ[M@8/>0?OV1<-:T8?HQBS9F59[
XMH7Y>=Z_M1RCVAQ:O!AQB\(MU(`8NH`*O!HW'I!4.O,"O)HE9(8D,K&G@:*C"K
XM:$P+S`+^T09PT,'`M@8=K(@=O$YS,`82G*/#=WRWU'N1BQ9`ZGQ#&GU)-WU,(
XMMRNQV[9(1KLOBVKJB[M<Z878^Y6]N[T,%KS>N(@=68A,9F+'6[]HX43*B[.YE
XMDK;]FK-E6YY)4+VYVY5%S+MUPZ7=:[O;"+ZP)+ZW(BGGF[ZRHP+LZ[YQ273Q;
XM.[]2O!7WVS7B@I!LL+]:5TPA8R[!"JXT2($:D:P:>(&)S($PX!(HJ!(L$:TDJ
XM2*T800,WH!,\0<B:O,F<W,F>[(+D`<B)B0(XT(/B,7Y4QZ[2),KF0LI'F&;V_
XM:A=XD:\$+!ZLG!Z$81IUR1GX8CL#<2W#DIBJ2J(8RQ-ZD@4(D`70D2AAIR>!9
XMHB=]6QH(*<R3ZZ5SP&!IIK%M"!YO^"=Q2"ASJ!UU2+*UW!>W/"LC4XP>\X5G<
XMD!MJHXBL(K-@]%<9V;S]PV\V*SYC8%^O.R+MI+ZZ#!_;DU>P2:*@@S2<Z%WF(
XM(FG6Z<63.[I]TZA#(IA44Z4YF\ZR!*??R2M.`XR%F17C")EMD"L[U4%C,`:7G
XM)*<H,#W58U*A(P?9!0?W!5U@Y*A](5U80<6`2[DRE5_C6(Y.W#:BQ;^U1"@8J
XME2C#E59XDEK07+)H<<Y/L\MAB!OD(K5SL`:_HSNQRSYOL`9>"E6K,C9UD#8EU
XM597HG%?@.RZ"!,\&7(;R3!ST'''BX8Q#])"",1Q0#)E[IP;1&-4"/4#!:,#`.
XMJG,L7-@\]\(QK$LS?'U&9\/;QW0$/:*;Z#0(C<\*#31<DU="++H`LR`2S1X4G
XM?35YB&$9_6,;#3H>743-(](DC6DB@])A)#W40S6G2!PQ/=-52!Q$4(4F@R271
XMV"Z#_,E(8<@6R(&(7-S+ZA(F&,DC.*TF6!(QD!/9*MS47=W6?=V<',J\W;J_)
XM+:\\&'ZH'(1JN-V^?2W>_<KD$<OXVH3E_-3D[;H@)H4N';"RLBNF809A4"Z";
XML;J]#=_M@I.U47(;@RV#3=0\H<UYPLT=Z\T?"\XA2X>*X@31/-=.\Y`9:R=FE
XM&BGL@2`NE.$-@B3U@2`9?D(#H@,(<'%L@Y!7E2L"KK5OJ3.K\C'8MCP1"<^4!
XM85C)DTZTL4Z_8KL\<=_YS09OHV/O_=N]B#&Q*UW%K';+@;=2H+=UP5%.O15`O
XM]%^"H<,XM8?L\VJA.;SXR-_<?2T^L`>@^\%+Q;F>NXU";",3<@<(4!;L<;W-C
XM8\1U,]'`F[.D-[S.M<&@X1FQFA7%"\40>>2H-*%'%;OK^+"$N<07.88E-5B;0
XM)I6T(3^S\^B*QBJTTM^_O2JA.[H9;KH=WI<?3C<BWI<D[@:<";WVU)I=8^8*4
XMQ3ZPO2&L47B)^`:R,F9)PXND7;B.::L)Y<2>\2NORR!5C8W*A>FL6]Z8.&T@X
XMX+]+Z'Y*S=Y;\6I>X,!<\&;M>QEUH'O2Y`4&?.T+?!@)3.TR"^[9;AO$82Z&M
XM37PNC&HPG-@[:GU"VMC:A\,,4`9]'AG8B`=/?&-K8^6&;L67FDH?L^C#Z^A9&
XM84JG(NER0.DDE?#B\^-%OKCBT>FDJ^&TLHI!XN$.0NKR,>**E.HYN^HOQAFNU
XM+B*P?DFR3@>T+JJVKM%RZMMDO;*&"]B<,6+!KK@02>R.9^P[/?'+;N#-OA=<^
XM][^RW`30S@2T/.V:5NW;;NY0X<#4_NW8+NYB\!='EF3!$=S8;13$?=Q@K\@7[
XM@1(V<`.0+(+26H+56A(U,-U=__9P'_=R;Q3DD?6-%ASGZH/5E,J#2FV,MBEX%
XM_]WT2C]RL81+?W]H8?>`[XC^BEZ$6R^*N<^.P1E`KM_>*+3@\Y1_?P?!T0)H=
XM:AE^Q%=^=4RV_D2,WI%+CN`<VR<,+B@.?BCB'.$3WA<G6U(%O8GB^`86DSJ@D
XM?_J-F+50]$E]<1!S<`>2=I^H4]I5]#IIA"WCUBI,I%`'#Y\5&R7Y@AB\65JM]
XM&"&`(R9NSOE'#`<M@``M8"AB8N)5-F!8Q7$,/S2:'7`D;YZ09AG``;CJ+RDM@
XM7FK/E=!;0;C0"U(\3DXE#[:1,X0,.4H@BNFEZ+P[IA6XT$5:<G>+.Z`6O+"W7
XMJ,#L0PM5#O$`&"RW7;2<I.!TGN*2O(X6`$B2&%287*2IQUP+$CB0,!<*M!;"T
XM+D"P0#0'2LK'TTAAO<V=*!J#(!Q6"?-P'I4D!&*2CP85]-S>X3,I\"`8.0?8^
XMQ`8/)R$S`@OXK"6(XR'(@[,#8$A/@$4[M]/>=(GD@3M900J<!DJQ/>H%7KLNG
XM[<A6)3`7H`:ZVO9`?NI.T\P=J'`&"`C]6X-M<'4PBYJU2PP8&W2#E,;J_4$]^
XMZ`+NR;H+/NV.,[P[>,<3%MN\RSY%BOHPO5V2`=<1[,IRN`]RH06#1"Z&X`QLY
XM,`E0!<K`$N@"0V$,=`,SL'/5P'EQ`R4?NJ`T"H\'P@$?^#^`X#L1@J\C$06MA
XM)G8$QTT29`VOBPG^/B<H8*K0/$DQ5%#H7<&CE_0.7U9X-5\P\H3!,4C/]LX9(
XM)!UI4#W@04`(/%`'-,P*=7#O^,$\B(;N21?#'EQO[@F%KR?VPEYRBVXUX.Q)K
XM,N=F$VS`#*@!V"J3J<-]R`_[H=PC#^>P++BR=K45PEOYD28!45Z5LJR3W@H?I
XM%G2&4&%5),3&-Q;H`,\``4W@((B&I0("-(O%P!AIYI@ELV7&'9H9>'AFX.$"\
XM7A;L`9-:@!UX25N@!80!F-@"SD`/X$BMHPJYI)9(!F[BZJ)O.S$FT@&:2`2<U
XM$M")B67`)UJSH-@"BH!2K!A,40X814T3$]$`390"4U&:Q,0Q<!-E@SD::0-)`
XM!_``K\@&J)),NV99<9?$Q"9P$\$B>KA)H<Q.;"P%Q_H`18,K%`\N]MFA*4?[#
XMX%G.>B?CR`L%%!L"*0#7B'@#[L24.!$D0P1/26;8#!P15<T/"L;6*L9L@#C0;
XM`UO4J3]#0E"$K,A9_B)1&:C3(2L.PF0@1T9.=AB0]D"88AS#HW0WRS:8C-E0)
XM26Y?[H!$I,)DM+,AUQ?<FC&I::>$X/T.SI'_?!\8&B][)=MDBE6!U<K'KH@6B
XM\>*'39=%Q\/>EG0,"T/F/V6^OB`%C,`0*`DSP`98'96BYLR:2ZL<9&%KJ;E_;
XM8DP<#V!!$?M%7CB4S)$'*%WIDS0[9*0T*`G!"I.'*5%$4(8,\#C>ADJ(0VLRY
XM%>P1I='&E[$UQ-K`.1OU(C3R1K0@4B;&>9D?J/%UC3^9N"#$8>(`7/7B9_"X7
XMB"2?Y%I?"`+8`N?UN@5X"=.23#-OBR;)N)@T(QXV9-\``5(`7^2*"KDC;9^`%
XM]$0Z:>\D2/?HOKC<VL!:U3'JU2X78]%R188<=/Q/FKP!,>`I=IG\2!ZQ0M*(`
XM2*P2)!WD:X"0VQ'H>!'M41O@V5T!#N6(3"ZY&DG^)D0/0``W<2MQMH@FH.P<+
XM@YD""4)_H`V_1AO5AFW$2LK+2#Y(4H$N7)S<HED+;QM)I#.&*D`7P("*@E(S+
XMO(&`)W#H6[PY0"J+?>2_#%&5!"6#Y`Q4*_BYBM\XO80>FVR*>^%-QLF'UMF\:
XM5)T$;:CK4>2L)XECLL=&PRH?[-DL0$%Y(<%`"R@#)Z"B70%(D9I\);#D"2UN*
XM=P"+8#2TEL^($6H=1'C8QGKF*XN`EFEQBVY9<H9F"70"&FU\)TV@=K6`)$`$(
XM4!P`J20TC3C8M&Z)2D!+>ZAHT,,*_47M4:F^5HY;':<A6PC*="D9_!^F\7-`%
XM;,_@-2:AUT(DC#"$A\W=,4(9)N_"0@VK=T8*("JB@1AUU!7?(XA:(2$.1!JI'
XM2\A`<*`4524R2;:AQC'1PH9T(3BR#"")-%8;&5`4DB[R0R+1"@,T9MR1C\J53
XMHO#1]<I?J66.H,QB-+^1I?BH:;GG/LJQPY2-*.!9N%#9&/O"'!!]*<[F<!&F>
XM^6/@@!0IE25S*VS(-)$96>*#*E_N*R)%BA,3Z69<><F&GFEHCLRM53Z&9!UQ.
XM+EY39F47)K$QSI&@E)5.\D4..F0T)C>:2L$6)>.7P13A118BY=JT-V7@BB`T-
XM-_#!6H=`,T#U@D>NR;ZP(<O$:XDE(>,,1,<Y(!J@!:/46N#&,@1.NZ2UN*6FM
XMH15`XS<QNU-IG%2E]0)C<TZ,^2X[V237!Z7A6I;R4B)-,"0H:])IV$E8JV'AB
XMG$Z"./S-.S$6H8$-1$H&-.@N5=A0':1B^0VU)J#[6%[8P'4V<_G@S%,X&GF")
XMKT0#)T!^&,N>*3M\I1P(EIE14!Z25H5#QF<ER9W(*'3RNNP)=,+7^`*;F$9^>
XM;0ILD<?Z1?Y:#"C@4^9'0=G&U!<<4P%^C,MM2,[F.N6DIRM=&VXSQ<K1AN<"<
XM47T[*F!.V?TW'^4[RU&?ZB<98[\0S[U#'K=EU]B<HD%0PL'\1#M20WFBGC-S]
XM,HR9\_(]ZXUJ$)2^<@QH&=_)&=!%HTF@0&=#SH@&.A;[`X<+$JX(%@T)X\29X
XM\":QR#.`2'91+!2Z&7AE8<0ARLGZ`3&/YG)@BF2<C")C.7)0V0&1-H1$F@U8+
XMH3)^Q!^BQ_(`:P@#B6;+,4(%TQ77!1L`BSY@"XA%6NF2R!P/X*.J</D$@5CBT
XMB;KC=^Q`-N`RQ(IK<462)!5],FK3=ITF-@"9.&6JXAQ@(`U\R6-9/MN#:H@7W
XM)\!PIH838(70Y'!(5%1###*1/6E(P6,B[46"<L=@*A!E-`&7(ZU=.`H1[JA;^
XM\G,69KP;.@Z3WD5"IB,QL0?%E"8&494AQ(FY$`>?+MF0J86(OJ*1%N=N48;C5
XM;)P)3^$,+(0'CD5FV!;CZ'6@*-N@!.U(F-0TWF1#$*%LX?S69I,JCH_T:/!!I
XM37.[+`34<`.DE"?HSSL`*`&7;H)2PR-D`!)SZBDIZ+QH=7G%:]4JEGA>8A>M+
XMC)3E@W-LB'TAU-)#/$4/S<AI=`U1$3FXAZ!,IV$J"BU*Y-$H<4>&<*AZ,V7DG
XM%70A*(LC?C$J*..E*J:*FHFJ&AS@13%'4'J1,#6V!"5:6`$\X)&V@+<(NJA`9
XM$!`"(DE"H*4)XTN!#G'PJ4$TJ(K+MVA%/Y<I.4R!ZY5P$2\R.E%&AF@5!954C
XMQ%-Y:D,PS;O`%V1`?MQ'.7`;MD;:7#YKE6R)%*VZ+0+.5;5RE_*M.E7'<U.--
XM@]#C$Q:EMMR6O5`!FUH7[(LL,5+@T](80AWGMU1$<\`R7HP,(?/XFA`)`UJ$9
XM.#3'1V/`E,6$^HR;@S3IF3/0ZX2($+B(,L`%Q(`8`&7*1WNX&)O#5(`CIM'53
XMO%0S$@R,8[&BNX;#/G7%0OMSA>$B>ACSMN0JRUCI+4?`L$Y"79(1\\#!Z@RV`
XMCFH(`5[TD)K+/G4#MU5#Z$@08%D%`P%LFO<F#Z@7(2$9-TPHHAAK],<`PV"S\
XM*2#@<F`[6U"Y&I?C$E:ZRE<)*WHB["2*1"%9P@ITP!-7``%<`6B&!#Z7)R)$U
XM1#/*2,]YBB6TH1CPC;(!KJ&AU:D5ZFN/*#1A9:R4E3]Q5M+*6FDK_E4N`%@!E
XM"\T&Z=<B&FP#-+"G?N:D/&?3!&FNXXI4F)-:\$1F&:@R67,K6)094>H:D(&8Z
XM$%4J,KE,D&$,!]8N7%NYU)GR*.735&M)PWP^1.J&1<R,R4Q-V2FSF.+-9%59#
XMABA(ZP+@R'"9"89`#5U$7HKL>:(4H26ZW)7A-2.-I$5Q(6BB1V2X,@%DM>DP8
XM8U6#:%9`33.$++=3Y%JANG4Y><N8QXLB@RJA6R/BDI`.GZK9@AJCS%G2Y8KUD
XMH=+ZX^##+/6I.@V']*LDA;!(Y:4I'R74H_[9FJ(S,*.IC"C3(4U,B!FQ!A!`D
XMN8*=V2O\#8G7`A6PFB`Z@C[K@SBOM>5330-J4`V_`R)QC@SJWR9G7^`3IZY,1
XM\(T%\>$`1YT]*@ZR%XD*\@5IO&:(1*^7$=->T4=D@+2A<"`.'0,$F+VD@30`@
XM$%B+7-'VD$@B`X0#R&UKR"?J(\FA%,O6+:&&Y$,-)&U3[$D>.#NVAM]I,29R4
XM^3A1G47:Y">_-7N^8>\@7*2!`L`JNB4;Y%1$W!%4@6JX**0`)!F"I36+#2$](
XM?6K&N10)XH#=+QWR-*T(LZB"RV<-?;H(NBXVGJCK>"'NXYDZ13)K*<?3P&^6Z
XM#]EI.AC)77RJ>95'QA$C&=O$MQRVGV*($-[OS6DO1S1P(U\.E!253\C%R+N'H
XMD42MC_)H1?#(@B%*IW&WUK_3>HR/?@*=3$$0<*$.[(8:;#F9CQC+"DD-HQ5R`
XM+L#L[L&ANQ4DBY@P3L*)+\&2"`%D;2Y<.@/^[PHM,5(".N;?A`0Z60@&GH&O,
XMRHYT:U=-#717*^B)S[9`VFAZK1>OXHK`L\H0>3N%F+41G"U'T`VZ82/ZQC3M?
XMNQ$O\":/@.-);X?M8X#2I/76`7P!4&^I=(R\%A8-8-BMHF'!@UG9*I+EP[J5_
XMK?)?]T*`';#@(:Q,%"2`$J>`H7!RR"P+5`U=6DMN">QILHXPF$)"*<M]J*PQA
XM78@5<^]E65VB,9MICLTJ6\6^@A7>ZQPVK!3HL),%[X!8XBMBC2^)3;Y;9?FN`
XMW(Q7&0"$"VE4:ZBRI!8W,T,X6X9S(7P``?`!WZ6ESH`D$0\F]M4<2D2;+=;F%
XMG2("L=5\K`B%DFAS8LB4P",S5P10\4$^TH,Z`C#L8ZB@AZ_J-!QDU=(T0`:F+
XMJ`8QD`Q#(GB(OLXL.T"'""@S#BO$<`)%8,"Z`"$0!*C`$$`"+&`.]`"N`E:FT
XM`!1X`D^`";P`(FR$D<"KB1A!>`JX`"*0!*1`$E["NO<%.&$H+(6!\("]PF98N
XM"ZL5(?"%F;!8F0+O=PV_@#0\P?J'"^"1+$!Y:IIQ02O0TA?F`6+-VE3/I?IJ8
XM^#`=L!`-R@W\X4"\::HG(NYU3'7YJ%+M:$F&8"]*)[,TXEC!O4!;;$N@.&K<H
XM8;T5`>@@Y0C8<>F]\&,O8!15=RLKG&6(JZ)B,F`T+W)6"Z!EV`R'%SYE3JRR&
XMFYXCME"3%#8).<2C5US.;VD9*Y)%LJBW649V1EXK!C2O>&S%8M)&B\F%+7XU6
XMN'C++*A>?)Y^<7M0G:<V*S@YY&I1H$.@T`((0`M40)$USB2<,Y93N@,:BRW3$
XM1T[#QBQ^L5"A%O.^3_2SE`=IS1=Z@$7Z8M,F7I@=72D"Q<6B2!8]D2CXHE8`N
XM)RR1,*R_/$1LC9S5F`-*@^`UOHG,/BKRZ[(:K121-CY]#$(9L2+*O$1G7,@3O
XM3U$%<U0B!`'QL,DVPB?[,(<I`^`+QG@Y(..THHR'L2AFQ8K3%>L*:?S5[O&BN
XM0:M6=Y=DXW2TC0'J0`;&X7B:2,`_08[K@CG.#NA8'4>YO#BRW'%W.FWQV,(-4
XM97H\C:DQ/OYW2+E>+.6N01S^<9,0R-V8((-C&YR*$3+94<AIA2%S!X><%2`R.
XMIY#(^P_J`CUL<9$S,N`"S!ZC(P]F38@60G)X',G6^%Q,AD#,,[Y`B$B'_E`B(
XML$/CU@[%7@J*;F8/6C4WM8<1RE[;TX>9.36KYM7<K=(;]K#,;N"87EGQ>Q#%W
XM0V4.$1L3EOED9LP%E^M6N,W8@C"0UMD0B]/@!_L=^]&<+K$E)Q*5F5Q@9H0B-
XM!P^,E,B7Z<=KQBHQT0S<Q-9+&W:B:-*Z'DGHJ3ZZZ+%<'UZ$?5U9)5*O$*HKZ
XMC5QO!0'0H<V]N2&1(V*MXY$/\/DZJU3^R<N^$^8P%=QEVJ8'>+9GDK/Z"I%)I
XM!F<4/]HP',^I5M!L?W*A.)1+!4N,S%V)70[R>.B9RB$A#!%DZE(.JM(0OU-:,
XM&N$1AO@HLVV??%),!9V:0$:LT$&6TVVE(3$A0._HFA`N)-5!+UJY;6Y7K(L5A
XMW=:NP;RI(:-%TX"0SW!N$<%:.N>[4ATT$D3/504/:/#,G*0Q;O`LMLY)+H\+-
XMB0;BR<<`;CS!"F2*&,%F\Z.?$@\K;;:=A<;9`H+=&5`P'61YR"SJ`:68Q?\(D
XM825OTWCIU)`LD(Q_2UT$>1^;#:>%7E#8'&@!JW$X=@T+L2R@#-1U'J5UR0'6#
XMNB!8\41AI<X^6+3EK%F9J@2.!0D;)(8EY:!9X:=38\[P-NY/PWS<81'2),1(8
XM2[*',,WPJ$7("+,OE'5L]FY(!]RMD)?8W'OX?DMT2<M.)*;MH'1D6BAC>DIW]
XMH2;&4TV?&-(Q63I.=T\]#0>^M(L1TY1"63.QM66FW9.ZT;AKVGF(/S<-IZ%3J
XM5%)AI#4ZNH`[S>HX0Y>NUGQ:/%3)/PV4!?7!+-1C$U%'!K(Y;+.THSZ,B;C-S
XM:H5)'00J-6'=RE1`OCY#"4)!G62G)CV?6@.+Z@9$JHF*J;:H7BI5;XV?FRDJ/
XM<U7#S*QY(6SF#.0..9!R`T',+>U1,AC@K*R5VPO9,#MFR^RDX)K+PA>H:K(9@
XM+233OM<7/+;CR<T-<2X\1&F'^'[S:ZYJC6\XDP5K1FJ.LPQFB0L'4S'G&SP2,
XMGW-)C,XG,3LH[(AHFX\V+^(!,BND=F?Q+!>WV9Y8<';1/(>S]%R=,R-[SIG3[
XM.C[_ZOG,'G)$AK,1^=EF(VVC;$_^\[]CJP&#0.^I67J@05^")G[&SY>4#M/Y7
XMH&V?!39%IP1&Y^TY<+-U'>LJ@_3O9NC5K8!1)H3O`AR-:D.:/P"!_K;"@$EX]
XM'N4\\@0IW0"AE+K17/<("`PO%W!@PFA9?,0AP@=@DQRG+?2MOI37G\9Q*NC$&
XM#0*N(4SIGW)94D^'P&I;+#7"WMI^@6%O:H?=;2$V;0#5)D,A4>P!8K&'W:G.>
XMV%`BOVWL5;T86C5LA=6QFOHV0L0FDT&`K:[)W)?I`&YJ*[@I-!OP28+Z<+>+V
XMQ-V@6VL%7DVD`G+;;ZKALV7%Y5;.R@+&B8?._1X^=X0(W>1O=+^!TJT53C=4G
XMD`(F##/,;(<PLI%59V9DS.H&)%+1K+)-T$UH5C;@96_P%<["6SA#(`\8_/M:E
XMV;ZPLS%F&-RRSG09,Z'>7+2U0@R?&(TO9<ZL*&28/\:\"`(A>&V<RZAT1INFH
XM1[R,0J\YD\0G8!*G0/-5SQH"GL7$GCBYQ$`@L0-L("@"))2R$[-9V4YP9[LNW
XM?K/SS(YE7]N^X'[QBFF+F!<V2(\9M77]0K(BN:SA!LY'__A3YUILSPL"?3AS6
XM!DHNM?['A$G$HS(1*P>FNB+WQC1&I4X"8C*$7YY1L&0QV*BFR;PB-%;)O;M7I
XM#(,'_<H=^&M:"2L8I?@&X?L;'HAA"?VX^R079X487#H\(F=Y`T"4M+S7^A-?Z
XM,?6THZ_I]\+>UZV27PG%?N4._76KI/+ZN\J1;WC`D[;)D:,4F[,V/Q7)!.9<+
XM19BO7U'NA(UY*4?FIYS]5H&QPB?"3EAQ,Y(E42#7L.)"?#59H-O,`K)T/P!AS
XMG((L=`6\*$5^Y%1-8]:XZFR,J;HC\5Z7J3T%<'#63@([N,GM92=T7)8Y$+:_X
XMSMS-K*%/_"=8``)(PNQ!58+R8<[-23D4!N=26)G_"55^?*'9%(`/L%!\0-B:T
XM]FI"+7Z;YG?6?^(GO;)@HSACV0L)N2XL9/#0D#,U5)B(B#EV>62(9#6F0!'?+
XMR(%9YX8YHF[87C*MAG?O6YC&;P8P'<SY5D'G:46=^Q9V'B3<.;!F#VYFGK^!7
XM>FYS,R?,I*NOII^;EW^NM0*Z(5*\!-V@6W$=+!=X,*-HZ".=F9=T\"#1[01%&
XM]\(7?4AH]&"N>SEZ,7_"WSP*A_,7X-!'K#/OB"B]E(@/HXY*7`/(GMD=7%EY6
XM<$8F$VQ`/"3AD\R$>_:;H,)=N&D_[2&;/%!V@I>S:3B6K<WB8;6[!J`-%W;SX
XM#L?BLAV'$(:ZHQB"INPXZA?Q3]Z;.SX;DH4>M^D%O6I/G*L-!:0S]&;,6@$C6
XM5_;<L!7Y@(*Y`=9]#)B![&X&L'L+$`/6?0[01"&PG5424QR*@C(F'H&;*!A-H
XM`U/4SBE)#Y0!IC@$NF(;(`-,T0UL9SU^DWR40>+O9IP-H?%NEK9!%GINQU@<,
XM*N3VT-';90.TB"41.M,2JID^/)*%"]V3T8*XY_&/2#6>`+:(NE*+BTS+V40H1
XMISL\9@VON+D0+GP!+*J3'E-)T:NRK0J?\;#$R16@).=7B/8'8S36=EWCM#&5Z
XMQ,:IY9NA1.!#(=$TO(&=H8&^&GEUO';?2[U(G$(%,/`_$J=\[YE'$/Z!Y78QE
XM&^#-,=0T/YY3">QG2OYFQ`U``&:/1F$AQBF?)/O%V%JE*LP+.LSBH&T6NT`,E
XM2`.1OP$+$KAFU+8U:Z84W$J*&_!JO$^3+_/](>^>^32?R:&"EI=34&G<>A]6'
XMX@:.Q_T>C:^&RF^(,G#E]XZ<A[KM\M"W@%GK)Y-XE'F:;X`QVIQP03H$2:05.
XM]7F7B`Z)#*<'$(!\?P^<"5N^3U$=;W*3EL,6N:J.[&KX!.*'R",+]M=\EVS(,
XMRD)$/UR&0Q"HB/0.B,`4*TW%I^^>!R&N^H:APB]>34/C"3'@E8Y@4@'BY<?&`
XM8<LI51P*("3?-;9]IB@J]2(&#)-X;P-@M5-OW^Z;)DOUQ]9TLD)N;^TZ^[4K"
XM4UWR[\WO<=F0R)6(RKF^P=DF1#:%MIVPTE(*"_([`N,!L1<G[31T#,RJ:=I[?
XMT8*W8*;4#,^<D>D4M=82:Z\&HVE1$\H^*HRHYQ-$=$9,4VR*NDR)+B-"Z,3,C
XM^>CW]_$_PWN4)A<R,6=@@=,X=UFUY:?(FJ@,M1@-YIT'9I@76732>J)082K*$
XMT*A<>?MD7Z0&<?IJH!*BNBZ5Q..#ETW"3N?%YI;7QQW00*F*YC"V1I0I-B4`)
XMFMT;,W+<LXBF@?O(]1(31\A0A@")J#<2S(M]W)M#<E["U&YTM_\67&345\.()
XMJ^W'00-B(&PU8D%D3^=`H`WT%T1GM(>4#_+)Z\/3&77\C-UY2W1%^(?#J?-HV
XMX::J.?-:4A+N:]D322`)4(TAH/*`=-@PCV>_+R"@O-)&&@]MO#<Q`P<<C(217
XM$DY]<"#16//@DS\;(>O9`^5%$!-BFCY\-U\$`>J+,R4Z/Z*B_OY''`3TT<\5R
XM5I^)Y(I:^#RN*DK93;D?+11Q_P<:EU2E$_H[:Z/MF?3?_\Z_4VY<8H3@Z9D0L
XMK+R'`/,>K$7`I18>M&TV5Z15@?4+[M_Z<S&<4I\#1/("0"@9E=#WG]$_B8&+&
XMAPTY3](<&U!<M17'E6_QW*T*S96X`9><:-459W!=N5=&`'RE])AM=]TNL=%M?
XM<X?=,:?8A7136%M1`2$6]EQ,YV(I*>1)I*-.*6)=7]BB7AA&D=5'A*IT0()$<
XM0X4)/2G!B%HB32@\1>!EQ/:E7G@5H*;9\&AZF#01D&@&*8ZATAYX4#X&^3<_0
XM)&).RFXR1TA@7824$!:``0D8'R!?5#2T'TQC^\T.WLOGE$-L?X;)J0("@`'0'
XM`?F4,X`!?(*6X9#(0-:%^F)=='U+7+N%^(4%\9@`I2ND5.Y$DO+3T`:OQM=G@
XMC70-OA(=H&702D/$E%0E"300Q/3UDO52V)>^MWWQ>ZI=$0?P%40"'\\6VZF""
XMYI?D==/997P!7O8^\'0+G6^V%0!U;XE0MYB!9/!,4$>1_8+I6S'8PNQ2J`:3>
XM)9-%=:=@KL:A:0:Y`A\H%_B!Z0$@.!T(@FL6(;A_R`Z'H*8A!NH&742>UW`=N
XM.C56!P$)[H#%6_-0CE2"[0)_`K5P!IG@)ICN<354$F,T&X2"2A8OA>\Q@U$6M
XM*BAYP8(S'"M(FPU\K^!TEYO)@G593N<^Y&6X8`]F7'A$E]T*E]DM,B2;V%,2L
XMV$/+#=H3$]Q#S\I-8!+D0RP(:B<2CH3]D&I7,>0]0$<-MWQX1/.*;B:T$6-$:
XMV\+6%WA$\HV\)4@X79//HA,O6#^1PAXG;=T*,YXQ(<CI@'M'7,4DO$T7FF5@F
XM\0448]Z%(^"M/N69@=?&[44^75;@1!F`A\&>I0,I/&5:V>=9#&9#7\`1H-T*Q
XMU@CH8]>8/D=A6@)<[4D!QRR$&IP`9E_CH(&-=0<$U3`%6`8N6/!3,.&!N=;QS
XM))&P>)<2T50O5&/SV]/23Y!X7(O@,=2Y`>$'<?`"W"Z03F4P"XT!])96@`*P4
XM6;D<5,"#34"J!<*&Q55"&Q#^1[C(49M0%'@QC#G\R(?"N8A%;)8/(!:M+M?,K
XM'B`6+85M``W4%X1:0LR0\/S)!]$?+,*9L`]8!3QR7M%]1B#FU?T!A=2/C4,,S
XMY17DTB5&&YH%5$,60#9@-&&`<.!"J1Q0T`4UEB40IJ%`4:>%!5\@\"29H1=S)
XM`$B"!JP*8<7?5OZ)#V0@MG4QI``9@H1WZOU.[$GIMRYM!3H?+&0JU":,SUA(#
XMOJP21%,_A4.\!@P6IL`&V`^@6B=QVCB"W:&+03E<*0%)EE*<W"*T4Y3!\?4%2
XMN=,5L@6>`6'(MF6FD1K?F(^!+G`7)!5X9?\%(T63HK'^H13MFK^U(;I8CLZQ>
XMP&2(B&&#=*>1527`R5;BU<%S<HY]-CO!2H-)IH$A&D,!1IDF'X(JV,*&D._4V
XM!H'.C0'@6$)A`2W'$Q18;@`Z,07\6J_#^20I*(GE@I30)%(\0^(YD0?`AX<!1
XM??A!@5![A<E5T70QWM2V0?\Y,39&/Z/F[52,4\C@-U$27@`"X`6H+R0``D`"7
XM[!V]VQT`5'1J((5L,/`H.E2#Q;-_(0@5(A0Q;(&%R8MA-"H$6ERBG\--]3OF<
XMC?P@\X!^SE-+4?.\$^D#RM)*B!`%U!L3QT1M-^+QH&[\`-B$Y"??-0]0@>0W,
XM4D$%*``"-?;]'>T:I],:LDVLT.12A5PS^=A?8:@$BBZ-70-4@(']C/#$9!`9H
XMOT->\25")+@)MA`"(``AP``1UD!<&$U[("$8BD]3ML$V'!-EQD@#C8D<E@%A*
XM**#9%(L<._6_K2HR7?)C+I*%[V`9"%!%25G!XX5CV#XG16KBB;R`^-4HY\U]W
XM=#-@6%%9W(#3P?+5/;V)_Q2*.*LD3WO2?_<1)3'CH/F@^Q!,$L*L@3<U)'M(G
XMO=9%U(CLP8?3-T![CL2>U'K51B%8/J@PM6_\(*XV9?E[)^%WLWRHA$`'2RCX>
XM($/:XL;0%#)LG$%>XKOL+@O?@B#]W3EYTV^S;6R*ND-E<X`0(;`7]2<OHHA!,
XM1=?P)RE6^92].)U\#!AC:K)4,%*71N1'Q%ENXL/3N"P@))1-90C2I`%O85PH2
XM\*2#=.%@5),0$%T#;1B1]#7VPY\BW)U+J%.(D!E2..\$5F5N!1@\`&T8)$8+5
XMK8/6D"Q\'+@1;A25"!$T2M_4;#@^ELKYH#@P;AA$//,;J4N$D56U'Y):QU,2E
XMQSXY.ON,>D$V32F*WYU"#I(*AXFY%:KT!3R.UC`K$([OWSM18H!6+DV]5+ZAO
XM$KE!B/05OC7HA(2G,8*(7=[M,#JF@03/[3@Y7@HH@!LVAD5A4U@1=H3=C7W!W
XMW[)<S%777QY"N/!-)D\?$B+P"\V/`M<7'`_=E-?07!1>I@1((BN8CB(?B7%0I
XMD`MBHUS57!"(PP/H)$;<,^9AYW6R>(\(H&2"R2D.U062`9&@`.@/5G"S2%2DD
XM">.R.]P_]$(8L#HX/_E%PABE.#Y[R&#8-(4(E$D=\+0(2Y+*:/,JH!(IS8[$>
XMM`Q,CH$@`3EZ"7G&(T(Z9HQ0R1!8<*1]NN,]AD_X?//"-ZCAK6X3V@"7'%QHQ
XM>8CJA]=P<A&/VRB,!`F](3456;U*E`9&4]H<9>7#U`==?(4EGP:UY"Q#8(<6M
XMM`*B<0E>U),'H&0Z0`@@B80[E<&UTP9,D8E3>A`"9)%5SP)315(P%TSLE<!0>
XMD35)`L,'.#`I@+FC`Q@P;^,QD<$4B&@!Y[0QZ``+C-DE1JH`;Z394`989K)<T
XMU`.+-"IYUX0P(7`V=!4_]E%\:EU4Z3!B!$T"%)L5*>(0DN"0D0;@`73<I(!T`
XM`0@S0M\`.$`GFY12IT%-%9NDR-`?>)(1@K0V*,T/R^(E22_(!V*"FU'VC8M32
XMUQQS&(H'6R1*5M$,"73#AU-(O@>'Y.B22*(JW5;8MD[M3E77<S15V&X'X+JRV
XMK14LK20F.1Y&,-")'W1N]4:+61PI+1PP0<P<:3%V#;'"I4"++`ATUGL06,02)
XM/*":@P(HB&V$#T1Z3(++`VW(F"@&LPD`EPV97<ADFY4P<0:D8%.5,D),DA!4[
XMH#M6DDW&)9E)BG6=Y(+P2=X5H>1B2$J&#)SD*:E0II+FVI=$$EZ4&&5&J5$JV
X!!3M66
X``
Xend
Xsize 14356
__END__OF__THIS__FILE__
exit 0
: end of shell archive

-- 
Frank Kaefer # fkk@stasys.sta.sub.org # Starnberg, Germany
Xref: sparky de.comp.sources.os9:15 comp.os.os9:1560