Index: kit/CHANGELOG
diff -u kit/CHANGELOG:1.9 kit/CHANGELOG:removed
--- kit/CHANGELOG:1.9	Sat Sep  5 00:11:21 1998
+++ kit/CHANGELOG	Mon Mar  2 05:10:01 2009
@@ -1,51 +0,0 @@
-CHANGELOG for magicpoint
-$Id: CHANGELOG,v 1.9 1998/09/04 15:11:21 onoe Exp $
-
-Fri Sep  5 1998  onoe@sm.sony.co.jp
-	* handle key inputs from invoked terminal as pressed on Xserver,
-	  even if the Xserver is running on a remote host.
-
-Mon Aug 26 1998  itojun@iijlab.net
-	* new copyright. (BSDish copyright without clause 3)
-
-Mon Aug 25 1998  itojun@iijlab.net
-	* print.c: better x11/freetype/vflib -> postscript font mapping.
-
-Mon Aug 23 1998  kato@wide.ad.jp
-	* embedded image support (added mgpembed.pl and embed.c)
-
-Mon Aug 22 1998  itojun@iijlab.net
-	* added contrib/xmindpath, MindPath PocketPoint user-level driver.
-
-Fri Jul 10 11:57:59 JST 1998  itojun@iijlab.net
-	* cache gs-generated image file.
-	  Suggested by: luigi@FreeBSD.org
-
-Mon Jul  6 11:38:32 JST 1998  itojun@iijlab.net
-	* capable of handling GB2312 and KSC5601 encoding.
-	  they must be encoded by using iso-2022 like escape sequences.
-	  EUC-cn or EUC-kr does not work.
-	* -x option is added.
-
-Thu Jul  2 18:04:16 JST 1998  itojun@iijlab.net
-	* eliminate gsview.
-	* revamp "xfont" directive. (see SYNTAX for detail)
-
-Thu Jun 25 13:10:28 JST 1998  itojun@iijlab.net
-	* print.c: color postscript support by "mgp2ps -c".
-
-changes between 1.02a and 1.03a:
-	* To allow color name that has space inbetween ("dark blue"), 
-	  color name after directives SHOULD come with doublequote.
-	  Therefore,
-		%fore blue
-	  should be
-		%fore "blue"
-	  At this moment, doublequote can be ommitted for backward
-	  compatibility.  We may require to have doublequote in the future.
-	  Font names and other string parameter obeys the same rule.
-	* %image is now capable of rendering encapsulated postscript files
-	  (*.eps).
-		%image foo.eps
-	  should work fine.
-	  By using -X option, you can specify device name for ghostscript.
Index: kit/Imakefile.in
diff -u kit/Imakefile.in:1.54 kit/Imakefile.in:1.55
--- kit/Imakefile.in:1.54	Mon Dec  3 18:08:40 2007
+++ kit/Imakefile.in	Tue Feb 24 18:36:15 2009
@@ -1,4 +1,4 @@
-# $Id: Imakefile.in,v 1.54 2007/12/03 09:08:40 nishida Exp $
+# $Id: Imakefile.in,v 1.55 2009/02/24 09:36:15 nishida Exp $
 
 @SET_MAKE@
 srcdir=	@srcdir@
@@ -10,6 +10,8 @@
 	scanner.o grammar.o postscript.o tfont.o embed.o unimap.o mng.o m17n.o
 PROBJS=	print.o parse.o globals.o x11dummy.o scanner.o grammar.o postscript.o \
 	embed.o 
+JSOBJS=	js.o parse.o globals.o x11dummy.o scanner.o grammar.o postscript.o \
+	embed.o 
 LIBOBJS=	@LIBOBJS@
 OBJS=	${TPOBJ} ${PROBJS} ${LIBOBJS}
 LIBS=	$(srcdir)/image/libmgpimage.a
@@ -31,7 +33,7 @@
 #undef ServerCDebugFlags
 #undef LibraryDebugFlags
 
-AllTarget(mgp mgp2ps)
+AllTarget(mgp mgp2ps mgp2js)
 DependTarget()
 
 #ifndef NullParameter
@@ -40,6 +42,7 @@
 
 NormalProgramTarget(mgp,$(TPOBJS) $(LIBOBJS), $(LIBS) $(EXTRA_DEPLIBS), NullParameter,$(XLIB))
 NormalProgramTarget(mgp2ps,$(PROBJS) $(LIBOBJS), $(LIBS) $(EXTRA_DEPLIBS), NullParameter,$(XLIB))
+NormalProgramTarget(mgp2js,$(JSOBJS) $(LIBOBJS), $(LIBS) $(EXTRA_DEPLIBS), NullParameter,$(XLIB))
 
 InstallProgram(mgp,$(BINDIR))
 InstallProgram(mgp2ps,$(BINDIR))
Index: kit/ctlwords.pl
diff -u kit/ctlwords.pl:1.2 kit/ctlwords.pl:removed
--- kit/ctlwords.pl:1.2	Sat Sep  5 06:05:08 1998
+++ kit/ctlwords.pl	Mon Mar  2 05:10:01 2009
@@ -1,12 +0,0 @@
-#! /usr/bin/perl
-$counter = 0;	# 0 origin
-print "/* generated by ctlwords.awk. do not edit by hand. */\n";
-
-while (<>) {
-	next if (!/^\/\*CTL\*\//);
-	next if ($_ !~ /(CTL_[A-Z0-9]+)/);
-
-	$word = $1;
-	print "#define $word\t$counter\n";
-	$counter++;
-}
Index: kit/js.c
diff -u /dev/null kit/js.c:1.1
--- /dev/null	Mon Mar  2 05:10:01 2009
+++ kit/js.c	Tue Feb 24 18:36:15 2009
@@ -0,0 +1,389 @@
+/*
+ * Copyright (C) 1997 and 1998 WIDE Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * 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.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLER
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * $Id: js.c,v 1.1 2009/02/24 09:36:15 nishida Exp $
+ */
+/*
+ * Paper size selection code is based on psutil.c by Angus J. C. Duggan
+ */
+
+#include "mgp.h"
+
+/*------------------------------------------------------------*/
+
+int
+main(argc, argv)
+	int argc;
+	char **argv;
+{
+	u_int opt;
+	extern char *optarg;
+	extern int optind;
+	char *progname;
+	static char pathbuf[MAXPATHLEN];
+
+	progname = argv[0];
+
+	while ((opt = getopt(argc, argv, "mciVrf:x:y:p:e:X:Ptg:")) != -1) {
+		switch (opt) {
+#if 0
+		case 'm':         /* Added by Arnd Schmitter 23.07.2004 */
+		  PauseMode=1;
+		  break;
+		case 'c':
+			colorps++;
+			break;
+
+		case 'i':
+			painticon++;
+			break;
+
+		case 'f':
+			strcpy(outputfile, optarg);
+			break;
+
+		case 'r':
+			reverse = 1;
+			break;
+
+		case 'V':
+			mgp_flag |= FL_VERBOSE;
+			break;
+
+		case 'x':
+			paper_xmargin = atoi(optarg);
+			break;
+
+		case 'y':
+			paper_ymargin = atoi(optarg);
+			break;
+
+		case 'p':
+			paper = findpaper(optarg);
+			if (!paper) {
+				fprintf(stderr,
+"Paper size '%s' not recognised. Using %s instead.\n",
+					optarg, DEFAULT_PAPER_SIZE);
+				paper = findpaper(DEFAULT_PAPER_SIZE);
+			}
+			break;
+
+		case 'e':
+			for (encoding = &encodings[0];
+			     encoding->name;
+			     encoding++) {
+				if (strcmp(encoding->name, optarg) == 0)
+					break;
+			}
+			if (!encoding->name) {
+				fprintf(stderr, "unknown encoding %s\n", optarg);
+				exit(1);
+			}
+			break;
+
+		case 'P':
+			parse_debug++;
+			break;
+
+		case 't':
+#ifdef FREETYPE
+			usetfont = 1;
+#else
+			fprintf(stderr, "you can't use this function with this version\n");
+			exit(-1);
+#endif
+			break;
+
+       case 'X':
+			if (strcmp(optarg, "freetype") == 0)
+				mgp_flag |= FL_NOFREETYPE;
+			else {
+				fprintf(stderr, "unknown rendering engine %s\n", optarg);
+			}
+			break;
+
+		case 'g':
+			gaplevel = atoi(optarg);
+			break;
+
+		default:
+			print_usage(progname);
+			/*NOTREACHED*/
+		}
+#endif
+	}
+
+	argc -= optind;
+	argv += optind;
+
+#if 0
+	if (argc != 1) {
+		print_usage(progname);
+		/*NOTREACHED*/
+	}
+#endif
+
+	mgp_fname = argv[0];
+
+//	init_win1(NULL);
+	load_file(mgp_fname);
+//	init_win2();
+	fore = 0UL;
+	back = (1UL << depth) - 1;
+//	print_out();
+
+	exit(0);
+}
+
+static struct fontmap *
+findfont(ctrl, lang, font)
+	int ctrl;
+	int lang;
+	char *font;
+{
+	struct fontmap *p, *q;
+	char *star;
+
+	if (!font[0])
+		return NULL;
+
+#ifdef FREETYPE
+	if (mgp_flag & FL_NOFREETYPE && ctrl == CTL_TFONT)
+		return NULL;
+	if (lang == ASCII && usetfont)
+		if ((p = findttfont(ctrl, lang, font))) goto found;
+#endif
+
+	for (p = fontmap; 0 <= p->ctrl; p++) {
+		if (p->ctrl != ctrl || p->lang != lang)
+			continue;
+		star = strchr(p->font, '*');
+		if (!star && strcmp(p->font, font) == 0)
+			goto found;
+		if (star && strncmp(p->font, font, star - p->font) == 0)
+		{
+			if(strcmp(font,"k14")==0)
+				goto found;
+			if(ctrl ==CTL_PSFONT)
+				fprintf(stderr,"PSFONT: %s  not found\n",font);  
+			goto found;
+		}
+	}
+	return NULL;
+
+found:
+	if (p->fontid)
+		return p;
+
+	p->fontid = ++maxfontid;
+
+	if (mgp_flag & FL_VERBOSE) {
+		char fonttype;
+
+		switch (ctrl) {
+#ifdef FREETYPE
+		case CTL_TFONT: fonttype = 't'; break;
+#endif
+#ifdef VFLIB
+		case CTL_VFONT: fonttype = 'v'; break;
+#endif
+#if 0
+		case CTL_XFONT: fonttype = 'x'; break;
+#endif
+		case CTL_XFONT2: fonttype = 'x'; break;
+		
+		case CTL_PSFONT: fonttype = 'p'; break;
+		default:	fonttype = '?'; break;
+		}
+		fprintf(fp, "%% %cfont \"%s\" seen, mapped to ps font \"%s\"\n",
+			fonttype, font, p->psfont);
+		if (strcmp(font, p->font) != 0) {
+			fprintf(fp, "%%\t(wildcard match against \"%s\")\n",
+				p->font);
+		}
+	}
+	/* use the same font index for same PS font names */
+	for (q = fontmap; 0 <= q->ctrl; q++) {
+		if (strcmp(p->psfont, q->psfont) == 0)
+			q->fontid = maxfontid;
+	}
+
+	return p;
+}
+
+static char *
+fontstring(font)
+	struct fontmap *font;
+{
+	static char fontname[10];
+
+	sprintf(fontname, "F%03d", font->fontid);
+	return fontname;
+}
+
+static void
+loadfont(font, name)
+	struct fontmap *font;
+	char *name;
+{
+	if (!font) {
+		fprintf(stderr, "unable to find proper font for %s\n", name);
+		exit(1);
+	}
+
+	if (font->loaded)
+		return;
+
+	/* define font calling sequence */
+	if (mgp_flag & FL_VERBOSE) {
+		fprintf(fp, "%% loading font \"%s\" for %s\n",
+			font->psfont, font->font);
+	}
+	if (font->lang == ASCII && encoding) {
+		/*
+		 * Symbol font does not need latin1-encoding
+		 */
+		if (strcmp(font->psfont, "Symbol") == 0) {
+			fprintf(fp,
+				"/%s%s\n"
+				"	/%s findfont\n"
+				"		dup length dict begin\n"
+				"		{1 index /FID ne {def} {pop "
+				"pop} ifelse} forall\n"
+				"	currentdict end\n"
+				"definefont pop\n",
+				fontstring(font), "t", font->psfont);
+		} else {
+			fprintf(fp,
+"/%s%s\n"
+"	/%s findfont\n"
+"		dup length dict begin\n"
+"		{1 index /FID ne {def} {pop pop} ifelse} forall\n"
+"		/Encoding %s def\n"
+"	currentdict end\n"
+"definefont pop\n",
+			fontstring(font), "t", font->psfont, encoding->defstr);
+		}
+
+		fprintf(fp, "/%s {/%s%s findfont exch scalefont setfont} def\n",
+			fontstring(font), fontstring(font), "t");
+	} else {
+		fprintf(fp, "/%s {/%s findfont exch scalefont setfont} def\n",
+			fontstring(font), font->psfont);
+	}
+	font->loaded = 1;
+}
+
+void
+cleanup(int sig)
+{
+	/* dummy */
+}
+
+#ifdef FREETYPE
+/* 
+	get fontname from ttffile for ttfps 
+ */
+static struct fontmap *
+findttfont(ctrl, lang, font)
+	int ctrl;
+	int lang;
+	char *font;
+{
+	TT_Error	error;
+	TT_Face		face; 
+	TT_Face_Properties	properties;
+	u_short		platform, encoding, language, id;
+	u_short		string_len;
+	struct 		fontmap	*pfont;
+	char		*string;
+	char		pathname[256];
+	int			i, n, found = 0;
+	static TT_Engine	engine;
+	static int	initdone = 0, findex = 0; 
+	static struct fontmap	**loadedfont;
+
+	if (!font) return NULL;
+
+	/* already registed? */
+	for (i = 0; i < findex; i ++){
+		if (!strcmp(font, loadedfont[i]->font)) 
+			return loadedfont[i];
+	}
+
+	if (!initdone){
+		/* Initialize engine */
+		if ((error = TT_Init_FreeType(&engine))){
+			fprintf(stderr, "Error while initializing engine, code = %d.\n",
+				(int)error);
+				exit(-1);
+		}
+		initdone ++;
+	}
+	error = TT_Open_Face(engine, font, &face);
+	if (error) {
+		/* add freetypefontdir and try again */
+		snprintf(pathname, sizeof(pathname), "%s/%s", freetypefontdir, font);
+		error = TT_Open_Face(engine, pathname, &face);
+		if (error) return NULL;
+	}
+
+	TT_Get_Face_Properties(face, &properties);
+	n = properties.num_Names;
+	for (i = 0; i < n; i++) {
+		TT_Get_Name_ID(face, i, &platform, &encoding, &language, &id);
+		TT_Get_Name_String(face, i, &string, &string_len);
+		/* this check may be weak.. */
+		if (*string && id == 6){
+			found = 1;
+			break;
+		}
+	}
+	if (!found) return NULL;
+
+	/* create fontmap */
+	pfont = (struct fontmap *)malloc(sizeof(struct fontmap));
+	pfont->ctrl = ctrl;
+	pfont->lang = lang;
+	pfont->font = font;
+	pfont->psfont = strdup(string);
+	pfont->fontid = 0;
+	pfont->loaded = 0;
+
+	/* regist loaded font */
+	if (!findex)
+		loadedfont = (struct fontmap **)malloc(sizeof(struct fontmap *));
+	else
+		loadedfont = (struct fontmap **)realloc(loadedfont, 
+								sizeof(struct fontmap *) * (findex +1));
+	loadedfont[findex++] = pfont;
+
+	return pfont;
+}
+#endif /* FREETYPE */
+
Index: kit/image/gif.h
diff -u kit/image/gif.h:1.2 kit/image/gif.h:removed
--- kit/image/gif.h:1.2	Mon Dec 28 17:23:03 1998
+++ kit/image/gif.h	Mon Mar  2 05:10:01 2009
@@ -1,72 +0,0 @@
-/* gif.h:
- *
- * gifin.h
- * kirk johnson
- * november 1989
- * external interface to gifin.c
- *
- * Copyright 1989 Kirk L. Johnson (see the included file
- * "kljcpyrght.h" for complete copyright information)
- */
-
-/*
- * gifin return codes
- */
-#define GIFIN_SUCCESS       0   /* success */
-#define GIFIN_DONE          1   /* no more images */
-
-#define GIFIN_ERR_BAD_SD   -1   /* bad screen descriptor */
-#define GIFIN_ERR_BAD_SEP  -2   /* bad image separator */
-#define GIFIN_ERR_BAD_SIG  -3   /* bad signature */
-#define GIFIN_ERR_EOD      -4   /* unexpected end of raster data */
-#define GIFIN_ERR_EOF      -5   /* unexpected end of input stream */
-#define GIFIN_ERR_FAO      -6   /* file already open */
-#define GIFIN_ERR_IAO      -7   /* image already open */
-#define GIFIN_ERR_NFO      -8   /* no file open */
-#define GIFIN_ERR_NIO      -9   /* no image open */
-
-/*
- * colormap indices 
- */
-
-#define GIF_RED  0
-#define GIF_GRN  1
-#define GIF_BLU  2
-
-/*
- * typedef BYTE for convenience
- */
-
-typedef unsigned char BYTE;
-
-static int gifin_open_file();
-static int gifin_open_image();
-static int gifin_get_pixel();
-#if 0
-static int gifin_close_image();
-#endif
-static int gifin_close_file();
-static int gifin_load_cmap();
-static int gifin_skip_extension();
-static int gifin_read_data_block();
-static int gifin_push_string();
-static void gifin_add_string();
-static void gifin_fatal();
-
-/* #defines, typedefs, and such
- */
-
-#define GIF_SIG      "GIF87a"
-#define GIF_SIG_89   "GIF89a"
-#define GIF_SIG_LEN  6          /* GIF signature length */
-#define GIF_SD_SIZE  7          /* GIF screen descriptor size */
-#define GIF_ID_SIZE  9          /* GIF image descriptor size */
-
-#define GIF_SEPARATOR   ','     /* GIF image separator */
-#define GIF_EXTENSION   '!'     /* GIF extension block marker */
-#define GIF_TERMINATOR  ';'     /* GIF terminator */
-
-#define STAB_SIZE  4096         /* string table size */
-#define PSTK_SIZE  4096         /* pixel stack size */
-
-#define NULL_CODE  -1           /* string table null code */
Index: kit/sample/cloud.gif
Index: kit/sample/dad.gif
Index: kit/sample/dns-jp.mgp
diff -u kit/sample/dns-jp.mgp:1.5 kit/sample/dns-jp.mgp:removed
--- kit/sample/dns-jp.mgp:1.5	Fri Sep  4 21:33:18 1998
+++ kit/sample/dns-jp.mgp	Mon Mar  2 05:10:02 2009
@@ -1,130 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%%	This file is automatically created from the file
-%%	main.pre modified at Fri Jan 23 14:31:24 1998
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%include "default.mgp"
-%% "noop" cancels definitions in default.mgp
-%default 1 left, size 7, fore "light yellow", back "blue4", font "standard", ccolor "white", vgap 35
-%default 2 noop
-%default 3 fore "white", bar "gray70", vgap 10
-%default 4 noop
-%tab 1 noop
-%tab 2 noop
-%tab 3 noop
-%%%
-%page
-%nodefault
-%fore "red", back "blue4", size 9, vgap 15
-%center, fore "yellow", font "thick"
-%ccolor "white"
-
-
-
-Root DNS `M' $B$K$D$$$F(B
-
-%size 6, fore "red", font "thick"
-$B2CF#(B   $BO/(B
-
-%size 5, fore "white", font "standard"
-$BEl5~Bg3XBg7?7W;;5!%;%s%?!<(B
-
-
-%font "typewriter"
-kato@wide.ad.jp
-%font "standard"
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-
-%back "blue4"
-  $B7P0^(B (1)
-%fore "red", size 6, font "thick"
-   $B!y(B Root DNS
-%fore "white", size 5, font "standard"
-       $B!&(B $B#9Bf$G1?MQ(B
-%fore "white", size 5, font "standard"
-          $B!](B $B#8Bf$,(B US
-          $B!](B Stockholm $B$K#1Bf(B
-%fore "white", size 5, font "standard"
-       $B!&(B $B:GBg$G#1#3Bf(B
-%fore "white", size 5, font "standard"
-          $B!](B $B%Q%1%C%HD9$N@)Ls(B
-%fore "red", size 6, font "thick"
-   $B!y(B Root DNS $B$N1?MQ4p=`(B
-%fore "white", size 5, font "standard"
-       $B!&(B RFC 2010
-       $B!&(B gTLD $B$H$N4X78(B
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-
-%back "blue4"
-  $B7P0^(B (2)
-%fore "red", size 6, font "thick"
-   $B!y(B IEPG $B$G3HD%$r8!F$(B
-   $B!y(B $B%h!<%m%C%QCO0h(B
-%fore "white", size 5, font "standard"
-       $B!&(B LINX $B$K?7@_(B : 1997 $BG/(B 4 $B7n(B
-%fore "white", size 5, font "standard"
-          $B!](B RIPE/NCC $B$,4IM}(B
-          $B!](B `K'
-%fore "red", size 6, font "thick"
-   $B!y(B $B%"%8%"B@J?MNCO0h(B
-%fore "white", size 5, font "standard"
-       $B!&(B NSPIXP-2 $B!'(B 1997 $BG/(B 8 $B7n(B
-%fore "white", size 5, font "standard"
-          $B!](B WIDE $B$,4IM}(B
-          $B!](B `M'
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-
-%back "blue4"
-  `M'
-%fore "red", size 6, font "thick"
-   $B!y(B $B9=@.(B
-%fore "white", size 5, font "standard"
-       $B!&(B $B#2Bf$N(B PentiumPro 200MHz
-       $B!&(B Primary/Backup$B!"(B $B<+F0@Z$jBX$((B
-%fore "red", size 6, font "thick"
-   $B!y(B Root-only $B%5!<%P(B
-%fore "white", size 5, font "standard"
-       $B!&(B 
-%cont, font "typewriter"
-202.12.27.33
-%font "standard"
-       $B!&(B 400 $B!A(B 500 query/sec
-%fore "red", size 6, font "thick"
-   $B!y(B $B1?MQ4IM}(B
-%fore "white", size 5, font "standard"
-       $B!&(B WIDE $B$*$h$S(B ISP $BM-;V(B
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-
-%back "blue4"
-  $B$*4j$$(B
-%fore "red", size 6, font "thick"
-   $B!y(B $B:G?7$N(B root.cache $B$NF~$l49$((B
-%fore "white", size 5, font "standard"
-       $B!&(B 
-%cont, font "typewriter"
-1997082200
-%fore "red", size 6, font "thick"
-   $B!y(B Named $B$N99?7(B
-%fore "white", size 5, font "standard"
-       $B!&(B 4.9.6/8.8.1
-%fore "red", size 6, font "thick"
-   $B!y(B $BM7$P$J$$$G!'(B
-%fore "white", size 5, font "standard"
-       $B!&(B 
-%cont, font "typewriter"
-ping/traceroute
-%font "standard"
-       $B!&(B 
-%cont, font "typewriter"
-telnet/spray/...
-%fore "red", size 6, font "thick"
-   $B!y(B Thanks to
-%fore "white", size 5, font "standard"
-       $B!&(B $BF|K\(B Cisco/$BB?$/$N(B ISP
-       $B!&(B `M' $B4IM}%0%k!<%W(B
Index: kit/sample/mgp-old1.gif
Index: kit/sample/mgp-old2.gif
Index: kit/sample/mgp-old3.gif
Index: kit/sample/mgp1.gif
Index: kit/sample/mgp2.gif
Index: kit/sample/mgp3.gif
Index: kit/sample/v6header.gif
