Submitted By: Matthew Burgess (matthew at linuxfromscratch dot org)
Date: 2006-10-20
Initial Package Version: 1.18.1.4
Origin: http://ftp.debian.org/debian/pool/main/g/groff/groff_1.18.1.1-12.diff.gz
Upstream Status: This is a debian-specific patch
Description: Adds the ascii8 and nippon devices to groff for man-db.

diff -Naur groff-1.18.1.4.orig/ChangeLog.jp groff-1.18.1.4/ChangeLog.jp
--- groff-1.18.1.4.orig/ChangeLog.jp	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/ChangeLog.jp	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,345 @@
+2002-11-04  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* src/libs/libgroff/encoding.cc: for C or POSIX locale,
+		use ascii8 encoding handler
+	* font/devX*: new font desc for M, G
+	* src/xditview: support ENABLE_MULTIBYTE (Japanese only?)
+
+2002-10-09  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* update groff-1.18-7
+
+2002-09-23  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* src/roff/troff/input.cc: fix bug in wchar_charinfo()
+				check u<CODE> where <CODE> is 4- HEX chars
+	* src/device/grohtml/post-html.cc: works ENABLE_MULTIBYTE
+	* font/devhtml: add font M, G for Japanese
+
+2002-09-22  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* new multibyte patch
+
+2001-08-16  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* tmac/euc-jp.tmac:
+	  fix disappearing `-' char
+
+2001-07-21  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* add ENABLE_MULTIBYTE support to src/xditview
+
+2001-07-20  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* introduce "fontset" in font/*/DESC
+	  obsoletes "ondemand"
+
+2001-07-19  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* don't use input_encoding->is_wchar_code()
+	* fix troffrc empty line
+	* fix duplicate strcasecmp()
+
+2001-07-19  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* sub font selection move into environment::add_char()
+	  it makes possible to use \[uni<code>]
+
+2001-07-19  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* use generic iconv_handler instead of euc_handler
+	* internal code now uses UCS-2
+
+2001-07-19  Fumitoshi UKAI  <ukai@debian.or.jp
+
+	* wchar%x -> uni%X
+	  - still no code conversion
+	  - font description is not accurate
+	* change "fixed" to charset range
+
+2001-07-18  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* Configuration Change: 
+	   obsolete: --enable-japanese (#ifdef NIPPON) 
+	   new:      --enable-multibyte (#ifdef ENABLE_MULTIBYTE)
+
+2001-07-18  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* create charinfo for wchar on demand (src/roff/troff/input.cc)
+	* use "fixed" for font wchar metric (src/libs/libgroff/font.cc)
+	  - font/*/M,G
+
+2001-07-17  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* add utf8 encoding handler to src/libs/libgroff/encoding.cc
+	   (this utf8 encodig handler is too slow!)
+
+2001-07-15  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* based on groff 1.17.2-1
+	* use src/include/encoding.h instead of eucmac.h
+	* introduce src/libs/libgroff/encoding.cc
+	* introduce tmac/euc-jp.tmac for EUC-JP documents
+
+2001-05-24  Fumitoshi UKAI  <ukai@debian.or.jp>
+
+	* Apply for groff-1.17
+
+2000-01-06  Yoshiaki Yanagihara  <yochi@debian.or.jp>
+
+	* Apply japanese patch "jgroff-0.101"
+	  (thanks hanataka@abyss.rim.or.jp).
+	* Added japanese extention option at configure.in, aclocal.m4.
+
+Sat Jan  1 17:10:32 JST 2000  HANATAKA Shinya  <hanataka@abyss.rim.or.jp>
+
+	* jgroff-0.100 をそのまま groff-1.14 に適用して jgroff-101
+	  とした。
+	* grohtml を日本語に対応させる。
+	* 日本語マニュアル用に tmac.docj と tmac.andocj マクロを追加。
+
+Sun Mar 15 18:23:12 1998  Yoshiaki Yanagihara  <yochi@debian.or.jp>
+
+	* jgroff のベースを groff-1.11a に変更し、jgroff-0.99パッチを
+	  適用したものを jgroff-0.100 とした。
+	  基本的に jgroff-0.99 と機能は同じ *はず*。
+
+Fri Dec 22 11:47:46 1995  Kitagawa Toshiyuki  <tm-kita@kh.rim.or.jp>
+
+	* バージョン0.99。
+
+Mon Dec 18 18:28:37 1995  Kitagawa Toshiyuki  <tm-kita@kh.rim.or.jp>
+
+	* tmac/Makefile.sub: ターゲット stamp-wrap、uninstall_sub が一部
+	OSのshで構文エラーとなるオリジナルバグを修正。
+
+Wed Dec 13 15:09:26 1995  Kitagawa Toshiyuki  <tm-kita@kh.rim.or.jp>
+
+	* jgroff.sh: オリジナルでインストールパスが変更されたのに合わせ、
+	GROFF_TMAC_PATH、GROFF_FONT_PATHをshare/groff配下に変更。
+
+Sat Dec  9 15:28:36 1995  Kitagawa Toshiyuki  <tm-kita@kh.rim.or.jp>
+
+	* wchar.hからeucmac.hにファイル名を変更。
+
+Fri Dec  8 12:15:47 1995  Yoshio Takaeda  <shio@yinyan.bekkoame.or.jp>
+
+	* troff/env.cc(add_char): 『ASCII文字 + 改行コード + EUC文字』という
+	パターンの時、改行コードがスペースに変換されないバグを修正。
+
+Thu Dec  7 21:35:06 1995  Yanagihara Yoshiaki  <yosiaki@bsd2.kbnes.nec.co.jp>
+
+	* troff/input.cc (process_input_stack): gcc-2.7.0で変数定義がスコープ
+	違反となってしまう箇所を修正。
+
+Thu Dec  7 21:35:06 1995  Yanagihara Yoshiaki  <yosiaki@bsd2.kbnes.nec.co.jp>
+
+	* jgroffのベースソースをgroff-1.10に変更。
+
+Thu Apr  6 16:56:32 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* devdvi/M.proto-NTT: DNPのpkフォントのチェックサム値が0なので、こ
+	れに合わせてchecksumの値を0に変更。
+
+Mon Apr  3 20:36:37 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff/env.cc (possibly_break_line):
+	lineリスト中のkword_space_nodeを調整する処理で、line中にこのノード
+	が含まれていない場合は処理をスキップするようにした(EUCコードを含ま
+	ないroffを処理する場合にはkword_space_nodeは現れないので処理が高速
+	化される)。
+
+Mon Apr  3 20:36:37 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff/env.cc (add_char): hwkern、vlowerの初期化はdevice初期化後
+	に一度だけ行えば良いのでenvironmentクラスのコンストラクタでこれを
+	行うように変更。
+
+Sat Apr  1 17:57:23 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff/input.cc (mount_on_demand): on demandでマウントされるフォ
+	ント名をデバイスごとのDESCファイルで指定できるように変更。
+	ディレクティブondemandで指定したフォントがon demandでマウントされる。
+
+Fri Mar 31 20:23:43 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* libgroff/font.cc (load): 漢字フォントファイル用にディレクティブ
+	fixedkanjiを追加。これは各文字のメトリックが全て同じである事を指定
+	するもので、fixedkanjiが指定されている場合はcharsetは評価されない
+	ため漢字フォントのロードが速い。
+
+Thu Mar 30 18:20:24 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff: node識別を文字列比較で行っていたが高速化のため数値比較に
+	変更した。
+
+Wed Mar 29 20:20:49 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff/input.cc: 漢字フォント(MとG)をon demandでマウントするよう
+	に変更。これによって漢字を含まないroffファイルの処理時間が高速化さ
+	¤ì¤¿¡£
+
+Fri Mar 10 15:34:26 1995  Shigeki Yoshida <shige@theta.iis.u-tokyo.ac.jp>
+
+	* troff/input.cc (process): geqn¤Ç¡¢
+
+		.EQ
+		要素 sub 記号
+		.EN
+
+	を処理すると、"illegal token in argument to \Z"となってしまうバグ
+	(\Zシーケンスの引数にEUC文字が来た場合の対応漏れ)を修正。
+
+Mon Feb  6 11:22:33 1995  Yoshio Takaeda <e50110@sakura.kudpc.kyoto-u.ac.jp>
+
+	* troff/input.cc: 行頭禁則文字のEUCコードの一部が不正。
+
+Mon Jan 30 14:02:54 1995  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* バージョン0.97。
+
+Fri Dec 10 14:26:14 1994  Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
+
+	* devdvi/M.proto: NTT JTeXとASCII日本語TeX両方のdviファイルを扱えるよう
+	M.protoファイルを変更。
+
+Fri Dec  9 14:26:14 1994  Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
+
+	* troff/node.cc: boldfont_list[]にフォント名 B を登録していなかっ
+	たため、dviファイルにゴシック体が出力されていなかった。
+
+Fri Dec  9 14:23:22 1994  Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
+
+	* grotty/tty.cc (add_char): EUC文字に対してWCHAR_MODEを設定してい
+	なかったため、tty出力でゴシック体が二重打ちされていなかった。
+
+Fri Dec  9 14:19:33 1994  Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
+
+	* devdvi/Makefile.sub: フォントファイル G で、nameディレクティブが
+	`name M'になっている。
+
+Wed Nov 30 13:24:54 1994  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* バージョン0.96。
+
+	* grodvi/dvi.cc: FreeBSD 1.1.5Rのstrcmp(3)では引数にヌルポインタを
+	渡すとコアダンプしてしまうので、これを回避するコードを追加した。
+
+Tue Nov 29 13:52:54 1994  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff/input.cc: EUCのスペース文字(0xa1a1)はASCIIのスペース文字と
+	して処理するよう修正。
+
+	* devnippon/createM: JISX0208において文字が未定義の部分については
+	フォントファイルに出力しないよう修正。
+
+Mon Nov 28 18:15:31 1994  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* grodvi/dvi.cc: grodviを日本語化した。
+
+Fri Nov 25 15:39:05 1994  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff/env.cc: EUC文字で始まる行に対して均等割り付けが行われた場
+	合、行頭に余分な空白が入る事があったのでこれを修正した。
+
+Fri Nov 18 20:19:55 1994  Masubuchi Toshimichi <tmasu@st.rim.or.jp>
+
+	* devnippon/createM.c: createMの終了ステータスが不定になるため、
+	makeが終了してしまう。createMの終了ステータスが0になるよう修正。
+
+	* devnippon/Makefile.sub: PATH環境変数にカレントディレクトリが含ま
+	れていない場合、devnippon/Mをmakeする時点でcreateMが見つからずmake
+	エラーになるバグを修正。
+
+Thu Nov 17 17:11:26 1994  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* devnippon/createM.c: gets()をfgets()に変更。
+
+Sat Nov 12 13:38:19 1994  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* バージョン0.95。
+
+	* troff/env.cc: .stt リクエストを追加(ローカルなマニュアル書式に合
+	わせるため -> このリクエストは非公開)。
+
+	* troff/input.cc (init_charset_table): ASCIIの行頭禁則文字として
+	,:;>}を追加した。
+
+	* EUCフォントファイルは、make時にツールによって生成するよう変更。
+	これによりpatchサイズがかなり小さくなった。
+
+Fri Nov 11 20:53:00 1994  Kitagawa Toshiyuki  <kitagawa@bsd2.kbnes.nec.co.jp>
+
+	* troff/env.cc (add_char): <EUC文字> + <ASCII文字>の場合、間に入れ
+	る空白は禁則に違反しないかぎりブレーク可能な空白が入るよう修正した。
+
+
+Tue Oct 25 04:46:09 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* バージョン0.94。
+
+	* libdriver/input.cc (do_file): -Tlatin1でEUCではない文字コードを
+	EUCと判断してしまうバグを修正。
+
+Mon Oct 24 07:16:19 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* troff/node.cc (is_boldfont): FreeBSD 1.1.5で、ゼロ番地参照のためコ
+	アダンプするバグを修正。
+
+	* indxbib/dirnamemax.c: FreeBSD 1.1.5はpathconf()を持っていないので
+	_POSIX_VERSIONをundefした。
+
+	* バージョン0.93。
+
+	* geqnを日本語化した。
+
+	* devps/DESCのwcharkernを設定すると行頭に空白が入ってしまうバグの
+	修正方法を変更。
+
+Sat Oct 22 08:19:15 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* バージョン0.90。
+
+	* xtotroffを日本語化。
+
+Fri Oct 21 05:33:02 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* devps/DESCのwcharkernを設定すると行頭に空白が入ってしまう事があ
+	ったので、これを修正。
+
+	* pre-releaseバージョン。
+
+	* gxditviewを日本語化した(フォントメトリックの取り出しがいい加減)。
+
+Thu Oct 20 05:23:09 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* フォント番号3にボールド体以外のフォントをマウントした場合、漢字フォ
+	ントがゴシック体になってしまうバグを修正。
+
+Wed Oct 19 06:48:55 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* betaバージョン。
+
+Tue Oct 18 05:02:59 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* pic: 
+	gpicを日本語対応した。
+
+	* tbl: 
+	gtblを日本語対応した。
+
+	* troff/troff: 
+	Times-Bold以外のボールド体がカレントフォントの時、漢字フォントがゴ
+	シックに切り替わらないバグを修正。
+
+	* troff/troff: 
+	DESCにディレクティブwcharkernを追加し、ASCII文字とEUC文字の間に、
+	指定したunit数だけbreak不可能な空白を入れるようにした。
+
+	* troff/troff: 
+	DESCにディレクティブlowerwcharを追加し、ASCII文字に対してEUC文字を、
+	指定したunit数だけ下げるようにした(ASCII文字が落ち込んで見えるため)。
+	
+Fri Oct 14 08:29:06 1994  Kitagawa Toshiyuki  (kitagawa@bsd2.kbnes.nec.co.jp)
+
+	* aplahバージョン。
diff -Naur groff-1.18.1.4.orig/Makefile.in groff-1.18.1.4/Makefile.in
--- groff-1.18.1.4.orig/Makefile.in	2002-09-16 16:51:00.000000000 +0000
+++ groff-1.18.1.4/Makefile.in	2006-10-18 18:54:44.000000000 +0000
@@ -136,7 +136,11 @@
 # directory will be always added.
 # `troffrc' and `troffrc-end' (and `eqnrc') are searched neither in the
 # current nor in the home directory.
+ifeq (,$(extratmacdirs))
 tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir)
+else
+tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir):$(extratmacdirs)
+endif
 
 # `sys_tmac_prefix' is prefix (if any) for system macro packages.
 sys_tmac_prefix=@sys_tmac_prefix@
@@ -195,6 +199,9 @@
 man7ext=7
 man7dir=$(manroot)/man$(man7ext)
 
+# DVI file format.
+DVIFORMAT=@DVIFORMAT@
+
 # The configure script checks whether all necessary utility programs for
 # grohtml are available -- only then we can build the HTML documentation.
 make_html=@make_html@
@@ -261,6 +268,8 @@
 # -DRETSIGTYPE=int		if signal handlers return int not void	
 # -DIS_EBCDIC_HOST		if the host's encoding is EBCDIC
 # -DPAGEA4			if the the printer's page size is A4
+# -DENABLE_MULTIBYTE		enable multibyte extension
+# -DHAVE_LANGINFO_CODESET	if you have nl_langinfo(CODESET)
 DEFINES=@DEFS@
 
 # Include
@@ -395,7 +404,8 @@
   "PERLPATH=$(PERLPATH)" \
   "SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \
   "PURIFY=$(PURIFY)" \
-  "PURIFYCCFLAGS=$(PURIFYCCFLAGS)"
+  "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" \
+  "DVIFORMAT=$(DVIFORMAT)"
 
 SHELL=/bin/sh
 INCDIRS=src/include
@@ -437,8 +447,10 @@
   font/devhtml
 ALLTTYDEVDIRS=\
   font/devascii \
+  font/devascii8 \
   font/devlatin1 \
   font/devutf8 \
+  font/devnippon \
   font/devcp1047
 OTHERDIRS=\
   man \
@@ -483,7 +495,7 @@
 	fi
 
 do=all
-dodirs=$(ALLDIRS) dot
+dodirs=$(DISTDIRS) 
 # Default target for subdir_Makefile
 subdir=src/roff/troff
 
diff -Naur groff-1.18.1.4.orig/README.jp groff-1.18.1.4/README.jp
--- groff-1.18.1.4.orig/README.jp	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/README.jp	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,142 @@
+
+                日本語対応版 groff-1.12 (jgroff-0.101)
+
+
+                                           北川 信亨 (Kitagawa Toshiyuki)
+                                                     tm-kita@kh.rim.or.jp
+
+                                           柳原 良亮 (Yanagihara Yoshiaki)
+                                                      yochi@debian.or.jp
+
+ GNUのroffフォーマッタgroff(version 1.12)の日本語対応を行ないました。
+ 上位互換となっていますので、日本語を含まないroffデータはオリジナルど
+おりの動作になります。日本語化に関する修正部分についての著作権はGNU
+General Public License Version 2 に従います(詳細はCOPYINGを御覧ください)。
+
+ ÆüËÜ¸ìgroff(jgroff)¤Î¸½¥Ð¡¼¥¸¥ç¥ó¤Ï0.101(ºÇ½ª¦ÂÈÇ)¤Ç¤¹¡£¤³¤Î¥Ð¡¼¥¸¥ç¥ó
+では以下のモジュールが日本語化されています。
+
+	groff	  ...	groffドライバ
+ 	gtroff	  ...	groffËÜÂÎ
+	grotty	  ...	端末用ポストプロセッサ
+	grops	  ...	PostScript用ポストプロセッサ
+        grohtml   ...   HTML用ポストプロセッサ(Thanks HANATAKA Shinya
+                                               <hanataka@abyss.rim.or.jp>)
+	grodvi	  ...	DVI用ポストプロセッサ (NTT JTeX or ASCII日本語TeX)
+	gxditview ...	Xウィンドウ用ポストプロセッサ
+	gtbl	  ...	tblマクロ用プリプロセッサ
+	gpic	  ...	picマクロ用プリプロセッサ
+	geqn	  ...	eqnマクロ用プリプロセッサ
+	xtotroff  ...	Xのフォントからgroff用フォントファイルを作成す
+	            	るツール
+
+＃ lj4ポストプロセッサ、bib関連のコマンドは日本語未対応です。
+
+
+◎ インストール
+
+ 以下の環境でmake出来ることを確認しています。
+
+	¡ù  FreeBSD 2.1.0-RELEASE
+	    XFree86-3.1.2, gcc 2.6.3
+
+	¡ù  Debian GNU/Linux 2.2
+
+	¡ù  NEC EWS/4800/310
+	    SVR4.2 Release9.1 Rev.B, X11R5, gcc 2.6.0
+
+ (1) オリジナルと同様configureを実行した後、make & installして下さい。
+    詳しくはINSTALLを参照してください。
+
+    *) grodviはNTT JTeX形式またはASCII日本語TeX形式のDVIファイルをサポー
+       トしています。groffが出力するDVIファイルをASCII日本語TeX形式に
+       したい場合はconfigure --JTeX=ASCIIとしてください。
+       --JTeXオプションを指定しなかった場合はNTT JTeX形式になります。
+
+ (2) groffのmakeの後、gxditview(groffのXウィンドウ用ポストプロセッサ)
+    をmakeします。トップディレクトリ直下のxditviewへcdして、
+
+	% xmkmf
+	% make depend
+	% make all
+	% make install install.man
+
+    で、インストール完了です。
+
+
+◎ 使い方
+
+ groffの-Tオプションに-Tnippon(端末表示)を追加した以外はオリジナルのま
+まです。
+以下は使用例。
+
+ (£±)  groff -Tnippon -man groff.jman
+
+ 日本語を含むroffファイル(groff.jman)をmanマクロを使ってフォーマットし、
+端末に表示します。
+ 
+ (£²)  groff -Tps -man groff.jman
+
+ 日本語を含むroffファイルをフォーマットし、PostScriptに変換します。
+
+ (£³)  groff -TX100 -man groff.jman
+
+ 日本語を含むroffファイルをフォーマットし、Xウィンドウに表示します。
+
+ (£´)  groff -Tdvi -man groff.jman
+
+ 日本語を含むroffファイルをフォーマットし、DVIファイルを出力します。
+
+
+◎ 日本語化について
+
+・ 日本語文字コードは日本語EUC(のコードセット1)のみサポートしています。
+
+・ 日本語フォントについては、カレントフォントがボールド体の時はゴシッ
+   ク体に、それ以外のフォント(ローマン、イタリック、イタリックボールド
+   等)がカレントフォントの時は明朝体に、自動的に切り替わります。日本語
+   フォントを直接指定することは出来ません。
+
+   (注) フォントファイル名が'B'で終っているフォント(B、TB、HNBなど)を
+        ボールドフォントとしています。
+
+・ 行頭、および行末禁則に対応しています。それぞれの禁則文字は、
+
+   行頭禁則文字:	 、 。，．・：；？！）〕］｝」』】
+			ぁぃぅぇぉっゃゅょァィゥェォッャュョ
+			. ? ! " ' ) ] * , : ; > }
+   行末禁則文字:	（ 〔［｛「『【
+
+   を定義しています。
+
+・ -Tpsを指定した場合、EUC文字とASCII文字の間には、幅の狭い空白が自動
+   的に挿入されます。この空白の幅はdevps/DESCのwcharkernで指定します。
+   unit単位です。0を指定すると空白は挿入されなくなります。
+
+・ -Tpsを指定した場合、EUC文字はASCII文字に対して少し下げて出力されま
+   す(そのままだとASCII文字が落ち込んで見えるため)。この下げ幅は
+   devps/DESCのlowerwcharで指定します。unit単位です。0を指定すると字下
+   げは行なわれません。
+
+・ オリジナルでは改行コードは無条件にスペース文字に変換されますが、EUC
+   文字で囲まれた改行コードはスペースに変換せず無視するようにしました。
+
+・ EUCのスペース文字(0xa1a1)はASCIIのスペース文字として処理されます。
+
+
+¡ý ¼Õ¼­
+
+grodviのASCII日本語TeX対応は、宇都宮大学の横田さんが行なってくださいま
+した。grohtmlの日本語(EUC)対応は、花嵩信哉さんが行ってくれました。
+また、多くの方からバグに関する報告、修正イメージを送って頂きました。
+御協力くださった皆様にはとても感謝しております。有難うございました。
+
+
+◎ お願い
+
+現バージョンではlj4ポストプロセッサ、bib関連のコマンド群が日本語化され
+ておりません。これらの日本語化を行ってくださる方を募集致しております。
+ぜひ御協力ください。また、日本語対応groffに関して御意見、御希望等を
+是非お聞かせください。今後の参考にさせて頂きます(もちろんバグ報告も
+歓迎です！)。
+以上はE-Mailにて、tm-kita@kh.rim.or.jp宛にお送りください。
diff -Naur groff-1.18.1.4.orig/TODO.jp groff-1.18.1.4/TODO.jp
--- groff-1.18.1.4.orig/TODO.jp	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/TODO.jp	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,19 @@
+TODO lists
+
+- configure
+    nl_langinfo()
+    iconv()
+
+- font/devdvi
+	G,M  -- NTT and/or ASCII
+- src/devices
+	grohtml
+	grodvi
+	grolbp
+	grolj4
+- src/xditview
+
+- command line option to specify input/output encoding
+- font code?
+	can we assume wchar code == font code?
+	[to simplify indexing]
diff -Naur groff-1.18.1.4.orig/aclocal.m4 groff-1.18.1.4/aclocal.m4
--- groff-1.18.1.4.orig/aclocal.m4	2002-06-18 09:36:43.000000000 +0000
+++ groff-1.18.1.4/aclocal.m4	2006-10-18 18:54:44.000000000 +0000
@@ -356,6 +356,19 @@
 AC_MSG_RESULT(no);AC_MSG_ERROR([header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)]))
 AC_LANG_POP(C++)])dnl
 dnl
+dnl Support Multibyte characters, such as Japanese Code (EUC-JP)
+dnl
+AC_DEFUN(GROFF_MULTIBYTE,
+[AC_MSG_CHECKING([whether to enable multibyte extension])
+AC_ARG_ENABLE(multibyte, [  --enable-multibyte  Enable multibyte extension],
+  multibyte=$enableval, multibyte=no)
+if test "x$multibyte" != "xno"; then
+  AC_DEFINE(ENABLE_MULTIBYTE, 1,
+    [Define if you want to use multibyte extension.])
+fi
+AC_MSG_RESULT([$multibyte])
+])dnl
+dnl
 dnl
 AC_DEFUN(GROFF_TMAC,
 [AC_MSG_CHECKING([for prefix of system macro packages])
@@ -415,6 +428,33 @@
 AC_MSG_RESULT([$tmac_wrap])
 AC_SUBST(tmac_wrap)])dnl
 dnl
+dnl codeset.m4 from gettext, by Bruno Haible.
+dnl
+AC_DEFUN(GROFF_LANGINFO_CODESET,
+[AC_CACHE_CHECK([for nl_langinfo and CODESET], groff_cv_langinfo_codeset,
+    [AC_TRY_LINK([#include <langinfo.h>],
+      [char* cs = nl_langinfo(CODESET);],
+      groff_cv_langinfo_codeset=yes,
+      groff_cv_langinfo_codeset=no)
+    ])
+  if test $groff_cv_langinfo_codeset = yes; then
+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+  fi
+])dnl
+dnl
+dnl
+AC_DEFUN(GROFF_DVIFORMAT,
+[AC_MSG_CHECKING([japanese dvi file format])
+if test "x$dvi_format" != "xASCII"; then
+  DVIFORMAT=NTT
+else
+  DVIFORMAT=ASCII
+fi
+AC_MSG_RESULT([$DVIFORMAT])
+AC_SUBST(DVIFORMAT)
+])dnl
+dnl
 dnl
 AC_DEFUN(GROFF_G,
 [AC_MSG_CHECKING([for existing troff installation])
@@ -481,7 +521,7 @@
  AC_DEFINE(IS_EBCDIC_HOST, 1,
 	   [Define if the host's encoding is EBCDIC.]),
 groff_cv_ebcdic="no"
- TTYDEVDIRS="font/devascii font/devlatin1"
+ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
  OTHERDEVDIRS="font/devlj4 font/devlbp"
  AC_MSG_RESULT(no))
 AC_SUBST(TTYDEVDIRS)
diff -Naur groff-1.18.1.4.orig/configure groff-1.18.1.4/configure
--- groff-1.18.1.4.orig/configure	2002-09-20 16:14:00.000000000 +0000
+++ groff-1.18.1.4/configure	2006-10-18 18:54:44.000000000 +0000
@@ -305,7 +305,7 @@
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html DVIFORMAT LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -841,6 +841,11 @@
 
   cat <<\_ACEOF
 
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-multibyte  Enable multibyte extension
+
 Some influential environment variables:
   CC          C compiler command
   CFLAGS      C compiler flags
@@ -2530,7 +2535,7 @@
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 groff_cv_ebcdic="no"
- TTYDEVDIRS="font/devascii font/devlatin1"
+ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
  OTHERDEVDIRS="font/devlj4 font/devlbp"
  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
@@ -5859,6 +5864,84 @@
 esac
 
 
+echo "$as_me:$LINENO: checking whether to enable multibyte extension" >&5
+echo $ECHO_N "checking whether to enable multibyte extension... $ECHO_C" >&6
+# Check whether --enable-multibyte or --disable-multibyte was given.
+if test "${enable_multibyte+set}" = set; then
+  enableval="$enable_multibyte"
+  multibyte=$enableval
+else
+  multibyte=no
+fi;
+if test "x$multibyte" != "xno"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_MULTIBYTE 1
+_ACEOF
+
+fi
+echo "$as_me:$LINENO: result: $multibyte" >&5
+echo "${ECHO_T}$multibyte" >&6
+
+echo "$as_me:$LINENO: checking japanese dvi file format" >&5
+echo $ECHO_N "checking japanese dvi file format... $ECHO_C" >&6
+if test "x$dvi_format" != "xASCII"; then
+  DVIFORMAT=NTT
+else
+  DVIFORMAT=ASCII
+fi
+echo "$as_me:$LINENO: result: $DVIFORMAT" >&5
+echo "${ECHO_T}$DVIFORMAT" >&6
+
+
+echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
+echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
+if test "${groff_cv_langinfo_codeset+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  groff_cv_langinfo_codeset=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+groff_cv_langinfo_codeset=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $groff_cv_langinfo_codeset" >&5
+echo "${ECHO_T}$groff_cv_langinfo_codeset" >&6
+  if test $groff_cv_langinfo_codeset = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LANGINFO_CODESET 1
+_ACEOF
+
+  fi
+
           ac_config_files="$ac_config_files stamp-h"
 
                               ac_config_files="$ac_config_files Makefile doc/Makefile src/xditview/Imakefile"
@@ -6497,6 +6580,7 @@
 s,@psselect@,$psselect,;t t
 s,@make_html@,$make_html,;t t
 s,@make_install_html@,$make_install_html,;t t
+s,@DVIFORMAT@,$DVIFORMAT,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 
diff -Naur groff-1.18.1.4.orig/configure.ac groff-1.18.1.4/configure.ac
--- groff-1.18.1.4.orig/configure.ac	2002-07-23 21:44:20.000000000 +0000
+++ groff-1.18.1.4/configure.ac	2006-10-18 18:54:44.000000000 +0000
@@ -68,6 +68,9 @@
 GROFF_G
 GROFF_TMAC
 GROFF_HTML_PROGRAMS
+GROFF_MULTIBYTE
+GROFF_DVIFORMAT
+GROFF_LANGINFO_CODESET
 AC_CONFIG_FILES(stamp-h, [echo timestamp > stamp-h])
 AC_CONFIG_FILES([Makefile doc/Makefile src/xditview/Imakefile])
 AC_OUTPUT
diff -Naur groff-1.18.1.4.orig/contrib/eqn2graph/eqn2graph.sh groff-1.18.1.4/contrib/eqn2graph/eqn2graph.sh
--- groff-1.18.1.4.orig/contrib/eqn2graph/eqn2graph.sh	2002-07-17 04:55:46.000000000 +0000
+++ groff-1.18.1.4/contrib/eqn2graph/eqn2graph.sh	2006-10-18 18:54:44.000000000 +0000
@@ -32,7 +32,7 @@
 #
 # Thus, we pass -U to groff(1), and everything else to convert(1).
 #
-# $Id: eqn2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
+# $Id: eqn2graph.sh,v 1.3 2003/10/28 07:46:23 wlemb Exp $
 #
 groff_opts=""
 convert_opts=""
@@ -58,17 +58,34 @@
     shift
 done
 
+# create temporary directory
+tmp=
+for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
+    test -z "$d" && continue
+
+    tmp=`(umask 077 && mktemp -d -q "$d/eqn2graph-XXXXXX") 2> /dev/null` \
+    && test -n "$tmp" && test -d "$tmp" \
+    && break
+
+    tmp=$d/eqn2graph$$-$RANDOM
+    (umask 077 && mkdir $tmp) 2> /dev/null && break
+done;
+if test -z "$tmp"; then
+    echo "$0: cannot create temporary directory" >&2
+    { (exit 1); exit 1; }
+fi
+
+trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15 
+
 # Here goes:
 # 1. Add .EQ/.EN.
 # 2. Process through eqn(1) to emit troff markup.
 # 3. Process through groff(1) to emit Postscript.
 # 4. Use convert(1) to crop the Postscript and turn it into a bitmap.
-tmp=/usr/tmp/eqn2graph-$$
-trap "rm ${tmp}.*" 0 2 15 
 read equation
-(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"${equation}"'$') | \
-	groff -e $groff_opts -Tps >${tmp}.ps \
-	&& convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
-	&& cat ${tmp}.${format}
+(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"$equation"'$') | \
+	groff -e $groff_opts -Tps -P-pletter > $tmp/eqn2graph.ps \
+	&& convert -crop 0x0 $convert_opts $tmp/eqn2graph.ps $tmp/eqn2graph.$format \
+	&& cat $tmp/eqn2graph.$format
 
 # End
diff -Naur groff-1.18.1.4.orig/contrib/mom/groff_mom.man groff-1.18.1.4/contrib/mom/groff_mom.man
--- groff-1.18.1.4.orig/contrib/mom/groff_mom.man	2002-09-04 21:44:16.000000000 +0000
+++ groff-1.18.1.4/contrib/mom/groff_mom.man	2006-10-18 18:54:44.000000000 +0000
@@ -13,6 +13,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .mso www.tmac
 .
diff -Naur groff-1.18.1.4.orig/contrib/pic2graph/pic2graph.sh groff-1.18.1.4/contrib/pic2graph/pic2graph.sh
--- groff-1.18.1.4.orig/contrib/pic2graph/pic2graph.sh	2002-07-17 04:55:46.000000000 +0000
+++ groff-1.18.1.4/contrib/pic2graph/pic2graph.sh	2006-10-18 18:54:44.000000000 +0000
@@ -32,7 +32,7 @@
 # We don't have complete option coverage on eqn because this is primarily
 # intended as a pic translator; we can live with eqn defaults. 
 #
-# $Id: pic2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
+# $Id: pic2graph.sh,v 1.5 2003/10/31 19:32:36 wlemb Exp $
 #
 groffpic_opts=""
 gs_opts=""
@@ -44,7 +44,7 @@
 do
     case $1 in
     -unsafe)
-	groffpic_opts="-U"
+	groffpic_opts="-U";;
     -format)
 	format=$2
 	shift;;
@@ -68,16 +68,34 @@
     eqndelim="delim $eqndelim"
 fi
 
+# create temporary directory
+tmp=
+for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
+    test -z "$d" && continue
+
+    tmp=`(umask 077 && mktemp -d -q "$d/pic2graph-XXXXXX") 2> /dev/null` \
+    && test -n "$tmp" && test -d "$tmp" \
+    && break
+
+    tmp=$d/pic2graph$$-$RANDOM
+    (umask 077 && mkdir $tmp) 2> /dev/null \
+    && break
+done;
+if test -z "$tmp"; then
+    echo "$0: cannot create temporary directory" >&2
+    { (exit 1); exit 1; }
+fi
+
+trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15 
+
 # Here goes:
 # 1. Wrap the input in dummy .PS/PE macros (and add possibly null .EQ/.EN)
 # 2. Process through eqn and pic to emit troff markup.
 # 3. Process through groff to emit Postscript.
 # 4. Use convert(1) to crop the PostScript and turn it into a bitmap.
-tmp=/usr/tmp/pic2graph-$$
-trap "rm ${tmp}.*" 0 2 15 
 (echo ".EQ"; echo $eqndelim; echo ".EN"; echo ".PS"; cat; echo ".PE") | \
-       groff -e -p $groffpic_opts -Tps >${tmp}.ps \
-       && convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
-       && cat ${tmp}.${format}
+    groff -e -p $groffpic_opts -Tps -P-pletter > $tmp/pic2graph.ps \
+    && convert -crop 0x0 $convert_opts $tmp/pic2graph.ps $tmp/pic2graph.$format \
+    && cat $tmp/pic2graph.$format
 
 # End
diff -Naur groff-1.18.1.4.orig/font/devX100/DESC groff-1.18.1.4/font/devX100/DESC
--- groff-1.18.1.4.orig/font/devX100/DESC	2000-02-06 09:35:04.000000000 +0000
+++ groff-1.18.1.4/font/devX100/DESC	2006-10-18 18:54:44.000000000 +0000
@@ -1,5 +1,17 @@
 styles R I B BI
-fonts 6 0 0 0 0 0 S
+fonts 8 0 0 0 0 0 S M G
+fontset B G 2E00..9FFF
+fontset CB G 2E00..9FFF
+fontset HB G 2E00..9FFF
+fontset NB G 2E00..9FFF
+fontset TB G 2E00..9FFF
+fontset - M 2E00..9FFF
+fontset B G FF00..FFEF
+fontset CB G FF00..FFEF
+fontset HB G FF00..FFEF
+fontset NB G FF00..FFEF
+fontset TB G FF00..FFEF
+fontset - M FF00..FFEF
 sizes 8 10 12 14 18 24 0
 res 100
 X11
diff -Naur groff-1.18.1.4.orig/font/devX100/M.proto groff-1.18.1.4/font/devX100/M.proto
--- groff-1.18.1.4.orig/font/devX100/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devX100/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,5 @@
+name M
+spacewidth 3
+charset
+u2E00..u9FFF 20 0
+uFF00..uFFEF 20 0
diff -Naur groff-1.18.1.4.orig/font/devX100/Makefile.sub groff-1.18.1.4/font/devX100/Makefile.sub
--- groff-1.18.1.4.orig/font/devX100/Makefile.sub	2000-02-06 09:35:06.000000000 +0000
+++ groff-1.18.1.4/font/devX100/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -1,2 +1,13 @@
 DEV=X100
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
+CLEANADD=M G
+
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	@cat $(srcdir)/M.proto > M
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' M > G
diff -Naur groff-1.18.1.4.orig/font/devX100-12/DESC groff-1.18.1.4/font/devX100-12/DESC
--- groff-1.18.1.4.orig/font/devX100-12/DESC	2000-02-06 09:35:07.000000000 +0000
+++ groff-1.18.1.4/font/devX100-12/DESC	2006-10-18 18:54:44.000000000 +0000
@@ -1,5 +1,17 @@
 styles R I B BI
-fonts 6 0 0 0 0 0 S
+fonts 8 0 0 0 0 0 S M G
+fontset B G 2E00..9FFF
+fontset CB G 2E00..9FFF
+fontset HB G 2E00..9FFF
+fontset NB G 2E00..9FFF
+fontset TB G 2E00..9FFF
+fontset - M 2E00..9FFF
+fontset B G FF00..FFEF
+fontset CB G FF00..FFEF
+fontset HB G FF00..FFEF
+fontset NB G FF00..FFEF
+fontset TB G FF00..FFEF
+fontset - M FF00..FFEF
 sizes 8 10 12 14 18 24 0
 res 100
 X11
diff -Naur groff-1.18.1.4.orig/font/devX100-12/M.proto groff-1.18.1.4/font/devX100-12/M.proto
--- groff-1.18.1.4.orig/font/devX100-12/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devX100-12/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,5 @@
+name M
+spacewidth 4
+charset
+u2E00..u9FFF 20 0
+uFF00..uFFEF 20 0
diff -Naur groff-1.18.1.4.orig/font/devX100-12/Makefile.sub groff-1.18.1.4/font/devX100-12/Makefile.sub
--- groff-1.18.1.4.orig/font/devX100-12/Makefile.sub	2000-02-06 09:35:07.000000000 +0000
+++ groff-1.18.1.4/font/devX100-12/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -1,2 +1,14 @@
 DEV=X100-12
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
+CLEANADD=M G
+
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	@cat $(srcdir)/M.proto > M
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' M > G
+
diff -Naur groff-1.18.1.4.orig/font/devX75/DESC groff-1.18.1.4/font/devX75/DESC
--- groff-1.18.1.4.orig/font/devX75/DESC	2000-02-06 09:35:09.000000000 +0000
+++ groff-1.18.1.4/font/devX75/DESC	2006-10-18 18:54:44.000000000 +0000
@@ -1,5 +1,17 @@
 styles R I B BI
-fonts 6 0 0 0 0 0 S
+fonts 8 0 0 0 0 0 S M G
+fontset B G 2E00..9FFF
+fontset CB G 2E00..9FFF
+fontset HB G 2E00..9FFF
+fontset NB G 2E00..9FFF
+fontset TB G 2E00..9FFF
+fontset - M 2E00..9FFF
+fontset B G FF00..FFEF
+fontset CB G FF00..FFEF
+fontset HB G FF00..FFEF
+fontset NB G FF00..FFEF
+fontset TB G FF00..FFEF
+fontset - M FF00..FFEF
 sizes 8 10 12 14 18 24 0
 res 75
 X11
diff -Naur groff-1.18.1.4.orig/font/devX75/M.proto groff-1.18.1.4/font/devX75/M.proto
--- groff-1.18.1.4.orig/font/devX75/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devX75/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,6 @@
+name M
+spacewidth 2
+charset
+u2E00..u9FFF 10 0
+uFF00..uFFEF 10 0
+
diff -Naur groff-1.18.1.4.orig/font/devX75/Makefile.sub groff-1.18.1.4/font/devX75/Makefile.sub
--- groff-1.18.1.4.orig/font/devX75/Makefile.sub	2000-02-06 09:35:10.000000000 +0000
+++ groff-1.18.1.4/font/devX75/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -1,2 +1,13 @@
 DEV=X75
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
+CLEANADD=M G
+
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	@cat $(srcdir)/M.proto > M
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' M > G
diff -Naur groff-1.18.1.4.orig/font/devX75-12/DESC groff-1.18.1.4/font/devX75-12/DESC
--- groff-1.18.1.4.orig/font/devX75-12/DESC	2000-02-06 09:35:11.000000000 +0000
+++ groff-1.18.1.4/font/devX75-12/DESC	2006-10-18 18:54:44.000000000 +0000
@@ -1,5 +1,17 @@
 styles R I B BI
-fonts 6 0 0 0 0 0 S
+fonts 8 0 0 0 0 0 S M G
+fontset B G 2E00..9FFF
+fontset CB G 2E00..9FFF
+fontset HB G 2E00..9FFF
+fontset NB G 2E00..9FFF
+fontset TB G 2E00..9FFF
+fontset - M 2E00..9FFF
+fontset B G FF00..FFEF
+fontset CB G FF00..FFEF
+fontset HB G FF00..FFEF
+fontset NB G FF00..FFEF
+fontset TB G FF00..FFEF
+fontset - M FF00..FFEF
 sizes 8 10 12 14 18 24 0
 res 75
 X11
diff -Naur groff-1.18.1.4.orig/font/devX75-12/M.proto groff-1.18.1.4/font/devX75-12/M.proto
--- groff-1.18.1.4.orig/font/devX75-12/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devX75-12/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,5 @@
+name M
+spacewidth 2
+charset
+u2E00..u9FFF 12 0
+uFF00..uFFEF 12 0
diff -Naur groff-1.18.1.4.orig/font/devX75-12/Makefile.sub groff-1.18.1.4/font/devX75-12/Makefile.sub
--- groff-1.18.1.4.orig/font/devX75-12/Makefile.sub	2000-02-06 09:35:12.000000000 +0000
+++ groff-1.18.1.4/font/devX75-12/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -1,2 +1,13 @@
 DEV=X75-12
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
+CLEANADD=M G
+
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	@cat $(srcdir)/M.proto > M
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' M > G
diff -Naur groff-1.18.1.4.orig/font/devascii/Makefile.sub groff-1.18.1.4/font/devascii/Makefile.sub
--- groff-1.18.1.4.orig/font/devascii/Makefile.sub	2000-02-06 09:35:12.000000000 +0000
+++ groff-1.18.1.4/font/devascii/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -12,8 +12,8 @@
 	@-rm -f $@
 	@(charwidth=`expr $(RES) / $(CPI)` ; \
  	 sed -e "s/^name [A-Z]*$$/name $@/" \
-	     -e "s/^\\([^	]*\\)	[0-9]+	/\\1	$$charwidth	/" \
-	     -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
+	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
+	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
 	     -e "s/^internalname .*$$/internalname $@/" \
 	     -e "/^internalname/s/BI/3/" \
 	     -e "/^internalname/s/B/2/" \
diff -Naur groff-1.18.1.4.orig/font/devascii8/DESC.proto groff-1.18.1.4/font/devascii8/DESC.proto
--- groff-1.18.1.4.orig/font/devascii8/DESC.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devascii8/DESC.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,8 @@
+res 240
+hor 24
+vert 40
+unitwidth 10
+sizes 10 0
+fonts 4 R I B BI
+tcommand
+postpro grotty
diff -Naur groff-1.18.1.4.orig/font/devascii8/Makefile.sub groff-1.18.1.4/font/devascii8/Makefile.sub
--- groff-1.18.1.4.orig/font/devascii8/Makefile.sub	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devascii8/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,31 @@
+DEV=ascii8
+FONTS=R I B BI
+DEVFILES=$(FONTS) DESC
+CLEANADD=$(FONTS) DESC
+
+RES=240
+CPI=10
+LPI=6
+
+$(FONTS): R.proto
+	@echo Making $@
+	@-rm -f $@
+	@(charwidth=`expr $(RES) / $(CPI)` ; \
+ 	 sed -e "s/^name [A-Z]*$$/name $@/" \
+	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
+	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+	     -e "s/^internalname .*$$/internalname $@/" \
+	     -e "/^internalname/s/BI/3/" \
+	     -e "/^internalname/s/B/2/" \
+	     -e "/^internalname/s/I/1/" \
+	     -e "/^internalname .*[^ 0-9]/d" \
+	     $(srcdir)/R.proto >$@)
+
+DESC: DESC.proto
+	@echo Making $@
+	@-rm -f $@
+	@sed -e "s/^res .*$$/res $(RES)/" \
+	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
+	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
+	    -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
+	    $(srcdir)/DESC.proto >$@
diff -Naur groff-1.18.1.4.orig/font/devascii8/R.proto groff-1.18.1.4/font/devascii8/R.proto
--- groff-1.18.1.4.orig/font/devascii8/R.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devascii8/R.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,262 @@
+name R
+internalname 0
+spacewidth 24
+charset
+!	24	0	0041
+"	24	0	0042
+dq	"
+lq	"
+rq	"
+#	24	0	0043
+sh	"
+$	24	0	0044
+Do	"
+%	24	0	0045
+&	24	0	0046
+'	24	0	0047
+aa	"
+fm	"
+aq	"
+cq	"
+(	24	0	0050
+)	24	0	0051
+*	24	0	0052
+**	"
++	24	0	0053
+pl	"
+,	24	0	0054
+\-	24	0	0055
+hy	"
+-	"
+mi	"
+en	"
+.	24	0	0056
+/	24	0	0057
+sl	"
+f/	"
+0	24	0	0060
+1	24	0	0061
+2	24	0	0062
+3	24	0	0063
+4	24	0	0064
+5	24	0	0065
+6	24	0	0066
+7	24	0	0067
+8	24	0	0070
+9	24	0	0071
+:	24	0	0072
+;	24	0	0073
+<	24	0	0074
+la	"
+fo	"
+=	24	0	0075
+eq	"
+>	24	0	0076
+ra	"
+fc	"
+?	24	0	0077
+@	24	0	0100
+at	"
+A	24	0	0101
+*A	"
+B	24	0	0102
+*B	"
+C	24	0	0103
+D	24	0	0104
+E	24	0	0105
+*E	"
+F	24	0	0106
+G	24	0	0107
+H	24	0	0110
+*Y	"
+I	24	0	0111
+*I	"
+J	24	0	0112
+K	24	0	0113
+*K	"
+L	24	0	0114
+M	24	0	0115
+*M	"
+N	24	0	0116
+*N	"
+O	24	0	0117
+ci	"
+*O	"
+P	24	0	0120
+*R	"
+Q	24	0	0121
+R	24	0	0122
+S	24	0	0123
+T	24	0	0124
+*T	"
+U	24	0	0125
+V	24	0	0126
+W	24	0	0127
+X	24	0	0130
+*X	"
+Y	24	0	0131
+*U	"
+Z	24	0	0132
+*Z	"
+[	24	0	0133
+lB	"
+\	24	0	0134
+rs	"
+]	24	0	0135
+rB	"
+a^	24	0	0136
+^	"
+ha	"
+_	24	0	0137
+ru	"
+ul	"
+`	24	0	0140
+oq	"
+ga	"
+a	24	0	0141
+b	24	0	0142
+c	24	0	0143
+d	24	0	0144
+e	24	0	0145
+f	24	0	0146
+g	24	0	0147
+h	24	0	0150
+i	24	0	0151
+.i	"
+j	24	0	0152
+k	24	0	0153
+l	24	0	0154
+m	24	0	0155
+n	24	0	0156
+o	24	0	0157
+*o	"
+p	24	0	0160
+q	24	0	0161
+r	24	0	0162
+s	24	0	0163
+t	24	0	0164
+u	24	0	0165
+v	24	0	0166
+w	24	0	0167
+x	24	0	0170
+mu	"
+y	24	0	0171
+z	24	0	0172
+lC	24	0	0173
+{	"
+ba	24	0	0174
+or	"
+bv	"
+br	"
+|	"
+lb	"
+lc	"
+lf	"
+lk	"
+lt	"
+rb	"
+rc	"
+rf	"
+rk	"
+rt	"
+rC	24	0	0175
+}	"
+a~	24	0	0176
+~	"
+ap	"
+ti	"
+char161	24	0	0241
+char162	24	0	0242
+char163	24	0	0243
+char164	24	0	0244
+char165	24	0	0245
+char166	24	0	0246
+char167	24	0	0247
+char168	24	0	0250
+char169	24	0	0251
+char170	24	0	0252
+char171	24	0	0253
+char172	24	0	0254
+char173	24	0	0255 
+char174	24	0	0256
+char175	24	0	0257
+char176	24	0	0260
+char177	24	0	0261
+char178	24	0	0262
+char179	24	0	0263
+char180	24	0	0264
+char181	24	0	0265
+char182	24	0	0266
+char183	24	0	0267
+char184	24	0	0270
+char185	24	0	0271
+char186	24	0	0272
+char187	24	0	0273
+char188	24	0	0274
+char189	24	0	0275
+char190	24	0	0276
+char191	24	0	0277
+char192	24	0	0300
+char193	24	0	0301
+char194	24	0	0302
+char195	24	0	0303
+char196	24	0	0304
+char197	24	0	0305
+char198	24	0	0306
+char199	24	0	0307
+char200	24	0	0310
+char201	24	0	0311
+char202	24	0	0312
+char203	24	0	0313
+char204	24	0	0314
+char205	24	0	0315
+char206	24	0	0316
+char207	24	0	0317
+char208	24	0	0320
+char209	24	0	0321
+char210	24	0	0322
+char211	24	0	0323
+char212	24	0	0324
+char213	24	0	0325
+char214	24	0	0326
+char215	24	0	0327
+char216	24	0	0330
+char217	24	0	0331
+char218	24	0	0332
+char219	24	0	0333
+char220	24	0	0334
+char221	24	0	0335
+char222	24	0	0336
+char223	24	0	0337
+char224	24	0	0340
+char225	24	0	0341
+char226	24	0	0342
+char227	24	0	0343
+char228	24	0	0344
+char229	24	0	0345
+char230	24	0	0346
+char231	24	0	0347
+char232	24	0	0350
+char233	24	0	0351
+char234	24	0	0352
+char235	24	0	0353
+char236	24	0	0354
+char237	24	0	0355
+char238	24	0	0356
+char239	24	0	0357
+char240	24	0	0360
+char241	24	0	0361
+char242	24	0	0362
+char243	24	0	0363
+char244	24	0	0364
+char245	24	0	0365
+char246	24	0	0366
+char247	24	0	0367
+char248	24	0	0370
+char249	24	0	0371
+char250	24	0	0372
+char251	24	0	0373
+char252	24	0	0374
+char253	24	0	0375
+char254	24	0	0376
+char255	24	0	0377
diff -Naur groff-1.18.1.4.orig/font/devdvi/DESC.in groff-1.18.1.4/font/devdvi/DESC.in
--- groff-1.18.1.4.orig/font/devdvi/DESC.in	2002-03-16 07:45:07.000000000 +0000
+++ groff-1.18.1.4/font/devdvi/DESC.in	2006-10-18 18:54:44.000000000 +0000
@@ -6,6 +6,10 @@
 sizes 500-1000000 0
 styles R I B BI
 family T
-fonts 13 0 0 0 0 0 0 0 0 0 MI S EX CW
+fonts 15 0 0 0 0 0 0 0 0 0 MI S EX CW M G
+fontset B G 100..FFFF
+fontset HB G 100..FFFF
+fontset SB G 100..FFFF
+fontset - M 100..FFFF
 tcommand
 postpro grodvi
diff -Naur groff-1.18.1.4.orig/font/devdvi/FixMetric.sed groff-1.18.1.4/font/devdvi/FixMetric.sed
--- groff-1.18.1.4.orig/font/devdvi/FixMetric.sed	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devdvi/FixMetric.sed	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,77 @@
+s/1006514,.*0x212b$/370845,815360,145600	1	0x212b/
+s/1006514,.*0x212c$/370845,815360,145600	1	0x212c/
+s/1006514,.*0x2126$/370845,815360,145600	1	0x2126/
+s/1006514,.*0x2127$/370845,815360,145600	1	0x2127/
+s/1006514,.*0x2128$/370845,815360,145600	1	0x2128/
+s/1006514,.*0x212a$/370845,815360,145600	1	0x212a/
+s/1006514,.*0x212d$/370845,815360,145600	1	0x212d/
+s/1006514,.*0x212e$/370845,815360,145600	1	0x212e/
+s/1006514,.*0x213e$/370845,815360,145600	1	0x213e/
+s/1006514,.*0x2142$/370845,815360,145600	1	0x2142/
+s/1006514,.*0x2143$/370845,815360,145600	1	0x2143/
+s/1006514,.*0x2146$/370845,815360,145600	1	0x2146/
+s/1006514,.*0x2147$/370845,815360,145600	1	0x2147/
+s/1006514,.*0x2124$/370845,815360,145600	1	0x2124/
+s/1006514,.*0x2125$/370845,815360,145600	1	0x2125/
+s/1006514,.*0x214b$/528496,815360,145600	1	0x214b/
+s/1006514,.*0x214d$/528496,815360,145600	1	0x214d/
+s/1006514,.*0x214f$/528496,815360,145600	1	0x214f/
+s/1006514,.*0x2151$/528496,815360,145600	1	0x2151/
+s/1006514,.*0x2153$/528496,815360,145600	1	0x2153/
+s/1006514,.*0x2155$/528496,815360,145600	1	0x2155/
+s/1006514,.*0x2157$/528496,815360,145600	1	0x2157/
+s/1006514,.*0x2159$/528496,815360,145600	1	0x2159/
+s/1006514,.*0x215b$/528496,815360,145600	1	0x215b/
+s/1006514,.*0x2129$/528496,815360,145600	1	0x2129/
+s/1006514,.*0x212f$/528496,815360,145600	1	0x212f/
+s/1006514,.*0x2130$/528496,815360,145600	1	0x2130/
+s/1006514,.*0x2133$/528496,815360,145600	1	0x2133/
+s/1006514,.*0x2135$/528496,815360,145600	1	0x2135/
+s/1006514,.*0x2148$/528496,815360,145600	1	0x2148/
+s/1006514,.*0x2149$/528496,815360,145600	1	0x2149/
+s/1006514,.*0x216b$/528496,815360,145600	1	0x216b/
+s/1006514,.*0x216c$/528496,815360,145600	1	0x216c/
+s/1006514,.*0x216d$/528496,815360,145600	1	0x216d/
+s/1006514,.*0x2178$/528496,815360,145600	1	0x2178/
+s/1006514,.*0x214a$/528496,815360,145600	1	0x214a/
+s/1006514,.*0x214c$/528496,815360,145600	1	0x214c/
+s/1006514,.*0x214e$/528496,815360,145600	1	0x214e/
+s/1006514,.*0x2150$/528496,815360,145600	1	0x2150/
+s/1006514,.*0x2152$/528496,815360,145600	1	0x2152/
+s/1006514,.*0x2154$/528496,815360,145600	1	0x2154/
+s/1006514,.*0x2156$/528496,815360,145600	1	0x2156/
+s/1006514,.*0x2158$/528496,815360,145600	1	0x2158/
+s/1006514,.*0x215a$/528496,815360,145600	1	0x215a/
+s/1006514,.*0x2122$/528496,815360,145600	1	0x2122/
+s/1006514,.*0x2123$/528496,815360,145600	1	0x2123/
+s/1006514,.*0x2136$/783741,815360,145600	1	0x2136/
+s/1006514,.*0x2137$/783741,815360,145600	1	0x2137/
+s/1006514,.*0x2139$/783741,815360,145600	1	0x2139/
+s/1006514,.*0x2168$/783741,815360,145600	1	0x2168/
+s/1006514,.*0x2169$/783741,815360,145600	1	0x2169/
+s/1006514,.*0x216a$/783741,815360,145600	1	0x216a/
+s/1006514,.*0x2170$/783741,815360,145600	1	0x2170/
+s/1006514,.*0x2171$/783741,815360,145600	1	0x2171/
+s/1006514,.*0x2172$/783741,815360,145600	1	0x2172/
+s/1006514,.*0x2421$/783741,815360,145600	1	0x2421/
+s/1006514,.*0x2423$/783741,815360,145600	1	0x2423/
+s/1006514,.*0x2425$/783741,815360,145600	1	0x2425/
+s/1006514,.*0x2427$/783741,815360,145600	1	0x2427/
+s/1006514,.*0x2429$/783741,815360,145600	1	0x2429/
+s/1006514,.*0x2443$/783741,815360,145600	1	0x2443/
+s/1006514,.*0x2463$/783741,815360,145600	1	0x2463/
+s/1006514,.*0x2465$/783741,815360,145600	1	0x2465/
+s/1006514,.*0x2467$/783741,815360,145600	1	0x2467/
+s/1006514,.*0x246e$/783741,815360,145600	1	0x246e/
+s/1006514,.*0x2521$/783741,815360,145600	1	0x2521/
+s/1006514,.*0x2523$/783741,815360,145600	1	0x2523/
+s/1006514,.*0x2525$/783741,815360,145600	1	0x2525/
+s/1006514,.*0x2527$/783741,815360,145600	1	0x2527/
+s/1006514,.*0x2529$/783741,815360,145600	1	0x2529/
+s/1006514,.*0x2543$/783741,815360,145600	1	0x2543/
+s/1006514,.*0x2563$/783741,815360,145600	1	0x2563/
+s/1006514,.*0x2565$/783741,815360,145600	1	0x2565/
+s/1006514,.*0x2567$/783741,815360,145600	1	0x2567/
+s/1006514,.*0x256e$/783741,815360,145600	1	0x256e/
+s/1006514,.*0x2575$/783741,815360,145600	1	0x2575/
+s/1006514,.*0x2576$/783741,815360,145600	1	0x2576/
diff -Naur groff-1.18.1.4.orig/font/devdvi/M.proto-ASCII groff-1.18.1.4/font/devdvi/M.proto-ASCII
--- groff-1.18.1.4.orig/font/devdvi/M.proto-ASCII	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devdvi/M.proto-ASCII	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,4 @@
+name M
+internalname min10
+checksum -375402250
+designsize 10485760
diff -Naur groff-1.18.1.4.orig/font/devdvi/M.proto-NTT groff-1.18.1.4/font/devdvi/M.proto-NTT
--- groff-1.18.1.4.orig/font/devdvi/M.proto-NTT	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devdvi/M.proto-NTT	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,6882 @@
+name M
+internalname dmj10
+checksum 0
+designsize 10485760
+charset
+¡¡	F	1:0
+¡¢	F	2:0
+¡£	F	3:0
+¡¤	F	4:0
+¡¥	F	5:0
+¡¦	F	6:0
+¡§	F	7:0
+¡¨	F	8:0
+¡©	F	9:0
+¡ª	F	10:0
+¡«	F	11:0
+¡¬	F	12:0
+¡­	F	13:0
+¡®	F	14:0
+¡¯	F	15:0
+¡°	F	16:0
+¡±	F	17:0
+¡²	F	18:0
+¡³	F	19:0
+¡´	F	20:0
+¡µ	F	21:0
+¡¶	F	22:0
+¡·	F	23:0
+¡¸	F	24:0
+¡¹	F	25:0
+¡º	F	26:0
+¡»	F	27:0
+¡¼	F	28:0
+¡½	F	29:0
+¡¾	F	30:0
+¡¿	F	31:0
+¡À	F	32:0
+¡Á	F	33:0
+¡Â	F	34:0
+¡Ã	F	35:0
+¡Ä	F	36:0
+¡Å	F	37:0
+¡Æ	F	38:0
+¡Ç	F	39:0
+¡È	F	40:0
+¡É	F	41:0
+¡Ê	F	42:0
+¡Ë	F	43:0
+¡Ì	F	44:0
+¡Í	F	45:0
+¡Î	F	46:0
+¡Ï	F	47:0
+¡Ð	F	48:0
+¡Ñ	F	49:0
+¡Ò	F	50:0
+¡Ó	F	51:0
+¡Ô	F	52:0
+¡Õ	F	53:0
+¡Ö	F	54:0
+¡×	F	55:0
+¡Ø	F	56:0
+¡Ù	F	57:0
+¡Ú	F	58:0
+¡Û	F	59:0
+¡Ü	F	60:0
+¡Ý	F	61:0
+¡Þ	F	62:0
+¡ß	F	63:0
+¡à	F	64:0
+¡á	F	65:0
+¡â	F	66:0
+¡ã	F	67:0
+¡ä	F	68:0
+¡å	F	69:0
+¡æ	F	70:0
+¡ç	F	71:0
+¡è	F	72:0
+¡é	F	73:0
+¡ê	F	74:0
+¡ë	F	75:0
+¡ì	F	76:0
+¡í	F	77:0
+¡î	F	78:0
+¡ï	F	79:0
+¡ð	F	80:0
+¡ñ	F	81:0
+¡ò	F	82:0
+¡ó	F	83:0
+¡ô	F	84:0
+¡õ	F	85:0
+¡ö	F	86:0
+¡÷	F	87:0
+¡ø	F	88:0
+¡ù	F	89:0
+¡ú	F	90:0
+¡û	F	91:0
+¡ü	F	92:0
+¡ý	F	93:0
+¡þ	F	94:0
+¢¡	F	101:0
+¢¢	F	102:0
+¢£	F	103:0
+¢¤	F	104:0
+¢¥	F	105:0
+¢¦	F	106:0
+¢§	F	107:0
+¢¨	F	108:0
+¢©	F	109:0
+¢ª	F	110:0
+¢«	F	111:0
+¢¬	F	112:0
+¢­	F	113:0
+¢®	F	114:0
+¢º	F	126:0
+¢»	F	127:0
+¢¼	F	128:0
+¢½	F	129:0
+¢¾	F	130:0
+¢¿	F	131:0
+¢À	F	132:0
+¢Á	F	133:0
+¢Ê	F	142:0
+¢Ë	F	143:0
+¢Ì	F	144:0
+¢Í	F	145:0
+¢Î	F	146:0
+¢Ï	F	147:0
+¢Ð	F	148:0
+¢Ü	F	160:0
+¢Ý	F	161:0
+¢Þ	F	162:0
+¢ß	F	163:0
+¢à	F	164:0
+¢á	F	165:0
+¢â	F	166:0
+¢ã	F	167:0
+¢ä	F	168:0
+¢å	F	169:0
+¢æ	F	170:0
+¢ç	F	171:0
+¢è	F	172:0
+¢é	F	173:0
+¢ê	F	174:0
+¢ò	F	182:0
+¢ó	F	183:0
+¢ô	F	184:0
+¢õ	F	185:0
+¢ö	F	186:0
+¢÷	F	187:0
+¢ø	F	188:0
+¢ù	F	189:0
+¢þ	F	194:0
+£°	F	48:1
+£±	F	49:1
+£²	F	50:1
+£³	F	51:1
+£´	F	52:1
+£µ	F	53:1
+£¶	F	54:1
+£·	F	55:1
+£¸	F	56:1
+£¹	F	57:1
+£Á	F	65:1
+£Â	F	66:1
+£Ã	F	67:1
+£Ä	F	68:1
+£Å	F	69:1
+£Æ	F	70:1
+£Ç	F	71:1
+£È	F	72:1
+£É	F	73:1
+£Ê	F	74:1
+£Ë	F	75:1
+£Ì	F	76:1
+£Í	F	77:1
+£Î	F	78:1
+£Ï	F	79:1
+£Ð	F	80:1
+£Ñ	F	81:1
+£Ò	F	82:1
+£Ó	F	83:1
+£Ô	F	84:1
+£Õ	F	85:1
+£Ö	F	86:1
+£×	F	87:1
+£Ø	F	88:1
+£Ù	F	89:1
+£Ú	F	90:1
+£á	F	97:1
+£â	F	98:1
+£ã	F	99:1
+£ä	F	100:1
+£å	F	101:1
+£æ	F	102:1
+£ç	F	103:1
+£è	F	104:1
+£é	F	105:1
+£ê	F	106:1
+£ë	F	107:1
+£ì	F	108:1
+£í	F	109:1
+£î	F	110:1
+£ï	F	111:1
+£ð	F	112:1
+£ñ	F	113:1
+£ò	F	114:1
+£ó	F	115:1
+£ô	F	116:1
+£õ	F	117:1
+£ö	F	118:1
+£÷	F	119:1
+£ø	F	120:1
+£ù	F	121:1
+£ú	F	122:1
+¤¡	F	1:2
+¤¢	F	2:2
+¤£	F	3:2
+¤¤	F	4:2
+¤¥	F	5:2
+¤¦	F	6:2
+¤§	F	7:2
+¤¨	F	8:2
+¤©	F	9:2
+¤ª	F	10:2
+¤«	F	11:2
+¤¬	F	12:2
+¤­	F	13:2
+¤®	F	14:2
+¤¯	F	15:2
+¤°	F	16:2
+¤±	F	17:2
+¤²	F	18:2
+¤³	F	19:2
+¤´	F	20:2
+¤µ	F	21:2
+¤¶	F	22:2
+¤·	F	23:2
+¤¸	F	24:2
+¤¹	F	25:2
+¤º	F	26:2
+¤»	F	27:2
+¤¼	F	28:2
+¤½	F	29:2
+¤¾	F	30:2
+¤¿	F	31:2
+¤À	F	32:2
+¤Á	F	33:2
+¤Â	F	34:2
+¤Ã	F	35:2
+¤Ä	F	36:2
+¤Å	F	37:2
+¤Æ	F	38:2
+¤Ç	F	39:2
+¤È	F	40:2
+¤É	F	41:2
+¤Ê	F	42:2
+¤Ë	F	43:2
+¤Ì	F	44:2
+¤Í	F	45:2
+¤Î	F	46:2
+¤Ï	F	47:2
+¤Ð	F	48:2
+¤Ñ	F	49:2
+¤Ò	F	50:2
+¤Ó	F	51:2
+¤Ô	F	52:2
+¤Õ	F	53:2
+¤Ö	F	54:2
+¤×	F	55:2
+¤Ø	F	56:2
+¤Ù	F	57:2
+¤Ú	F	58:2
+¤Û	F	59:2
+¤Ü	F	60:2
+¤Ý	F	61:2
+¤Þ	F	62:2
+¤ß	F	63:2
+¤à	F	64:2
+¤á	F	65:2
+¤â	F	66:2
+¤ã	F	67:2
+¤ä	F	68:2
+¤å	F	69:2
+¤æ	F	70:2
+¤ç	F	71:2
+¤è	F	72:2
+¤é	F	73:2
+¤ê	F	74:2
+¤ë	F	75:2
+¤ì	F	76:2
+¤í	F	77:2
+¤î	F	78:2
+¤ï	F	79:2
+¤ð	F	80:2
+¤ñ	F	81:2
+¤ò	F	82:2
+¤ó	F	83:2
+¥¡	F	1:3
+¥¢	F	2:3
+¥£	F	3:3
+¥¤	F	4:3
+¥¥	F	5:3
+¥¦	F	6:3
+¥§	F	7:3
+¥¨	F	8:3
+¥©	F	9:3
+¥ª	F	10:3
+¥«	F	11:3
+¥¬	F	12:3
+¥­	F	13:3
+¥®	F	14:3
+¥¯	F	15:3
+¥°	F	16:3
+¥±	F	17:3
+¥²	F	18:3
+¥³	F	19:3
+¥´	F	20:3
+¥µ	F	21:3
+¥¶	F	22:3
+¥·	F	23:3
+¥¸	F	24:3
+¥¹	F	25:3
+¥º	F	26:3
+¥»	F	27:3
+¥¼	F	28:3
+¥½	F	29:3
+¥¾	F	30:3
+¥¿	F	31:3
+¥À	F	32:3
+¥Á	F	33:3
+¥Â	F	34:3
+¥Ã	F	35:3
+¥Ä	F	36:3
+¥Å	F	37:3
+¥Æ	F	38:3
+¥Ç	F	39:3
+¥È	F	40:3
+¥É	F	41:3
+¥Ê	F	42:3
+¥Ë	F	43:3
+¥Ì	F	44:3
+¥Í	F	45:3
+¥Î	F	46:3
+¥Ï	F	47:3
+¥Ð	F	48:3
+¥Ñ	F	49:3
+¥Ò	F	50:3
+¥Ó	F	51:3
+¥Ô	F	52:3
+¥Õ	F	53:3
+¥Ö	F	54:3
+¥×	F	55:3
+¥Ø	F	56:3
+¥Ù	F	57:3
+¥Ú	F	58:3
+¥Û	F	59:3
+¥Ü	F	60:3
+¥Ý	F	61:3
+¥Þ	F	62:3
+¥ß	F	63:3
+¥à	F	64:3
+¥á	F	65:3
+¥â	F	66:3
+¥ã	F	67:3
+¥ä	F	68:3
+¥å	F	69:3
+¥æ	F	70:3
+¥ç	F	71:3
+¥è	F	72:3
+¥é	F	73:3
+¥ê	F	74:3
+¥ë	F	75:3
+¥ì	F	76:3
+¥í	F	77:3
+¥î	F	78:3
+¥ï	F	79:3
+¥ð	F	80:3
+¥ñ	F	81:3
+¥ò	F	82:3
+¥ó	F	83:3
+¥ô	F	84:3
+¥õ	F	85:3
+¥ö	F	86:3
+¦¡	F	1:4
+¦¢	F	2:4
+¦£	F	3:4
+¦¤	F	4:4
+¦¥	F	5:4
+¦¦	F	6:4
+¦§	F	7:4
+¦¨	F	8:4
+¦©	F	9:4
+¦ª	F	10:4
+¦«	F	11:4
+¦¬	F	12:4
+¦­	F	13:4
+¦®	F	14:4
+¦¯	F	15:4
+¦°	F	16:4
+¦±	F	17:4
+¦²	F	18:4
+¦³	F	19:4
+¦´	F	20:4
+¦µ	F	21:4
+¦¶	F	22:4
+¦·	F	23:4
+¦¸	F	24:4
+¦Á	F	33:4
+¦Â	F	34:4
+¦Ã	F	35:4
+¦Ä	F	36:4
+¦Å	F	37:4
+¦Æ	F	38:4
+¦Ç	F	39:4
+¦È	F	40:4
+¦É	F	41:4
+¦Ê	F	42:4
+¦Ë	F	43:4
+¦Ì	F	44:4
+¦Í	F	45:4
+¦Î	F	46:4
+¦Ï	F	47:4
+¦Ð	F	48:4
+¦Ñ	F	49:4
+¦Ò	F	50:4
+¦Ó	F	51:4
+¦Ô	F	52:4
+¦Õ	F	53:4
+¦Ö	F	54:4
+¦×	F	55:4
+¦Ø	F	56:4
+§¡	F	1:5
+§¢	F	2:5
+§£	F	3:5
+§¤	F	4:5
+§¥	F	5:5
+§¦	F	6:5
+§§	F	7:5
+§¨	F	8:5
+§©	F	9:5
+§ª	F	10:5
+§«	F	11:5
+§¬	F	12:5
+§­	F	13:5
+§®	F	14:5
+§¯	F	15:5
+§°	F	16:5
+§±	F	17:5
+§²	F	18:5
+§³	F	19:5
+§´	F	20:5
+§µ	F	21:5
+§¶	F	22:5
+§·	F	23:5
+§¸	F	24:5
+§¹	F	25:5
+§º	F	26:5
+§»	F	27:5
+§¼	F	28:5
+§½	F	29:5
+§¾	F	30:5
+§¿	F	31:5
+§À	F	32:5
+§Á	F	33:5
+§Ñ	F	49:5
+§Ò	F	50:5
+§Ó	F	51:5
+§Ô	F	52:5
+§Õ	F	53:5
+§Ö	F	54:5
+§×	F	55:5
+§Ø	F	56:5
+§Ù	F	57:5
+§Ú	F	58:5
+§Û	F	59:5
+§Ü	F	60:5
+§Ý	F	61:5
+§Þ	F	62:5
+§ß	F	63:5
+§à	F	64:5
+§á	F	65:5
+§â	F	66:5
+§ã	F	67:5
+§ä	F	68:5
+§å	F	69:5
+§æ	F	70:5
+§ç	F	71:5
+§è	F	72:5
+§é	F	73:5
+§ê	F	74:5
+§ë	F	75:5
+§ì	F	76:5
+§í	F	77:5
+§î	F	78:5
+§ï	F	79:5
+§ð	F	80:5
+§ñ	F	81:5
+¨¡	F	1:6
+¨¢	F	2:6
+¨£	F	3:6
+¨¤	F	4:6
+¨¥	F	5:6
+¨¦	F	6:6
+¨§	F	7:6
+¨¨	F	8:6
+¨©	F	9:6
+¨ª	F	10:6
+¨«	F	11:6
+¨¬	F	12:6
+¨­	F	13:6
+¨®	F	14:6
+¨¯	F	15:6
+¨°	F	16:6
+¨±	F	17:6
+¨²	F	18:6
+¨³	F	19:6
+¨´	F	20:6
+¨µ	F	21:6
+¨¶	F	22:6
+¨·	F	23:6
+¨¸	F	24:6
+¨¹	F	25:6
+¨º	F	26:6
+¨»	F	27:6
+¨¼	F	28:6
+¨½	F	29:6
+¨¾	F	30:6
+¨¿	F	31:6
+¨À	F	32:6
+°¡	F	0:a
+°¢	F	1:a
+°£	F	2:a
+°¤	F	3:a
+°¥	F	4:a
+°¦	F	5:a
+°§	F	6:a
+°¨	F	7:a
+°©	F	8:a
+°ª	F	9:a
+°«	F	10:a
+°¬	F	11:a
+°­	F	12:a
+°®	F	13:a
+°¯	F	14:a
+°°	F	15:a
+°±	F	16:a
+°²	F	17:a
+°³	F	18:a
+°´	F	19:a
+°µ	F	20:a
+°¶	F	21:a
+°·	F	22:a
+°¸	F	23:a
+°¹	F	24:a
+°º	F	25:a
+°»	F	26:a
+°¼	F	27:a
+°½	F	28:a
+°¾	F	29:a
+°¿	F	30:a
+°À	F	31:a
+°Á	F	32:a
+°Â	F	33:a
+°Ã	F	34:a
+°Ä	F	35:a
+°Å	F	36:a
+°Æ	F	37:a
+°Ç	F	38:a
+°È	F	39:a
+°É	F	40:a
+°Ê	F	41:a
+°Ë	F	42:a
+°Ì	F	43:a
+°Í	F	44:a
+°Î	F	45:a
+°Ï	F	46:a
+°Ð	F	47:a
+°Ñ	F	48:a
+°Ò	F	49:a
+°Ó	F	50:a
+°Ô	F	51:a
+°Õ	F	52:a
+°Ö	F	53:a
+°×	F	54:a
+°Ø	F	55:a
+°Ù	F	56:a
+°Ú	F	57:a
+°Û	F	58:a
+°Ü	F	59:a
+°Ý	F	60:a
+°Þ	F	61:a
+°ß	F	62:a
+°à	F	63:a
+°á	F	64:a
+°â	F	65:a
+°ã	F	66:a
+°ä	F	67:a
+°å	F	68:a
+°æ	F	69:a
+°ç	F	70:a
+°è	F	71:a
+°é	F	72:a
+°ê	F	73:a
+°ë	F	74:a
+°ì	F	75:a
+°í	F	76:a
+°î	F	77:a
+°ï	F	78:a
+°ð	F	79:a
+°ñ	F	80:a
+°ò	F	81:a
+°ó	F	82:a
+°ô	F	83:a
+°õ	F	84:a
+°ö	F	85:a
+°÷	F	86:a
+°ø	F	87:a
+°ù	F	88:a
+°ú	F	89:a
+°û	F	90:a
+°ü	F	91:a
+°ý	F	92:a
+°þ	F	93:a
+±¡	F	94:a
+±¢	F	95:a
+±£	F	96:a
+±¤	F	97:a
+±¥	F	98:a
+±¦	F	99:a
+±§	F	100:a
+±¨	F	101:a
+±©	F	102:a
+±ª	F	103:a
+±«	F	104:a
+±¬	F	105:a
+±­	F	106:a
+±®	F	107:a
+±¯	F	108:a
+±°	F	109:a
+±±	F	110:a
+±²	F	111:a
+±³	F	112:a
+±´	F	113:a
+±µ	F	114:a
+±¶	F	115:a
+±·	F	116:a
+±¸	F	117:a
+±¹	F	118:a
+±º	F	119:a
+±»	F	120:a
+±¼	F	121:a
+±½	F	122:a
+±¾	F	123:a
+±¿	F	124:a
+±À	F	125:a
+±Á	F	126:a
+±Â	F	127:a
+±Ã	F	128:a
+±Ä	F	129:a
+±Å	F	130:a
+±Æ	F	131:a
+±Ç	F	132:a
+±È	F	133:a
+±É	F	134:a
+±Ê	F	135:a
+±Ë	F	136:a
+±Ì	F	137:a
+±Í	F	138:a
+±Î	F	139:a
+±Ï	F	140:a
+±Ð	F	141:a
+±Ñ	F	142:a
+±Ò	F	143:a
+±Ó	F	144:a
+±Ô	F	145:a
+±Õ	F	146:a
+±Ö	F	147:a
+±×	F	148:a
+±Ø	F	149:a
+±Ù	F	150:a
+±Ú	F	151:a
+±Û	F	152:a
+±Ü	F	153:a
+±Ý	F	154:a
+±Þ	F	155:a
+±ß	F	156:a
+±à	F	157:a
+±á	F	158:a
+±â	F	159:a
+±ã	F	160:a
+±ä	F	161:a
+±å	F	162:a
+±æ	F	163:a
+±ç	F	164:a
+±è	F	165:a
+±é	F	166:a
+±ê	F	167:a
+±ë	F	168:a
+±ì	F	169:a
+±í	F	170:a
+±î	F	171:a
+±ï	F	172:a
+±ð	F	173:a
+±ñ	F	174:a
+±ò	F	175:a
+±ó	F	176:a
+±ô	F	177:a
+±õ	F	178:a
+±ö	F	179:a
+±÷	F	180:a
+±ø	F	181:a
+±ù	F	182:a
+±ú	F	183:a
+±û	F	184:a
+±ü	F	185:a
+±ý	F	186:a
+±þ	F	187:a
+²¡	F	188:a
+²¢	F	189:a
+²£	F	190:a
+²¤	F	191:a
+²¥	F	192:a
+²¦	F	193:a
+²§	F	194:a
+²¨	F	195:a
+²©	F	196:a
+²ª	F	197:a
+²«	F	198:a
+²¬	F	199:a
+²­	F	200:a
+²®	F	201:a
+²¯	F	202:a
+²°	F	203:a
+²±	F	204:a
+²²	F	205:a
+²³	F	206:a
+²´	F	207:a
+²µ	F	208:a
+²¶	F	209:a
+²·	F	210:a
+²¸	F	211:a
+²¹	F	212:a
+²º	F	213:a
+²»	F	214:a
+²¼	F	215:a
+²½	F	216:a
+²¾	F	217:a
+²¿	F	218:a
+²À	F	219:a
+²Á	F	220:a
+²Â	F	221:a
+²Ã	F	222:a
+²Ä	F	223:a
+²Å	F	224:a
+²Æ	F	225:a
+²Ç	F	226:a
+²È	F	227:a
+²É	F	228:a
+²Ê	F	229:a
+²Ë	F	230:a
+²Ì	F	231:a
+²Í	F	232:a
+²Î	F	233:a
+²Ï	F	234:a
+²Ð	F	235:a
+²Ñ	F	236:a
+²Ò	F	237:a
+²Ó	F	238:a
+²Ô	F	239:a
+²Õ	F	240:a
+²Ö	F	241:a
+²×	F	242:a
+²Ø	F	243:a
+²Ù	F	244:a
+²Ú	F	245:a
+²Û	F	246:a
+²Ü	F	247:a
+²Ý	F	248:a
+²Þ	F	249:a
+²ß	F	250:a
+²à	F	251:a
+²á	F	252:a
+²â	F	253:a
+²ã	F	254:a
+²ä	F	255:a
+²å	F	0:b
+²æ	F	1:b
+²ç	F	2:b
+²è	F	3:b
+²é	F	4:b
+²ê	F	5:b
+²ë	F	6:b
+²ì	F	7:b
+²í	F	8:b
+²î	F	9:b
+²ï	F	10:b
+²ð	F	11:b
+²ñ	F	12:b
+²ò	F	13:b
+²ó	F	14:b
+²ô	F	15:b
+²õ	F	16:b
+²ö	F	17:b
+²÷	F	18:b
+²ø	F	19:b
+²ù	F	20:b
+²ú	F	21:b
+²û	F	22:b
+²ü	F	23:b
+²ý	F	24:b
+²þ	F	25:b
+³¡	F	26:b
+³¢	F	27:b
+³£	F	28:b
+³¤	F	29:b
+³¥	F	30:b
+³¦	F	31:b
+³§	F	32:b
+³¨	F	33:b
+³©	F	34:b
+³ª	F	35:b
+³«	F	36:b
+³¬	F	37:b
+³­	F	38:b
+³®	F	39:b
+³¯	F	40:b
+³°	F	41:b
+³±	F	42:b
+³²	F	43:b
+³³	F	44:b
+³´	F	45:b
+³µ	F	46:b
+³¶	F	47:b
+³·	F	48:b
+³¸	F	49:b
+³¹	F	50:b
+³º	F	51:b
+³»	F	52:b
+³¼	F	53:b
+³½	F	54:b
+³¾	F	55:b
+³¿	F	56:b
+³À	F	57:b
+³Á	F	58:b
+³Â	F	59:b
+³Ã	F	60:b
+³Ä	F	61:b
+³Å	F	62:b
+³Æ	F	63:b
+³Ç	F	64:b
+³È	F	65:b
+³É	F	66:b
+³Ê	F	67:b
+³Ë	F	68:b
+³Ì	F	69:b
+³Í	F	70:b
+³Î	F	71:b
+³Ï	F	72:b
+³Ð	F	73:b
+³Ñ	F	74:b
+³Ò	F	75:b
+³Ó	F	76:b
+³Ô	F	77:b
+³Õ	F	78:b
+³Ö	F	79:b
+³×	F	80:b
+³Ø	F	81:b
+³Ù	F	82:b
+³Ú	F	83:b
+³Û	F	84:b
+³Ü	F	85:b
+³Ý	F	86:b
+³Þ	F	87:b
+³ß	F	88:b
+³à	F	89:b
+³á	F	90:b
+³â	F	91:b
+³ã	F	92:b
+³ä	F	93:b
+³å	F	94:b
+³æ	F	95:b
+³ç	F	96:b
+³è	F	97:b
+³é	F	98:b
+³ê	F	99:b
+³ë	F	100:b
+³ì	F	101:b
+³í	F	102:b
+³î	F	103:b
+³ï	F	104:b
+³ð	F	105:b
+³ñ	F	106:b
+³ò	F	107:b
+³ó	F	108:b
+³ô	F	109:b
+³õ	F	110:b
+³ö	F	111:b
+³÷	F	112:b
+³ø	F	113:b
+³ù	F	114:b
+³ú	F	115:b
+³û	F	116:b
+³ü	F	117:b
+³ý	F	118:b
+³þ	F	119:b
+´¡	F	120:b
+´¢	F	121:b
+´£	F	122:b
+´¤	F	123:b
+´¥	F	124:b
+´¦	F	125:b
+´§	F	126:b
+´¨	F	127:b
+´©	F	128:b
+´ª	F	129:b
+´«	F	130:b
+´¬	F	131:b
+´­	F	132:b
+´®	F	133:b
+´¯	F	134:b
+´°	F	135:b
+´±	F	136:b
+´²	F	137:b
+´³	F	138:b
+´´	F	139:b
+´µ	F	140:b
+´¶	F	141:b
+´·	F	142:b
+´¸	F	143:b
+´¹	F	144:b
+´º	F	145:b
+´»	F	146:b
+´¼	F	147:b
+´½	F	148:b
+´¾	F	149:b
+´¿	F	150:b
+´À	F	151:b
+´Á	F	152:b
+´Â	F	153:b
+´Ã	F	154:b
+´Ä	F	155:b
+´Å	F	156:b
+´Æ	F	157:b
+´Ç	F	158:b
+´È	F	159:b
+´É	F	160:b
+´Ê	F	161:b
+´Ë	F	162:b
+´Ì	F	163:b
+´Í	F	164:b
+´Î	F	165:b
+´Ï	F	166:b
+´Ð	F	167:b
+´Ñ	F	168:b
+´Ò	F	169:b
+´Ó	F	170:b
+´Ô	F	171:b
+´Õ	F	172:b
+´Ö	F	173:b
+´×	F	174:b
+´Ø	F	175:b
+´Ù	F	176:b
+´Ú	F	177:b
+´Û	F	178:b
+´Ü	F	179:b
+´Ý	F	180:b
+´Þ	F	181:b
+´ß	F	182:b
+´à	F	183:b
+´á	F	184:b
+´â	F	185:b
+´ã	F	186:b
+´ä	F	187:b
+´å	F	188:b
+´æ	F	189:b
+´ç	F	190:b
+´è	F	191:b
+´é	F	192:b
+´ê	F	193:b
+´ë	F	194:b
+´ì	F	195:b
+´í	F	196:b
+´î	F	197:b
+´ï	F	198:b
+´ð	F	199:b
+´ñ	F	200:b
+´ò	F	201:b
+´ó	F	202:b
+´ô	F	203:b
+´õ	F	204:b
+´ö	F	205:b
+´÷	F	206:b
+´ø	F	207:b
+´ù	F	208:b
+´ú	F	209:b
+´û	F	210:b
+´ü	F	211:b
+´ý	F	212:b
+´þ	F	213:b
+µ¡	F	214:b
+µ¢	F	215:b
+µ£	F	216:b
+µ¤	F	217:b
+µ¥	F	218:b
+µ¦	F	219:b
+µ§	F	220:b
+µ¨	F	221:b
+µ©	F	222:b
+µª	F	223:b
+µ«	F	224:b
+µ¬	F	225:b
+µ­	F	226:b
+µ®	F	227:b
+µ¯	F	228:b
+µ°	F	229:b
+µ±	F	230:b
+µ²	F	231:b
+µ³	F	232:b
+µ´	F	233:b
+µµ	F	234:b
+µ¶	F	235:b
+µ·	F	236:b
+µ¸	F	237:b
+µ¹	F	238:b
+µº	F	239:b
+µ»	F	240:b
+µ¼	F	241:b
+µ½	F	242:b
+µ¾	F	243:b
+µ¿	F	244:b
+µÀ	F	245:b
+µÁ	F	246:b
+µÂ	F	247:b
+µÃ	F	248:b
+µÄ	F	249:b
+µÅ	F	250:b
+µÆ	F	251:b
+µÇ	F	252:b
+µÈ	F	253:b
+µÉ	F	254:b
+µÊ	F	255:b
+µË	F	0:c
+µÌ	F	1:c
+µÍ	F	2:c
+µÎ	F	3:c
+µÏ	F	4:c
+µÐ	F	5:c
+µÑ	F	6:c
+µÒ	F	7:c
+µÓ	F	8:c
+µÔ	F	9:c
+µÕ	F	10:c
+µÖ	F	11:c
+µ×	F	12:c
+µØ	F	13:c
+µÙ	F	14:c
+µÚ	F	15:c
+µÛ	F	16:c
+µÜ	F	17:c
+µÝ	F	18:c
+µÞ	F	19:c
+µß	F	20:c
+µà	F	21:c
+µá	F	22:c
+µâ	F	23:c
+µã	F	24:c
+µä	F	25:c
+µå	F	26:c
+µæ	F	27:c
+µç	F	28:c
+µè	F	29:c
+µé	F	30:c
+µê	F	31:c
+µë	F	32:c
+µì	F	33:c
+µí	F	34:c
+µî	F	35:c
+µï	F	36:c
+µð	F	37:c
+µñ	F	38:c
+µò	F	39:c
+µó	F	40:c
+µô	F	41:c
+µõ	F	42:c
+µö	F	43:c
+µ÷	F	44:c
+µø	F	45:c
+µù	F	46:c
+µú	F	47:c
+µû	F	48:c
+µü	F	49:c
+µý	F	50:c
+µþ	F	51:c
+¶¡	F	52:c
+¶¢	F	53:c
+¶£	F	54:c
+¶¤	F	55:c
+¶¥	F	56:c
+¶¦	F	57:c
+¶§	F	58:c
+¶¨	F	59:c
+¶©	F	60:c
+¶ª	F	61:c
+¶«	F	62:c
+¶¬	F	63:c
+¶­	F	64:c
+¶®	F	65:c
+¶¯	F	66:c
+¶°	F	67:c
+¶±	F	68:c
+¶²	F	69:c
+¶³	F	70:c
+¶´	F	71:c
+¶µ	F	72:c
+¶¶	F	73:c
+¶·	F	74:c
+¶¸	F	75:c
+¶¹	F	76:c
+¶º	F	77:c
+¶»	F	78:c
+¶¼	F	79:c
+¶½	F	80:c
+¶¾	F	81:c
+¶¿	F	82:c
+¶À	F	83:c
+¶Á	F	84:c
+¶Â	F	85:c
+¶Ã	F	86:c
+¶Ä	F	87:c
+¶Å	F	88:c
+¶Æ	F	89:c
+¶Ç	F	90:c
+¶È	F	91:c
+¶É	F	92:c
+¶Ê	F	93:c
+¶Ë	F	94:c
+¶Ì	F	95:c
+¶Í	F	96:c
+¶Î	F	97:c
+¶Ï	F	98:c
+¶Ð	F	99:c
+¶Ñ	F	100:c
+¶Ò	F	101:c
+¶Ó	F	102:c
+¶Ô	F	103:c
+¶Õ	F	104:c
+¶Ö	F	105:c
+¶×	F	106:c
+¶Ø	F	107:c
+¶Ù	F	108:c
+¶Ú	F	109:c
+¶Û	F	110:c
+¶Ü	F	111:c
+¶Ý	F	112:c
+¶Þ	F	113:c
+¶ß	F	114:c
+¶à	F	115:c
+¶á	F	116:c
+¶â	F	117:c
+¶ã	F	118:c
+¶ä	F	119:c
+¶å	F	120:c
+¶æ	F	121:c
+¶ç	F	122:c
+¶è	F	123:c
+¶é	F	124:c
+¶ê	F	125:c
+¶ë	F	126:c
+¶ì	F	127:c
+¶í	F	128:c
+¶î	F	129:c
+¶ï	F	130:c
+¶ð	F	131:c
+¶ñ	F	132:c
+¶ò	F	133:c
+¶ó	F	134:c
+¶ô	F	135:c
+¶õ	F	136:c
+¶ö	F	137:c
+¶÷	F	138:c
+¶ø	F	139:c
+¶ù	F	140:c
+¶ú	F	141:c
+¶û	F	142:c
+¶ü	F	143:c
+¶ý	F	144:c
+¶þ	F	145:c
+·¡	F	146:c
+·¢	F	147:c
+·£	F	148:c
+·¤	F	149:c
+·¥	F	150:c
+·¦	F	151:c
+·§	F	152:c
+·¨	F	153:c
+·©	F	154:c
+·ª	F	155:c
+·«	F	156:c
+·¬	F	157:c
+·­	F	158:c
+·®	F	159:c
+·¯	F	160:c
+·°	F	161:c
+·±	F	162:c
+·²	F	163:c
+·³	F	164:c
+·´	F	165:c
+·µ	F	166:c
+·¶	F	167:c
+··	F	168:c
+·¸	F	169:c
+·¹	F	170:c
+·º	F	171:c
+·»	F	172:c
+·¼	F	173:c
+·½	F	174:c
+·¾	F	175:c
+·¿	F	176:c
+·À	F	177:c
+·Á	F	178:c
+·Â	F	179:c
+·Ã	F	180:c
+·Ä	F	181:c
+·Å	F	182:c
+·Æ	F	183:c
+·Ç	F	184:c
+·È	F	185:c
+·É	F	186:c
+·Ê	F	187:c
+·Ë	F	188:c
+·Ì	F	189:c
+·Í	F	190:c
+·Î	F	191:c
+·Ï	F	192:c
+·Ð	F	193:c
+·Ñ	F	194:c
+·Ò	F	195:c
+·Ó	F	196:c
+·Ô	F	197:c
+·Õ	F	198:c
+·Ö	F	199:c
+·×	F	200:c
+·Ø	F	201:c
+·Ù	F	202:c
+·Ú	F	203:c
+·Û	F	204:c
+·Ü	F	205:c
+·Ý	F	206:c
+·Þ	F	207:c
+·ß	F	208:c
+·à	F	209:c
+·á	F	210:c
+·â	F	211:c
+·ã	F	212:c
+·ä	F	213:c
+·å	F	214:c
+·æ	F	215:c
+·ç	F	216:c
+·è	F	217:c
+·é	F	218:c
+·ê	F	219:c
+·ë	F	220:c
+·ì	F	221:c
+·í	F	222:c
+·î	F	223:c
+·ï	F	224:c
+·ð	F	225:c
+·ñ	F	226:c
+·ò	F	227:c
+·ó	F	228:c
+·ô	F	229:c
+·õ	F	230:c
+·ö	F	231:c
+·÷	F	232:c
+·ø	F	233:c
+·ù	F	234:c
+·ú	F	235:c
+·û	F	236:c
+·ü	F	237:c
+·ý	F	238:c
+·þ	F	239:c
+¸¡	F	240:c
+¸¢	F	241:c
+¸£	F	242:c
+¸¤	F	243:c
+¸¥	F	244:c
+¸¦	F	245:c
+¸§	F	246:c
+¸¨	F	247:c
+¸©	F	248:c
+¸ª	F	249:c
+¸«	F	250:c
+¸¬	F	251:c
+¸­	F	252:c
+¸®	F	253:c
+¸¯	F	254:c
+¸°	F	255:c
+¸±	F	0:d
+¸²	F	1:d
+¸³	F	2:d
+¸´	F	3:d
+¸µ	F	4:d
+¸¶	F	5:d
+¸·	F	6:d
+¸¸	F	7:d
+¸¹	F	8:d
+¸º	F	9:d
+¸»	F	10:d
+¸¼	F	11:d
+¸½	F	12:d
+¸¾	F	13:d
+¸¿	F	14:d
+¸À	F	15:d
+¸Á	F	16:d
+¸Â	F	17:d
+¸Ã	F	18:d
+¸Ä	F	19:d
+¸Å	F	20:d
+¸Æ	F	21:d
+¸Ç	F	22:d
+¸È	F	23:d
+¸É	F	24:d
+¸Ê	F	25:d
+¸Ë	F	26:d
+¸Ì	F	27:d
+¸Í	F	28:d
+¸Î	F	29:d
+¸Ï	F	30:d
+¸Ð	F	31:d
+¸Ñ	F	32:d
+¸Ò	F	33:d
+¸Ó	F	34:d
+¸Ô	F	35:d
+¸Õ	F	36:d
+¸Ö	F	37:d
+¸×	F	38:d
+¸Ø	F	39:d
+¸Ù	F	40:d
+¸Ú	F	41:d
+¸Û	F	42:d
+¸Ü	F	43:d
+¸Ý	F	44:d
+¸Þ	F	45:d
+¸ß	F	46:d
+¸à	F	47:d
+¸á	F	48:d
+¸â	F	49:d
+¸ã	F	50:d
+¸ä	F	51:d
+¸å	F	52:d
+¸æ	F	53:d
+¸ç	F	54:d
+¸è	F	55:d
+¸é	F	56:d
+¸ê	F	57:d
+¸ë	F	58:d
+¸ì	F	59:d
+¸í	F	60:d
+¸î	F	61:d
+¸ï	F	62:d
+¸ð	F	63:d
+¸ñ	F	64:d
+¸ò	F	65:d
+¸ó	F	66:d
+¸ô	F	67:d
+¸õ	F	68:d
+¸ö	F	69:d
+¸÷	F	70:d
+¸ø	F	71:d
+¸ù	F	72:d
+¸ú	F	73:d
+¸û	F	74:d
+¸ü	F	75:d
+¸ý	F	76:d
+¸þ	F	77:d
+¹¡	F	78:d
+¹¢	F	79:d
+¹£	F	80:d
+¹¤	F	81:d
+¹¥	F	82:d
+¹¦	F	83:d
+¹§	F	84:d
+¹¨	F	85:d
+¹©	F	86:d
+¹ª	F	87:d
+¹«	F	88:d
+¹¬	F	89:d
+¹­	F	90:d
+¹®	F	91:d
+¹¯	F	92:d
+¹°	F	93:d
+¹±	F	94:d
+¹²	F	95:d
+¹³	F	96:d
+¹´	F	97:d
+¹µ	F	98:d
+¹¶	F	99:d
+¹·	F	100:d
+¹¸	F	101:d
+¹¹	F	102:d
+¹º	F	103:d
+¹»	F	104:d
+¹¼	F	105:d
+¹½	F	106:d
+¹¾	F	107:d
+¹¿	F	108:d
+¹À	F	109:d
+¹Á	F	110:d
+¹Â	F	111:d
+¹Ã	F	112:d
+¹Ä	F	113:d
+¹Å	F	114:d
+¹Æ	F	115:d
+¹Ç	F	116:d
+¹È	F	117:d
+¹É	F	118:d
+¹Ê	F	119:d
+¹Ë	F	120:d
+¹Ì	F	121:d
+¹Í	F	122:d
+¹Î	F	123:d
+¹Ï	F	124:d
+¹Ð	F	125:d
+¹Ñ	F	126:d
+¹Ò	F	127:d
+¹Ó	F	128:d
+¹Ô	F	129:d
+¹Õ	F	130:d
+¹Ö	F	131:d
+¹×	F	132:d
+¹Ø	F	133:d
+¹Ù	F	134:d
+¹Ú	F	135:d
+¹Û	F	136:d
+¹Ü	F	137:d
+¹Ý	F	138:d
+¹Þ	F	139:d
+¹ß	F	140:d
+¹à	F	141:d
+¹á	F	142:d
+¹â	F	143:d
+¹ã	F	144:d
+¹ä	F	145:d
+¹å	F	146:d
+¹æ	F	147:d
+¹ç	F	148:d
+¹è	F	149:d
+¹é	F	150:d
+¹ê	F	151:d
+¹ë	F	152:d
+¹ì	F	153:d
+¹í	F	154:d
+¹î	F	155:d
+¹ï	F	156:d
+¹ð	F	157:d
+¹ñ	F	158:d
+¹ò	F	159:d
+¹ó	F	160:d
+¹ô	F	161:d
+¹õ	F	162:d
+¹ö	F	163:d
+¹÷	F	164:d
+¹ø	F	165:d
+¹ù	F	166:d
+¹ú	F	167:d
+¹û	F	168:d
+¹ü	F	169:d
+¹ý	F	170:d
+¹þ	F	171:d
+º¡	F	172:d
+º¢	F	173:d
+º£	F	174:d
+º¤	F	175:d
+º¥	F	176:d
+º¦	F	177:d
+º§	F	178:d
+º¨	F	179:d
+º©	F	180:d
+ºª	F	181:d
+º«	F	182:d
+º¬	F	183:d
+º­	F	184:d
+º®	F	185:d
+º¯	F	186:d
+º°	F	187:d
+º±	F	188:d
+º²	F	189:d
+º³	F	190:d
+º´	F	191:d
+ºµ	F	192:d
+º¶	F	193:d
+º·	F	194:d
+º¸	F	195:d
+º¹	F	196:d
+ºº	F	197:d
+º»	F	198:d
+º¼	F	199:d
+º½	F	200:d
+º¾	F	201:d
+º¿	F	202:d
+ºÀ	F	203:d
+ºÁ	F	204:d
+ºÂ	F	205:d
+ºÃ	F	206:d
+ºÄ	F	207:d
+ºÅ	F	208:d
+ºÆ	F	209:d
+ºÇ	F	210:d
+ºÈ	F	211:d
+ºÉ	F	212:d
+ºÊ	F	213:d
+ºË	F	214:d
+ºÌ	F	215:d
+ºÍ	F	216:d
+ºÎ	F	217:d
+ºÏ	F	218:d
+ºÐ	F	219:d
+ºÑ	F	220:d
+ºÒ	F	221:d
+ºÓ	F	222:d
+ºÔ	F	223:d
+ºÕ	F	224:d
+ºÖ	F	225:d
+º×	F	226:d
+ºØ	F	227:d
+ºÙ	F	228:d
+ºÚ	F	229:d
+ºÛ	F	230:d
+ºÜ	F	231:d
+ºÝ	F	232:d
+ºÞ	F	233:d
+ºß	F	234:d
+ºà	F	235:d
+ºá	F	236:d
+ºâ	F	237:d
+ºã	F	238:d
+ºä	F	239:d
+ºå	F	240:d
+ºæ	F	241:d
+ºç	F	242:d
+ºè	F	243:d
+ºé	F	244:d
+ºê	F	245:d
+ºë	F	246:d
+ºì	F	247:d
+ºí	F	248:d
+ºî	F	249:d
+ºï	F	250:d
+ºð	F	251:d
+ºñ	F	252:d
+ºò	F	253:d
+ºó	F	254:d
+ºô	F	255:d
+ºõ	F	0:e
+ºö	F	1:e
+º÷	F	2:e
+ºø	F	3:e
+ºù	F	4:e
+ºú	F	5:e
+ºû	F	6:e
+ºü	F	7:e
+ºý	F	8:e
+ºþ	F	9:e
+»¡	F	10:e
+»¢	F	11:e
+»£	F	12:e
+»¤	F	13:e
+»¥	F	14:e
+»¦	F	15:e
+»§	F	16:e
+»¨	F	17:e
+»©	F	18:e
+»ª	F	19:e
+»«	F	20:e
+»¬	F	21:e
+»­	F	22:e
+»®	F	23:e
+»¯	F	24:e
+»°	F	25:e
+»±	F	26:e
+»²	F	27:e
+»³	F	28:e
+»´	F	29:e
+»µ	F	30:e
+»¶	F	31:e
+»·	F	32:e
+»¸	F	33:e
+»¹	F	34:e
+»º	F	35:e
+»»	F	36:e
+»¼	F	37:e
+»½	F	38:e
+»¾	F	39:e
+»¿	F	40:e
+»À	F	41:e
+»Á	F	42:e
+»Â	F	43:e
+»Ã	F	44:e
+»Ä	F	45:e
+»Å	F	46:e
+»Æ	F	47:e
+»Ç	F	48:e
+»È	F	49:e
+»É	F	50:e
+»Ê	F	51:e
+»Ë	F	52:e
+»Ì	F	53:e
+»Í	F	54:e
+»Î	F	55:e
+»Ï	F	56:e
+»Ð	F	57:e
+»Ñ	F	58:e
+»Ò	F	59:e
+»Ó	F	60:e
+»Ô	F	61:e
+»Õ	F	62:e
+»Ö	F	63:e
+»×	F	64:e
+»Ø	F	65:e
+»Ù	F	66:e
+»Ú	F	67:e
+»Û	F	68:e
+»Ü	F	69:e
+»Ý	F	70:e
+»Þ	F	71:e
+»ß	F	72:e
+»à	F	73:e
+»á	F	74:e
+»â	F	75:e
+»ã	F	76:e
+»ä	F	77:e
+»å	F	78:e
+»æ	F	79:e
+»ç	F	80:e
+»è	F	81:e
+»é	F	82:e
+»ê	F	83:e
+»ë	F	84:e
+»ì	F	85:e
+»í	F	86:e
+»î	F	87:e
+»ï	F	88:e
+»ð	F	89:e
+»ñ	F	90:e
+»ò	F	91:e
+»ó	F	92:e
+»ô	F	93:e
+»õ	F	94:e
+»ö	F	95:e
+»÷	F	96:e
+»ø	F	97:e
+»ù	F	98:e
+»ú	F	99:e
+»û	F	100:e
+»ü	F	101:e
+»ý	F	102:e
+»þ	F	103:e
+¼¡	F	104:e
+¼¢	F	105:e
+¼£	F	106:e
+¼¤	F	107:e
+¼¥	F	108:e
+¼¦	F	109:e
+¼§	F	110:e
+¼¨	F	111:e
+¼©	F	112:e
+¼ª	F	113:e
+¼«	F	114:e
+¼¬	F	115:e
+¼­	F	116:e
+¼®	F	117:e
+¼¯	F	118:e
+¼°	F	119:e
+¼±	F	120:e
+¼²	F	121:e
+¼³	F	122:e
+¼´	F	123:e
+¼µ	F	124:e
+¼¶	F	125:e
+¼·	F	126:e
+¼¸	F	127:e
+¼¹	F	128:e
+¼º	F	129:e
+¼»	F	130:e
+¼¼	F	131:e
+¼½	F	132:e
+¼¾	F	133:e
+¼¿	F	134:e
+¼À	F	135:e
+¼Á	F	136:e
+¼Â	F	137:e
+¼Ã	F	138:e
+¼Ä	F	139:e
+¼Å	F	140:e
+¼Æ	F	141:e
+¼Ç	F	142:e
+¼È	F	143:e
+¼É	F	144:e
+¼Ê	F	145:e
+¼Ë	F	146:e
+¼Ì	F	147:e
+¼Í	F	148:e
+¼Î	F	149:e
+¼Ï	F	150:e
+¼Ð	F	151:e
+¼Ñ	F	152:e
+¼Ò	F	153:e
+¼Ó	F	154:e
+¼Ô	F	155:e
+¼Õ	F	156:e
+¼Ö	F	157:e
+¼×	F	158:e
+¼Ø	F	159:e
+¼Ù	F	160:e
+¼Ú	F	161:e
+¼Û	F	162:e
+¼Ü	F	163:e
+¼Ý	F	164:e
+¼Þ	F	165:e
+¼ß	F	166:e
+¼à	F	167:e
+¼á	F	168:e
+¼â	F	169:e
+¼ã	F	170:e
+¼ä	F	171:e
+¼å	F	172:e
+¼æ	F	173:e
+¼ç	F	174:e
+¼è	F	175:e
+¼é	F	176:e
+¼ê	F	177:e
+¼ë	F	178:e
+¼ì	F	179:e
+¼í	F	180:e
+¼î	F	181:e
+¼ï	F	182:e
+¼ð	F	183:e
+¼ñ	F	184:e
+¼ò	F	185:e
+¼ó	F	186:e
+¼ô	F	187:e
+¼õ	F	188:e
+¼ö	F	189:e
+¼÷	F	190:e
+¼ø	F	191:e
+¼ù	F	192:e
+¼ú	F	193:e
+¼û	F	194:e
+¼ü	F	195:e
+¼ý	F	196:e
+¼þ	F	197:e
+½¡	F	198:e
+½¢	F	199:e
+½£	F	200:e
+½¤	F	201:e
+½¥	F	202:e
+½¦	F	203:e
+½§	F	204:e
+½¨	F	205:e
+½©	F	206:e
+½ª	F	207:e
+½«	F	208:e
+½¬	F	209:e
+½­	F	210:e
+½®	F	211:e
+½¯	F	212:e
+½°	F	213:e
+½±	F	214:e
+½²	F	215:e
+½³	F	216:e
+½´	F	217:e
+½µ	F	218:e
+½¶	F	219:e
+½·	F	220:e
+½¸	F	221:e
+½¹	F	222:e
+½º	F	223:e
+½»	F	224:e
+½¼	F	225:e
+½½	F	226:e
+½¾	F	227:e
+½¿	F	228:e
+½À	F	229:e
+½Á	F	230:e
+½Â	F	231:e
+½Ã	F	232:e
+½Ä	F	233:e
+½Å	F	234:e
+½Æ	F	235:e
+½Ç	F	236:e
+½È	F	237:e
+½É	F	238:e
+½Ê	F	239:e
+½Ë	F	240:e
+½Ì	F	241:e
+½Í	F	242:e
+½Î	F	243:e
+½Ï	F	244:e
+½Ð	F	245:e
+½Ñ	F	246:e
+½Ò	F	247:e
+½Ó	F	248:e
+½Ô	F	249:e
+½Õ	F	250:e
+½Ö	F	251:e
+½×	F	252:e
+½Ø	F	253:e
+½Ù	F	254:e
+½Ú	F	255:e
+½Û	F	0:f
+½Ü	F	1:f
+½Ý	F	2:f
+½Þ	F	3:f
+½ß	F	4:f
+½à	F	5:f
+½á	F	6:f
+½â	F	7:f
+½ã	F	8:f
+½ä	F	9:f
+½å	F	10:f
+½æ	F	11:f
+½ç	F	12:f
+½è	F	13:f
+½é	F	14:f
+½ê	F	15:f
+½ë	F	16:f
+½ì	F	17:f
+½í	F	18:f
+½î	F	19:f
+½ï	F	20:f
+½ð	F	21:f
+½ñ	F	22:f
+½ò	F	23:f
+½ó	F	24:f
+½ô	F	25:f
+½õ	F	26:f
+½ö	F	27:f
+½÷	F	28:f
+½ø	F	29:f
+½ù	F	30:f
+½ú	F	31:f
+½û	F	32:f
+½ü	F	33:f
+½ý	F	34:f
+½þ	F	35:f
+¾¡	F	36:f
+¾¢	F	37:f
+¾£	F	38:f
+¾¤	F	39:f
+¾¥	F	40:f
+¾¦	F	41:f
+¾§	F	42:f
+¾¨	F	43:f
+¾©	F	44:f
+¾ª	F	45:f
+¾«	F	46:f
+¾¬	F	47:f
+¾­	F	48:f
+¾®	F	49:f
+¾¯	F	50:f
+¾°	F	51:f
+¾±	F	52:f
+¾²	F	53:f
+¾³	F	54:f
+¾´	F	55:f
+¾µ	F	56:f
+¾¶	F	57:f
+¾·	F	58:f
+¾¸	F	59:f
+¾¹	F	60:f
+¾º	F	61:f
+¾»	F	62:f
+¾¼	F	63:f
+¾½	F	64:f
+¾¾	F	65:f
+¾¿	F	66:f
+¾À	F	67:f
+¾Á	F	68:f
+¾Â	F	69:f
+¾Ã	F	70:f
+¾Ä	F	71:f
+¾Å	F	72:f
+¾Æ	F	73:f
+¾Ç	F	74:f
+¾È	F	75:f
+¾É	F	76:f
+¾Ê	F	77:f
+¾Ë	F	78:f
+¾Ì	F	79:f
+¾Í	F	80:f
+¾Î	F	81:f
+¾Ï	F	82:f
+¾Ð	F	83:f
+¾Ñ	F	84:f
+¾Ò	F	85:f
+¾Ó	F	86:f
+¾Ô	F	87:f
+¾Õ	F	88:f
+¾Ö	F	89:f
+¾×	F	90:f
+¾Ø	F	91:f
+¾Ù	F	92:f
+¾Ú	F	93:f
+¾Û	F	94:f
+¾Ü	F	95:f
+¾Ý	F	96:f
+¾Þ	F	97:f
+¾ß	F	98:f
+¾à	F	99:f
+¾á	F	100:f
+¾â	F	101:f
+¾ã	F	102:f
+¾ä	F	103:f
+¾å	F	104:f
+¾æ	F	105:f
+¾ç	F	106:f
+¾è	F	107:f
+¾é	F	108:f
+¾ê	F	109:f
+¾ë	F	110:f
+¾ì	F	111:f
+¾í	F	112:f
+¾î	F	113:f
+¾ï	F	114:f
+¾ð	F	115:f
+¾ñ	F	116:f
+¾ò	F	117:f
+¾ó	F	118:f
+¾ô	F	119:f
+¾õ	F	120:f
+¾ö	F	121:f
+¾÷	F	122:f
+¾ø	F	123:f
+¾ù	F	124:f
+¾ú	F	125:f
+¾û	F	126:f
+¾ü	F	127:f
+¾ý	F	128:f
+¾þ	F	129:f
+¿¡	F	130:f
+¿¢	F	131:f
+¿£	F	132:f
+¿¤	F	133:f
+¿¥	F	134:f
+¿¦	F	135:f
+¿§	F	136:f
+¿¨	F	137:f
+¿©	F	138:f
+¿ª	F	139:f
+¿«	F	140:f
+¿¬	F	141:f
+¿­	F	142:f
+¿®	F	143:f
+¿¯	F	144:f
+¿°	F	145:f
+¿±	F	146:f
+¿²	F	147:f
+¿³	F	148:f
+¿´	F	149:f
+¿µ	F	150:f
+¿¶	F	151:f
+¿·	F	152:f
+¿¸	F	153:f
+¿¹	F	154:f
+¿º	F	155:f
+¿»	F	156:f
+¿¼	F	157:f
+¿½	F	158:f
+¿¾	F	159:f
+¿¿	F	160:f
+¿À	F	161:f
+¿Á	F	162:f
+¿Â	F	163:f
+¿Ã	F	164:f
+¿Ä	F	165:f
+¿Å	F	166:f
+¿Æ	F	167:f
+¿Ç	F	168:f
+¿È	F	169:f
+¿É	F	170:f
+¿Ê	F	171:f
+¿Ë	F	172:f
+¿Ì	F	173:f
+¿Í	F	174:f
+¿Î	F	175:f
+¿Ï	F	176:f
+¿Ð	F	177:f
+¿Ñ	F	178:f
+¿Ò	F	179:f
+¿Ó	F	180:f
+¿Ô	F	181:f
+¿Õ	F	182:f
+¿Ö	F	183:f
+¿×	F	184:f
+¿Ø	F	185:f
+¿Ù	F	186:f
+¿Ú	F	187:f
+¿Û	F	188:f
+¿Ü	F	189:f
+¿Ý	F	190:f
+¿Þ	F	191:f
+¿ß	F	192:f
+¿à	F	193:f
+¿á	F	194:f
+¿â	F	195:f
+¿ã	F	196:f
+¿ä	F	197:f
+¿å	F	198:f
+¿æ	F	199:f
+¿ç	F	200:f
+¿è	F	201:f
+¿é	F	202:f
+¿ê	F	203:f
+¿ë	F	204:f
+¿ì	F	205:f
+¿í	F	206:f
+¿î	F	207:f
+¿ï	F	208:f
+¿ð	F	209:f
+¿ñ	F	210:f
+¿ò	F	211:f
+¿ó	F	212:f
+¿ô	F	213:f
+¿õ	F	214:f
+¿ö	F	215:f
+¿÷	F	216:f
+¿ø	F	217:f
+¿ù	F	218:f
+¿ú	F	219:f
+¿û	F	220:f
+¿ü	F	221:f
+¿ý	F	222:f
+¿þ	F	223:f
+À¡	F	224:f
+À¢	F	225:f
+À£	F	226:f
+À¤	F	227:f
+À¥	F	228:f
+À¦	F	229:f
+À§	F	230:f
+À¨	F	231:f
+À©	F	232:f
+Àª	F	233:f
+À«	F	234:f
+À¬	F	235:f
+À­	F	236:f
+À®	F	237:f
+À¯	F	238:f
+À°	F	239:f
+À±	F	240:f
+À²	F	241:f
+À³	F	242:f
+À´	F	243:f
+Àµ	F	244:f
+À¶	F	245:f
+À·	F	246:f
+À¸	F	247:f
+À¹	F	248:f
+Àº	F	249:f
+À»	F	250:f
+À¼	F	251:f
+À½	F	252:f
+À¾	F	253:f
+À¿	F	254:f
+ÀÀ	F	255:f
+ÀÁ	F	0:g
+ÀÂ	F	1:g
+ÀÃ	F	2:g
+ÀÄ	F	3:g
+ÀÅ	F	4:g
+ÀÆ	F	5:g
+ÀÇ	F	6:g
+ÀÈ	F	7:g
+ÀÉ	F	8:g
+ÀÊ	F	9:g
+ÀË	F	10:g
+ÀÌ	F	11:g
+ÀÍ	F	12:g
+ÀÎ	F	13:g
+ÀÏ	F	14:g
+ÀÐ	F	15:g
+ÀÑ	F	16:g
+ÀÒ	F	17:g
+ÀÓ	F	18:g
+ÀÔ	F	19:g
+ÀÕ	F	20:g
+ÀÖ	F	21:g
+À×	F	22:g
+ÀØ	F	23:g
+ÀÙ	F	24:g
+ÀÚ	F	25:g
+ÀÛ	F	26:g
+ÀÜ	F	27:g
+ÀÝ	F	28:g
+ÀÞ	F	29:g
+Àß	F	30:g
+Àà	F	31:g
+Àá	F	32:g
+Àâ	F	33:g
+Àã	F	34:g
+Àä	F	35:g
+Àå	F	36:g
+Àæ	F	37:g
+Àç	F	38:g
+Àè	F	39:g
+Àé	F	40:g
+Àê	F	41:g
+Àë	F	42:g
+Àì	F	43:g
+Àí	F	44:g
+Àî	F	45:g
+Àï	F	46:g
+Àð	F	47:g
+Àñ	F	48:g
+Àò	F	49:g
+Àó	F	50:g
+Àô	F	51:g
+Àõ	F	52:g
+Àö	F	53:g
+À÷	F	54:g
+Àø	F	55:g
+Àù	F	56:g
+Àú	F	57:g
+Àû	F	58:g
+Àü	F	59:g
+Àý	F	60:g
+Àþ	F	61:g
+Á¡	F	62:g
+Á¢	F	63:g
+Á£	F	64:g
+Á¤	F	65:g
+Á¥	F	66:g
+Á¦	F	67:g
+Á§	F	68:g
+Á¨	F	69:g
+Á©	F	70:g
+Áª	F	71:g
+Á«	F	72:g
+Á¬	F	73:g
+Á­	F	74:g
+Á®	F	75:g
+Á¯	F	76:g
+Á°	F	77:g
+Á±	F	78:g
+Á²	F	79:g
+Á³	F	80:g
+Á´	F	81:g
+Áµ	F	82:g
+Á¶	F	83:g
+Á·	F	84:g
+Á¸	F	85:g
+Á¹	F	86:g
+Áº	F	87:g
+Á»	F	88:g
+Á¼	F	89:g
+Á½	F	90:g
+Á¾	F	91:g
+Á¿	F	92:g
+ÁÀ	F	93:g
+ÁÁ	F	94:g
+ÁÂ	F	95:g
+ÁÃ	F	96:g
+ÁÄ	F	97:g
+ÁÅ	F	98:g
+ÁÆ	F	99:g
+ÁÇ	F	100:g
+ÁÈ	F	101:g
+ÁÉ	F	102:g
+ÁÊ	F	103:g
+ÁË	F	104:g
+ÁÌ	F	105:g
+ÁÍ	F	106:g
+ÁÎ	F	107:g
+ÁÏ	F	108:g
+ÁÐ	F	109:g
+ÁÑ	F	110:g
+ÁÒ	F	111:g
+ÁÓ	F	112:g
+ÁÔ	F	113:g
+ÁÕ	F	114:g
+ÁÖ	F	115:g
+Á×	F	116:g
+ÁØ	F	117:g
+ÁÙ	F	118:g
+ÁÚ	F	119:g
+ÁÛ	F	120:g
+ÁÜ	F	121:g
+ÁÝ	F	122:g
+ÁÞ	F	123:g
+Áß	F	124:g
+Áà	F	125:g
+Áá	F	126:g
+Áâ	F	127:g
+Áã	F	128:g
+Áä	F	129:g
+Áå	F	130:g
+Áæ	F	131:g
+Áç	F	132:g
+Áè	F	133:g
+Áé	F	134:g
+Áê	F	135:g
+Áë	F	136:g
+Áì	F	137:g
+Áí	F	138:g
+Áî	F	139:g
+Áï	F	140:g
+Áð	F	141:g
+Áñ	F	142:g
+Áò	F	143:g
+Áó	F	144:g
+Áô	F	145:g
+Áõ	F	146:g
+Áö	F	147:g
+Á÷	F	148:g
+Áø	F	149:g
+Áù	F	150:g
+Áú	F	151:g
+Áû	F	152:g
+Áü	F	153:g
+Áý	F	154:g
+Áþ	F	155:g
+¡	F	156:g
+¢	F	157:g
+£	F	158:g
+¤	F	159:g
+¥	F	160:g
+¦	F	161:g
+§	F	162:g
+¨	F	163:g
+©	F	164:g
+ª	F	165:g
+«	F	166:g
+¬	F	167:g
+­	F	168:g
+®	F	169:g
+¯	F	170:g
+°	F	171:g
+±	F	172:g
+²	F	173:g
+³	F	174:g
+´	F	175:g
+µ	F	176:g
+¶	F	177:g
+·	F	178:g
+¸	F	179:g
+¹	F	180:g
+º	F	181:g
+»	F	182:g
+¼	F	183:g
+½	F	184:g
+¾	F	185:g
+¿	F	186:g
+ÂÀ	F	187:g
+ÂÁ	F	188:g
+ÂÂ	F	189:g
+ÂÃ	F	190:g
+ÂÄ	F	191:g
+ÂÅ	F	192:g
+ÂÆ	F	193:g
+ÂÇ	F	194:g
+ÂÈ	F	195:g
+ÂÉ	F	196:g
+ÂÊ	F	197:g
+ÂË	F	198:g
+ÂÌ	F	199:g
+ÂÍ	F	200:g
+ÂÎ	F	201:g
+ÂÏ	F	202:g
+ÂÐ	F	203:g
+ÂÑ	F	204:g
+ÂÒ	F	205:g
+ÂÓ	F	206:g
+ÂÔ	F	207:g
+ÂÕ	F	208:g
+ÂÖ	F	209:g
+Â×	F	210:g
+ÂØ	F	211:g
+ÂÙ	F	212:g
+ÂÚ	F	213:g
+ÂÛ	F	214:g
+ÂÜ	F	215:g
+ÂÝ	F	216:g
+ÂÞ	F	217:g
+Âß	F	218:g
+Âà	F	219:g
+Âá	F	220:g
+Ââ	F	221:g
+Âã	F	222:g
+Âä	F	223:g
+Âå	F	224:g
+Âæ	F	225:g
+Âç	F	226:g
+Âè	F	227:g
+Âé	F	228:g
+Âê	F	229:g
+Âë	F	230:g
+Âì	F	231:g
+Âí	F	232:g
+Âî	F	233:g
+Âï	F	234:g
+Âð	F	235:g
+Âñ	F	236:g
+Âò	F	237:g
+Âó	F	238:g
+Âô	F	239:g
+Âõ	F	240:g
+Âö	F	241:g
+Â÷	F	242:g
+Âø	F	243:g
+Âù	F	244:g
+Âú	F	245:g
+Âû	F	246:g
+Âü	F	247:g
+Âý	F	248:g
+Âþ	F	249:g
+á	F	250:g
+â	F	251:g
+ã	F	252:g
+ä	F	253:g
+å	F	254:g
+æ	F	255:g
+ç	F	0:h
+è	F	1:h
+é	F	2:h
+ê	F	3:h
+ë	F	4:h
+ì	F	5:h
+í	F	6:h
+î	F	7:h
+ï	F	8:h
+ð	F	9:h
+ñ	F	10:h
+ò	F	11:h
+ó	F	12:h
+ô	F	13:h
+õ	F	14:h
+ö	F	15:h
+÷	F	16:h
+ø	F	17:h
+ù	F	18:h
+ú	F	19:h
+û	F	20:h
+ü	F	21:h
+ý	F	22:h
+þ	F	23:h
+ÿ	F	24:h
+ÃÀ	F	25:h
+ÃÁ	F	26:h
+ÃÂ	F	27:h
+ÃÃ	F	28:h
+ÃÄ	F	29:h
+ÃÅ	F	30:h
+ÃÆ	F	31:h
+ÃÇ	F	32:h
+ÃÈ	F	33:h
+ÃÉ	F	34:h
+ÃÊ	F	35:h
+ÃË	F	36:h
+ÃÌ	F	37:h
+ÃÍ	F	38:h
+ÃÎ	F	39:h
+ÃÏ	F	40:h
+ÃÐ	F	41:h
+ÃÑ	F	42:h
+ÃÒ	F	43:h
+ÃÓ	F	44:h
+ÃÔ	F	45:h
+ÃÕ	F	46:h
+ÃÖ	F	47:h
+Ã×	F	48:h
+ÃØ	F	49:h
+ÃÙ	F	50:h
+ÃÚ	F	51:h
+ÃÛ	F	52:h
+ÃÜ	F	53:h
+ÃÝ	F	54:h
+ÃÞ	F	55:h
+Ãß	F	56:h
+Ãà	F	57:h
+Ãá	F	58:h
+Ãâ	F	59:h
+Ãã	F	60:h
+Ãä	F	61:h
+Ãå	F	62:h
+Ãæ	F	63:h
+Ãç	F	64:h
+Ãè	F	65:h
+Ãé	F	66:h
+Ãê	F	67:h
+Ãë	F	68:h
+Ãì	F	69:h
+Ãí	F	70:h
+Ãî	F	71:h
+Ãï	F	72:h
+Ãð	F	73:h
+Ãñ	F	74:h
+Ãò	F	75:h
+Ãó	F	76:h
+Ãô	F	77:h
+Ãõ	F	78:h
+Ãö	F	79:h
+Ã÷	F	80:h
+Ãø	F	81:h
+Ãù	F	82:h
+Ãú	F	83:h
+Ãû	F	84:h
+Ãü	F	85:h
+Ãý	F	86:h
+Ãþ	F	87:h
+ġ	F	88:h
+Ģ	F	89:h
+ģ	F	90:h
+Ĥ	F	91:h
+ĥ	F	92:h
+Ħ	F	93:h
+ħ	F	94:h
+Ĩ	F	95:h
+ĩ	F	96:h
+Ī	F	97:h
+ī	F	98:h
+Ĭ	F	99:h
+ĭ	F	100:h
+Į	F	101:h
+į	F	102:h
+İ	F	103:h
+ı	F	104:h
+Ĳ	F	105:h
+ĳ	F	106:h
+Ĵ	F	107:h
+ĵ	F	108:h
+Ķ	F	109:h
+ķ	F	110:h
+ĸ	F	111:h
+Ĺ	F	112:h
+ĺ	F	113:h
+Ļ	F	114:h
+ļ	F	115:h
+Ľ	F	116:h
+ľ	F	117:h
+Ŀ	F	118:h
+ÄÀ	F	119:h
+ÄÁ	F	120:h
+ÄÂ	F	121:h
+ÄÃ	F	122:h
+ÄÄ	F	123:h
+ÄÅ	F	124:h
+ÄÆ	F	125:h
+ÄÇ	F	126:h
+ÄÈ	F	127:h
+ÄÉ	F	128:h
+ÄÊ	F	129:h
+ÄË	F	130:h
+ÄÌ	F	131:h
+ÄÍ	F	132:h
+ÄÎ	F	133:h
+ÄÏ	F	134:h
+ÄÐ	F	135:h
+ÄÑ	F	136:h
+ÄÒ	F	137:h
+ÄÓ	F	138:h
+ÄÔ	F	139:h
+ÄÕ	F	140:h
+ÄÖ	F	141:h
+Ä×	F	142:h
+ÄØ	F	143:h
+ÄÙ	F	144:h
+ÄÚ	F	145:h
+ÄÛ	F	146:h
+ÄÜ	F	147:h
+ÄÝ	F	148:h
+ÄÞ	F	149:h
+Äß	F	150:h
+Äà	F	151:h
+Äá	F	152:h
+Äâ	F	153:h
+Äã	F	154:h
+Ää	F	155:h
+Äå	F	156:h
+Äæ	F	157:h
+Äç	F	158:h
+Äè	F	159:h
+Äé	F	160:h
+Äê	F	161:h
+Äë	F	162:h
+Äì	F	163:h
+Äí	F	164:h
+Äî	F	165:h
+Äï	F	166:h
+Äð	F	167:h
+Äñ	F	168:h
+Äò	F	169:h
+Äó	F	170:h
+Äô	F	171:h
+Äõ	F	172:h
+Äö	F	173:h
+Ä÷	F	174:h
+Äø	F	175:h
+Äù	F	176:h
+Äú	F	177:h
+Äû	F	178:h
+Äü	F	179:h
+Äý	F	180:h
+Äþ	F	181:h
+š	F	182:h
+Ţ	F	183:h
+ţ	F	184:h
+Ť	F	185:h
+ť	F	186:h
+Ŧ	F	187:h
+ŧ	F	188:h
+Ũ	F	189:h
+ũ	F	190:h
+Ū	F	191:h
+ū	F	192:h
+Ŭ	F	193:h
+ŭ	F	194:h
+Ů	F	195:h
+ů	F	196:h
+Ű	F	197:h
+ű	F	198:h
+Ų	F	199:h
+ų	F	200:h
+Ŵ	F	201:h
+ŵ	F	202:h
+Ŷ	F	203:h
+ŷ	F	204:h
+Ÿ	F	205:h
+Ź	F	206:h
+ź	F	207:h
+Ż	F	208:h
+ż	F	209:h
+Ž	F	210:h
+ž	F	211:h
+ſ	F	212:h
+ÅÀ	F	213:h
+ÅÁ	F	214:h
+ÅÂ	F	215:h
+ÅÃ	F	216:h
+ÅÄ	F	217:h
+ÅÅ	F	218:h
+ÅÆ	F	219:h
+ÅÇ	F	220:h
+ÅÈ	F	221:h
+ÅÉ	F	222:h
+ÅÊ	F	223:h
+ÅË	F	224:h
+ÅÌ	F	225:h
+ÅÍ	F	226:h
+ÅÎ	F	227:h
+ÅÏ	F	228:h
+ÅÐ	F	229:h
+ÅÑ	F	230:h
+ÅÒ	F	231:h
+ÅÓ	F	232:h
+ÅÔ	F	233:h
+ÅÕ	F	234:h
+ÅÖ	F	235:h
+Å×	F	236:h
+ÅØ	F	237:h
+ÅÙ	F	238:h
+ÅÚ	F	239:h
+ÅÛ	F	240:h
+ÅÜ	F	241:h
+ÅÝ	F	242:h
+ÅÞ	F	243:h
+Åß	F	244:h
+Åà	F	245:h
+Åá	F	246:h
+Åâ	F	247:h
+Åã	F	248:h
+Åä	F	249:h
+Åå	F	250:h
+Åæ	F	251:h
+Åç	F	252:h
+Åè	F	253:h
+Åé	F	254:h
+Åê	F	255:h
+Åë	F	0:i
+Åì	F	1:i
+Åí	F	2:i
+Åî	F	3:i
+Åï	F	4:i
+Åð	F	5:i
+Åñ	F	6:i
+Åò	F	7:i
+Åó	F	8:i
+Åô	F	9:i
+Åõ	F	10:i
+Åö	F	11:i
+Å÷	F	12:i
+Åø	F	13:i
+Åù	F	14:i
+Åú	F	15:i
+Åû	F	16:i
+Åü	F	17:i
+Åý	F	18:i
+Åþ	F	19:i
+ơ	F	20:i
+Ƣ	F	21:i
+ƣ	F	22:i
+Ƥ	F	23:i
+ƥ	F	24:i
+Ʀ	F	25:i
+Ƨ	F	26:i
+ƨ	F	27:i
+Ʃ	F	28:i
+ƪ	F	29:i
+ƫ	F	30:i
+Ƭ	F	31:i
+ƭ	F	32:i
+Ʈ	F	33:i
+Ư	F	34:i
+ư	F	35:i
+Ʊ	F	36:i
+Ʋ	F	37:i
+Ƴ	F	38:i
+ƴ	F	39:i
+Ƶ	F	40:i
+ƶ	F	41:i
+Ʒ	F	42:i
+Ƹ	F	43:i
+ƹ	F	44:i
+ƺ	F	45:i
+ƻ	F	46:i
+Ƽ	F	47:i
+ƽ	F	48:i
+ƾ	F	49:i
+ƿ	F	50:i
+ÆÀ	F	51:i
+ÆÁ	F	52:i
+ÆÂ	F	53:i
+ÆÃ	F	54:i
+ÆÄ	F	55:i
+ÆÅ	F	56:i
+ÆÆ	F	57:i
+ÆÇ	F	58:i
+ÆÈ	F	59:i
+ÆÉ	F	60:i
+ÆÊ	F	61:i
+ÆË	F	62:i
+ÆÌ	F	63:i
+ÆÍ	F	64:i
+ÆÎ	F	65:i
+ÆÏ	F	66:i
+ÆÐ	F	67:i
+ÆÑ	F	68:i
+ÆÒ	F	69:i
+ÆÓ	F	70:i
+ÆÔ	F	71:i
+ÆÕ	F	72:i
+ÆÖ	F	73:i
+Æ×	F	74:i
+ÆØ	F	75:i
+ÆÙ	F	76:i
+ÆÚ	F	77:i
+ÆÛ	F	78:i
+ÆÜ	F	79:i
+ÆÝ	F	80:i
+ÆÞ	F	81:i
+Æß	F	82:i
+Æà	F	83:i
+Æá	F	84:i
+Æâ	F	85:i
+Æã	F	86:i
+Æä	F	87:i
+Æå	F	88:i
+Ææ	F	89:i
+Æç	F	90:i
+Æè	F	91:i
+Æé	F	92:i
+Æê	F	93:i
+Æë	F	94:i
+Æì	F	95:i
+Æí	F	96:i
+Æî	F	97:i
+Æï	F	98:i
+Æð	F	99:i
+Æñ	F	100:i
+Æò	F	101:i
+Æó	F	102:i
+Æô	F	103:i
+Æõ	F	104:i
+Æö	F	105:i
+Æ÷	F	106:i
+Æø	F	107:i
+Æù	F	108:i
+Æú	F	109:i
+Æû	F	110:i
+Æü	F	111:i
+Æý	F	112:i
+Æþ	F	113:i
+ǡ	F	114:i
+Ǣ	F	115:i
+ǣ	F	116:i
+Ǥ	F	117:i
+ǥ	F	118:i
+Ǧ	F	119:i
+ǧ	F	120:i
+Ǩ	F	121:i
+ǩ	F	122:i
+Ǫ	F	123:i
+ǫ	F	124:i
+Ǭ	F	125:i
+ǭ	F	126:i
+Ǯ	F	127:i
+ǯ	F	128:i
+ǰ	F	129:i
+Ǳ	F	130:i
+ǲ	F	131:i
+ǳ	F	132:i
+Ǵ	F	133:i
+ǵ	F	134:i
+Ƕ	F	135:i
+Ƿ	F	136:i
+Ǹ	F	137:i
+ǹ	F	138:i
+Ǻ	F	139:i
+ǻ	F	140:i
+Ǽ	F	141:i
+ǽ	F	142:i
+Ǿ	F	143:i
+ǿ	F	144:i
+ÇÀ	F	145:i
+ÇÁ	F	146:i
+ÇÂ	F	147:i
+ÇÃ	F	148:i
+ÇÄ	F	149:i
+ÇÅ	F	150:i
+ÇÆ	F	151:i
+ÇÇ	F	152:i
+ÇÈ	F	153:i
+ÇÉ	F	154:i
+ÇÊ	F	155:i
+ÇË	F	156:i
+ÇÌ	F	157:i
+ÇÍ	F	158:i
+ÇÎ	F	159:i
+ÇÏ	F	160:i
+ÇÐ	F	161:i
+ÇÑ	F	162:i
+ÇÒ	F	163:i
+ÇÓ	F	164:i
+ÇÔ	F	165:i
+ÇÕ	F	166:i
+ÇÖ	F	167:i
+Ç×	F	168:i
+ÇØ	F	169:i
+ÇÙ	F	170:i
+ÇÚ	F	171:i
+ÇÛ	F	172:i
+ÇÜ	F	173:i
+ÇÝ	F	174:i
+ÇÞ	F	175:i
+Çß	F	176:i
+Çà	F	177:i
+Çá	F	178:i
+Çâ	F	179:i
+Çã	F	180:i
+Çä	F	181:i
+Çå	F	182:i
+Çæ	F	183:i
+Çç	F	184:i
+Çè	F	185:i
+Çé	F	186:i
+Çê	F	187:i
+Çë	F	188:i
+Çì	F	189:i
+Çí	F	190:i
+Çî	F	191:i
+Çï	F	192:i
+Çð	F	193:i
+Çñ	F	194:i
+Çò	F	195:i
+Çó	F	196:i
+Çô	F	197:i
+Çõ	F	198:i
+Çö	F	199:i
+Ç÷	F	200:i
+Çø	F	201:i
+Çù	F	202:i
+Çú	F	203:i
+Çû	F	204:i
+Çü	F	205:i
+Çý	F	206:i
+Çþ	F	207:i
+ȡ	F	208:i
+Ȣ	F	209:i
+ȣ	F	210:i
+Ȥ	F	211:i
+ȥ	F	212:i
+Ȧ	F	213:i
+ȧ	F	214:i
+Ȩ	F	215:i
+ȩ	F	216:i
+Ȫ	F	217:i
+ȫ	F	218:i
+Ȭ	F	219:i
+ȭ	F	220:i
+Ȯ	F	221:i
+ȯ	F	222:i
+Ȱ	F	223:i
+ȱ	F	224:i
+Ȳ	F	225:i
+ȳ	F	226:i
+ȴ	F	227:i
+ȵ	F	228:i
+ȶ	F	229:i
+ȷ	F	230:i
+ȸ	F	231:i
+ȹ	F	232:i
+Ⱥ	F	233:i
+Ȼ	F	234:i
+ȼ	F	235:i
+Ƚ	F	236:i
+Ⱦ	F	237:i
+ȿ	F	238:i
+ÈÀ	F	239:i
+ÈÁ	F	240:i
+ÈÂ	F	241:i
+ÈÃ	F	242:i
+ÈÄ	F	243:i
+ÈÅ	F	244:i
+ÈÆ	F	245:i
+ÈÇ	F	246:i
+ÈÈ	F	247:i
+ÈÉ	F	248:i
+ÈÊ	F	249:i
+ÈË	F	250:i
+ÈÌ	F	251:i
+ÈÍ	F	252:i
+ÈÎ	F	253:i
+ÈÏ	F	254:i
+ÈÐ	F	255:i
+ÈÑ	F	0:j
+ÈÒ	F	1:j
+ÈÓ	F	2:j
+ÈÔ	F	3:j
+ÈÕ	F	4:j
+ÈÖ	F	5:j
+È×	F	6:j
+ÈØ	F	7:j
+ÈÙ	F	8:j
+ÈÚ	F	9:j
+ÈÛ	F	10:j
+ÈÜ	F	11:j
+ÈÝ	F	12:j
+ÈÞ	F	13:j
+Èß	F	14:j
+Èà	F	15:j
+Èá	F	16:j
+Èâ	F	17:j
+Èã	F	18:j
+Èä	F	19:j
+Èå	F	20:j
+Èæ	F	21:j
+Èç	F	22:j
+Èè	F	23:j
+Èé	F	24:j
+Èê	F	25:j
+Èë	F	26:j
+Èì	F	27:j
+Èí	F	28:j
+Èî	F	29:j
+Èï	F	30:j
+Èð	F	31:j
+Èñ	F	32:j
+Èò	F	33:j
+Èó	F	34:j
+Èô	F	35:j
+Èõ	F	36:j
+Èö	F	37:j
+È÷	F	38:j
+Èø	F	39:j
+Èù	F	40:j
+Èú	F	41:j
+Èû	F	42:j
+Èü	F	43:j
+Èý	F	44:j
+Èþ	F	45:j
+ɡ	F	46:j
+ɢ	F	47:j
+ɣ	F	48:j
+ɤ	F	49:j
+ɥ	F	50:j
+ɦ	F	51:j
+ɧ	F	52:j
+ɨ	F	53:j
+ɩ	F	54:j
+ɪ	F	55:j
+ɫ	F	56:j
+ɬ	F	57:j
+ɭ	F	58:j
+ɮ	F	59:j
+ɯ	F	60:j
+ɰ	F	61:j
+ɱ	F	62:j
+ɲ	F	63:j
+ɳ	F	64:j
+ɴ	F	65:j
+ɵ	F	66:j
+ɶ	F	67:j
+ɷ	F	68:j
+ɸ	F	69:j
+ɹ	F	70:j
+ɺ	F	71:j
+ɻ	F	72:j
+ɼ	F	73:j
+ɽ	F	74:j
+ɾ	F	75:j
+ɿ	F	76:j
+ÉÀ	F	77:j
+ÉÁ	F	78:j
+ÉÂ	F	79:j
+ÉÃ	F	80:j
+ÉÄ	F	81:j
+ÉÅ	F	82:j
+ÉÆ	F	83:j
+ÉÇ	F	84:j
+ÉÈ	F	85:j
+ÉÉ	F	86:j
+ÉÊ	F	87:j
+ÉË	F	88:j
+ÉÌ	F	89:j
+ÉÍ	F	90:j
+ÉÎ	F	91:j
+ÉÏ	F	92:j
+ÉÐ	F	93:j
+ÉÑ	F	94:j
+ÉÒ	F	95:j
+ÉÓ	F	96:j
+ÉÔ	F	97:j
+ÉÕ	F	98:j
+ÉÖ	F	99:j
+É×	F	100:j
+ÉØ	F	101:j
+ÉÙ	F	102:j
+ÉÚ	F	103:j
+ÉÛ	F	104:j
+ÉÜ	F	105:j
+ÉÝ	F	106:j
+ÉÞ	F	107:j
+Éß	F	108:j
+Éà	F	109:j
+Éá	F	110:j
+Éâ	F	111:j
+Éã	F	112:j
+Éä	F	113:j
+Éå	F	114:j
+Éæ	F	115:j
+Éç	F	116:j
+Éè	F	117:j
+Éé	F	118:j
+Éê	F	119:j
+Éë	F	120:j
+Éì	F	121:j
+Éí	F	122:j
+Éî	F	123:j
+Éï	F	124:j
+Éð	F	125:j
+Éñ	F	126:j
+Éò	F	127:j
+Éó	F	128:j
+Éô	F	129:j
+Éõ	F	130:j
+Éö	F	131:j
+É÷	F	132:j
+Éø	F	133:j
+Éù	F	134:j
+Éú	F	135:j
+Éû	F	136:j
+Éü	F	137:j
+Éý	F	138:j
+Éþ	F	139:j
+ʡ	F	140:j
+ʢ	F	141:j
+ʣ	F	142:j
+ʤ	F	143:j
+ʥ	F	144:j
+ʦ	F	145:j
+ʧ	F	146:j
+ʨ	F	147:j
+ʩ	F	148:j
+ʪ	F	149:j
+ʫ	F	150:j
+ʬ	F	151:j
+ʭ	F	152:j
+ʮ	F	153:j
+ʯ	F	154:j
+ʰ	F	155:j
+ʱ	F	156:j
+ʲ	F	157:j
+ʳ	F	158:j
+ʴ	F	159:j
+ʵ	F	160:j
+ʶ	F	161:j
+ʷ	F	162:j
+ʸ	F	163:j
+ʹ	F	164:j
+ʺ	F	165:j
+ʻ	F	166:j
+ʼ	F	167:j
+ʽ	F	168:j
+ʾ	F	169:j
+ʿ	F	170:j
+ÊÀ	F	171:j
+ÊÁ	F	172:j
+ÊÂ	F	173:j
+ÊÃ	F	174:j
+ÊÄ	F	175:j
+ÊÅ	F	176:j
+ÊÆ	F	177:j
+ÊÇ	F	178:j
+ÊÈ	F	179:j
+ÊÉ	F	180:j
+ÊÊ	F	181:j
+ÊË	F	182:j
+ÊÌ	F	183:j
+ÊÍ	F	184:j
+ÊÎ	F	185:j
+ÊÏ	F	186:j
+ÊÐ	F	187:j
+ÊÑ	F	188:j
+ÊÒ	F	189:j
+ÊÓ	F	190:j
+ÊÔ	F	191:j
+ÊÕ	F	192:j
+ÊÖ	F	193:j
+Ê×	F	194:j
+ÊØ	F	195:j
+ÊÙ	F	196:j
+ÊÚ	F	197:j
+ÊÛ	F	198:j
+ÊÜ	F	199:j
+ÊÝ	F	200:j
+ÊÞ	F	201:j
+Êß	F	202:j
+Êà	F	203:j
+Êá	F	204:j
+Êâ	F	205:j
+Êã	F	206:j
+Êä	F	207:j
+Êå	F	208:j
+Êæ	F	209:j
+Êç	F	210:j
+Êè	F	211:j
+Êé	F	212:j
+Êê	F	213:j
+Êë	F	214:j
+Êì	F	215:j
+Êí	F	216:j
+Êî	F	217:j
+Êï	F	218:j
+Êð	F	219:j
+Êñ	F	220:j
+Êò	F	221:j
+Êó	F	222:j
+Êô	F	223:j
+Êõ	F	224:j
+Êö	F	225:j
+Ê÷	F	226:j
+Êø	F	227:j
+Êù	F	228:j
+Êú	F	229:j
+Êû	F	230:j
+Êü	F	231:j
+Êý	F	232:j
+Êþ	F	233:j
+ˡ	F	234:j
+ˢ	F	235:j
+ˣ	F	236:j
+ˤ	F	237:j
+˥	F	238:j
+˦	F	239:j
+˧	F	240:j
+˨	F	241:j
+˩	F	242:j
+˪	F	243:j
+˫	F	244:j
+ˬ	F	245:j
+˭	F	246:j
+ˮ	F	247:j
+˯	F	248:j
+˰	F	249:j
+˱	F	250:j
+˲	F	251:j
+˳	F	252:j
+˴	F	253:j
+˵	F	254:j
+˶	F	255:j
+˷	F	0:k
+˸	F	1:k
+˹	F	2:k
+˺	F	3:k
+˻	F	4:k
+˼	F	5:k
+˽	F	6:k
+˾	F	7:k
+˿	F	8:k
+ËÀ	F	9:k
+ËÁ	F	10:k
+ËÂ	F	11:k
+ËÃ	F	12:k
+ËÄ	F	13:k
+ËÅ	F	14:k
+ËÆ	F	15:k
+ËÇ	F	16:k
+ËÈ	F	17:k
+ËÉ	F	18:k
+ËÊ	F	19:k
+ËË	F	20:k
+ËÌ	F	21:k
+ËÍ	F	22:k
+ËÎ	F	23:k
+ËÏ	F	24:k
+ËÐ	F	25:k
+ËÑ	F	26:k
+ËÒ	F	27:k
+ËÓ	F	28:k
+ËÔ	F	29:k
+ËÕ	F	30:k
+ËÖ	F	31:k
+Ë×	F	32:k
+ËØ	F	33:k
+ËÙ	F	34:k
+ËÚ	F	35:k
+ËÛ	F	36:k
+ËÜ	F	37:k
+ËÝ	F	38:k
+ËÞ	F	39:k
+Ëß	F	40:k
+Ëà	F	41:k
+Ëá	F	42:k
+Ëâ	F	43:k
+Ëã	F	44:k
+Ëä	F	45:k
+Ëå	F	46:k
+Ëæ	F	47:k
+Ëç	F	48:k
+Ëè	F	49:k
+Ëé	F	50:k
+Ëê	F	51:k
+Ëë	F	52:k
+Ëì	F	53:k
+Ëí	F	54:k
+Ëî	F	55:k
+Ëï	F	56:k
+Ëð	F	57:k
+Ëñ	F	58:k
+Ëò	F	59:k
+Ëó	F	60:k
+Ëô	F	61:k
+Ëõ	F	62:k
+Ëö	F	63:k
+Ë÷	F	64:k
+Ëø	F	65:k
+Ëù	F	66:k
+Ëú	F	67:k
+Ëû	F	68:k
+Ëü	F	69:k
+Ëý	F	70:k
+Ëþ	F	71:k
+̡	F	72:k
+̢	F	73:k
+̣	F	74:k
+̤	F	75:k
+̥	F	76:k
+̦	F	77:k
+̧	F	78:k
+̨	F	79:k
+̩	F	80:k
+̪	F	81:k
+̫	F	82:k
+̬	F	83:k
+̭	F	84:k
+̮	F	85:k
+̯	F	86:k
+̰	F	87:k
+̱	F	88:k
+̲	F	89:k
+̳	F	90:k
+̴	F	91:k
+̵	F	92:k
+̶	F	93:k
+̷	F	94:k
+̸	F	95:k
+̹	F	96:k
+̺	F	97:k
+̻	F	98:k
+̼	F	99:k
+̽	F	100:k
+̾	F	101:k
+̿	F	102:k
+ÌÀ	F	103:k
+ÌÁ	F	104:k
+ÌÂ	F	105:k
+ÌÃ	F	106:k
+ÌÄ	F	107:k
+ÌÅ	F	108:k
+ÌÆ	F	109:k
+ÌÇ	F	110:k
+ÌÈ	F	111:k
+ÌÉ	F	112:k
+ÌÊ	F	113:k
+ÌË	F	114:k
+ÌÌ	F	115:k
+ÌÍ	F	116:k
+ÌÎ	F	117:k
+ÌÏ	F	118:k
+ÌÐ	F	119:k
+ÌÑ	F	120:k
+ÌÒ	F	121:k
+ÌÓ	F	122:k
+ÌÔ	F	123:k
+ÌÕ	F	124:k
+ÌÖ	F	125:k
+Ì×	F	126:k
+ÌØ	F	127:k
+ÌÙ	F	128:k
+ÌÚ	F	129:k
+ÌÛ	F	130:k
+ÌÜ	F	131:k
+ÌÝ	F	132:k
+ÌÞ	F	133:k
+Ìß	F	134:k
+Ìà	F	135:k
+Ìá	F	136:k
+Ìâ	F	137:k
+Ìã	F	138:k
+Ìä	F	139:k
+Ìå	F	140:k
+Ìæ	F	141:k
+Ìç	F	142:k
+Ìè	F	143:k
+Ìé	F	144:k
+Ìê	F	145:k
+Ìë	F	146:k
+Ìì	F	147:k
+Ìí	F	148:k
+Ìî	F	149:k
+Ìï	F	150:k
+Ìð	F	151:k
+Ìñ	F	152:k
+Ìò	F	153:k
+Ìó	F	154:k
+Ìô	F	155:k
+Ìõ	F	156:k
+Ìö	F	157:k
+Ì÷	F	158:k
+Ìø	F	159:k
+Ìù	F	160:k
+Ìú	F	161:k
+Ìû	F	162:k
+Ìü	F	163:k
+Ìý	F	164:k
+Ìþ	F	165:k
+͡	F	166:k
+͢	F	167:k
+ͣ	F	168:k
+ͤ	F	169:k
+ͥ	F	170:k
+ͦ	F	171:k
+ͧ	F	172:k
+ͨ	F	173:k
+ͩ	F	174:k
+ͪ	F	175:k
+ͫ	F	176:k
+ͬ	F	177:k
+ͭ	F	178:k
+ͮ	F	179:k
+ͯ	F	180:k
+Ͱ	F	181:k
+ͱ	F	182:k
+Ͳ	F	183:k
+ͳ	F	184:k
+ʹ	F	185:k
+͵	F	186:k
+Ͷ	F	187:k
+ͷ	F	188:k
+͸	F	189:k
+͹	F	190:k
+ͺ	F	191:k
+ͻ	F	192:k
+ͼ	F	193:k
+ͽ	F	194:k
+;	F	195:k
+Ϳ	F	196:k
+ÍÀ	F	197:k
+ÍÁ	F	198:k
+ÍÂ	F	199:k
+ÍÃ	F	200:k
+ÍÄ	F	201:k
+ÍÅ	F	202:k
+ÍÆ	F	203:k
+ÍÇ	F	204:k
+ÍÈ	F	205:k
+ÍÉ	F	206:k
+ÍÊ	F	207:k
+ÍË	F	208:k
+ÍÌ	F	209:k
+ÍÍ	F	210:k
+ÍÎ	F	211:k
+ÍÏ	F	212:k
+ÍÐ	F	213:k
+ÍÑ	F	214:k
+ÍÒ	F	215:k
+ÍÓ	F	216:k
+ÍÔ	F	217:k
+ÍÕ	F	218:k
+ÍÖ	F	219:k
+Í×	F	220:k
+ÍØ	F	221:k
+ÍÙ	F	222:k
+ÍÚ	F	223:k
+ÍÛ	F	224:k
+ÍÜ	F	225:k
+ÍÝ	F	226:k
+ÍÞ	F	227:k
+Íß	F	228:k
+Íà	F	229:k
+Íá	F	230:k
+Íâ	F	231:k
+Íã	F	232:k
+Íä	F	233:k
+Íå	F	234:k
+Íæ	F	235:k
+Íç	F	236:k
+Íè	F	237:k
+Íé	F	238:k
+Íê	F	239:k
+Íë	F	240:k
+Íì	F	241:k
+Íí	F	242:k
+Íî	F	243:k
+Íï	F	244:k
+Íð	F	245:k
+Íñ	F	246:k
+Íò	F	247:k
+Íó	F	248:k
+Íô	F	249:k
+Íõ	F	250:k
+Íö	F	251:k
+Í÷	F	252:k
+Íø	F	253:k
+Íù	F	254:k
+Íú	F	255:k
+Íû	F	0:l
+Íü	F	1:l
+Íý	F	2:l
+Íþ	F	3:l
+Ρ	F	4:l
+΢	F	5:l
+Σ	F	6:l
+Τ	F	7:l
+Υ	F	8:l
+Φ	F	9:l
+Χ	F	10:l
+Ψ	F	11:l
+Ω	F	12:l
+Ϊ	F	13:l
+Ϋ	F	14:l
+ά	F	15:l
+έ	F	16:l
+ή	F	17:l
+ί	F	18:l
+ΰ	F	19:l
+α	F	20:l
+β	F	21:l
+γ	F	22:l
+δ	F	23:l
+ε	F	24:l
+ζ	F	25:l
+η	F	26:l
+θ	F	27:l
+ι	F	28:l
+κ	F	29:l
+λ	F	30:l
+μ	F	31:l
+ν	F	32:l
+ξ	F	33:l
+ο	F	34:l
+ÎÀ	F	35:l
+ÎÁ	F	36:l
+ÎÂ	F	37:l
+ÎÃ	F	38:l
+ÎÄ	F	39:l
+ÎÅ	F	40:l
+ÎÆ	F	41:l
+ÎÇ	F	42:l
+ÎÈ	F	43:l
+ÎÉ	F	44:l
+ÎÊ	F	45:l
+ÎË	F	46:l
+ÎÌ	F	47:l
+ÎÍ	F	48:l
+ÎÎ	F	49:l
+ÎÏ	F	50:l
+ÎÐ	F	51:l
+ÎÑ	F	52:l
+ÎÒ	F	53:l
+ÎÓ	F	54:l
+ÎÔ	F	55:l
+ÎÕ	F	56:l
+ÎÖ	F	57:l
+Î×	F	58:l
+ÎØ	F	59:l
+ÎÙ	F	60:l
+ÎÚ	F	61:l
+ÎÛ	F	62:l
+ÎÜ	F	63:l
+ÎÝ	F	64:l
+ÎÞ	F	65:l
+Îß	F	66:l
+Îà	F	67:l
+Îá	F	68:l
+Îâ	F	69:l
+Îã	F	70:l
+Îä	F	71:l
+Îå	F	72:l
+Îæ	F	73:l
+Îç	F	74:l
+Îè	F	75:l
+Îé	F	76:l
+Îê	F	77:l
+Îë	F	78:l
+Îì	F	79:l
+Îí	F	80:l
+Îî	F	81:l
+Îï	F	82:l
+Îð	F	83:l
+Îñ	F	84:l
+Îò	F	85:l
+Îó	F	86:l
+Îô	F	87:l
+Îõ	F	88:l
+Îö	F	89:l
+Î÷	F	90:l
+Îø	F	91:l
+Îù	F	92:l
+Îú	F	93:l
+Îû	F	94:l
+Îü	F	95:l
+Îý	F	96:l
+Îþ	F	97:l
+ϡ	F	98:l
+Ϣ	F	99:l
+ϣ	F	100:l
+Ϥ	F	101:l
+ϥ	F	102:l
+Ϧ	F	103:l
+ϧ	F	104:l
+Ϩ	F	105:l
+ϩ	F	106:l
+Ϫ	F	107:l
+ϫ	F	108:l
+Ϭ	F	109:l
+ϭ	F	110:l
+Ϯ	F	111:l
+ϯ	F	112:l
+ϰ	F	113:l
+ϱ	F	114:l
+ϲ	F	115:l
+ϳ	F	116:l
+ϴ	F	117:l
+ϵ	F	118:l
+϶	F	119:l
+Ϸ	F	120:l
+ϸ	F	121:l
+Ϲ	F	122:l
+Ϻ	F	123:l
+ϻ	F	124:l
+ϼ	F	125:l
+Ͻ	F	126:l
+Ͼ	F	127:l
+Ͽ	F	128:l
+ÏÀ	F	129:l
+ÏÁ	F	130:l
+ÏÂ	F	131:l
+ÏÃ	F	132:l
+ÏÄ	F	133:l
+ÏÅ	F	134:l
+ÏÆ	F	135:l
+ÏÇ	F	136:l
+ÏÈ	F	137:l
+ÏÉ	F	138:l
+ÏÊ	F	139:l
+ÏË	F	140:l
+ÏÌ	F	141:l
+ÏÍ	F	142:l
+ÏÎ	F	143:l
+ÏÏ	F	144:l
+ÏÐ	F	145:l
+ÏÑ	F	146:l
+ÏÒ	F	147:l
+ÏÓ	F	148:l
+С	F	0:m
+Т	F	1:m
+У	F	2:m
+Ф	F	3:m
+Х	F	4:m
+Ц	F	5:m
+Ч	F	6:m
+Ш	F	7:m
+Щ	F	8:m
+Ъ	F	9:m
+Ы	F	10:m
+Ь	F	11:m
+Э	F	12:m
+Ю	F	13:m
+Я	F	14:m
+а	F	15:m
+б	F	16:m
+в	F	17:m
+г	F	18:m
+д	F	19:m
+е	F	20:m
+ж	F	21:m
+з	F	22:m
+и	F	23:m
+й	F	24:m
+к	F	25:m
+л	F	26:m
+м	F	27:m
+н	F	28:m
+о	F	29:m
+п	F	30:m
+ÐÀ	F	31:m
+ÐÁ	F	32:m
+ÐÂ	F	33:m
+ÐÃ	F	34:m
+ÐÄ	F	35:m
+ÐÅ	F	36:m
+ÐÆ	F	37:m
+ÐÇ	F	38:m
+ÐÈ	F	39:m
+ÐÉ	F	40:m
+ÐÊ	F	41:m
+ÐË	F	42:m
+ÐÌ	F	43:m
+ÐÍ	F	44:m
+ÐÎ	F	45:m
+ÐÏ	F	46:m
+ÐÐ	F	47:m
+ÐÑ	F	48:m
+ÐÒ	F	49:m
+ÐÓ	F	50:m
+ÐÔ	F	51:m
+ÐÕ	F	52:m
+ÐÖ	F	53:m
+Ð×	F	54:m
+ÐØ	F	55:m
+ÐÙ	F	56:m
+ÐÚ	F	57:m
+ÐÛ	F	58:m
+ÐÜ	F	59:m
+ÐÝ	F	60:m
+ÐÞ	F	61:m
+Ðß	F	62:m
+Ðà	F	63:m
+Ðá	F	64:m
+Ðâ	F	65:m
+Ðã	F	66:m
+Ðä	F	67:m
+Ðå	F	68:m
+Ðæ	F	69:m
+Ðç	F	70:m
+Ðè	F	71:m
+Ðé	F	72:m
+Ðê	F	73:m
+Ðë	F	74:m
+Ðì	F	75:m
+Ðí	F	76:m
+Ðî	F	77:m
+Ðï	F	78:m
+Ðð	F	79:m
+Ðñ	F	80:m
+Ðò	F	81:m
+Ðó	F	82:m
+Ðô	F	83:m
+Ðõ	F	84:m
+Ðö	F	85:m
+Ð÷	F	86:m
+Ðø	F	87:m
+Ðù	F	88:m
+Ðú	F	89:m
+Ðû	F	90:m
+Ðü	F	91:m
+Ðý	F	92:m
+Ðþ	F	93:m
+ѡ	F	94:m
+Ѣ	F	95:m
+ѣ	F	96:m
+Ѥ	F	97:m
+ѥ	F	98:m
+Ѧ	F	99:m
+ѧ	F	100:m
+Ѩ	F	101:m
+ѩ	F	102:m
+Ѫ	F	103:m
+ѫ	F	104:m
+Ѭ	F	105:m
+ѭ	F	106:m
+Ѯ	F	107:m
+ѯ	F	108:m
+Ѱ	F	109:m
+ѱ	F	110:m
+Ѳ	F	111:m
+ѳ	F	112:m
+Ѵ	F	113:m
+ѵ	F	114:m
+Ѷ	F	115:m
+ѷ	F	116:m
+Ѹ	F	117:m
+ѹ	F	118:m
+Ѻ	F	119:m
+ѻ	F	120:m
+Ѽ	F	121:m
+ѽ	F	122:m
+Ѿ	F	123:m
+ѿ	F	124:m
+ÑÀ	F	125:m
+ÑÁ	F	126:m
+ÑÂ	F	127:m
+ÑÃ	F	128:m
+ÑÄ	F	129:m
+ÑÅ	F	130:m
+ÑÆ	F	131:m
+ÑÇ	F	132:m
+ÑÈ	F	133:m
+ÑÉ	F	134:m
+ÑÊ	F	135:m
+ÑË	F	136:m
+ÑÌ	F	137:m
+ÑÍ	F	138:m
+ÑÎ	F	139:m
+ÑÏ	F	140:m
+ÑÐ	F	141:m
+ÑÑ	F	142:m
+ÑÒ	F	143:m
+ÑÓ	F	144:m
+ÑÔ	F	145:m
+ÑÕ	F	146:m
+ÑÖ	F	147:m
+Ñ×	F	148:m
+ÑØ	F	149:m
+ÑÙ	F	150:m
+ÑÚ	F	151:m
+ÑÛ	F	152:m
+ÑÜ	F	153:m
+ÑÝ	F	154:m
+ÑÞ	F	155:m
+Ñß	F	156:m
+Ñà	F	157:m
+Ñá	F	158:m
+Ñâ	F	159:m
+Ñã	F	160:m
+Ñä	F	161:m
+Ñå	F	162:m
+Ñæ	F	163:m
+Ñç	F	164:m
+Ñè	F	165:m
+Ñé	F	166:m
+Ñê	F	167:m
+Ñë	F	168:m
+Ñì	F	169:m
+Ñí	F	170:m
+Ñî	F	171:m
+Ñï	F	172:m
+Ñð	F	173:m
+Ññ	F	174:m
+Ñò	F	175:m
+Ñó	F	176:m
+Ñô	F	177:m
+Ñõ	F	178:m
+Ñö	F	179:m
+Ñ÷	F	180:m
+Ñø	F	181:m
+Ñù	F	182:m
+Ñú	F	183:m
+Ñû	F	184:m
+Ñü	F	185:m
+Ñý	F	186:m
+Ñþ	F	187:m
+ҡ	F	188:m
+Ң	F	189:m
+ң	F	190:m
+Ҥ	F	191:m
+ҥ	F	192:m
+Ҧ	F	193:m
+ҧ	F	194:m
+Ҩ	F	195:m
+ҩ	F	196:m
+Ҫ	F	197:m
+ҫ	F	198:m
+Ҭ	F	199:m
+ҭ	F	200:m
+Ү	F	201:m
+ү	F	202:m
+Ұ	F	203:m
+ұ	F	204:m
+Ҳ	F	205:m
+ҳ	F	206:m
+Ҵ	F	207:m
+ҵ	F	208:m
+Ҷ	F	209:m
+ҷ	F	210:m
+Ҹ	F	211:m
+ҹ	F	212:m
+Һ	F	213:m
+һ	F	214:m
+Ҽ	F	215:m
+ҽ	F	216:m
+Ҿ	F	217:m
+ҿ	F	218:m
+ÒÀ	F	219:m
+ÒÁ	F	220:m
+ÒÂ	F	221:m
+ÒÃ	F	222:m
+ÒÄ	F	223:m
+ÒÅ	F	224:m
+ÒÆ	F	225:m
+ÒÇ	F	226:m
+ÒÈ	F	227:m
+ÒÉ	F	228:m
+ÒÊ	F	229:m
+ÒË	F	230:m
+ÒÌ	F	231:m
+ÒÍ	F	232:m
+ÒÎ	F	233:m
+ÒÏ	F	234:m
+ÒÐ	F	235:m
+ÒÑ	F	236:m
+ÒÒ	F	237:m
+ÒÓ	F	238:m
+ÒÔ	F	239:m
+ÒÕ	F	240:m
+ÒÖ	F	241:m
+Ò×	F	242:m
+ÒØ	F	243:m
+ÒÙ	F	244:m
+ÒÚ	F	245:m
+ÒÛ	F	246:m
+ÒÜ	F	247:m
+ÒÝ	F	248:m
+ÒÞ	F	249:m
+Òß	F	250:m
+Òà	F	251:m
+Òá	F	252:m
+Òâ	F	253:m
+Òã	F	254:m
+Òä	F	255:m
+Òå	F	0:n
+Òæ	F	1:n
+Òç	F	2:n
+Òè	F	3:n
+Òé	F	4:n
+Òê	F	5:n
+Òë	F	6:n
+Òì	F	7:n
+Òí	F	8:n
+Òî	F	9:n
+Òï	F	10:n
+Òð	F	11:n
+Òñ	F	12:n
+Òò	F	13:n
+Òó	F	14:n
+Òô	F	15:n
+Òõ	F	16:n
+Òö	F	17:n
+Ò÷	F	18:n
+Òø	F	19:n
+Òù	F	20:n
+Òú	F	21:n
+Òû	F	22:n
+Òü	F	23:n
+Òý	F	24:n
+Òþ	F	25:n
+ӡ	F	26:n
+Ӣ	F	27:n
+ӣ	F	28:n
+Ӥ	F	29:n
+ӥ	F	30:n
+Ӧ	F	31:n
+ӧ	F	32:n
+Ө	F	33:n
+ө	F	34:n
+Ӫ	F	35:n
+ӫ	F	36:n
+Ӭ	F	37:n
+ӭ	F	38:n
+Ӯ	F	39:n
+ӯ	F	40:n
+Ӱ	F	41:n
+ӱ	F	42:n
+Ӳ	F	43:n
+ӳ	F	44:n
+Ӵ	F	45:n
+ӵ	F	46:n
+Ӷ	F	47:n
+ӷ	F	48:n
+Ӹ	F	49:n
+ӹ	F	50:n
+Ӻ	F	51:n
+ӻ	F	52:n
+Ӽ	F	53:n
+ӽ	F	54:n
+Ӿ	F	55:n
+ӿ	F	56:n
+ÓÀ	F	57:n
+ÓÁ	F	58:n
+ÓÂ	F	59:n
+ÓÃ	F	60:n
+ÓÄ	F	61:n
+ÓÅ	F	62:n
+ÓÆ	F	63:n
+ÓÇ	F	64:n
+ÓÈ	F	65:n
+ÓÉ	F	66:n
+ÓÊ	F	67:n
+ÓË	F	68:n
+ÓÌ	F	69:n
+ÓÍ	F	70:n
+ÓÎ	F	71:n
+ÓÏ	F	72:n
+ÓÐ	F	73:n
+ÓÑ	F	74:n
+ÓÒ	F	75:n
+ÓÓ	F	76:n
+ÓÔ	F	77:n
+ÓÕ	F	78:n
+ÓÖ	F	79:n
+Ó×	F	80:n
+ÓØ	F	81:n
+ÓÙ	F	82:n
+ÓÚ	F	83:n
+ÓÛ	F	84:n
+ÓÜ	F	85:n
+ÓÝ	F	86:n
+ÓÞ	F	87:n
+Óß	F	88:n
+Óà	F	89:n
+Óá	F	90:n
+Óâ	F	91:n
+Óã	F	92:n
+Óä	F	93:n
+Óå	F	94:n
+Óæ	F	95:n
+Óç	F	96:n
+Óè	F	97:n
+Óé	F	98:n
+Óê	F	99:n
+Óë	F	100:n
+Óì	F	101:n
+Óí	F	102:n
+Óî	F	103:n
+Óï	F	104:n
+Óð	F	105:n
+Óñ	F	106:n
+Óò	F	107:n
+Óó	F	108:n
+Óô	F	109:n
+Óõ	F	110:n
+Óö	F	111:n
+Ó÷	F	112:n
+Óø	F	113:n
+Óù	F	114:n
+Óú	F	115:n
+Óû	F	116:n
+Óü	F	117:n
+Óý	F	118:n
+Óþ	F	119:n
+ԡ	F	120:n
+Ԣ	F	121:n
+ԣ	F	122:n
+Ԥ	F	123:n
+ԥ	F	124:n
+Ԧ	F	125:n
+ԧ	F	126:n
+Ԩ	F	127:n
+ԩ	F	128:n
+Ԫ	F	129:n
+ԫ	F	130:n
+Ԭ	F	131:n
+ԭ	F	132:n
+Ԯ	F	133:n
+ԯ	F	134:n
+԰	F	135:n
+Ա	F	136:n
+Բ	F	137:n
+Գ	F	138:n
+Դ	F	139:n
+Ե	F	140:n
+Զ	F	141:n
+Է	F	142:n
+Ը	F	143:n
+Թ	F	144:n
+Ժ	F	145:n
+Ի	F	146:n
+Լ	F	147:n
+Խ	F	148:n
+Ծ	F	149:n
+Կ	F	150:n
+ÔÀ	F	151:n
+ÔÁ	F	152:n
+ÔÂ	F	153:n
+ÔÃ	F	154:n
+ÔÄ	F	155:n
+ÔÅ	F	156:n
+ÔÆ	F	157:n
+ÔÇ	F	158:n
+ÔÈ	F	159:n
+ÔÉ	F	160:n
+ÔÊ	F	161:n
+ÔË	F	162:n
+ÔÌ	F	163:n
+ÔÍ	F	164:n
+ÔÎ	F	165:n
+ÔÏ	F	166:n
+ÔÐ	F	167:n
+ÔÑ	F	168:n
+ÔÒ	F	169:n
+ÔÓ	F	170:n
+ÔÔ	F	171:n
+ÔÕ	F	172:n
+ÔÖ	F	173:n
+Ô×	F	174:n
+ÔØ	F	175:n
+ÔÙ	F	176:n
+ÔÚ	F	177:n
+ÔÛ	F	178:n
+ÔÜ	F	179:n
+ÔÝ	F	180:n
+ÔÞ	F	181:n
+Ôß	F	182:n
+Ôà	F	183:n
+Ôá	F	184:n
+Ôâ	F	185:n
+Ôã	F	186:n
+Ôä	F	187:n
+Ôå	F	188:n
+Ôæ	F	189:n
+Ôç	F	190:n
+Ôè	F	191:n
+Ôé	F	192:n
+Ôê	F	193:n
+Ôë	F	194:n
+Ôì	F	195:n
+Ôí	F	196:n
+Ôî	F	197:n
+Ôï	F	198:n
+Ôð	F	199:n
+Ôñ	F	200:n
+Ôò	F	201:n
+Ôó	F	202:n
+Ôô	F	203:n
+Ôõ	F	204:n
+Ôö	F	205:n
+Ô÷	F	206:n
+Ôø	F	207:n
+Ôù	F	208:n
+Ôú	F	209:n
+Ôû	F	210:n
+Ôü	F	211:n
+Ôý	F	212:n
+Ôþ	F	213:n
+ա	F	214:n
+բ	F	215:n
+գ	F	216:n
+դ	F	217:n
+ե	F	218:n
+զ	F	219:n
+է	F	220:n
+ը	F	221:n
+թ	F	222:n
+ժ	F	223:n
+ի	F	224:n
+լ	F	225:n
+խ	F	226:n
+ծ	F	227:n
+կ	F	228:n
+հ	F	229:n
+ձ	F	230:n
+ղ	F	231:n
+ճ	F	232:n
+մ	F	233:n
+յ	F	234:n
+ն	F	235:n
+շ	F	236:n
+ո	F	237:n
+չ	F	238:n
+պ	F	239:n
+ջ	F	240:n
+ռ	F	241:n
+ս	F	242:n
+վ	F	243:n
+տ	F	244:n
+ÕÀ	F	245:n
+ÕÁ	F	246:n
+ÕÂ	F	247:n
+ÕÃ	F	248:n
+ÕÄ	F	249:n
+ÕÅ	F	250:n
+ÕÆ	F	251:n
+ÕÇ	F	252:n
+ÕÈ	F	253:n
+ÕÉ	F	254:n
+ÕÊ	F	255:n
+ÕË	F	0:o
+ÕÌ	F	1:o
+ÕÍ	F	2:o
+ÕÎ	F	3:o
+ÕÏ	F	4:o
+ÕÐ	F	5:o
+ÕÑ	F	6:o
+ÕÒ	F	7:o
+ÕÓ	F	8:o
+ÕÔ	F	9:o
+ÕÕ	F	10:o
+ÕÖ	F	11:o
+Õ×	F	12:o
+ÕØ	F	13:o
+ÕÙ	F	14:o
+ÕÚ	F	15:o
+ÕÛ	F	16:o
+ÕÜ	F	17:o
+ÕÝ	F	18:o
+ÕÞ	F	19:o
+Õß	F	20:o
+Õà	F	21:o
+Õá	F	22:o
+Õâ	F	23:o
+Õã	F	24:o
+Õä	F	25:o
+Õå	F	26:o
+Õæ	F	27:o
+Õç	F	28:o
+Õè	F	29:o
+Õé	F	30:o
+Õê	F	31:o
+Õë	F	32:o
+Õì	F	33:o
+Õí	F	34:o
+Õî	F	35:o
+Õï	F	36:o
+Õð	F	37:o
+Õñ	F	38:o
+Õò	F	39:o
+Õó	F	40:o
+Õô	F	41:o
+Õõ	F	42:o
+Õö	F	43:o
+Õ÷	F	44:o
+Õø	F	45:o
+Õù	F	46:o
+Õú	F	47:o
+Õû	F	48:o
+Õü	F	49:o
+Õý	F	50:o
+Õþ	F	51:o
+֡	F	52:o
+֢	F	53:o
+֣	F	54:o
+֤	F	55:o
+֥	F	56:o
+֦	F	57:o
+֧	F	58:o
+֨	F	59:o
+֩	F	60:o
+֪	F	61:o
+֫	F	62:o
+֬	F	63:o
+֭	F	64:o
+֮	F	65:o
+֯	F	66:o
+ְ	F	67:o
+ֱ	F	68:o
+ֲ	F	69:o
+ֳ	F	70:o
+ִ	F	71:o
+ֵ	F	72:o
+ֶ	F	73:o
+ַ	F	74:o
+ָ	F	75:o
+ֹ	F	76:o
+ֺ	F	77:o
+ֻ	F	78:o
+ּ	F	79:o
+ֽ	F	80:o
+־	F	81:o
+ֿ	F	82:o
+ÖÀ	F	83:o
+ÖÁ	F	84:o
+ÖÂ	F	85:o
+ÖÃ	F	86:o
+ÖÄ	F	87:o
+ÖÅ	F	88:o
+ÖÆ	F	89:o
+ÖÇ	F	90:o
+ÖÈ	F	91:o
+ÖÉ	F	92:o
+ÖÊ	F	93:o
+ÖË	F	94:o
+ÖÌ	F	95:o
+ÖÍ	F	96:o
+ÖÎ	F	97:o
+ÖÏ	F	98:o
+ÖÐ	F	99:o
+ÖÑ	F	100:o
+ÖÒ	F	101:o
+ÖÓ	F	102:o
+ÖÔ	F	103:o
+ÖÕ	F	104:o
+ÖÖ	F	105:o
+Ö×	F	106:o
+ÖØ	F	107:o
+ÖÙ	F	108:o
+ÖÚ	F	109:o
+ÖÛ	F	110:o
+ÖÜ	F	111:o
+ÖÝ	F	112:o
+ÖÞ	F	113:o
+Öß	F	114:o
+Öà	F	115:o
+Öá	F	116:o
+Öâ	F	117:o
+Öã	F	118:o
+Öä	F	119:o
+Öå	F	120:o
+Öæ	F	121:o
+Öç	F	122:o
+Öè	F	123:o
+Öé	F	124:o
+Öê	F	125:o
+Öë	F	126:o
+Öì	F	127:o
+Öí	F	128:o
+Öî	F	129:o
+Öï	F	130:o
+Öð	F	131:o
+Öñ	F	132:o
+Öò	F	133:o
+Öó	F	134:o
+Öô	F	135:o
+Öõ	F	136:o
+Öö	F	137:o
+Ö÷	F	138:o
+Öø	F	139:o
+Öù	F	140:o
+Öú	F	141:o
+Öû	F	142:o
+Öü	F	143:o
+Öý	F	144:o
+Öþ	F	145:o
+ס	F	146:o
+ע	F	147:o
+ף	F	148:o
+פ	F	149:o
+ץ	F	150:o
+צ	F	151:o
+ק	F	152:o
+ר	F	153:o
+ש	F	154:o
+ת	F	155:o
+׫	F	156:o
+׬	F	157:o
+׭	F	158:o
+׮	F	159:o
+ׯ	F	160:o
+װ	F	161:o
+ױ	F	162:o
+ײ	F	163:o
+׳	F	164:o
+״	F	165:o
+׵	F	166:o
+׶	F	167:o
+׷	F	168:o
+׸	F	169:o
+׹	F	170:o
+׺	F	171:o
+׻	F	172:o
+׼	F	173:o
+׽	F	174:o
+׾	F	175:o
+׿	F	176:o
+×À	F	177:o
+×Á	F	178:o
+×Â	F	179:o
+×Ã	F	180:o
+×Ä	F	181:o
+×Å	F	182:o
+×Æ	F	183:o
+×Ç	F	184:o
+×È	F	185:o
+×É	F	186:o
+×Ê	F	187:o
+×Ë	F	188:o
+×Ì	F	189:o
+×Í	F	190:o
+×Î	F	191:o
+×Ï	F	192:o
+×Ð	F	193:o
+×Ñ	F	194:o
+×Ò	F	195:o
+×Ó	F	196:o
+×Ô	F	197:o
+×Õ	F	198:o
+×Ö	F	199:o
+××	F	200:o
+×Ø	F	201:o
+×Ù	F	202:o
+×Ú	F	203:o
+×Û	F	204:o
+×Ü	F	205:o
+×Ý	F	206:o
+×Þ	F	207:o
+×ß	F	208:o
+×à	F	209:o
+×á	F	210:o
+×â	F	211:o
+×ã	F	212:o
+×ä	F	213:o
+×å	F	214:o
+×æ	F	215:o
+×ç	F	216:o
+×è	F	217:o
+×é	F	218:o
+×ê	F	219:o
+×ë	F	220:o
+×ì	F	221:o
+×í	F	222:o
+×î	F	223:o
+×ï	F	224:o
+×ð	F	225:o
+×ñ	F	226:o
+×ò	F	227:o
+×ó	F	228:o
+×ô	F	229:o
+×õ	F	230:o
+×ö	F	231:o
+×÷	F	232:o
+×ø	F	233:o
+×ù	F	234:o
+×ú	F	235:o
+×û	F	236:o
+×ü	F	237:o
+×ý	F	238:o
+×þ	F	239:o
+ء	F	240:o
+آ	F	241:o
+أ	F	242:o
+ؤ	F	243:o
+إ	F	244:o
+ئ	F	245:o
+ا	F	246:o
+ب	F	247:o
+ة	F	248:o
+ت	F	249:o
+ث	F	250:o
+ج	F	251:o
+ح	F	252:o
+خ	F	253:o
+د	F	254:o
+ذ	F	255:o
+ر	F	0:p
+ز	F	1:p
+س	F	2:p
+ش	F	3:p
+ص	F	4:p
+ض	F	5:p
+ط	F	6:p
+ظ	F	7:p
+ع	F	8:p
+غ	F	9:p
+ػ	F	10:p
+ؼ	F	11:p
+ؽ	F	12:p
+ؾ	F	13:p
+ؿ	F	14:p
+ØÀ	F	15:p
+ØÁ	F	16:p
+ØÂ	F	17:p
+ØÃ	F	18:p
+ØÄ	F	19:p
+ØÅ	F	20:p
+ØÆ	F	21:p
+ØÇ	F	22:p
+ØÈ	F	23:p
+ØÉ	F	24:p
+ØÊ	F	25:p
+ØË	F	26:p
+ØÌ	F	27:p
+ØÍ	F	28:p
+ØÎ	F	29:p
+ØÏ	F	30:p
+ØÐ	F	31:p
+ØÑ	F	32:p
+ØÒ	F	33:p
+ØÓ	F	34:p
+ØÔ	F	35:p
+ØÕ	F	36:p
+ØÖ	F	37:p
+Ø×	F	38:p
+ØØ	F	39:p
+ØÙ	F	40:p
+ØÚ	F	41:p
+ØÛ	F	42:p
+ØÜ	F	43:p
+ØÝ	F	44:p
+ØÞ	F	45:p
+Øß	F	46:p
+Øà	F	47:p
+Øá	F	48:p
+Øâ	F	49:p
+Øã	F	50:p
+Øä	F	51:p
+Øå	F	52:p
+Øæ	F	53:p
+Øç	F	54:p
+Øè	F	55:p
+Øé	F	56:p
+Øê	F	57:p
+Øë	F	58:p
+Øì	F	59:p
+Øí	F	60:p
+Øî	F	61:p
+Øï	F	62:p
+Øð	F	63:p
+Øñ	F	64:p
+Øò	F	65:p
+Øó	F	66:p
+Øô	F	67:p
+Øõ	F	68:p
+Øö	F	69:p
+Ø÷	F	70:p
+Øø	F	71:p
+Øù	F	72:p
+Øú	F	73:p
+Øû	F	74:p
+Øü	F	75:p
+Øý	F	76:p
+Øþ	F	77:p
+١	F	78:p
+٢	F	79:p
+٣	F	80:p
+٤	F	81:p
+٥	F	82:p
+٦	F	83:p
+٧	F	84:p
+٨	F	85:p
+٩	F	86:p
+٪	F	87:p
+٫	F	88:p
+٬	F	89:p
+٭	F	90:p
+ٮ	F	91:p
+ٯ	F	92:p
+ٰ	F	93:p
+ٱ	F	94:p
+ٲ	F	95:p
+ٳ	F	96:p
+ٴ	F	97:p
+ٵ	F	98:p
+ٶ	F	99:p
+ٷ	F	100:p
+ٸ	F	101:p
+ٹ	F	102:p
+ٺ	F	103:p
+ٻ	F	104:p
+ټ	F	105:p
+ٽ	F	106:p
+پ	F	107:p
+ٿ	F	108:p
+ÙÀ	F	109:p
+ÙÁ	F	110:p
+ÙÂ	F	111:p
+ÙÃ	F	112:p
+ÙÄ	F	113:p
+ÙÅ	F	114:p
+ÙÆ	F	115:p
+ÙÇ	F	116:p
+ÙÈ	F	117:p
+ÙÉ	F	118:p
+ÙÊ	F	119:p
+ÙË	F	120:p
+ÙÌ	F	121:p
+ÙÍ	F	122:p
+ÙÎ	F	123:p
+ÙÏ	F	124:p
+ÙÐ	F	125:p
+ÙÑ	F	126:p
+ÙÒ	F	127:p
+ÙÓ	F	128:p
+ÙÔ	F	129:p
+ÙÕ	F	130:p
+ÙÖ	F	131:p
+Ù×	F	132:p
+ÙØ	F	133:p
+ÙÙ	F	134:p
+ÙÚ	F	135:p
+ÙÛ	F	136:p
+ÙÜ	F	137:p
+ÙÝ	F	138:p
+ÙÞ	F	139:p
+Ùß	F	140:p
+Ùà	F	141:p
+Ùá	F	142:p
+Ùâ	F	143:p
+Ùã	F	144:p
+Ùä	F	145:p
+Ùå	F	146:p
+Ùæ	F	147:p
+Ùç	F	148:p
+Ùè	F	149:p
+Ùé	F	150:p
+Ùê	F	151:p
+Ùë	F	152:p
+Ùì	F	153:p
+Ùí	F	154:p
+Ùî	F	155:p
+Ùï	F	156:p
+Ùð	F	157:p
+Ùñ	F	158:p
+Ùò	F	159:p
+Ùó	F	160:p
+Ùô	F	161:p
+Ùõ	F	162:p
+Ùö	F	163:p
+Ù÷	F	164:p
+Ùø	F	165:p
+Ùù	F	166:p
+Ùú	F	167:p
+Ùû	F	168:p
+Ùü	F	169:p
+Ùý	F	170:p
+Ùþ	F	171:p
+ڡ	F	172:p
+ڢ	F	173:p
+ڣ	F	174:p
+ڤ	F	175:p
+ڥ	F	176:p
+ڦ	F	177:p
+ڧ	F	178:p
+ڨ	F	179:p
+ک	F	180:p
+ڪ	F	181:p
+ګ	F	182:p
+ڬ	F	183:p
+ڭ	F	184:p
+ڮ	F	185:p
+گ	F	186:p
+ڰ	F	187:p
+ڱ	F	188:p
+ڲ	F	189:p
+ڳ	F	190:p
+ڴ	F	191:p
+ڵ	F	192:p
+ڶ	F	193:p
+ڷ	F	194:p
+ڸ	F	195:p
+ڹ	F	196:p
+ں	F	197:p
+ڻ	F	198:p
+ڼ	F	199:p
+ڽ	F	200:p
+ھ	F	201:p
+ڿ	F	202:p
+ÚÀ	F	203:p
+ÚÁ	F	204:p
+ÚÂ	F	205:p
+ÚÃ	F	206:p
+ÚÄ	F	207:p
+ÚÅ	F	208:p
+ÚÆ	F	209:p
+ÚÇ	F	210:p
+ÚÈ	F	211:p
+ÚÉ	F	212:p
+ÚÊ	F	213:p
+ÚË	F	214:p
+ÚÌ	F	215:p
+ÚÍ	F	216:p
+ÚÎ	F	217:p
+ÚÏ	F	218:p
+ÚÐ	F	219:p
+ÚÑ	F	220:p
+ÚÒ	F	221:p
+ÚÓ	F	222:p
+ÚÔ	F	223:p
+ÚÕ	F	224:p
+ÚÖ	F	225:p
+Ú×	F	226:p
+ÚØ	F	227:p
+ÚÙ	F	228:p
+ÚÚ	F	229:p
+ÚÛ	F	230:p
+ÚÜ	F	231:p
+ÚÝ	F	232:p
+ÚÞ	F	233:p
+Úß	F	234:p
+Úà	F	235:p
+Úá	F	236:p
+Úâ	F	237:p
+Úã	F	238:p
+Úä	F	239:p
+Úå	F	240:p
+Úæ	F	241:p
+Úç	F	242:p
+Úè	F	243:p
+Úé	F	244:p
+Úê	F	245:p
+Úë	F	246:p
+Úì	F	247:p
+Úí	F	248:p
+Úî	F	249:p
+Úï	F	250:p
+Úð	F	251:p
+Úñ	F	252:p
+Úò	F	253:p
+Úó	F	254:p
+Úô	F	255:p
+Úõ	F	0:q
+Úö	F	1:q
+Ú÷	F	2:q
+Úø	F	3:q
+Úù	F	4:q
+Úú	F	5:q
+Úû	F	6:q
+Úü	F	7:q
+Úý	F	8:q
+Úþ	F	9:q
+ۡ	F	10:q
+ۢ	F	11:q
+ۣ	F	12:q
+ۤ	F	13:q
+ۥ	F	14:q
+ۦ	F	15:q
+ۧ	F	16:q
+ۨ	F	17:q
+۩	F	18:q
+۪	F	19:q
+۫	F	20:q
+۬	F	21:q
+ۭ	F	22:q
+ۮ	F	23:q
+ۯ	F	24:q
+۰	F	25:q
+۱	F	26:q
+۲	F	27:q
+۳	F	28:q
+۴	F	29:q
+۵	F	30:q
+۶	F	31:q
+۷	F	32:q
+۸	F	33:q
+۹	F	34:q
+ۺ	F	35:q
+ۻ	F	36:q
+ۼ	F	37:q
+۽	F	38:q
+۾	F	39:q
+ۿ	F	40:q
+ÛÀ	F	41:q
+ÛÁ	F	42:q
+ÛÂ	F	43:q
+ÛÃ	F	44:q
+ÛÄ	F	45:q
+ÛÅ	F	46:q
+ÛÆ	F	47:q
+ÛÇ	F	48:q
+ÛÈ	F	49:q
+ÛÉ	F	50:q
+ÛÊ	F	51:q
+ÛË	F	52:q
+ÛÌ	F	53:q
+ÛÍ	F	54:q
+ÛÎ	F	55:q
+ÛÏ	F	56:q
+ÛÐ	F	57:q
+ÛÑ	F	58:q
+ÛÒ	F	59:q
+ÛÓ	F	60:q
+ÛÔ	F	61:q
+ÛÕ	F	62:q
+ÛÖ	F	63:q
+Û×	F	64:q
+ÛØ	F	65:q
+ÛÙ	F	66:q
+ÛÚ	F	67:q
+ÛÛ	F	68:q
+ÛÜ	F	69:q
+ÛÝ	F	70:q
+ÛÞ	F	71:q
+Ûß	F	72:q
+Ûà	F	73:q
+Ûá	F	74:q
+Ûâ	F	75:q
+Ûã	F	76:q
+Ûä	F	77:q
+Ûå	F	78:q
+Ûæ	F	79:q
+Ûç	F	80:q
+Ûè	F	81:q
+Ûé	F	82:q
+Ûê	F	83:q
+Ûë	F	84:q
+Ûì	F	85:q
+Ûí	F	86:q
+Ûî	F	87:q
+Ûï	F	88:q
+Ûð	F	89:q
+Ûñ	F	90:q
+Ûò	F	91:q
+Ûó	F	92:q
+Ûô	F	93:q
+Ûõ	F	94:q
+Ûö	F	95:q
+Û÷	F	96:q
+Ûø	F	97:q
+Ûù	F	98:q
+Ûú	F	99:q
+Ûû	F	100:q
+Ûü	F	101:q
+Ûý	F	102:q
+Ûþ	F	103:q
+ܡ	F	104:q
+ܢ	F	105:q
+ܣ	F	106:q
+ܤ	F	107:q
+ܥ	F	108:q
+ܦ	F	109:q
+ܧ	F	110:q
+ܨ	F	111:q
+ܩ	F	112:q
+ܪ	F	113:q
+ܫ	F	114:q
+ܬ	F	115:q
+ܭ	F	116:q
+ܮ	F	117:q
+ܯ	F	118:q
+ܰ	F	119:q
+ܱ	F	120:q
+ܲ	F	121:q
+ܳ	F	122:q
+ܴ	F	123:q
+ܵ	F	124:q
+ܶ	F	125:q
+ܷ	F	126:q
+ܸ	F	127:q
+ܹ	F	128:q
+ܺ	F	129:q
+ܻ	F	130:q
+ܼ	F	131:q
+ܽ	F	132:q
+ܾ	F	133:q
+ܿ	F	134:q
+ÜÀ	F	135:q
+ÜÁ	F	136:q
+ÜÂ	F	137:q
+ÜÃ	F	138:q
+ÜÄ	F	139:q
+ÜÅ	F	140:q
+ÜÆ	F	141:q
+ÜÇ	F	142:q
+ÜÈ	F	143:q
+ÜÉ	F	144:q
+ÜÊ	F	145:q
+ÜË	F	146:q
+ÜÌ	F	147:q
+ÜÍ	F	148:q
+ÜÎ	F	149:q
+ÜÏ	F	150:q
+ÜÐ	F	151:q
+ÜÑ	F	152:q
+ÜÒ	F	153:q
+ÜÓ	F	154:q
+ÜÔ	F	155:q
+ÜÕ	F	156:q
+ÜÖ	F	157:q
+Ü×	F	158:q
+ÜØ	F	159:q
+ÜÙ	F	160:q
+ÜÚ	F	161:q
+ÜÛ	F	162:q
+ÜÜ	F	163:q
+ÜÝ	F	164:q
+ÜÞ	F	165:q
+Üß	F	166:q
+Üà	F	167:q
+Üá	F	168:q
+Üâ	F	169:q
+Üã	F	170:q
+Üä	F	171:q
+Üå	F	172:q
+Üæ	F	173:q
+Üç	F	174:q
+Üè	F	175:q
+Üé	F	176:q
+Üê	F	177:q
+Üë	F	178:q
+Üì	F	179:q
+Üí	F	180:q
+Üî	F	181:q
+Üï	F	182:q
+Üð	F	183:q
+Üñ	F	184:q
+Üò	F	185:q
+Üó	F	186:q
+Üô	F	187:q
+Üõ	F	188:q
+Üö	F	189:q
+Ü÷	F	190:q
+Üø	F	191:q
+Üù	F	192:q
+Üú	F	193:q
+Üû	F	194:q
+Üü	F	195:q
+Üý	F	196:q
+Üþ	F	197:q
+ݡ	F	198:q
+ݢ	F	199:q
+ݣ	F	200:q
+ݤ	F	201:q
+ݥ	F	202:q
+ݦ	F	203:q
+ݧ	F	204:q
+ݨ	F	205:q
+ݩ	F	206:q
+ݪ	F	207:q
+ݫ	F	208:q
+ݬ	F	209:q
+ݭ	F	210:q
+ݮ	F	211:q
+ݯ	F	212:q
+ݰ	F	213:q
+ݱ	F	214:q
+ݲ	F	215:q
+ݳ	F	216:q
+ݴ	F	217:q
+ݵ	F	218:q
+ݶ	F	219:q
+ݷ	F	220:q
+ݸ	F	221:q
+ݹ	F	222:q
+ݺ	F	223:q
+ݻ	F	224:q
+ݼ	F	225:q
+ݽ	F	226:q
+ݾ	F	227:q
+ݿ	F	228:q
+ÝÀ	F	229:q
+ÝÁ	F	230:q
+ÝÂ	F	231:q
+ÝÃ	F	232:q
+ÝÄ	F	233:q
+ÝÅ	F	234:q
+ÝÆ	F	235:q
+ÝÇ	F	236:q
+ÝÈ	F	237:q
+ÝÉ	F	238:q
+ÝÊ	F	239:q
+ÝË	F	240:q
+ÝÌ	F	241:q
+ÝÍ	F	242:q
+ÝÎ	F	243:q
+ÝÏ	F	244:q
+ÝÐ	F	245:q
+ÝÑ	F	246:q
+ÝÒ	F	247:q
+ÝÓ	F	248:q
+ÝÔ	F	249:q
+ÝÕ	F	250:q
+ÝÖ	F	251:q
+Ý×	F	252:q
+ÝØ	F	253:q
+ÝÙ	F	254:q
+ÝÚ	F	255:q
+ÝÛ	F	0:r
+ÝÜ	F	1:r
+ÝÝ	F	2:r
+ÝÞ	F	3:r
+Ýß	F	4:r
+Ýà	F	5:r
+Ýá	F	6:r
+Ýâ	F	7:r
+Ýã	F	8:r
+Ýä	F	9:r
+Ýå	F	10:r
+Ýæ	F	11:r
+Ýç	F	12:r
+Ýè	F	13:r
+Ýé	F	14:r
+Ýê	F	15:r
+Ýë	F	16:r
+Ýì	F	17:r
+Ýí	F	18:r
+Ýî	F	19:r
+Ýï	F	20:r
+Ýð	F	21:r
+Ýñ	F	22:r
+Ýò	F	23:r
+Ýó	F	24:r
+Ýô	F	25:r
+Ýõ	F	26:r
+Ýö	F	27:r
+Ý÷	F	28:r
+Ýø	F	29:r
+Ýù	F	30:r
+Ýú	F	31:r
+Ýû	F	32:r
+Ýü	F	33:r
+Ýý	F	34:r
+Ýþ	F	35:r
+ޡ	F	36:r
+ޢ	F	37:r
+ޣ	F	38:r
+ޤ	F	39:r
+ޥ	F	40:r
+ަ	F	41:r
+ާ	F	42:r
+ި	F	43:r
+ީ	F	44:r
+ު	F	45:r
+ޫ	F	46:r
+ެ	F	47:r
+ޭ	F	48:r
+ޮ	F	49:r
+ޯ	F	50:r
+ް	F	51:r
+ޱ	F	52:r
+޲	F	53:r
+޳	F	54:r
+޴	F	55:r
+޵	F	56:r
+޶	F	57:r
+޷	F	58:r
+޸	F	59:r
+޹	F	60:r
+޺	F	61:r
+޻	F	62:r
+޼	F	63:r
+޽	F	64:r
+޾	F	65:r
+޿	F	66:r
+ÞÀ	F	67:r
+ÞÁ	F	68:r
+ÞÂ	F	69:r
+ÞÃ	F	70:r
+ÞÄ	F	71:r
+ÞÅ	F	72:r
+ÞÆ	F	73:r
+ÞÇ	F	74:r
+ÞÈ	F	75:r
+ÞÉ	F	76:r
+ÞÊ	F	77:r
+ÞË	F	78:r
+ÞÌ	F	79:r
+ÞÍ	F	80:r
+ÞÎ	F	81:r
+ÞÏ	F	82:r
+ÞÐ	F	83:r
+ÞÑ	F	84:r
+ÞÒ	F	85:r
+ÞÓ	F	86:r
+ÞÔ	F	87:r
+ÞÕ	F	88:r
+ÞÖ	F	89:r
+Þ×	F	90:r
+ÞØ	F	91:r
+ÞÙ	F	92:r
+ÞÚ	F	93:r
+ÞÛ	F	94:r
+ÞÜ	F	95:r
+ÞÝ	F	96:r
+ÞÞ	F	97:r
+Þß	F	98:r
+Þà	F	99:r
+Þá	F	100:r
+Þâ	F	101:r
+Þã	F	102:r
+Þä	F	103:r
+Þå	F	104:r
+Þæ	F	105:r
+Þç	F	106:r
+Þè	F	107:r
+Þé	F	108:r
+Þê	F	109:r
+Þë	F	110:r
+Þì	F	111:r
+Þí	F	112:r
+Þî	F	113:r
+Þï	F	114:r
+Þð	F	115:r
+Þñ	F	116:r
+Þò	F	117:r
+Þó	F	118:r
+Þô	F	119:r
+Þõ	F	120:r
+Þö	F	121:r
+Þ÷	F	122:r
+Þø	F	123:r
+Þù	F	124:r
+Þú	F	125:r
+Þû	F	126:r
+Þü	F	127:r
+Þý	F	128:r
+Þþ	F	129:r
+ߡ	F	130:r
+ߢ	F	131:r
+ߣ	F	132:r
+ߤ	F	133:r
+ߥ	F	134:r
+ߦ	F	135:r
+ߧ	F	136:r
+ߨ	F	137:r
+ߩ	F	138:r
+ߪ	F	139:r
+߫	F	140:r
+߬	F	141:r
+߭	F	142:r
+߮	F	143:r
+߯	F	144:r
+߰	F	145:r
+߱	F	146:r
+߲	F	147:r
+߳	F	148:r
+ߴ	F	149:r
+ߵ	F	150:r
+߶	F	151:r
+߷	F	152:r
+߸	F	153:r
+߹	F	154:r
+ߺ	F	155:r
+߻	F	156:r
+߼	F	157:r
+߽	F	158:r
+߾	F	159:r
+߿	F	160:r
+ßÀ	F	161:r
+ßÁ	F	162:r
+ßÂ	F	163:r
+ßÃ	F	164:r
+ßÄ	F	165:r
+ßÅ	F	166:r
+ßÆ	F	167:r
+ßÇ	F	168:r
+ßÈ	F	169:r
+ßÉ	F	170:r
+ßÊ	F	171:r
+ßË	F	172:r
+ßÌ	F	173:r
+ßÍ	F	174:r
+ßÎ	F	175:r
+ßÏ	F	176:r
+ßÐ	F	177:r
+ßÑ	F	178:r
+ßÒ	F	179:r
+ßÓ	F	180:r
+ßÔ	F	181:r
+ßÕ	F	182:r
+ßÖ	F	183:r
+ß×	F	184:r
+ßØ	F	185:r
+ßÙ	F	186:r
+ßÚ	F	187:r
+ßÛ	F	188:r
+ßÜ	F	189:r
+ßÝ	F	190:r
+ßÞ	F	191:r
+ßß	F	192:r
+ßà	F	193:r
+ßá	F	194:r
+ßâ	F	195:r
+ßã	F	196:r
+ßä	F	197:r
+ßå	F	198:r
+ßæ	F	199:r
+ßç	F	200:r
+ßè	F	201:r
+ßé	F	202:r
+ßê	F	203:r
+ßë	F	204:r
+ßì	F	205:r
+ßí	F	206:r
+ßî	F	207:r
+ßï	F	208:r
+ßð	F	209:r
+ßñ	F	210:r
+ßò	F	211:r
+ßó	F	212:r
+ßô	F	213:r
+ßõ	F	214:r
+ßö	F	215:r
+ß÷	F	216:r
+ßø	F	217:r
+ßù	F	218:r
+ßú	F	219:r
+ßû	F	220:r
+ßü	F	221:r
+ßý	F	222:r
+ßþ	F	223:r
+à¡	F	224:r
+à¢	F	225:r
+à£	F	226:r
+à¤	F	227:r
+à¥	F	228:r
+à¦	F	229:r
+à§	F	230:r
+à¨	F	231:r
+à©	F	232:r
+àª	F	233:r
+à«	F	234:r
+à¬	F	235:r
+à­	F	236:r
+à®	F	237:r
+à¯	F	238:r
+à°	F	239:r
+à±	F	240:r
+à²	F	241:r
+à³	F	242:r
+à´	F	243:r
+àµ	F	244:r
+à¶	F	245:r
+à·	F	246:r
+à¸	F	247:r
+à¹	F	248:r
+àº	F	249:r
+à»	F	250:r
+à¼	F	251:r
+à½	F	252:r
+à¾	F	253:r
+à¿	F	254:r
+àÀ	F	255:r
+àÁ	F	0:s
+àÂ	F	1:s
+àÃ	F	2:s
+àÄ	F	3:s
+àÅ	F	4:s
+àÆ	F	5:s
+àÇ	F	6:s
+àÈ	F	7:s
+àÉ	F	8:s
+àÊ	F	9:s
+àË	F	10:s
+àÌ	F	11:s
+àÍ	F	12:s
+àÎ	F	13:s
+àÏ	F	14:s
+àÐ	F	15:s
+àÑ	F	16:s
+àÒ	F	17:s
+àÓ	F	18:s
+àÔ	F	19:s
+àÕ	F	20:s
+àÖ	F	21:s
+à×	F	22:s
+àØ	F	23:s
+àÙ	F	24:s
+àÚ	F	25:s
+àÛ	F	26:s
+àÜ	F	27:s
+àÝ	F	28:s
+àÞ	F	29:s
+àß	F	30:s
+àà	F	31:s
+àá	F	32:s
+àâ	F	33:s
+àã	F	34:s
+àä	F	35:s
+àå	F	36:s
+àæ	F	37:s
+àç	F	38:s
+àè	F	39:s
+àé	F	40:s
+àê	F	41:s
+àë	F	42:s
+àì	F	43:s
+àí	F	44:s
+àî	F	45:s
+àï	F	46:s
+àð	F	47:s
+àñ	F	48:s
+àò	F	49:s
+àó	F	50:s
+àô	F	51:s
+àõ	F	52:s
+àö	F	53:s
+à÷	F	54:s
+àø	F	55:s
+àù	F	56:s
+àú	F	57:s
+àû	F	58:s
+àü	F	59:s
+àý	F	60:s
+àþ	F	61:s
+á¡	F	62:s
+á¢	F	63:s
+á£	F	64:s
+á¤	F	65:s
+á¥	F	66:s
+á¦	F	67:s
+á§	F	68:s
+á¨	F	69:s
+á©	F	70:s
+áª	F	71:s
+á«	F	72:s
+á¬	F	73:s
+á­	F	74:s
+á®	F	75:s
+á¯	F	76:s
+á°	F	77:s
+á±	F	78:s
+á²	F	79:s
+á³	F	80:s
+á´	F	81:s
+áµ	F	82:s
+á¶	F	83:s
+á·	F	84:s
+á¸	F	85:s
+á¹	F	86:s
+áº	F	87:s
+á»	F	88:s
+á¼	F	89:s
+á½	F	90:s
+á¾	F	91:s
+á¿	F	92:s
+áÀ	F	93:s
+áÁ	F	94:s
+áÂ	F	95:s
+áÃ	F	96:s
+áÄ	F	97:s
+áÅ	F	98:s
+áÆ	F	99:s
+áÇ	F	100:s
+áÈ	F	101:s
+áÉ	F	102:s
+áÊ	F	103:s
+áË	F	104:s
+áÌ	F	105:s
+áÍ	F	106:s
+áÎ	F	107:s
+áÏ	F	108:s
+áÐ	F	109:s
+áÑ	F	110:s
+áÒ	F	111:s
+áÓ	F	112:s
+áÔ	F	113:s
+áÕ	F	114:s
+áÖ	F	115:s
+á×	F	116:s
+áØ	F	117:s
+áÙ	F	118:s
+áÚ	F	119:s
+áÛ	F	120:s
+áÜ	F	121:s
+áÝ	F	122:s
+áÞ	F	123:s
+áß	F	124:s
+áà	F	125:s
+áá	F	126:s
+áâ	F	127:s
+áã	F	128:s
+áä	F	129:s
+áå	F	130:s
+áæ	F	131:s
+áç	F	132:s
+áè	F	133:s
+áé	F	134:s
+áê	F	135:s
+áë	F	136:s
+áì	F	137:s
+áí	F	138:s
+áî	F	139:s
+áï	F	140:s
+áð	F	141:s
+áñ	F	142:s
+áò	F	143:s
+áó	F	144:s
+áô	F	145:s
+áõ	F	146:s
+áö	F	147:s
+á÷	F	148:s
+áø	F	149:s
+áù	F	150:s
+áú	F	151:s
+áû	F	152:s
+áü	F	153:s
+áý	F	154:s
+áþ	F	155:s
+â¡	F	156:s
+â¢	F	157:s
+â£	F	158:s
+â¤	F	159:s
+â¥	F	160:s
+â¦	F	161:s
+â§	F	162:s
+â¨	F	163:s
+â©	F	164:s
+âª	F	165:s
+â«	F	166:s
+â¬	F	167:s
+â­	F	168:s
+â®	F	169:s
+â¯	F	170:s
+â°	F	171:s
+â±	F	172:s
+â²	F	173:s
+â³	F	174:s
+â´	F	175:s
+âµ	F	176:s
+â¶	F	177:s
+â·	F	178:s
+â¸	F	179:s
+â¹	F	180:s
+âº	F	181:s
+â»	F	182:s
+â¼	F	183:s
+â½	F	184:s
+â¾	F	185:s
+â¿	F	186:s
+âÀ	F	187:s
+âÁ	F	188:s
+âÂ	F	189:s
+âÃ	F	190:s
+âÄ	F	191:s
+âÅ	F	192:s
+âÆ	F	193:s
+âÇ	F	194:s
+âÈ	F	195:s
+âÉ	F	196:s
+âÊ	F	197:s
+âË	F	198:s
+âÌ	F	199:s
+âÍ	F	200:s
+âÎ	F	201:s
+âÏ	F	202:s
+âÐ	F	203:s
+âÑ	F	204:s
+âÒ	F	205:s
+âÓ	F	206:s
+âÔ	F	207:s
+âÕ	F	208:s
+âÖ	F	209:s
+â×	F	210:s
+âØ	F	211:s
+âÙ	F	212:s
+âÚ	F	213:s
+âÛ	F	214:s
+âÜ	F	215:s
+âÝ	F	216:s
+âÞ	F	217:s
+âß	F	218:s
+âà	F	219:s
+âá	F	220:s
+ââ	F	221:s
+âã	F	222:s
+âä	F	223:s
+âå	F	224:s
+âæ	F	225:s
+âç	F	226:s
+âè	F	227:s
+âé	F	228:s
+âê	F	229:s
+âë	F	230:s
+âì	F	231:s
+âí	F	232:s
+âî	F	233:s
+âï	F	234:s
+âð	F	235:s
+âñ	F	236:s
+âò	F	237:s
+âó	F	238:s
+âô	F	239:s
+âõ	F	240:s
+âö	F	241:s
+â÷	F	242:s
+âø	F	243:s
+âù	F	244:s
+âú	F	245:s
+âû	F	246:s
+âü	F	247:s
+âý	F	248:s
+âþ	F	249:s
+ã¡	F	250:s
+ã¢	F	251:s
+ã£	F	252:s
+ã¤	F	253:s
+ã¥	F	254:s
+ã¦	F	255:s
+ã§	F	0:t
+ã¨	F	1:t
+ã©	F	2:t
+ãª	F	3:t
+ã«	F	4:t
+ã¬	F	5:t
+ã­	F	6:t
+ã®	F	7:t
+ã¯	F	8:t
+ã°	F	9:t
+ã±	F	10:t
+ã²	F	11:t
+ã³	F	12:t
+ã´	F	13:t
+ãµ	F	14:t
+ã¶	F	15:t
+ã·	F	16:t
+ã¸	F	17:t
+ã¹	F	18:t
+ãº	F	19:t
+ã»	F	20:t
+ã¼	F	21:t
+ã½	F	22:t
+ã¾	F	23:t
+ã¿	F	24:t
+ãÀ	F	25:t
+ãÁ	F	26:t
+ãÂ	F	27:t
+ãÃ	F	28:t
+ãÄ	F	29:t
+ãÅ	F	30:t
+ãÆ	F	31:t
+ãÇ	F	32:t
+ãÈ	F	33:t
+ãÉ	F	34:t
+ãÊ	F	35:t
+ãË	F	36:t
+ãÌ	F	37:t
+ãÍ	F	38:t
+ãÎ	F	39:t
+ãÏ	F	40:t
+ãÐ	F	41:t
+ãÑ	F	42:t
+ãÒ	F	43:t
+ãÓ	F	44:t
+ãÔ	F	45:t
+ãÕ	F	46:t
+ãÖ	F	47:t
+ã×	F	48:t
+ãØ	F	49:t
+ãÙ	F	50:t
+ãÚ	F	51:t
+ãÛ	F	52:t
+ãÜ	F	53:t
+ãÝ	F	54:t
+ãÞ	F	55:t
+ãß	F	56:t
+ãà	F	57:t
+ãá	F	58:t
+ãâ	F	59:t
+ãã	F	60:t
+ãä	F	61:t
+ãå	F	62:t
+ãæ	F	63:t
+ãç	F	64:t
+ãè	F	65:t
+ãé	F	66:t
+ãê	F	67:t
+ãë	F	68:t
+ãì	F	69:t
+ãí	F	70:t
+ãî	F	71:t
+ãï	F	72:t
+ãð	F	73:t
+ãñ	F	74:t
+ãò	F	75:t
+ãó	F	76:t
+ãô	F	77:t
+ãõ	F	78:t
+ãö	F	79:t
+ã÷	F	80:t
+ãø	F	81:t
+ãù	F	82:t
+ãú	F	83:t
+ãû	F	84:t
+ãü	F	85:t
+ãý	F	86:t
+ãþ	F	87:t
+ä¡	F	88:t
+ä¢	F	89:t
+ä£	F	90:t
+ä¤	F	91:t
+ä¥	F	92:t
+ä¦	F	93:t
+ä§	F	94:t
+ä¨	F	95:t
+ä©	F	96:t
+äª	F	97:t
+ä«	F	98:t
+ä¬	F	99:t
+ä­	F	100:t
+ä®	F	101:t
+ä¯	F	102:t
+ä°	F	103:t
+ä±	F	104:t
+ä²	F	105:t
+ä³	F	106:t
+ä´	F	107:t
+äµ	F	108:t
+ä¶	F	109:t
+ä·	F	110:t
+ä¸	F	111:t
+ä¹	F	112:t
+äº	F	113:t
+ä»	F	114:t
+ä¼	F	115:t
+ä½	F	116:t
+ä¾	F	117:t
+ä¿	F	118:t
+äÀ	F	119:t
+äÁ	F	120:t
+äÂ	F	121:t
+äÃ	F	122:t
+äÄ	F	123:t
+äÅ	F	124:t
+äÆ	F	125:t
+äÇ	F	126:t
+äÈ	F	127:t
+äÉ	F	128:t
+äÊ	F	129:t
+äË	F	130:t
+äÌ	F	131:t
+äÍ	F	132:t
+äÎ	F	133:t
+äÏ	F	134:t
+äÐ	F	135:t
+äÑ	F	136:t
+äÒ	F	137:t
+äÓ	F	138:t
+äÔ	F	139:t
+äÕ	F	140:t
+äÖ	F	141:t
+ä×	F	142:t
+äØ	F	143:t
+äÙ	F	144:t
+äÚ	F	145:t
+äÛ	F	146:t
+äÜ	F	147:t
+äÝ	F	148:t
+äÞ	F	149:t
+äß	F	150:t
+äà	F	151:t
+äá	F	152:t
+äâ	F	153:t
+äã	F	154:t
+ää	F	155:t
+äå	F	156:t
+äæ	F	157:t
+äç	F	158:t
+äè	F	159:t
+äé	F	160:t
+äê	F	161:t
+äë	F	162:t
+äì	F	163:t
+äí	F	164:t
+äî	F	165:t
+äï	F	166:t
+äð	F	167:t
+äñ	F	168:t
+äò	F	169:t
+äó	F	170:t
+äô	F	171:t
+äõ	F	172:t
+äö	F	173:t
+ä÷	F	174:t
+äø	F	175:t
+äù	F	176:t
+äú	F	177:t
+äû	F	178:t
+äü	F	179:t
+äý	F	180:t
+äþ	F	181:t
+å¡	F	182:t
+å¢	F	183:t
+å£	F	184:t
+å¤	F	185:t
+å¥	F	186:t
+å¦	F	187:t
+å§	F	188:t
+å¨	F	189:t
+å©	F	190:t
+åª	F	191:t
+å«	F	192:t
+å¬	F	193:t
+å­	F	194:t
+å®	F	195:t
+å¯	F	196:t
+å°	F	197:t
+å±	F	198:t
+å²	F	199:t
+å³	F	200:t
+å´	F	201:t
+åµ	F	202:t
+å¶	F	203:t
+å·	F	204:t
+å¸	F	205:t
+å¹	F	206:t
+åº	F	207:t
+å»	F	208:t
+å¼	F	209:t
+å½	F	210:t
+å¾	F	211:t
+å¿	F	212:t
+åÀ	F	213:t
+åÁ	F	214:t
+åÂ	F	215:t
+åÃ	F	216:t
+åÄ	F	217:t
+åÅ	F	218:t
+åÆ	F	219:t
+åÇ	F	220:t
+åÈ	F	221:t
+åÉ	F	222:t
+åÊ	F	223:t
+åË	F	224:t
+åÌ	F	225:t
+åÍ	F	226:t
+åÎ	F	227:t
+åÏ	F	228:t
+åÐ	F	229:t
+åÑ	F	230:t
+åÒ	F	231:t
+åÓ	F	232:t
+åÔ	F	233:t
+åÕ	F	234:t
+åÖ	F	235:t
+å×	F	236:t
+åØ	F	237:t
+åÙ	F	238:t
+åÚ	F	239:t
+åÛ	F	240:t
+åÜ	F	241:t
+åÝ	F	242:t
+åÞ	F	243:t
+åß	F	244:t
+åà	F	245:t
+åá	F	246:t
+åâ	F	247:t
+åã	F	248:t
+åä	F	249:t
+åå	F	250:t
+åæ	F	251:t
+åç	F	252:t
+åè	F	253:t
+åé	F	254:t
+åê	F	255:t
+åë	F	0:u
+åì	F	1:u
+åí	F	2:u
+åî	F	3:u
+åï	F	4:u
+åð	F	5:u
+åñ	F	6:u
+åò	F	7:u
+åó	F	8:u
+åô	F	9:u
+åõ	F	10:u
+åö	F	11:u
+å÷	F	12:u
+åø	F	13:u
+åù	F	14:u
+åú	F	15:u
+åû	F	16:u
+åü	F	17:u
+åý	F	18:u
+åþ	F	19:u
+æ¡	F	20:u
+æ¢	F	21:u
+æ£	F	22:u
+æ¤	F	23:u
+æ¥	F	24:u
+æ¦	F	25:u
+æ§	F	26:u
+æ¨	F	27:u
+æ©	F	28:u
+æª	F	29:u
+æ«	F	30:u
+æ¬	F	31:u
+æ­	F	32:u
+æ®	F	33:u
+æ¯	F	34:u
+æ°	F	35:u
+æ±	F	36:u
+æ²	F	37:u
+æ³	F	38:u
+æ´	F	39:u
+æµ	F	40:u
+æ¶	F	41:u
+æ·	F	42:u
+æ¸	F	43:u
+æ¹	F	44:u
+æº	F	45:u
+æ»	F	46:u
+æ¼	F	47:u
+æ½	F	48:u
+æ¾	F	49:u
+æ¿	F	50:u
+æÀ	F	51:u
+æÁ	F	52:u
+æÂ	F	53:u
+æÃ	F	54:u
+æÄ	F	55:u
+æÅ	F	56:u
+æÆ	F	57:u
+æÇ	F	58:u
+æÈ	F	59:u
+æÉ	F	60:u
+æÊ	F	61:u
+æË	F	62:u
+æÌ	F	63:u
+æÍ	F	64:u
+æÎ	F	65:u
+æÏ	F	66:u
+æÐ	F	67:u
+æÑ	F	68:u
+æÒ	F	69:u
+æÓ	F	70:u
+æÔ	F	71:u
+æÕ	F	72:u
+æÖ	F	73:u
+æ×	F	74:u
+æØ	F	75:u
+æÙ	F	76:u
+æÚ	F	77:u
+æÛ	F	78:u
+æÜ	F	79:u
+æÝ	F	80:u
+æÞ	F	81:u
+æß	F	82:u
+æà	F	83:u
+æá	F	84:u
+æâ	F	85:u
+æã	F	86:u
+æä	F	87:u
+æå	F	88:u
+ææ	F	89:u
+æç	F	90:u
+æè	F	91:u
+æé	F	92:u
+æê	F	93:u
+æë	F	94:u
+æì	F	95:u
+æí	F	96:u
+æî	F	97:u
+æï	F	98:u
+æð	F	99:u
+æñ	F	100:u
+æò	F	101:u
+æó	F	102:u
+æô	F	103:u
+æõ	F	104:u
+æö	F	105:u
+æ÷	F	106:u
+æø	F	107:u
+æù	F	108:u
+æú	F	109:u
+æû	F	110:u
+æü	F	111:u
+æý	F	112:u
+æþ	F	113:u
+ç¡	F	114:u
+ç¢	F	115:u
+ç£	F	116:u
+ç¤	F	117:u
+ç¥	F	118:u
+ç¦	F	119:u
+ç§	F	120:u
+ç¨	F	121:u
+ç©	F	122:u
+çª	F	123:u
+ç«	F	124:u
+ç¬	F	125:u
+ç­	F	126:u
+ç®	F	127:u
+ç¯	F	128:u
+ç°	F	129:u
+ç±	F	130:u
+ç²	F	131:u
+ç³	F	132:u
+ç´	F	133:u
+çµ	F	134:u
+ç¶	F	135:u
+ç·	F	136:u
+ç¸	F	137:u
+ç¹	F	138:u
+çº	F	139:u
+ç»	F	140:u
+ç¼	F	141:u
+ç½	F	142:u
+ç¾	F	143:u
+ç¿	F	144:u
+çÀ	F	145:u
+çÁ	F	146:u
+çÂ	F	147:u
+çÃ	F	148:u
+çÄ	F	149:u
+çÅ	F	150:u
+çÆ	F	151:u
+çÇ	F	152:u
+çÈ	F	153:u
+çÉ	F	154:u
+çÊ	F	155:u
+çË	F	156:u
+çÌ	F	157:u
+çÍ	F	158:u
+çÎ	F	159:u
+çÏ	F	160:u
+çÐ	F	161:u
+çÑ	F	162:u
+çÒ	F	163:u
+çÓ	F	164:u
+çÔ	F	165:u
+çÕ	F	166:u
+çÖ	F	167:u
+ç×	F	168:u
+çØ	F	169:u
+çÙ	F	170:u
+çÚ	F	171:u
+çÛ	F	172:u
+çÜ	F	173:u
+çÝ	F	174:u
+çÞ	F	175:u
+çß	F	176:u
+çà	F	177:u
+çá	F	178:u
+çâ	F	179:u
+çã	F	180:u
+çä	F	181:u
+çå	F	182:u
+çæ	F	183:u
+çç	F	184:u
+çè	F	185:u
+çé	F	186:u
+çê	F	187:u
+çë	F	188:u
+çì	F	189:u
+çí	F	190:u
+çî	F	191:u
+çï	F	192:u
+çð	F	193:u
+çñ	F	194:u
+çò	F	195:u
+çó	F	196:u
+çô	F	197:u
+çõ	F	198:u
+çö	F	199:u
+ç÷	F	200:u
+çø	F	201:u
+çù	F	202:u
+çú	F	203:u
+çû	F	204:u
+çü	F	205:u
+çý	F	206:u
+çþ	F	207:u
+è¡	F	208:u
+è¢	F	209:u
+è£	F	210:u
+è¤	F	211:u
+è¥	F	212:u
+è¦	F	213:u
+è§	F	214:u
+è¨	F	215:u
+è©	F	216:u
+èª	F	217:u
+è«	F	218:u
+è¬	F	219:u
+è­	F	220:u
+è®	F	221:u
+è¯	F	222:u
+è°	F	223:u
+è±	F	224:u
+è²	F	225:u
+è³	F	226:u
+è´	F	227:u
+èµ	F	228:u
+è¶	F	229:u
+è·	F	230:u
+è¸	F	231:u
+è¹	F	232:u
+èº	F	233:u
+è»	F	234:u
+è¼	F	235:u
+è½	F	236:u
+è¾	F	237:u
+è¿	F	238:u
+èÀ	F	239:u
+èÁ	F	240:u
+èÂ	F	241:u
+èÃ	F	242:u
+èÄ	F	243:u
+èÅ	F	244:u
+èÆ	F	245:u
+èÇ	F	246:u
+èÈ	F	247:u
+èÉ	F	248:u
+èÊ	F	249:u
+èË	F	250:u
+èÌ	F	251:u
+èÍ	F	252:u
+èÎ	F	253:u
+èÏ	F	254:u
+èÐ	F	255:u
+èÑ	F	0:v
+èÒ	F	1:v
+èÓ	F	2:v
+èÔ	F	3:v
+èÕ	F	4:v
+èÖ	F	5:v
+è×	F	6:v
+èØ	F	7:v
+èÙ	F	8:v
+èÚ	F	9:v
+èÛ	F	10:v
+èÜ	F	11:v
+èÝ	F	12:v
+èÞ	F	13:v
+èß	F	14:v
+èà	F	15:v
+èá	F	16:v
+èâ	F	17:v
+èã	F	18:v
+èä	F	19:v
+èå	F	20:v
+èæ	F	21:v
+èç	F	22:v
+èè	F	23:v
+èé	F	24:v
+èê	F	25:v
+èë	F	26:v
+èì	F	27:v
+èí	F	28:v
+èî	F	29:v
+èï	F	30:v
+èð	F	31:v
+èñ	F	32:v
+èò	F	33:v
+èó	F	34:v
+èô	F	35:v
+èõ	F	36:v
+èö	F	37:v
+è÷	F	38:v
+èø	F	39:v
+èù	F	40:v
+èú	F	41:v
+èû	F	42:v
+èü	F	43:v
+èý	F	44:v
+èþ	F	45:v
+é¡	F	46:v
+é¢	F	47:v
+é£	F	48:v
+é¤	F	49:v
+é¥	F	50:v
+é¦	F	51:v
+é§	F	52:v
+é¨	F	53:v
+é©	F	54:v
+éª	F	55:v
+é«	F	56:v
+é¬	F	57:v
+é­	F	58:v
+é®	F	59:v
+é¯	F	60:v
+é°	F	61:v
+é±	F	62:v
+é²	F	63:v
+é³	F	64:v
+é´	F	65:v
+éµ	F	66:v
+é¶	F	67:v
+é·	F	68:v
+é¸	F	69:v
+é¹	F	70:v
+éº	F	71:v
+é»	F	72:v
+é¼	F	73:v
+é½	F	74:v
+é¾	F	75:v
+é¿	F	76:v
+éÀ	F	77:v
+éÁ	F	78:v
+éÂ	F	79:v
+éÃ	F	80:v
+éÄ	F	81:v
+éÅ	F	82:v
+éÆ	F	83:v
+éÇ	F	84:v
+éÈ	F	85:v
+éÉ	F	86:v
+éÊ	F	87:v
+éË	F	88:v
+éÌ	F	89:v
+éÍ	F	90:v
+éÎ	F	91:v
+éÏ	F	92:v
+éÐ	F	93:v
+éÑ	F	94:v
+éÒ	F	95:v
+éÓ	F	96:v
+éÔ	F	97:v
+éÕ	F	98:v
+éÖ	F	99:v
+é×	F	100:v
+éØ	F	101:v
+éÙ	F	102:v
+éÚ	F	103:v
+éÛ	F	104:v
+éÜ	F	105:v
+éÝ	F	106:v
+éÞ	F	107:v
+éß	F	108:v
+éà	F	109:v
+éá	F	110:v
+éâ	F	111:v
+éã	F	112:v
+éä	F	113:v
+éå	F	114:v
+éæ	F	115:v
+éç	F	116:v
+éè	F	117:v
+éé	F	118:v
+éê	F	119:v
+éë	F	120:v
+éì	F	121:v
+éí	F	122:v
+éî	F	123:v
+éï	F	124:v
+éð	F	125:v
+éñ	F	126:v
+éò	F	127:v
+éó	F	128:v
+éô	F	129:v
+éõ	F	130:v
+éö	F	131:v
+é÷	F	132:v
+éø	F	133:v
+éù	F	134:v
+éú	F	135:v
+éû	F	136:v
+éü	F	137:v
+éý	F	138:v
+éþ	F	139:v
+ê¡	F	140:v
+ê¢	F	141:v
+ê£	F	142:v
+ê¤	F	143:v
+ê¥	F	144:v
+ê¦	F	145:v
+ê§	F	146:v
+ê¨	F	147:v
+ê©	F	148:v
+êª	F	149:v
+ê«	F	150:v
+ê¬	F	151:v
+ê­	F	152:v
+ê®	F	153:v
+ê¯	F	154:v
+ê°	F	155:v
+ê±	F	156:v
+ê²	F	157:v
+ê³	F	158:v
+ê´	F	159:v
+êµ	F	160:v
+ê¶	F	161:v
+ê·	F	162:v
+ê¸	F	163:v
+ê¹	F	164:v
+êº	F	165:v
+ê»	F	166:v
+ê¼	F	167:v
+ê½	F	168:v
+ê¾	F	169:v
+ê¿	F	170:v
+êÀ	F	171:v
+êÁ	F	172:v
+êÂ	F	173:v
+êÃ	F	174:v
+êÄ	F	175:v
+êÅ	F	176:v
+êÆ	F	177:v
+êÇ	F	178:v
+êÈ	F	179:v
+êÉ	F	180:v
+êÊ	F	181:v
+êË	F	182:v
+êÌ	F	183:v
+êÍ	F	184:v
+êÎ	F	185:v
+êÏ	F	186:v
+êÐ	F	187:v
+êÑ	F	188:v
+êÒ	F	189:v
+êÓ	F	190:v
+êÔ	F	191:v
+êÕ	F	192:v
+êÖ	F	193:v
+ê×	F	194:v
+êØ	F	195:v
+êÙ	F	196:v
+êÚ	F	197:v
+êÛ	F	198:v
+êÜ	F	199:v
+êÝ	F	200:v
+êÞ	F	201:v
+êß	F	202:v
+êà	F	203:v
+êá	F	204:v
+êâ	F	205:v
+êã	F	206:v
+êä	F	207:v
+êå	F	208:v
+êæ	F	209:v
+êç	F	210:v
+êè	F	211:v
+êé	F	212:v
+êê	F	213:v
+êë	F	214:v
+êì	F	215:v
+êí	F	216:v
+êî	F	217:v
+êï	F	218:v
+êð	F	219:v
+êñ	F	220:v
+êò	F	221:v
+êó	F	222:v
+êô	F	223:v
+êõ	F	224:v
+êö	F	225:v
+ê÷	F	226:v
+êø	F	227:v
+êù	F	228:v
+êú	F	229:v
+êû	F	230:v
+êü	F	231:v
+êý	F	232:v
+êþ	F	233:v
+ë¡	F	234:v
+ë¢	F	235:v
+ë£	F	236:v
+ë¤	F	237:v
+ë¥	F	238:v
+ë¦	F	239:v
+ë§	F	240:v
+ë¨	F	241:v
+ë©	F	242:v
+ëª	F	243:v
+ë«	F	244:v
+ë¬	F	245:v
+ë­	F	246:v
+ë®	F	247:v
+ë¯	F	248:v
+ë°	F	249:v
+ë±	F	250:v
+ë²	F	251:v
+ë³	F	252:v
+ë´	F	253:v
+ëµ	F	254:v
+ë¶	F	255:v
+ë·	F	0:w
+ë¸	F	1:w
+ë¹	F	2:w
+ëº	F	3:w
+ë»	F	4:w
+ë¼	F	5:w
+ë½	F	6:w
+ë¾	F	7:w
+ë¿	F	8:w
+ëÀ	F	9:w
+ëÁ	F	10:w
+ëÂ	F	11:w
+ëÃ	F	12:w
+ëÄ	F	13:w
+ëÅ	F	14:w
+ëÆ	F	15:w
+ëÇ	F	16:w
+ëÈ	F	17:w
+ëÉ	F	18:w
+ëÊ	F	19:w
+ëË	F	20:w
+ëÌ	F	21:w
+ëÍ	F	22:w
+ëÎ	F	23:w
+ëÏ	F	24:w
+ëÐ	F	25:w
+ëÑ	F	26:w
+ëÒ	F	27:w
+ëÓ	F	28:w
+ëÔ	F	29:w
+ëÕ	F	30:w
+ëÖ	F	31:w
+ë×	F	32:w
+ëØ	F	33:w
+ëÙ	F	34:w
+ëÚ	F	35:w
+ëÛ	F	36:w
+ëÜ	F	37:w
+ëÝ	F	38:w
+ëÞ	F	39:w
+ëß	F	40:w
+ëà	F	41:w
+ëá	F	42:w
+ëâ	F	43:w
+ëã	F	44:w
+ëä	F	45:w
+ëå	F	46:w
+ëæ	F	47:w
+ëç	F	48:w
+ëè	F	49:w
+ëé	F	50:w
+ëê	F	51:w
+ëë	F	52:w
+ëì	F	53:w
+ëí	F	54:w
+ëî	F	55:w
+ëï	F	56:w
+ëð	F	57:w
+ëñ	F	58:w
+ëò	F	59:w
+ëó	F	60:w
+ëô	F	61:w
+ëõ	F	62:w
+ëö	F	63:w
+ë÷	F	64:w
+ëø	F	65:w
+ëù	F	66:w
+ëú	F	67:w
+ëû	F	68:w
+ëü	F	69:w
+ëý	F	70:w
+ëþ	F	71:w
+ì¡	F	72:w
+ì¢	F	73:w
+ì£	F	74:w
+ì¤	F	75:w
+ì¥	F	76:w
+ì¦	F	77:w
+ì§	F	78:w
+ì¨	F	79:w
+ì©	F	80:w
+ìª	F	81:w
+ì«	F	82:w
+ì¬	F	83:w
+ì­	F	84:w
+ì®	F	85:w
+ì¯	F	86:w
+ì°	F	87:w
+ì±	F	88:w
+ì²	F	89:w
+ì³	F	90:w
+ì´	F	91:w
+ìµ	F	92:w
+ì¶	F	93:w
+ì·	F	94:w
+ì¸	F	95:w
+ì¹	F	96:w
+ìº	F	97:w
+ì»	F	98:w
+ì¼	F	99:w
+ì½	F	100:w
+ì¾	F	101:w
+ì¿	F	102:w
+ìÀ	F	103:w
+ìÁ	F	104:w
+ìÂ	F	105:w
+ìÃ	F	106:w
+ìÄ	F	107:w
+ìÅ	F	108:w
+ìÆ	F	109:w
+ìÇ	F	110:w
+ìÈ	F	111:w
+ìÉ	F	112:w
+ìÊ	F	113:w
+ìË	F	114:w
+ìÌ	F	115:w
+ìÍ	F	116:w
+ìÎ	F	117:w
+ìÏ	F	118:w
+ìÐ	F	119:w
+ìÑ	F	120:w
+ìÒ	F	121:w
+ìÓ	F	122:w
+ìÔ	F	123:w
+ìÕ	F	124:w
+ìÖ	F	125:w
+ì×	F	126:w
+ìØ	F	127:w
+ìÙ	F	128:w
+ìÚ	F	129:w
+ìÛ	F	130:w
+ìÜ	F	131:w
+ìÝ	F	132:w
+ìÞ	F	133:w
+ìß	F	134:w
+ìà	F	135:w
+ìá	F	136:w
+ìâ	F	137:w
+ìã	F	138:w
+ìä	F	139:w
+ìå	F	140:w
+ìæ	F	141:w
+ìç	F	142:w
+ìè	F	143:w
+ìé	F	144:w
+ìê	F	145:w
+ìë	F	146:w
+ìì	F	147:w
+ìí	F	148:w
+ìî	F	149:w
+ìï	F	150:w
+ìð	F	151:w
+ìñ	F	152:w
+ìò	F	153:w
+ìó	F	154:w
+ìô	F	155:w
+ìõ	F	156:w
+ìö	F	157:w
+ì÷	F	158:w
+ìø	F	159:w
+ìù	F	160:w
+ìú	F	161:w
+ìû	F	162:w
+ìü	F	163:w
+ìý	F	164:w
+ìþ	F	165:w
+í¡	F	166:w
+í¢	F	167:w
+í£	F	168:w
+í¤	F	169:w
+í¥	F	170:w
+í¦	F	171:w
+í§	F	172:w
+í¨	F	173:w
+í©	F	174:w
+íª	F	175:w
+í«	F	176:w
+í¬	F	177:w
+í­	F	178:w
+í®	F	179:w
+í¯	F	180:w
+í°	F	181:w
+í±	F	182:w
+í²	F	183:w
+í³	F	184:w
+í´	F	185:w
+íµ	F	186:w
+í¶	F	187:w
+í·	F	188:w
+í¸	F	189:w
+í¹	F	190:w
+íº	F	191:w
+í»	F	192:w
+í¼	F	193:w
+í½	F	194:w
+í¾	F	195:w
+í¿	F	196:w
+íÀ	F	197:w
+íÁ	F	198:w
+íÂ	F	199:w
+íÃ	F	200:w
+íÄ	F	201:w
+íÅ	F	202:w
+íÆ	F	203:w
+íÇ	F	204:w
+íÈ	F	205:w
+íÉ	F	206:w
+íÊ	F	207:w
+íË	F	208:w
+íÌ	F	209:w
+íÍ	F	210:w
+íÎ	F	211:w
+íÏ	F	212:w
+íÐ	F	213:w
+íÑ	F	214:w
+íÒ	F	215:w
+íÓ	F	216:w
+íÔ	F	217:w
+íÕ	F	218:w
+íÖ	F	219:w
+í×	F	220:w
+íØ	F	221:w
+íÙ	F	222:w
+íÚ	F	223:w
+íÛ	F	224:w
+íÜ	F	225:w
+íÝ	F	226:w
+íÞ	F	227:w
+íß	F	228:w
+íà	F	229:w
+íá	F	230:w
+íâ	F	231:w
+íã	F	232:w
+íä	F	233:w
+íå	F	234:w
+íæ	F	235:w
+íç	F	236:w
+íè	F	237:w
+íé	F	238:w
+íê	F	239:w
+íë	F	240:w
+íì	F	241:w
+íí	F	242:w
+íî	F	243:w
+íï	F	244:w
+íð	F	245:w
+íñ	F	246:w
+íò	F	247:w
+íó	F	248:w
+íô	F	249:w
+íõ	F	250:w
+íö	F	251:w
+í÷	F	252:w
+íø	F	253:w
+íù	F	254:w
+íú	F	255:w
+íû	F	0:x
+íü	F	1:x
+íý	F	2:x
+íþ	F	3:x
+î¡	F	4:x
+î¢	F	5:x
+î£	F	6:x
+î¤	F	7:x
+î¥	F	8:x
+î¦	F	9:x
+î§	F	10:x
+î¨	F	11:x
+î©	F	12:x
+îª	F	13:x
+î«	F	14:x
+î¬	F	15:x
+î­	F	16:x
+î®	F	17:x
+î¯	F	18:x
+î°	F	19:x
+î±	F	20:x
+î²	F	21:x
+î³	F	22:x
+î´	F	23:x
+îµ	F	24:x
+î¶	F	25:x
+î·	F	26:x
+î¸	F	27:x
+î¹	F	28:x
+îº	F	29:x
+î»	F	30:x
+î¼	F	31:x
+î½	F	32:x
+î¾	F	33:x
+î¿	F	34:x
+îÀ	F	35:x
+îÁ	F	36:x
+îÂ	F	37:x
+îÃ	F	38:x
+îÄ	F	39:x
+îÅ	F	40:x
+îÆ	F	41:x
+îÇ	F	42:x
+îÈ	F	43:x
+îÉ	F	44:x
+îÊ	F	45:x
+îË	F	46:x
+îÌ	F	47:x
+îÍ	F	48:x
+îÎ	F	49:x
+îÏ	F	50:x
+îÐ	F	51:x
+îÑ	F	52:x
+îÒ	F	53:x
+îÓ	F	54:x
+îÔ	F	55:x
+îÕ	F	56:x
+îÖ	F	57:x
+î×	F	58:x
+îØ	F	59:x
+îÙ	F	60:x
+îÚ	F	61:x
+îÛ	F	62:x
+îÜ	F	63:x
+îÝ	F	64:x
+îÞ	F	65:x
+îß	F	66:x
+îà	F	67:x
+îá	F	68:x
+îâ	F	69:x
+îã	F	70:x
+îä	F	71:x
+îå	F	72:x
+îæ	F	73:x
+îç	F	74:x
+îè	F	75:x
+îé	F	76:x
+îê	F	77:x
+îë	F	78:x
+îì	F	79:x
+îí	F	80:x
+îî	F	81:x
+îï	F	82:x
+îð	F	83:x
+îñ	F	84:x
+îò	F	85:x
+îó	F	86:x
+îô	F	87:x
+îõ	F	88:x
+îö	F	89:x
+î÷	F	90:x
+îø	F	91:x
+îù	F	92:x
+îú	F	93:x
+îû	F	94:x
+îü	F	95:x
+îý	F	96:x
+îþ	F	97:x
+ï¡	F	98:x
+ï¢	F	99:x
+ï£	F	100:x
+ï¤	F	101:x
+ï¥	F	102:x
+ï¦	F	103:x
+ï§	F	104:x
+ï¨	F	105:x
+ï©	F	106:x
+ïª	F	107:x
+ï«	F	108:x
+ï¬	F	109:x
+ï­	F	110:x
+ï®	F	111:x
+ï¯	F	112:x
+ï°	F	113:x
+ï±	F	114:x
+ï²	F	115:x
+ï³	F	116:x
+ï´	F	117:x
+ïµ	F	118:x
+ï¶	F	119:x
+ï·	F	120:x
+ï¸	F	121:x
+ï¹	F	122:x
+ïº	F	123:x
+ï»	F	124:x
+ï¼	F	125:x
+ï½	F	126:x
+ï¾	F	127:x
+ï¿	F	128:x
+ïÀ	F	129:x
+ïÁ	F	130:x
+ïÂ	F	131:x
+ïÃ	F	132:x
+ïÄ	F	133:x
+ïÅ	F	134:x
+ïÆ	F	135:x
+ïÇ	F	136:x
+ïÈ	F	137:x
+ïÉ	F	138:x
+ïÊ	F	139:x
+ïË	F	140:x
+ïÌ	F	141:x
+ïÍ	F	142:x
+ïÎ	F	143:x
+ïÏ	F	144:x
+ïÐ	F	145:x
+ïÑ	F	146:x
+ïÒ	F	147:x
+ïÓ	F	148:x
+ïÔ	F	149:x
+ïÕ	F	150:x
+ïÖ	F	151:x
+ï×	F	152:x
+ïØ	F	153:x
+ïÙ	F	154:x
+ïÚ	F	155:x
+ïÛ	F	156:x
+ïÜ	F	157:x
+ïÝ	F	158:x
+ïÞ	F	159:x
+ïß	F	160:x
+ïà	F	161:x
+ïá	F	162:x
+ïâ	F	163:x
+ïã	F	164:x
+ïä	F	165:x
+ïå	F	166:x
+ïæ	F	167:x
+ïç	F	168:x
+ïè	F	169:x
+ïé	F	170:x
+ïê	F	171:x
+ïë	F	172:x
+ïì	F	173:x
+ïí	F	174:x
+ïî	F	175:x
+ïï	F	176:x
+ïð	F	177:x
+ïñ	F	178:x
+ïò	F	179:x
+ïó	F	180:x
+ïô	F	181:x
+ïõ	F	182:x
+ïö	F	183:x
+ï÷	F	184:x
+ïø	F	185:x
+ïù	F	186:x
+ïú	F	187:x
+ïû	F	188:x
+ïü	F	189:x
+ïý	F	190:x
+ïþ	F	191:x
+ð¡	F	192:x
+ð¢	F	193:x
+ð£	F	194:x
+ð¤	F	195:x
+ð¥	F	196:x
+ð¦	F	197:x
+ð§	F	198:x
+ð¨	F	199:x
+ð©	F	200:x
+ðª	F	201:x
+ð«	F	202:x
+ð¬	F	203:x
+ð­	F	204:x
+ð®	F	205:x
+ð¯	F	206:x
+ð°	F	207:x
+ð±	F	208:x
+ð²	F	209:x
+ð³	F	210:x
+ð´	F	211:x
+ðµ	F	212:x
+ð¶	F	213:x
+ð·	F	214:x
+ð¸	F	215:x
+ð¹	F	216:x
+ðº	F	217:x
+ð»	F	218:x
+ð¼	F	219:x
+ð½	F	220:x
+ð¾	F	221:x
+ð¿	F	222:x
+ðÀ	F	223:x
+ðÁ	F	224:x
+ðÂ	F	225:x
+ðÃ	F	226:x
+ðÄ	F	227:x
+ðÅ	F	228:x
+ðÆ	F	229:x
+ðÇ	F	230:x
+ðÈ	F	231:x
+ðÉ	F	232:x
+ðÊ	F	233:x
+ðË	F	234:x
+ðÌ	F	235:x
+ðÍ	F	236:x
+ðÎ	F	237:x
+ðÏ	F	238:x
+ðÐ	F	239:x
+ðÑ	F	240:x
+ðÒ	F	241:x
+ðÓ	F	242:x
+ðÔ	F	243:x
+ðÕ	F	244:x
+ðÖ	F	245:x
+ð×	F	246:x
+ðØ	F	247:x
+ðÙ	F	248:x
+ðÚ	F	249:x
+ðÛ	F	250:x
+ðÜ	F	251:x
+ðÝ	F	252:x
+ðÞ	F	253:x
+ðß	F	254:x
+ðà	F	255:x
+ðá	F	0:y
+ðâ	F	1:y
+ðã	F	2:y
+ðä	F	3:y
+ðå	F	4:y
+ðæ	F	5:y
+ðç	F	6:y
+ðè	F	7:y
+ðé	F	8:y
+ðê	F	9:y
+ðë	F	10:y
+ðì	F	11:y
+ðí	F	12:y
+ðî	F	13:y
+ðï	F	14:y
+ðð	F	15:y
+ðñ	F	16:y
+ðò	F	17:y
+ðó	F	18:y
+ðô	F	19:y
+ðõ	F	20:y
+ðö	F	21:y
+ð÷	F	22:y
+ðø	F	23:y
+ðù	F	24:y
+ðú	F	25:y
+ðû	F	26:y
+ðü	F	27:y
+ðý	F	28:y
+ðþ	F	29:y
+ñ¡	F	30:y
+ñ¢	F	31:y
+ñ£	F	32:y
+ñ¤	F	33:y
+ñ¥	F	34:y
+ñ¦	F	35:y
+ñ§	F	36:y
+ñ¨	F	37:y
+ñ©	F	38:y
+ñª	F	39:y
+ñ«	F	40:y
+ñ¬	F	41:y
+ñ­	F	42:y
+ñ®	F	43:y
+ñ¯	F	44:y
+ñ°	F	45:y
+ñ±	F	46:y
+ñ²	F	47:y
+ñ³	F	48:y
+ñ´	F	49:y
+ñµ	F	50:y
+ñ¶	F	51:y
+ñ·	F	52:y
+ñ¸	F	53:y
+ñ¹	F	54:y
+ñº	F	55:y
+ñ»	F	56:y
+ñ¼	F	57:y
+ñ½	F	58:y
+ñ¾	F	59:y
+ñ¿	F	60:y
+ñÀ	F	61:y
+ñÁ	F	62:y
+ñÂ	F	63:y
+ñÃ	F	64:y
+ñÄ	F	65:y
+ñÅ	F	66:y
+ñÆ	F	67:y
+ñÇ	F	68:y
+ñÈ	F	69:y
+ñÉ	F	70:y
+ñÊ	F	71:y
+ñË	F	72:y
+ñÌ	F	73:y
+ñÍ	F	74:y
+ñÎ	F	75:y
+ñÏ	F	76:y
+ñÐ	F	77:y
+ñÑ	F	78:y
+ñÒ	F	79:y
+ñÓ	F	80:y
+ñÔ	F	81:y
+ñÕ	F	82:y
+ñÖ	F	83:y
+ñ×	F	84:y
+ñØ	F	85:y
+ñÙ	F	86:y
+ñÚ	F	87:y
+ñÛ	F	88:y
+ñÜ	F	89:y
+ñÝ	F	90:y
+ñÞ	F	91:y
+ñß	F	92:y
+ñà	F	93:y
+ñá	F	94:y
+ñâ	F	95:y
+ñã	F	96:y
+ñä	F	97:y
+ñå	F	98:y
+ñæ	F	99:y
+ñç	F	100:y
+ñè	F	101:y
+ñé	F	102:y
+ñê	F	103:y
+ñë	F	104:y
+ñì	F	105:y
+ñí	F	106:y
+ñî	F	107:y
+ñï	F	108:y
+ñð	F	109:y
+ññ	F	110:y
+ñò	F	111:y
+ñó	F	112:y
+ñô	F	113:y
+ñõ	F	114:y
+ñö	F	115:y
+ñ÷	F	116:y
+ñø	F	117:y
+ñù	F	118:y
+ñú	F	119:y
+ñû	F	120:y
+ñü	F	121:y
+ñý	F	122:y
+ñþ	F	123:y
+ò¡	F	124:y
+ò¢	F	125:y
+ò£	F	126:y
+ò¤	F	127:y
+ò¥	F	128:y
+ò¦	F	129:y
+ò§	F	130:y
+ò¨	F	131:y
+ò©	F	132:y
+òª	F	133:y
+ò«	F	134:y
+ò¬	F	135:y
+ò­	F	136:y
+ò®	F	137:y
+ò¯	F	138:y
+ò°	F	139:y
+ò±	F	140:y
+ò²	F	141:y
+ò³	F	142:y
+ò´	F	143:y
+òµ	F	144:y
+ò¶	F	145:y
+ò·	F	146:y
+ò¸	F	147:y
+ò¹	F	148:y
+òº	F	149:y
+ò»	F	150:y
+ò¼	F	151:y
+ò½	F	152:y
+ò¾	F	153:y
+ò¿	F	154:y
+òÀ	F	155:y
+òÁ	F	156:y
+òÂ	F	157:y
+òÃ	F	158:y
+òÄ	F	159:y
+òÅ	F	160:y
+òÆ	F	161:y
+òÇ	F	162:y
+òÈ	F	163:y
+òÉ	F	164:y
+òÊ	F	165:y
+òË	F	166:y
+òÌ	F	167:y
+òÍ	F	168:y
+òÎ	F	169:y
+òÏ	F	170:y
+òÐ	F	171:y
+òÑ	F	172:y
+òÒ	F	173:y
+òÓ	F	174:y
+òÔ	F	175:y
+òÕ	F	176:y
+òÖ	F	177:y
+ò×	F	178:y
+òØ	F	179:y
+òÙ	F	180:y
+òÚ	F	181:y
+òÛ	F	182:y
+òÜ	F	183:y
+òÝ	F	184:y
+òÞ	F	185:y
+òß	F	186:y
+òà	F	187:y
+òá	F	188:y
+òâ	F	189:y
+òã	F	190:y
+òä	F	191:y
+òå	F	192:y
+òæ	F	193:y
+òç	F	194:y
+òè	F	195:y
+òé	F	196:y
+òê	F	197:y
+òë	F	198:y
+òì	F	199:y
+òí	F	200:y
+òî	F	201:y
+òï	F	202:y
+òð	F	203:y
+òñ	F	204:y
+òò	F	205:y
+òó	F	206:y
+òô	F	207:y
+òõ	F	208:y
+òö	F	209:y
+ò÷	F	210:y
+òø	F	211:y
+òù	F	212:y
+òú	F	213:y
+òû	F	214:y
+òü	F	215:y
+òý	F	216:y
+òþ	F	217:y
+ó¡	F	218:y
+ó¢	F	219:y
+ó£	F	220:y
+ó¤	F	221:y
+ó¥	F	222:y
+ó¦	F	223:y
+ó§	F	224:y
+ó¨	F	225:y
+ó©	F	226:y
+óª	F	227:y
+ó«	F	228:y
+ó¬	F	229:y
+ó­	F	230:y
+ó®	F	231:y
+ó¯	F	232:y
+ó°	F	233:y
+ó±	F	234:y
+ó²	F	235:y
+ó³	F	236:y
+ó´	F	237:y
+óµ	F	238:y
+ó¶	F	239:y
+ó·	F	240:y
+ó¸	F	241:y
+ó¹	F	242:y
+óº	F	243:y
+ó»	F	244:y
+ó¼	F	245:y
+ó½	F	246:y
+ó¾	F	247:y
+ó¿	F	248:y
+óÀ	F	249:y
+óÁ	F	250:y
+óÂ	F	251:y
+óÃ	F	252:y
+óÄ	F	253:y
+óÅ	F	254:y
+óÆ	F	255:y
+óÇ	F	0:z
+óÈ	F	1:z
+óÉ	F	2:z
+óÊ	F	3:z
+óË	F	4:z
+óÌ	F	5:z
+óÍ	F	6:z
+óÎ	F	7:z
+óÏ	F	8:z
+óÐ	F	9:z
+óÑ	F	10:z
+óÒ	F	11:z
+óÓ	F	12:z
+óÔ	F	13:z
+óÕ	F	14:z
+óÖ	F	15:z
+ó×	F	16:z
+óØ	F	17:z
+óÙ	F	18:z
+óÚ	F	19:z
+óÛ	F	20:z
+óÜ	F	21:z
+óÝ	F	22:z
+óÞ	F	23:z
+óß	F	24:z
+óà	F	25:z
+óá	F	26:z
+óâ	F	27:z
+óã	F	28:z
+óä	F	29:z
+óå	F	30:z
+óæ	F	31:z
+óç	F	32:z
+óè	F	33:z
+óé	F	34:z
+óê	F	35:z
+óë	F	36:z
+óì	F	37:z
+óí	F	38:z
+óî	F	39:z
+óï	F	40:z
+óð	F	41:z
+óñ	F	42:z
+óò	F	43:z
+óó	F	44:z
+óô	F	45:z
+óõ	F	46:z
+óö	F	47:z
+ó÷	F	48:z
+óø	F	49:z
+óù	F	50:z
+óú	F	51:z
+óû	F	52:z
+óü	F	53:z
+óý	F	54:z
+óþ	F	55:z
+ô¡	F	56:z
+ô¢	F	57:z
+ô£	F	58:z
+ô¤	F	59:z
diff -Naur groff-1.18.1.4.orig/font/devdvi/Makefile.sub groff-1.18.1.4/font/devdvi/Makefile.sub
--- groff-1.18.1.4.orig/font/devdvi/Makefile.sub	2002-02-27 02:23:12.000000000 +0000
+++ groff-1.18.1.4/font/devdvi/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -3,15 +3,68 @@
   TR TI TB TBI CW CWI HR HI HB HBI \
   TREC TIEC TBEC TBIEC CWEC CWIEC HREC HIEC HBEC HBIEC \
   TRTC TITC TBTC TBITC CWTC CWITC HRTC HITC HBTC HBITC \
-  MI S EX SA SB \
+  MI S EX SA SB M G \
   generate/CompileFonts generate/Makefile \
   generate/msam.map generate/msbm.map \
   generate/texb.map generate/texex.map generate/texi.map generate/texmi.map \
   generate/texr.map generate/texsy.map generate/textt.map \
   generate/ec.map generate/tc.map
 
-CLEANADD=DESC
+CLEANADD=DESC M G
 
 DESC: DESC.in
 	cat $(srcdir)/DESC.in >DESC
 	test -z '$(DVIPRINT)' || echo print '$(DVIPRINT)' >>DESC
+ 
+M: M.proto-$(DVIFORMAT)
+	@echo Making $@
+	@-rm -f $@
+	cp M.proto-$(DVIFORMAT) M
+#	@if [ x$(DVIFORMAT) = xNTT ]; then \
+#	sed -e 's/	F	/	959887,808326,151561	1	/' \
+#	    -e 's/:0$$/:dmjsy10/' \
+#	    -e 's/:1$$/:dmjroma10/' \
+#	    -e 's/:2$$/:dmjhira10/' \
+#	    -e 's/:3$$/:dmjkata10/' \
+#	    -e 's/:4$$/:dmjgreek10/' \
+#	    -e 's/:5$$/:dmjrussian10/' \
+#	    -e 's/:6$$/:dmjkeisen10/' \
+#	    -e 's/:a$$/:dmjka10/' \
+#	    -e 's/:b$$/:dmjkb10/' \
+#	    -e 's/:c$$/:dmjkc10/' \
+#	    -e 's/:d$$/:dmjkd10/' \
+#	    -e 's/:e$$/:dmjke10/' \
+#	    -e 's/:f$$/:dmjkf10/' \
+#	    -e 's/:g$$/:dmjkg10/' \
+#	    -e 's/:h$$/:dmjkh10/' \
+#	    -e 's/:i$$/:dmjki10/' \
+#	    -e 's/:j$$/:dmjkj10/' \
+#	    -e 's/:k$$/:dmjkk10/' \
+#	    -e 's/:l$$/:dmjkl10/' \
+#	    -e 's/:m$$/:dmjkm10/' \
+#	    -e 's/:n$$/:dmjkn10/' \
+#	    -e 's/:o$$/:dmjko10/' \
+#	    -e 's/:p$$/:dmjkp10/' \
+#	    -e 's/:q$$/:dmjkq10/' \
+#	    -e 's/:r$$/:dmjkr10/' \
+#	    -e 's/:s$$/:dmjks10/' \
+#	    -e 's/:t$$/:dmjkt10/' \
+#	    -e 's/:u$$/:dmjku10/' \
+#	    -e 's/:v$$/:dmjkv10/' \
+#	    -e 's/:w$$/:dmjkw10/' \
+#	    -e 's/:x$$/:dmjkx10/' \
+#	    -e 's/:y$$/:dmjky10/' \
+#	    -e 's/:z$$/:dmjkz10/' \
+#	    < M.proto-NTT > M ;\
+#	else \
+#	../devnippon/createM -jis "1006514,815360,145600" 1 < M.proto-ASCII | \
+#	    sed -f FixMetric.sed > M ;\
+#	fi
+	
+G: M
+	@echo Making $@
+	@-rm -f $@
+	@sed -e 's/name M/name G/' \
+	     -e 's/dmj/dgj/' \
+	     -e 's/internalname min10/internalname goth10/' \
+	     < M > G
diff -Naur groff-1.18.1.4.orig/font/devhtml/DESC.proto groff-1.18.1.4/font/devhtml/DESC.proto
--- groff-1.18.1.4.orig/font/devhtml/DESC.proto	2002-08-07 12:52:23.000000000 +0000
+++ groff-1.18.1.4/font/devhtml/DESC.proto	2006-10-18 18:54:44.000000000 +0000
@@ -3,7 +3,11 @@
 vert 40
 unitwidth 10
 sizes 6 8 10 12 14 16 18 0
-fonts 9 R I B BI CR CI CB CBI S
+fonts 11 R I B BI CR CI CB CBI S M G
+fontset B G 2E00..9FFF
+fontset - M 2E00..9FFF
+fontset B G FF00..FFEF
+fontset - M FF00..FFEF
 tcommand
 html
 postpro post-grohtml
diff -Naur groff-1.18.1.4.orig/font/devhtml/M.proto groff-1.18.1.4/font/devhtml/M.proto
--- groff-1.18.1.4.orig/font/devhtml/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devhtml/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,5 @@
+name M
+spacewidth 16
+charset
+u2E00..u9FFF 16,14,2 0
+uFF00..uFFEF 16,14,2 0
diff -Naur groff-1.18.1.4.orig/font/devhtml/Makefile.sub groff-1.18.1.4/font/devhtml/Makefile.sub
--- groff-1.18.1.4.orig/font/devhtml/Makefile.sub	2002-08-07 12:52:23.000000000 +0000
+++ groff-1.18.1.4/font/devhtml/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -1,8 +1,10 @@
 DEV=html
 PROTOFONTS=R I B BI CR CI CB CBI
 FONTS=$(PROTOFONTS) S
-DEVFILES=$(FONTS) DESC
-CLEANADD=$(FONTS) DESC
+WFONTS=M G
+ALLFONTS=$(FONTS) $(WFONTS)
+DEVFILES=$(ALLFONTS) DESC
+CLEANADD=$(ALLFONTS) DESC
 
 RES=240
 CPI=10
@@ -13,8 +15,8 @@
 	@-rm -f $@
 	@(charwidth=`expr $(RES) / $(CPI)` ; \
  	 sed -e "s/^name [A-Z]*$$/name $@/" \
-	     -e "s/^\\([^	]*\\)	[0-9]+	/\\1	$$charwidth	/" \
-	     -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
+	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
+	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
 	     -e "s/^internalname .*$$/internalname $@/" \
 	     -e "/^internalname/s/CR/4/" \
 	     -e "/^internalname/s/BI/3/" \
@@ -29,6 +31,19 @@
 	@sed -e "s/^res .*$$/res $(RES)/" \
 	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
 	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
-	    -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
+	    -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
 	    $(srcdir)/DESC.proto >$@
 
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	@(wcharwidth=`expr $(RES) / $(CPI) \* 2`; \
+	  spacewidth=`expr $(RES) / $(CPI)`; \
+	 sed -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
+	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
+	   $(srcdir)/M.proto > $@)
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' M > G
diff -Naur groff-1.18.1.4.orig/font/devlbp/Makefile.sub groff-1.18.1.4/font/devlbp/Makefile.sub
--- groff-1.18.1.4.orig/font/devlbp/Makefile.sub	2002-03-08 07:33:49.000000000 +0000
+++ groff-1.18.1.4/font/devlbp/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -13,9 +13,9 @@
 	-rm -f DESC
 	cat $(srcdir)/DESC.in >>DESC
 	if test "$(PAGE)" = A4; then \
-	  echo "papersize a4" >>DESC; \
+	  echo "papersize /etc/papersize a4" >>DESC; \
 	else \
-	  echo "papersize letter" >>DESC; \
+	  echo "papersize /etc/papersize letter" >>DESC; \
 	fi
 	test -z '$(LBPPRINT)' || echo print '$(LBPPRINT)' >>DESC
 
diff -Naur groff-1.18.1.4.orig/font/devlj4/Makefile.sub groff-1.18.1.4/font/devlj4/Makefile.sub
--- groff-1.18.1.4.orig/font/devlj4/Makefile.sub	2000-02-06 09:35:37.000000000 +0000
+++ groff-1.18.1.4/font/devlj4/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -22,9 +22,9 @@
 	echo "unitwidth `expr 7620000 / $(LJ4RES)`" >>DESC
 	cat $(srcdir)/DESC.in >>DESC
 	if test "$(PAGE)" = A4; then \
-	  echo "papersize a4" >>DESC; \
+	  echo "papersize /etc/papersize a4" >>DESC; \
 	else \
-	  echo "papersize letter" >>DESC; \
+	  echo "papersize /etc/papersize letter" >>DESC; \
 	fi
 	test -z '$(LJ4PRINT)' || echo print '$(LJ4PRINT)' >>DESC
 
diff -Naur groff-1.18.1.4.orig/font/devnippon/DESC.proto groff-1.18.1.4/font/devnippon/DESC.proto
--- groff-1.18.1.4.orig/font/devnippon/DESC.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devnippon/DESC.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,12 @@
+res 240
+hor 24
+vert 40
+unitwidth 10
+sizes 10 0
+fonts 6 R I B BI M G
+fontset B G 2E00..9FFF
+fontset - M 2E00..9FFF
+fontset B G FF00..FFEF
+fontset - M FF00..FFEF
+tcommand
+postpro grotty
diff -Naur groff-1.18.1.4.orig/font/devnippon/M.proto groff-1.18.1.4/font/devnippon/M.proto
--- groff-1.18.1.4.orig/font/devnippon/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devnippon/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,6 @@
+name M
+internalname 4
+spacewidth 48
+charset
+u2E00..u9FFF 48 0
+uFF00..uFFEF 48 0
diff -Naur groff-1.18.1.4.orig/font/devnippon/Makefile.sub groff-1.18.1.4/font/devnippon/Makefile.sub
--- groff-1.18.1.4.orig/font/devnippon/Makefile.sub	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devnippon/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,48 @@
+DEV=nippon
+FONTS=R I B BI
+WFONTS=M G
+ALLFONTS=$(FONTS) $(WFONTS)
+DEVFILES=$(ALLFONTS) DESC
+CLEANADD=$(ALLFONTS) DESC
+
+RES=240
+CPI=10
+LPI=6
+
+$(FONTS): R.proto
+	@echo Making $@
+	@-rm -f $@
+	@(charwidth=`expr $(RES) / $(CPI)` ; \
+ 	 sed -e "s/^name [A-Z]*$$/name $@/" \
+	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
+	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+	     -e "s/^internalname .*$$/internalname $@/" \
+	     -e "/^internalname/s/BI/3/" \
+	     -e "/^internalname/s/B/2/" \
+	     -e "/^internalname/s/I/1/" \
+	     -e "/^internalname .*[^ 0-9]/d" \
+	     $(srcdir)/R.proto >$@)
+
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	@(wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
+	  spacewidth=`expr $(RES) / $(CPI)` ; \
+	  sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
+	      -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
+	  $(srcdir)/M.proto > $@)
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' \
+	    -e 's/internalname 4/internalname 5/' M > G
+		
+DESC: DESC.proto
+	@echo Making $@
+	@-rm -f $@
+	@sed -e "s/^res .*$$/res $(RES)/" \
+	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
+	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
+	    -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
+	    $(srcdir)/DESC.proto >$@
diff -Naur groff-1.18.1.4.orig/font/devnippon/R.proto groff-1.18.1.4/font/devnippon/R.proto
--- groff-1.18.1.4.orig/font/devnippon/R.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devnippon/R.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,167 @@
+name R
+internalname 0
+spacewidth 24
+charset
+!	24	0	0041
+"	24	0	0042
+dq	"
+lq	"
+rq	"
+#	24	0	0043
+sh	"
+$	24	0	0044
+Do	"
+%	24	0	0045
+&	24	0	0046
+'	24	0	0047
+aa	"
+fm	"
+aq	"
+cq	"
+(	24	0	0050
+)	24	0	0051
+*	24	0	0052
+**	"
++	24	0	0053
+pl	"
+,	24	0	0054
+\-	24	0	0055
+hy	"
+-	"
+mi	"
+en	"
+.	24	0	0056
+/	24	0	0057
+sl	"
+f/	"
+0	24	0	0060
+1	24	0	0061
+2	24	0	0062
+3	24	0	0063
+4	24	0	0064
+5	24	0	0065
+6	24	0	0066
+7	24	0	0067
+8	24	0	0070
+9	24	0	0071
+:	24	0	0072
+;	24	0	0073
+<	24	0	0074
+la	"
+fo	"
+=	24	0	0075
+eq	"
+>	24	0	0076
+ra	"
+fc	"
+?	24	0	0077
+@	24	0	0100
+at	"
+A	24	0	0101
+*A	"
+B	24	0	0102
+*B	"
+C	24	0	0103
+D	24	0	0104
+E	24	0	0105
+*E	"
+F	24	0	0106
+G	24	0	0107
+H	24	0	0110
+*Y	"
+I	24	0	0111
+*I	"
+J	24	0	0112
+K	24	0	0113
+*K	"
+L	24	0	0114
+M	24	0	0115
+*M	"
+N	24	0	0116
+*N	"
+O	24	0	0117
+ci	"
+*O	"
+P	24	0	0120
+*R	"
+Q	24	0	0121
+R	24	0	0122
+S	24	0	0123
+T	24	0	0124
+*T	"
+U	24	0	0125
+V	24	0	0126
+W	24	0	0127
+X	24	0	0130
+*X	"
+Y	24	0	0131
+*U	"
+Z	24	0	0132
+*Z	"
+[	24	0	0133
+lB	"
+\	24	0	0134
+rs	"
+]	24	0	0135
+rB	"
+a^	24	0	0136
+^	"
+ha	"
+_	24	0	0137
+ru	"
+ul	"
+`	24	0	0140
+oq	"
+ga	"
+a	24	0	0141
+b	24	0	0142
+c	24	0	0143
+d	24	0	0144
+e	24	0	0145
+f	24	0	0146
+g	24	0	0147
+h	24	0	0150
+i	24	0	0151
+.i	"
+j	24	0	0152
+k	24	0	0153
+l	24	0	0154
+m	24	0	0155
+n	24	0	0156
+o	24	0	0157
+*o	"
+p	24	0	0160
+q	24	0	0161
+r	24	0	0162
+s	24	0	0163
+t	24	0	0164
+u	24	0	0165
+v	24	0	0166
+w	24	0	0167
+x	24	0	0170
+mu	"
+y	24	0	0171
+z	24	0	0172
+lC	24	0	0173
+{	"
+ba	24	0	0174
+or	"
+bv	"
+br	"
+|	"
+lb	"
+lc	"
+lf	"
+lk	"
+lt	"
+rb	"
+rc	"
+rf	"
+rk	"
+rt	"
+rC	24	0	0175
+}	"
+a~	24	0	0176
+~	"
+ap	"
+ti	"
diff -Naur groff-1.18.1.4.orig/font/devps/DESC.in groff-1.18.1.4/font/devps/DESC.in
--- groff-1.18.1.4.orig/font/devps/DESC.in	2000-02-06 09:35:57.000000000 +0000
+++ groff-1.18.1.4/font/devps/DESC.in	2006-10-18 18:54:44.000000000 +0000
@@ -1,11 +1,33 @@
 res 72000
 hor 1
 vert 1
+lowerwchar 300
+wcharkern 400
 sizescale 1000
 unitwidth 1000
 sizes 1000-10000000 0
 styles R I B BI
 family T
-fonts 9 0 0 0 0 0 SS S ZD ZDR
+fonts 11 0 0 0 0 0 SS S ZD ZDR M G
+fontset B G 2E00..9FFF
+fontset AB G 2E00..9FFF
+fontset BMB G 2E00..9FFF
+fontset CB G 2E00..9FFF
+fontset HB G 2E00..9FFF
+fontset HNB G 2E00..9FFF
+fontset NB G 2E00..9FFF
+fontset PB G 2E00..9FFF
+fontset TB G 2E00..9FFF
+fontset - M 2E00..9FFF
+fontset B G FF00..FFEF
+fontset AB G FF00..FFEF
+fontset BMB G FF00..FFEF
+fontset CB G FF00..FFEF
+fontset HB G FF00..FFEF
+fontset HNB G FF00..FFEF
+fontset NB G FF00..FFEF
+fontset PB G FF00..FFEF
+fontset TB G FF00..FFEF
+fontset - M FF00..FFEF
 tcommand
 postpro grops
diff -Naur groff-1.18.1.4.orig/font/devps/M.proto groff-1.18.1.4/font/devps/M.proto
--- groff-1.18.1.4.orig/font/devps/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devps/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,9 @@
+name M
+internalname Ryumin-Light-EUC-H
+spacewidth 250
+encodingname EUC-JP
+charset
+u2E00..u9FFF 1000 3
+uFF00..uFF5F 1000 3
+uFF60..uFF9F 500 3
+uFFA0..uFFEF 1000 3
diff -Naur groff-1.18.1.4.orig/font/devps/Makefile.sub groff-1.18.1.4/font/devps/Makefile.sub
--- groff-1.18.1.4.orig/font/devps/Makefile.sub	2002-06-04 13:03:19.000000000 +0000
+++ groff-1.18.1.4/font/devps/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -2,23 +2,23 @@
 DISTFILES=text.enc download \
   S ZD ZDR SS AB ABI AI AR BMB BMBI BMI BMR \
   CB CBI CI CR HB HBI HI HR HNB HNBI HNI HNR \
-  NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI
+  NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI M G
 PSFILES=prologue symbolsl.pfa zapfdr.pfa
 DEVGENFILES=generate/Makefile generate/afmname generate/dingbats.map \
   generate/dingbats.rmap generate/lgreekmap generate/symbol.sed \
   generate/symbolchars generate/symbolsl.afm generate/textmap
 DEVFILES=DESC $(PSFILES) $(DISTFILES) $(DEVGENFILES)
 
-CLEANADD=DESC $(PSFILES)
+CLEANADD=DESC $(PSFILES) M G
 
 DESC: DESC.in
 	-rm -f DESC
 	cat $(srcdir)/DESC.in >DESC
 	echo broken $(BROKEN_SPOOLER_FLAGS) >>DESC
 	if test "$(PAGE)" = A4; then \
-	  echo "papersize a4" >>DESC; \
+	  echo "papersize /etc/papersize a4" >>DESC; \
 	else \
-	  echo "papersize letter" >>DESC; \
+	  echo "papersize /etc/papersize letter" >>DESC; \
 	fi
 	test -z '$(PSPRINT)' ||	echo print '$(PSPRINT)' >>DESC
 
@@ -33,3 +33,14 @@
 $(PSFILES):
 	-rm -f $@
 	sed -f $(srcdir)/psstrip.sed $? >$@
+
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	@cp M.proto M
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' \
+	    -e 's/internalname Ryumin-Light-EUC-H/internalname GothicBBB-Medium-EUC-H/' M > G
diff -Naur groff-1.18.1.4.orig/font/devutf8/DESC.proto groff-1.18.1.4/font/devutf8/DESC.proto
--- groff-1.18.1.4.orig/font/devutf8/DESC.proto	2000-02-06 09:36:22.000000000 +0000
+++ groff-1.18.1.4/font/devutf8/DESC.proto	2006-10-18 18:54:44.000000000 +0000
@@ -3,6 +3,10 @@
 vert 40
 unitwidth 10
 sizes 10 0
-fonts 4 R I B BI
+fonts 6 R I B BI M G
+fontset B G 2E00..9FFF
+fontset B G FF00..FFEF
+fontset - M 2E00..9FFF
+fontset - M FF00..FFEF
 tcommand
 postpro grotty
diff -Naur groff-1.18.1.4.orig/font/devutf8/M.proto groff-1.18.1.4/font/devutf8/M.proto
--- groff-1.18.1.4.orig/font/devutf8/M.proto	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/font/devutf8/M.proto	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,6 @@
+name M
+internalname 4
+spacewidth 48
+charset
+u2E00..u9FFF 48 0
+uFF00..uFFEF 48 0
diff -Naur groff-1.18.1.4.orig/font/devutf8/Makefile.sub groff-1.18.1.4/font/devutf8/Makefile.sub
--- groff-1.18.1.4.orig/font/devutf8/Makefile.sub	2000-02-06 09:36:22.000000000 +0000
+++ groff-1.18.1.4/font/devutf8/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -1,7 +1,8 @@
 DEV=utf8
 FONTS=R I B BI
-DEVFILES=$(FONTS) DESC
-CLEANADD=$(FONTS) DESC
+WFONTS=M G
+DEVFILES=$(FONTS) $(WFONTS) DESC
+CLEANADD=$(FONTS) $(WFONTS) DESC
 
 RES=240
 CPI=10
@@ -12,8 +13,8 @@
 	@-rm -f $@
 	@(charwidth=`expr $(RES) / $(CPI)` ; \
  	 sed -e "s/^name [A-Z]*$$/name $@/" \
-	     -e "s/^\\([^	]*\\)	[0-9]+	/\\1	$$charwidth	/" \
-	     -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
+	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
+	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
 	     -e "s/^internalname .*$$/internalname $@/" \
 	     -e "/^internalname/s/BI/3/" \
 	     -e "/^internalname/s/B/2/" \
@@ -21,12 +22,27 @@
 	     -e "/^internalname .*[^ 0-9]/d" \
 	     $(srcdir)/R.proto >$@)
 
+M: M.proto
+	@echo Making M
+	@-rm -f M
+	(wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
+	  spacewidth=`expr $(RES) / $(CPI)` ; \
+	  sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
+	      -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
+	  $(srcdir)/M.proto > $@)
+
+G: M
+	@echo Making G
+	@-rm -f G
+	@sed -e 's/name M/name G/' \
+	    -e 's/internalname 4/internalname 5/' M > G
+
 DESC: DESC.proto
 	@echo Making $@
 	@-rm -f $@
 	@sed -e "s/^res .*$$/res $(RES)/" \
 	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
 	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
-	    -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
+	    -e "s/^fonts .*$$/fonts `set $(FONTS) $(WFONTS); echo $$#` $(FONTS) $(WFONTS)/" \
 	    $(srcdir)/DESC.proto >$@
 
diff -Naur groff-1.18.1.4.orig/man/ditroff.man groff-1.18.1.4/man/ditroff.man
--- groff-1.18.1.4.orig/man/ditroff.man	2002-02-19 16:28:30.000000000 +0000
+++ groff-1.18.1.4/man/ditroff.man	2006-10-18 18:54:44.000000000 +0000
@@ -18,6 +18,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
diff -Naur groff-1.18.1.4.orig/man/groff.man groff-1.18.1.4/man/groff.man
--- groff-1.18.1.4.orig/man/groff.man	2002-06-29 20:46:03.000000000 +0000
+++ groff-1.18.1.4/man/groff.man	2006-10-18 18:54:44.000000000 +0000
@@ -19,6 +19,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
diff -Naur groff-1.18.1.4.orig/man/groff_char.man groff-1.18.1.4/man/groff_char.man
--- groff-1.18.1.4.orig/man/groff_char.man	2002-07-20 03:54:14.000000000 +0000
+++ groff-1.18.1.4/man/groff_char.man	2006-10-18 18:54:44.000000000 +0000
@@ -32,6 +32,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup Part 1
diff -Naur groff-1.18.1.4.orig/man/groff_diff.man groff-1.18.1.4/man/groff_diff.man
--- groff-1.18.1.4.orig/man/groff_diff.man	2002-07-05 15:04:22.000000000 +0000
+++ groff-1.18.1.4/man/groff_diff.man	2006-10-18 18:54:44.000000000 +0000
@@ -23,6 +23,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
diff -Naur groff-1.18.1.4.orig/man/groff_out.man groff-1.18.1.4/man/groff_out.man
--- groff-1.18.1.4.orig/man/groff_out.man	2002-09-12 10:00:17.000000000 +0000
+++ groff-1.18.1.4/man/groff_out.man	2006-10-18 18:54:44.000000000 +0000
@@ -19,6 +19,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
diff -Naur groff-1.18.1.4.orig/man/groff_tmac.man groff-1.18.1.4/man/groff_tmac.man
--- groff-1.18.1.4.orig/man/groff_tmac.man	2002-08-21 07:37:10.000000000 +0000
+++ groff-1.18.1.4/man/groff_tmac.man	2006-10-18 18:54:44.000000000 +0000
@@ -32,6 +32,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
diff -Naur groff-1.18.1.4.orig/man/roff.man groff-1.18.1.4/man/roff.man
--- groff-1.18.1.4.orig/man/roff.man	2002-04-23 04:28:59.000000000 +0000
+++ groff-1.18.1.4/man/roff.man	2006-10-18 18:54:44.000000000 +0000
@@ -18,6 +18,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
diff -Naur groff-1.18.1.4.orig/mdate.sh groff-1.18.1.4/mdate.sh
--- groff-1.18.1.4.orig/mdate.sh	2001-03-09 15:26:30.000000000 +0000
+++ groff-1.18.1.4/mdate.sh	2006-10-18 18:54:44.000000000 +0000
@@ -2,41 +2,4 @@
 
 # Print the modification date of $1 `nicely'.
 
-# Don't want foreign dates.
-
-LANGUAGE=
-LC_ALL=C; export LC_ALL
-
-
-(date;
-if ls -L /dev/null 1>/dev/null 2>&1; then ls -L -l $1; else ls -l $1; fi
-) | awk '
-BEGIN {
-	full["Jan"] = "January"; number["Jan"] = 1;
-	full["Feb"] = "February"; number["Feb"] = 2;
-	full["Mar"] = "March"; number["Mar"] = 3;
-	full["Apr"] = "April"; number["Apr"] = 4;
-	full["May"] = "May"; number["May"] = 5;
-	full["Jun"] = "June"; number["Jun"] = 6;
-	full["Jul"] = "July"; number["Jul"] = 7;
-	full["Aug"] = "August"; number["Aug"] = 8;
-	full["Sep"] = "September"; number["Sep"] = 9;
-	full["Oct"] = "October"; number["Oct"] = 10;
-	full["Nov"] = "November"; number["Nov"] = 11;
-	full["Dec"] = "December"; number["Dec"] = 12;
-}
-
-NR == 1 {
-	month = $2;
-	year = $NF;
-}
-
-NR == 2 {
-	if ($(NF-1) ~ /:/) {
-		if (number[$(NF-3)] > number[month])
-			year--;
-	}
-	else
-		year = $(NF-1);
-	print $(NF-2), full[$(NF-3)], year
-}'
+perl -MPOSIX -le 'print strftime("%d %B %Y", localtime((stat $ARGV[0])[9]))' $1
diff -Naur groff-1.18.1.4.orig/src/devices/grodvi/dvi.cc groff-1.18.1.4/src/devices/grodvi/dvi.cc
--- groff-1.18.1.4.orig/src/devices/grodvi/dvi.cc	2002-03-01 01:15:36.000000000 +0000
+++ groff-1.18.1.4/src/devices/grodvi/dvi.cc	2006-10-18 18:54:44.000000000 +0000
@@ -21,6 +21,7 @@
 
 #include "driver.h"
 #include "nonposix.h"
+#include "encoding.h" 
 
 extern "C" const char *Version_string;
 
@@ -104,6 +105,9 @@
 struct output_font {
   dvi_font *f;
   int point_size;
+#ifdef	ENABLE_MULTIBYTE
+  const char *sf;		// subfont name
+#endif
   output_font() : f(0) { }
 };
 
@@ -121,6 +125,9 @@
   output_font output_font_table[FONTS_MAX];
   font *cur_font;
   int cur_point_size;
+#ifdef ENABLE_MULTIBYTE
+  const char *cur_subfont;
+#endif
   color cur_color;
   int pushed;
   int pushed_h;
@@ -341,9 +348,18 @@
   if (*env->col != cur_color)
     set_color(env->col);
   int code = f->get_code(index);
+#ifdef ENABLE_MULTIBYTE
+  const char *sf = f->get_subfont_name(index);
+  if (env->size != cur_point_size || f != cur_font ||
+     (sf != cur_subfont && strcmp(sf, cur_subfont))) {
+#else
   if (env->size != cur_point_size || f != cur_font) {
+#endif
     cur_font = f;
     cur_point_size = env->size;
+#ifdef ENABLE_MULTIBYTE
+    cur_subfont = sf;
+#endif
     int i;
     for (i = 0;; i++) {
       if (i >= FONTS_MAX) {
@@ -352,9 +368,16 @@
       if (output_font_table[i].f == 0) {
 	output_font_table[i].f = (dvi_font *)cur_font;
 	output_font_table[i].point_size = cur_point_size;
+#ifdef	ENABLE_MULTIBYTE
+	output_font_table[i].sf = cur_subfont;
+#endif
 	define_font(i);
       }
       if (output_font_table[i].f == cur_font
+#ifdef	ENABLE_MULTIBYTE
+	  && (output_font_table[i].sf == cur_subfont ||
+	      strcmp(output_font_table[i].sf, cur_subfont) == 0)
+#endif
 	  && output_font_table[i].point_size == cur_point_size)
 	break;
     }
@@ -398,7 +421,13 @@
   out4(f->checksum);
   out4(output_font_table[i].point_size*RES_7227);
   out4(int((double(f->design_size)/(1<<20))*RES_7227*100 + .5));
+#ifdef	ENABLE_MULTIBYTE
+  const char *nm;
+  if (!(nm = output_font_table[i].sf))
+    nm = f->get_internal_name();
+#else
   const char *nm = f->get_internal_name();
+#endif
   out1(0);
   out_string(nm);
 }
@@ -889,6 +918,7 @@
   program_name = argv[0];
   static char stderr_buf[BUFSIZ];
   setbuf(stderr, stderr_buf);
+  init_encoding_handler();
   int c;
   static const struct option long_options[] = {
     { "help", no_argument, 0, CHAR_MAX + 1 },
diff -Naur groff-1.18.1.4.orig/src/devices/grohtml/html.h groff-1.18.1.4/src/devices/grohtml/html.h
--- groff-1.18.1.4.orig/src/devices/grohtml/html.h	2002-02-17 17:05:53.000000000 +0000
+++ groff-1.18.1.4/src/devices/grohtml/html.h	2006-10-18 18:54:44.000000000 +0000
@@ -49,6 +49,9 @@
 class simple_output {
 public:
   simple_output(FILE *, int max_line_length);
+#ifdef ENABLE_MULTIBYTE
+  simple_output &put_string(const wchar *, int);
+#endif
   simple_output &put_string(const char *, int);
   simple_output &put_string(const char *s);
   simple_output &put_string(const string &s);
diff -Naur groff-1.18.1.4.orig/src/devices/grohtml/post-html.cc groff-1.18.1.4/src/devices/grohtml/post-html.cc
--- groff-1.18.1.4.orig/src/devices/grohtml/post-html.cc	2006-10-14 12:32:59.000000000 +0000
+++ groff-1.18.1.4/src/devices/grohtml/post-html.cc	2006-10-18 18:54:44.000000000 +0000
@@ -29,6 +29,7 @@
 #include "html.h"
 #include "html-text.h"
 #include "html-table.h"
+#include "encoding.h" // XXX: ukai
 
 #include <time.h>
 
@@ -280,6 +281,9 @@
 public:
   char_buffer();
   ~char_buffer();
+#ifdef ENABLE_MULTIBYTE
+  char  *add_string(const wchar *, unsigned int);
+#endif
   char  *add_string(const char *, unsigned int);
   char  *add_string(const string &);
 private:
@@ -301,6 +305,43 @@
   }
 }
 
+#ifdef ENABLE_MULTIBYTE
+char *char_buffer::add_string (const wchar *s, unsigned int length)
+{
+  int i=0;
+  unsigned int old_used;
+
+  if (tail == 0) {
+    tail = new char_block;
+    head = tail;
+  } else {
+    if (tail->used + length*2 + 1 > char_block::SIZE) {
+      tail->next = new char_block;
+      tail       = tail->next;
+    }
+  }
+  // at this point we have a tail which is ready for the string.
+  if (tail->used + length*2 + 1 > char_block::SIZE) {
+    fatal("need to increase char_block::SIZE");
+  }
+
+  old_used = tail->used;
+  do {
+    length -= output_encoding->put_wchar(s[i], (unsigned char *)tail->buffer, &tail->used, length*2);
+    i++;
+  } while (length>0);
+
+  // add terminating nul character
+
+  tail->buffer[tail->used] = '\0';
+  tail->used++;
+
+  // and return start of new string
+
+  return( &tail->buffer[old_used] );
+}
+#endif
+
 char *char_buffer::add_string (const char *s, unsigned int length)
 {
   int i=0;
@@ -320,6 +361,7 @@
   }
 
   old_used = tail->used;
+  /* XXX: encoding - ukai */
   do {
     tail->buffer[tail->used] = s[i];
     tail->used++;
@@ -1917,6 +1959,15 @@
 
     current_paragraph->do_para(&html, "", indentation, pageoffset, linelength);
   }
+#if 0 // def ENABLE_MULTIBYTE /* XXX */
+  else if (strcmp(fontname, "M") == 0) {
+    current_paragraph->done_bold();
+    current_paragraph->done_italic();
+    current_paragraph->done_tt();
+  } else if (strcmp(fontname, "G") == 0) {
+    current_paragraph->do_bold();
+  }
+#endif
 }
 
 void html_printer::determine_header_level (int level)
@@ -2948,6 +2999,11 @@
     current_paragraph->done_italic();
     current_paragraph->done_tt();
   }
+#ifdef ENABLE_MULTIBYTE
+  else if (strcmp(fontname, "G") == 0) {
+    current_paragraph->done_bold();
+  }
+#endif
 }
 
 /*
@@ -2992,6 +3048,15 @@
     current_paragraph->do_italic();
     current_paragraph->do_bold();
   }
+#ifdef ENABLE_MULTIBYTE
+  else if (strcmp(fontname, "M") == 0) {
+    current_paragraph->done_bold();
+    current_paragraph->done_italic();
+    current_paragraph->done_tt();
+  } else if (strcmp(fontname, "G") == 0) {
+    current_paragraph->do_bold();
+  }
+#endif
 }
 
 /*
@@ -3331,7 +3396,23 @@
 
   last_sbuf_length = sbuf.length();
   if (html_glyph == NULL)
+#ifdef ENABLE_MULTIBYTE
+    {
+      if (is_wchar_code(code)) {
+	int mblen = output_encoding->max_wchar_len();
+	unsigned char *wbuf = new unsigned char[mblen];
+	int i = 0, j = 0;
+	output_encoding->put_wchar(code, wbuf, &j, mblen);
+	for (i = 0; i < j; i++) {
+	  sbuf += wbuf[i];
+	}
+      }
+      else
+	sbuf += ((char)code);
+    }
+#else
     sbuf += ((char)code);
+#endif
   else
     sbuf += html_glyph;
 }
@@ -3445,12 +3526,12 @@
     return;
   
   flush_sbuf();
+  sbuf_style = sty; /* XXX? */
   add_to_sbuf(i, name);
   sbuf_end_hpos = env->hpos + w;
   sbuf_start_hpos = env->hpos;
   sbuf_prev_hpos = env->hpos;
   sbuf_vpos = env->vpos;
-  sbuf_style = sty;
   sbuf_kern = 0;
 }
 
@@ -3659,6 +3740,7 @@
   program_name = argv[0];
   static char stderr_buf[BUFSIZ];
   setbuf(stderr, stderr_buf);
+  init_encoding_handler();
   int c;
   static const struct option long_options[] = {
     { "help", no_argument, 0, CHAR_MAX + 1 },
diff -Naur groff-1.18.1.4.orig/src/devices/grops/ps.cc groff-1.18.1.4/src/devices/grops/ps.cc
--- groff-1.18.1.4.orig/src/devices/grops/ps.cc	2002-06-19 21:07:33.000000000 +0000
+++ groff-1.18.1.4/src/devices/grops/ps.cc	2006-10-18 18:54:44.000000000 +0000
@@ -24,6 +24,7 @@
 #include "cset.h"
 #include "nonposix.h"
 #include "paper.h"
+#include "encoding.h"
 
 #include "ps.h"
 #include <time.h>
@@ -193,12 +194,23 @@
   return *this;
 }
 
+#ifdef ENABLE_MULTIBYTE
+ps_output &ps_output::put_string(const wchar *s, int n)
+#else
 ps_output &ps_output::put_string(const char *s, int n)
+#endif
 {
   int len = 0;
   int i;
   for (i = 0; i < n; i++) {
+#ifdef ENABLE_MULTIBYTE
+    wchar wc = s[i];
+    char c = 0;
+    if (is_wchar_singlebyte(wc))
+      c = wchar_singlebyte(wc);
+#else
     char c = s[i];
+#endif
     if (is_ascii(c) && csprint(c)) {
       if (c == '(' || c == ')' || c == '\\')
 	len += 2;
@@ -224,8 +236,13 @@
 	putc('\n', fp);
 	col = 0;
       }
+#ifdef	ENABLE_MULTIBYTE
+      int nb = output_encoding->put_wchar(s[i], fp, "%02x");
+      col += nb * 2;
+#else
       fprintf(fp, "%02x", s[i] & 0377);
       col += 2;
+#endif
     }
     putc('>', fp);
     col++;
@@ -396,6 +413,9 @@
   int encoding_index;
   char *encoding;
   char *reencoded_name;
+#ifdef ENABLE_MULTIBYTE
+  char *encodingname;
+#endif
   ~ps_font();
   void handle_unknown_font_command(const char *command, const char *arg,
 				   const char *filename, int lineno);
@@ -414,6 +434,9 @@
 
 ps_font::ps_font(const char *nm)
 : font(nm), encoding_index(-1), encoding(0), reencoded_name(0)
+#ifdef ENABLE_MULTIBYTE
+  , encodingname(0)
+#endif
 {
 }
 
@@ -421,6 +444,9 @@
 {
   a_delete encoding;
   a_delete reencoded_name;
+#ifdef ENABLE_MULTIBYTE
+  a_delete encodingname;
+#endif
 }
 
 void ps_font::handle_unknown_font_command(const char *command, const char *arg,
@@ -433,6 +459,15 @@
     else
       encoding = strsave(arg);
   }
+#ifdef ENABLE_MULTIBYTE
+  if (strcmp(command, "encodingname") == 0) {
+    if (arg == 0)
+      error_with_file_and_line(filename, lineno,
+			       "`encodingname' command requires an argument");
+    else
+      encodingname = strsave(arg);
+  }
+#endif
 }
 
 static void handle_unknown_desc_command(const char *command, const char *arg,
@@ -487,7 +522,11 @@
   int paper_length;
   int equalise_spaces;
   enum { SBUF_SIZE = 256 };
+#ifdef	ENABLE_MULTIBYTE
+  wchar sbuf[SBUF_SIZE];
+#else
   char sbuf[SBUF_SIZE];
+#endif
   int sbuf_len;
   int sbuf_start_hpos;
   int sbuf_vpos;
@@ -606,7 +645,11 @@
 {
   if (i == space_char_index || invis_count > 0)
     return;
+#ifdef	ENABLE_MULTIBYTE
+  wchar code = f->get_code(i);
+#else
   unsigned char code = f->get_code(i);
+#endif
   style sty(f, env->size, env->height, env->slant);
   if (sty.slant != 0) {
     if (sty.slant > 80 || sty.slant < -80) {
@@ -763,6 +806,14 @@
     if (sty == defined_styles[i]) {
       sprintf(buf, "F%d", i);
       out.put_symbol(buf);
+#ifdef ENABLE_MULTIBYTE
+      char *encodingname = ((ps_font *)sty.f)->encodingname;
+      if (encodingname != 0) {
+	select_output_encoding_handler(encodingname);
+      } else {
+	select_output_encoding_handler("LATIN1");
+      }
+#endif
       return;
     }
   if (ndefined_styles >= MAX_DEFINED_STYLES)
@@ -772,6 +823,14 @@
   const char *psname = sty.f->get_internal_name();
   if (psname == 0)
     fatal("no internalname specified for font `%1'", sty.f->get_name());
+#ifdef ENABLE_MULTIBYTE
+  char *encodingname = ((ps_font *)sty.f)->encodingname;
+  if (encodingname != 0) {
+    select_output_encoding_handler(encodingname);
+  } else {
+    select_output_encoding_handler("LATIN1");
+  }
+#endif
   char *encoding = ((ps_font *)sty.f)->encoding;
   if (encoding != 0) {
     char *s = ((ps_font *)sty.f)->reencoded_name;
@@ -1555,6 +1614,7 @@
   string env;
   static char stderr_buf[BUFSIZ];
   setbuf(stderr, stderr_buf);
+  init_encoding_handler();
   int c;
   static const struct option long_options[] = {
     { "help", no_argument, 0, CHAR_MAX + 1 },
diff -Naur groff-1.18.1.4.orig/src/devices/grops/ps.h groff-1.18.1.4/src/devices/grops/ps.h
--- groff-1.18.1.4.orig/src/devices/grops/ps.h	2002-01-24 22:37:32.000000000 +0000
+++ groff-1.18.1.4/src/devices/grops/ps.h	2006-10-18 18:54:44.000000000 +0000
@@ -18,10 +18,16 @@
 with groff; see the file COPYING.  If not, write to the Free Software
 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
+#include "encoding.h" // XXX
+
 class ps_output {
 public:
   ps_output(FILE *, int max_line_length);
+#ifdef	ENABLE_MULTIBYTE
+  ps_output &put_string(const wchar *, int);
+#else
   ps_output &put_string(const char *, int);
+#endif
   ps_output &put_number(int);
   ps_output &put_fix_number(int);
   ps_output &put_float(double);
diff -Naur groff-1.18.1.4.orig/src/devices/grotty/grotty.man groff-1.18.1.4/src/devices/grotty/grotty.man
--- groff-1.18.1.4.orig/src/devices/grotty/grotty.man	2002-10-01 19:01:45.000000000 +0000
+++ groff-1.18.1.4/src/devices/grotty/grotty.man	2006-10-18 18:54:44.000000000 +0000
@@ -50,7 +50,9 @@
 command
 with a
 .BR \-Tascii ,
-.B \-Tlatin1
+.BR \-Tascii8 ,
+.BR \-Tlatin1 ,
+.B \-Tnippon
 or
 .B \-Tutf8
 option on ASCII based systems, and with
@@ -235,8 +237,10 @@
 .I name
 is the name of the device, usually
 .BR ascii ,
+.BR ascii8 ,
 .BR latin1 ,
 .BR utf8 ,
+.B  nippon
 or
 .BR cp1047 .
 .TP
@@ -315,10 +319,20 @@
 device.
 .
 .TP
+.B @FONTDIR@/devascii8/DESC
+Device description file for
+.B ascii8
+device.
+.TP
 .B @FONTDIR@/devlatin1/DESC
 Device description file for
 .B latin1
 device.
+.TP
+.B @FONTDIR@/devnippon/DESC
+Device description file for
+.B nippon
+device.
 .
 .TP
 .BI @FONTDIR@/devlatin1/ F
diff -Naur groff-1.18.1.4.orig/src/devices/grotty/tty.cc groff-1.18.1.4/src/devices/grotty/tty.cc
--- groff-1.18.1.4.orig/src/devices/grotty/tty.cc	2002-06-19 21:31:15.000000000 +0000
+++ groff-1.18.1.4/src/devices/grotty/tty.cc	2006-10-18 18:54:44.000000000 +0000
@@ -20,6 +20,7 @@
 
 #include "driver.h"
 #include "device.h"
+#include "encoding.h"
 
 extern "C" const char *Version_string;
 
@@ -51,8 +52,18 @@
   HDRAW_MODE = 0x08,
   CU_MODE = 0x10,
   COLOR_CHANGE = 0x20
+#ifdef ENABLE_MULTIBYTE
+  , WCHAR_MODE = 0x100
+#endif
 };
 
+#ifdef ENABLE_MULTIBYTE
+# ifdef putchar
+#  undef putchar
+# endif
+#define putchar(wc)	output_encoding->put_wchar((wc), stdout)
+#endif
+
 // Mode to use for bold-underlining.
 static unsigned char bold_underline_mode = BOLD_MODE|UNDERLINE_MODE;
 
@@ -89,6 +100,7 @@
   static tty_font *load_tty_font(const char *);
 };
 
+
 tty_font *tty_font::load_tty_font(const char *s)
 {
   tty_font *f = new tty_font(s);
@@ -98,8 +110,26 @@
   }
   const char *num = f->get_internal_name();
   long n;
+#ifdef ENABLE_MULTIBYTE
+  if (num != 0) {
+    n = strtol(num, 0, 0);
+    switch (n) {
+    case 1:
+      f->mode = int(UNDERLINE_MODE);
+      break;
+    case 2:
+    case 5:
+      f->mode = int(BOLD_MODE);
+      break;
+    case 3:
+      f->mode = int(BOLD_MODE|UNDERLINE_MODE);
+      break;
+    }
+  }
+#else
   if (num != 0 && (n = strtol(num, 0, 0)) != 0)
     f->mode = int(n & (BOLD_MODE|UNDERLINE_MODE));
+#endif
   if (!underline_flag)
     f->mode &= ~UNDERLINE_MODE;
   if (!bold_flag)
@@ -135,6 +165,9 @@
   short hpos;
   unsigned int code;
   unsigned char mode;
+#ifdef ENABLE_MULTIBYTE
+  short cols;
+#endif
   unsigned char back_color_idx;
   unsigned char fore_color_idx;
   void *operator new(size_t);
@@ -184,7 +217,7 @@
   void make_underline();
   void make_bold(unsigned int);
   unsigned char color_to_idx(color *col);
-  void add_char(unsigned int, int, int, color *, color *, unsigned char);
+  void add_char(unsigned int, int, int, color *, color *, font *, unsigned char);
 public:
   tty_printer(const char *device);
   ~tty_printer();
@@ -193,7 +226,7 @@
   void special(char *arg, const environment *env, char type);
   void change_color(const environment *env);
   void change_fill_color(const environment *env);
-  void put_char(unsigned int);
+  int put_char(unsigned int);
   void put_color(unsigned char, int);
   void begin_page(int) { }
   void end_page(int page_length);
@@ -203,6 +236,10 @@
 tty_printer::tty_printer(const char *device) : cached_v(0)
 {
   is_utf8 = !strcmp(device, "utf8");
+#ifdef ENABLE_MULTIBYTE
+  if (is_utf8)
+      select_output_encoding_handler("UTF-8");
+#endif
   tty_colors[0].set_rgb(0,			// black
  			0,
 			0);
@@ -242,8 +279,18 @@
 void tty_printer::make_underline()
 {
   if (old_drawing_scheme) {
+#if 0 /* def ENABLE_MULTIBYTE XXX: not necessary? */
+    if ((p->mode & WCHAR_MODE)) {
+	putchar('_'); putchar('_');
+	putchar('\b'); putchar('\b');
+    } else {
+	putchar('_');
+	putchar('\b');
+    }
+#else
     putchar('_');
     putchar('\b');
+#endif
   }
   else {
     if (!is_underline) {
@@ -285,17 +332,25 @@
 void tty_printer::set_char(int i, font *f, const environment *env,
 			   int w, const char *name)
 {
+#ifdef ENABLE_MULTIBYTE
+  if (is_wchar_code(i)) {
+    add_char(wchar_code(i), env->hpos, env->vpos, env->col, env->fill, 
+	     f, ((tty_font *)f)->get_mode());
+    return;
+  }
+#endif
   if (w != font::hor)
     fatal("width of character not equal to horizontal resolution");
   add_char(f->get_code(i),
 	   env->hpos, env->vpos,
 	   env->col, env->fill,
-	   ((tty_font *)f)->get_mode());
+	   f, ((tty_font *)f)->get_mode());
 }
 
 void tty_printer::add_char(unsigned int c,
 			   int h, int v,
 			   color *fore, color *back,
+			   font *curfont,
 			   unsigned char mode)
 {
 #if 0
@@ -338,6 +393,16 @@
   g->code = c;
   g->fore_color_idx = color_to_idx(fore);
   g->back_color_idx = color_to_idx(back);
+#ifdef ENABLE_MULTIBYTE
+  if (is_wchar_code(c))
+    mode |= WCHAR_MODE;
+  if (curfont && curfont->contains(c)) {
+      int gw0 = curfont->get_space_width(font::unitwidth);
+      int gw = curfont->get_width(c, font::unitwidth);
+      g->cols = gw/gw0;
+  } else
+      g->cols = 1;	/* XXX */
+#endif
   g->mode = mode;
 
   // The list will be reversed later.  After reversal, it must be in
@@ -357,7 +422,7 @@
 void tty_printer::special(char *arg, const environment *env, char type)
 {
   if (type == 'u') {
-    add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, CU_MODE);
+    add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), CU_MODE);
     return;
   }
   if (type != 'p')
@@ -395,12 +460,12 @@
 
 void tty_printer::change_color(const environment *env)
 {
-  add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
+  add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
 }
 
 void tty_printer::change_fill_color(const environment *env)
 {
-  add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
+  add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
 }
 
 void tty_printer::draw(int code, int *p, int np, const environment *env)
@@ -420,7 +485,7 @@
       len = -len;
     }
     while (len >= 0) {
-      add_char('|', env->hpos, v, env->col, env->fill, VDRAW_MODE);
+      add_char('|', env->hpos, v, env->col, env->fill, get_font_from_index(env->fontno), VDRAW_MODE);
       len -= font::vert;
       v += font::vert;
     }
@@ -434,18 +499,24 @@
       len = -len;
     }
     while (len >= 0) {
-      add_char('-', h, env->vpos, env->col, env->fill, HDRAW_MODE);
+      add_char('-', h, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), HDRAW_MODE);
       len -= font::hor;
       h += font::hor;
     }
   }
 }
 
-void tty_printer::put_char(unsigned int wc)
+int tty_printer::put_char(unsigned int wc)
 {
+#ifdef ENABLE_MULTIBYTE
+  if (wc >= 0x80) {
+    return output_encoding->put_wchar(make_wchar(wc), stdout);
+  }
+#else
   if (is_utf8 && wc >= 0x80) {
     char buf[6 + 1];
     int count;
+    int len;
     char *p = buf;
     if (wc < 0x800)
       count = 1, *p = (unsigned char)((wc >> 6) | 0xc0);
@@ -458,14 +529,18 @@
     else if (wc <= 0x7fffffff)
       count = 5, *p = (unsigned char)((wc >> 30) | 0xfC);
     else
-      return;
+      return 0;
+    len = count;
     do *++p = (unsigned char)(((wc >> (6 * --count)) & 0x3f) | 0x80);
       while (count > 0);
     *++p = '\0';
     putstring(buf);
+    return len;
   }
+#endif
   else
     putchar(wc);
+  return 1;
 }
 
 void tty_printer::put_color(unsigned char color_index, int back)
@@ -629,7 +704,11 @@
 	}
       }
       put_char(p->code);
+#ifdef ENABLE_MULTIBYTE
+      hpos += p->cols;
+#else
       hpos++;
+#endif
     }
     if (!old_drawing_scheme
 	&& (is_bold || is_underline
@@ -667,6 +746,7 @@
   if (getenv("GROFF_NO_SGR"))
     old_drawing_scheme = 1;
   setbuf(stderr, stderr_buf);
+  init_encoding_handler();
   int c;
   static const struct option long_options[] = {
     { "help", no_argument, 0, CHAR_MAX + 1 },
diff -Naur groff-1.18.1.4.orig/src/include/config.h groff-1.18.1.4/src/include/config.h
--- groff-1.18.1.4.orig/src/include/config.h	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/src/include/config.h	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,187 @@
+/* src/include/config.h.  Generated by configure.  */
+/* src/include/config.hin.  Generated from configure.ac by autoheader.  */
+
+/* Define if your C++ doesn't understand `delete []'. */
+/* #undef ARRAY_DELETE_NEEDS_SIZE */
+
+/* Define if you want to use multibyte extension. */
+#define ENABLE_MULTIBYTE 1
+
+/* Define if you have a C++ <limits.h>. */
+#define HAVE_CC_LIMITS_H 1
+
+/* Define if you have a C++ <osfcn.h>. */
+/* #undef HAVE_CC_OSFCN_H */
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the `fmod' function. */
+#define HAVE_FMOD 1
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `isatty' function. */
+#define HAVE_ISATTY 1
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#define HAVE_LANGINFO_CODESET 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the <math.h> header file. */
+#define HAVE_MATH_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if you have mkstemp(). */
+#define HAVE_MKSTEMP 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define to 1 if you have the `putenv' function. */
+#define HAVE_PUTENV 1
+
+/* Define to 1 if you have the `rename' function. */
+#define HAVE_RENAME 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#define HAVE_SNPRINTF 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have the `strsep' function. */
+#define HAVE_STRSEP 1
+
+/* Define to 1 if you have the `strtol' function. */
+#define HAVE_STRTOL 1
+
+/* Define if <math.h> defines struct exception. */
+#define HAVE_STRUCT_EXCEPTION 1
+
+/* Define to 1 if you have the <sys/dir.h> header file. */
+#define HAVE_SYS_DIR_H 1
+
+/* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
+#define HAVE_SYS_ERRLIST 1
+
+/* Define if you have sysnerr in <errno.h> or <stdio.h>. */
+#define HAVE_SYS_NERR 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define if the host's encoding is EBCDIC. */
+/* #undef IS_EBCDIC_HOST */
+
+/* Define if localtime() takes a long * not a time_t *. */
+/* #undef LONG_FOR_TIME_T */
+
+/* Define if your C++ doesn't declare gettimeofday(). */
+/* #undef NEED_DECLARATION_GETTIMEOFDAY */
+
+/* Define if your C++ doesn't declare hypot(). */
+/* #undef NEED_DECLARATION_HYPOT */
+
+/* Define if your C++ doesn't declare pclose(). */
+/* #undef NEED_DECLARATION_PCLOSE */
+
+/* Define if your C++ doesn't declare popen(). */
+/* #undef NEED_DECLARATION_POPEN */
+
+/* Define if your C++ doesn't declare putenv(). */
+/* #undef NEED_DECLARATION_PUTENV */
+
+/* Define if your C++ doesn't declare strcasecmp(). */
+/* #undef NEED_DECLARATION_STRCASECMP */
+
+/* Define if your C++ doesn't declare strncasecmp(). */
+/* #undef NEED_DECLARATION_STRNCASECMP */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME ""
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING ""
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION ""
+
+/* Define if the printer's page size is A4. */
+#define PAGEA4 1
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define if srand() returns void not int. */
+#define RET_TYPE_SRAND_IS_VOID 1
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
+#define SYS_SIGLIST_DECLARED 1
+
+/* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
+/* #undef TRADITIONAL_CPP */
+
+/* Define if the 0200 bit of the status returned by wait() indicates whether a
+   core image was produced for a process that was terminated by a signal. */
+/* #undef WCOREFLAG */
+
+/* Define if -D_POSIX_SOURCE is necessary. */
+/* #undef _POSIX_SOURCE */
+
+/* Define if you have ISC 3.x or 4.x. */
+/* #undef _SYSV3 */
+
+/* Define uintmax_t to `unsigned long' or `unsigned long long' if <inttypes.h>
+   does not exist. */
+/* #undef uintmax_t */
diff -Naur groff-1.18.1.4.orig/src/include/config.hin groff-1.18.1.4/src/include/config.hin
--- groff-1.18.1.4.orig/src/include/config.hin	2002-09-06 07:32:26.000000000 +0000
+++ groff-1.18.1.4/src/include/config.hin	2006-10-18 18:54:44.000000000 +0000
@@ -1,84 +1,96 @@
-/* src/include/config.hin.  Generated automatically from configure.ac by autoheader.  */
+/* src/include/config.hin.  Generated from configure.ac by autoheader.  */
 
 /* Define if your C++ doesn't understand `delete []'. */
 #undef ARRAY_DELETE_NEEDS_SIZE
 
+/* Define if you want to use multibyte extension. */
+#undef ENABLE_MULTIBYTE
+
 /* Define if you have a C++ <limits.h>. */
 #undef HAVE_CC_LIMITS_H
 
 /* Define if you have a C++ <osfcn.h>. */
 #undef HAVE_CC_OSFCN_H
 
-/* Define if you have the <dirent.h> header file. */
+/* Define to 1 if you have the <dirent.h> header file. */
 #undef HAVE_DIRENT_H
 
-/* Define if you have the `fmod' function. */
+/* Define to 1 if you have the `fmod' function. */
 #undef HAVE_FMOD
 
-/* Define if you have the `getcwd' function. */
+/* Define to 1 if you have the `getcwd' function. */
 #undef HAVE_GETCWD
 
-/* Define if you have the `getpagesize' function. */
+/* Define to 1 if you have the `getpagesize' function. */
 #undef HAVE_GETPAGESIZE
 
-/* Define if you have the `gettimeofday' function. */
+/* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
-/* Define if you have the <limits.h> header file. */
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `isatty' function. */
+#undef HAVE_ISATTY
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Define to 1 if you have the <limits.h> header file. */
 #undef HAVE_LIMITS_H
 
-/* Define if you have the <math.h> header file. */
+/* Define to 1 if you have the <math.h> header file. */
 #undef HAVE_MATH_H
 
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
 /* Define if you have mkstemp(). */
 #undef HAVE_MKSTEMP
 
-/* Define if you have a working `mmap' system call. */
+/* Define to 1 if you have a working `mmap' system call. */
 #undef HAVE_MMAP
 
-/* Define if you have the `putenv' function. */
+/* Define to 1 if you have the `putenv' function. */
 #undef HAVE_PUTENV
 
-/* Define if you have the `rename' function. */
+/* Define to 1 if you have the `rename' function. */
 #undef HAVE_RENAME
 
-/* Define if you have the `snprintf' function. */
+/* Define to 1 if you have the `snprintf' function. */
 #undef HAVE_SNPRINTF
 
-/* Define if you have the `isatty' function. */
-#undef HAVE_ISATTY
-
-/* Define if you have the <stdint.h> header file. */
+/* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
-/* Define if you have the <stdlib.h> header file. */
+/* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
-/* Define if you have the `strcasecmp' function. */
+/* Define to 1 if you have the `strcasecmp' function. */
 #undef HAVE_STRCASECMP
 
-/* Define if you have the `strerror' function. */
+/* Define to 1 if you have the `strerror' function. */
 #undef HAVE_STRERROR
 
-/* Define if you have the <strings.h> header file. */
+/* Define to 1 if you have the <strings.h> header file. */
 #undef HAVE_STRINGS_H
 
-/* Define if you have the <string.h> header file. */
+/* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define if you have the `strncasecmp' function. */
+/* Define to 1 if you have the `strncasecmp' function. */
 #undef HAVE_STRNCASECMP
 
-/* Define if you have the `strsep' function. */
+/* Define to 1 if you have the `strsep' function. */
 #undef HAVE_STRSEP
 
-/* Define if you have the `strtol' function. */
+/* Define to 1 if you have the `strtol' function. */
 #undef HAVE_STRTOL
 
 /* Define if <math.h> defines struct exception. */
 #undef HAVE_STRUCT_EXCEPTION
 
-/* Define if you have the <sys/dir.h> header file. */
+/* Define to 1 if you have the <sys/dir.h> header file. */
 #undef HAVE_SYS_DIR_H
 
 /* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
@@ -87,10 +99,16 @@
 /* Define if you have sysnerr in <errno.h> or <stdio.h>. */
 #undef HAVE_SYS_NERR
 
-/* Define if you have the <sys/time.h> header file. */
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
 #undef HAVE_SYS_TIME_H
 
-/* Define if you have the <unistd.h> header file. */
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
 /* Define if the host's encoding is EBCDIC. */
@@ -120,6 +138,21 @@
 /* Define if your C++ doesn't declare strncasecmp(). */
 #undef NEED_DECLARATION_STRNCASECMP
 
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
 /* Define if the printer's page size is A4. */
 #undef PAGEA4
 
@@ -129,7 +162,10 @@
 /* Define if srand() returns void not int. */
 #undef RET_TYPE_SRAND_IS_VOID
 
-/* Define if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
 #undef SYS_SIGLIST_DECLARED
 
 /* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
diff -Naur groff-1.18.1.4.orig/src/include/device.h groff-1.18.1.4/src/include/device.h
--- groff-1.18.1.4.orig/src/include/device.h	2000-02-06 09:36:30.000000000 +0000
+++ groff-1.18.1.4/src/include/device.h	2006-10-18 18:54:44.000000000 +0000
@@ -18,4 +18,9 @@
 with groff; see the file COPYING.  If not, write to the Free Software
 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
+#ifndef _DEVICE_H
+#define _DEVICE_H
+
 extern const char *device;
+
+#endif /* _DEVICE_H */
diff -Naur groff-1.18.1.4.orig/src/include/driver.h groff-1.18.1.4/src/include/driver.h
--- groff-1.18.1.4.orig/src/include/driver.h	2002-02-17 17:05:53.000000000 +0000
+++ groff-1.18.1.4/src/include/driver.h	2006-10-18 18:54:44.000000000 +0000
@@ -27,6 +27,7 @@
 #include <errno.h>
 #include <assert.h>
 #include <math.h>
+#include "encoding.h" // XXX: ukai
 #include "errarg.h"
 #include "error.h"
 #include "font.h"
diff -Naur groff-1.18.1.4.orig/src/include/encoding.h groff-1.18.1.4/src/include/encoding.h
--- groff-1.18.1.4.orig/src/include/encoding.h	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/src/include/encoding.h	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,175 @@
+// -*- C++ -*-
+/* Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
+
+This file is part of groff.
+
+groff is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+groff is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
+
+#ifndef ENCODING_H
+#define ENCODING_H
+
+#include <config.h>
+
+#ifdef ENABLE_MULTIBYTE
+typedef int wchar;	// negative is used for charcode & index
+#else
+typedef char wchar;
+#endif
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+class encoding_istream {
+public:
+  encoding_istream() {};
+  virtual ~encoding_istream() {};
+  virtual int getbyte() = 0;
+  virtual int peekbyte() = 0;
+  virtual void ungetbyte(int ch) = 0;
+};
+
+class encoding_istream_str: public encoding_istream {
+private:
+  const unsigned char *s;
+  int *i;
+  encoding_istream_str() {};
+public:
+  encoding_istream_str(const unsigned char *s0, int *i0) : s(s0), i(i0) {};
+  ~encoding_istream_str() {};
+  inline int getbyte() { return s[(*i)++]; };
+  inline int peekbyte() { return s[(*i)]; };
+  inline void ungetbyte(int ch) { --(*i); };
+};
+
+class encoding_istream_fp: public encoding_istream {
+private:
+  FILE *fp;
+public:
+  encoding_istream_fp(FILE *fp0) : fp(fp0) {};
+  ~encoding_istream_fp() {};
+  inline int getbyte() { return fgetc(fp); };
+  inline int peekbyte() { int ch = fgetc(fp); ungetc(ch, fp); return ch; };
+  inline void ungetbyte(int ch) { ungetc(ch, fp); };
+};
+
+class encoding_ostream {
+public:
+  encoding_ostream() {};
+  virtual ~encoding_ostream() {};
+  virtual void putbyte(unsigned char ch) = 0;
+};
+
+class encoding_ostream_str: public encoding_ostream {
+private:
+  unsigned char *s;
+  int *i;
+  int len;
+  encoding_ostream_str() {};
+public:
+  encoding_ostream_str(unsigned char *s0, int *i0, int max) : s(s0), i(i0), len(max) {};
+  ~encoding_ostream_str() {};
+  inline void putbyte(unsigned char ch) {
+    if (*i < len)
+      s[(*i)++] = ch;
+  }
+};
+
+class encoding_ostream_fp: public encoding_ostream {
+private:
+  FILE *fp;
+  const char *format;
+public:
+  encoding_ostream_fp(FILE *ofp, const char *fmt = "%c") : fp(ofp), format(fmt) {};
+  ~encoding_ostream_fp() {};
+  inline void putbyte(unsigned char ch) {
+    fprintf(fp, format, ch);
+  }
+};
+
+class encoding_handler {
+public:
+  encoding_handler() {};
+  virtual ~encoding_handler() {};
+
+  // name of this encoding_handler
+  virtual const char *name() { return ""; };
+
+  // check if this byte is byte in multibyte character in this encoding?
+  virtual int is_wchar_byte(unsigned char c) { return 0; };
+
+  // make new wchar from c0 (beginning of multibytes) and rest from `in'
+  virtual wchar make_wchar(unsigned char c0, encoding_istream& in) { 
+    return wchar(c0);
+  }
+  // make new wchar from c0 (beginning of multibytes) and rest from `fp'
+  virtual wchar make_wchar(unsigned char c0, FILE *fp) {
+    encoding_istream_fp in(fp);
+    return make_wchar(c0, in);
+  }
+  // make new wchar from c0 (beginning of multibtyes) and rest from
+  // s[*i], *i will be changed to point the byte of next character.
+  virtual wchar make_wchar(unsigned char c0, const unsigned char *s, int *i) {
+    encoding_istream_str in(s, i);
+    return make_wchar(c0, in);
+  }
+
+  // put wchar to outputstream
+  // returns number of bytes written
+  virtual int put_wchar(wchar wc, encoding_ostream& eos) {
+    eos.putbyte((unsigned char)wc);
+    return 1;
+  }
+  // put wchar to `fp' using `fmt'
+  // returns number of bytes written
+  virtual int put_wchar(wchar wc, FILE *fp, const char *fmt = "%c") {
+    encoding_ostream_fp out(fp, fmt);
+    return put_wchar(wc, out);
+  }
+  // put wchar to s[*i] (until maxlen)
+  // *i will be changed to point the byte of next character.
+  virtual int put_wchar(wchar wc, unsigned char *s, int *i, int maxlen) {
+    encoding_ostream_str out(s, i, maxlen);
+    return put_wchar(wc, out);
+  }
+
+  // maximum number of bytes of multibyte character in this encoding
+  virtual int max_wchar_len() { return 1; };
+
+};
+
+encoding_handler* select_input_encoding_handler(const char* encoding_name);
+encoding_handler* select_output_encoding_handler(const char* encoding_name);
+extern encoding_handler* input_encoding;
+extern encoding_handler* output_encoding;
+void init_encoding_handler();
+
+// check if wc is wchar?
+int is_wchar_code(wchar wc);
+
+// check if wc is wchar & can be represented in single byte?
+int is_wchar_singlebyte(wchar wc);
+
+// get singlebyte representation of wchar (if is_wchar_singlebyte(wc))
+unsigned char wchar_singlebyte(wchar wc);
+
+// get actual wide character code
+int wchar_code(wchar wc);
+
+// make wchar from wide character code
+int make_wchar(int w);
+
+#endif
+
+#endif /* ENCODING_H */
diff -Naur groff-1.18.1.4.orig/src/include/font.h groff-1.18.1.4/src/include/font.h
--- groff-1.18.1.4.orig/src/include/font.h	2002-07-09 07:57:02.000000000 +0000
+++ groff-1.18.1.4/src/include/font.h	2006-10-18 18:54:44.000000000 +0000
@@ -18,11 +18,17 @@
 with groff; see the file COPYING.  If not, write to the Free Software
 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
+#include "encoding.h"
+
 typedef void (*FONT_COMMAND_HANDLER)(const char *, const char *,
 				     const char *, int);
 
 struct font_kern_list;
 struct font_char_metric;
+#ifdef ENABLE_MULTIBYTE
+struct fontset_list;
+struct font_wchar_metric;
+#endif
 struct font_widths_cache;
 
 class font {
@@ -53,6 +59,9 @@
   const char *get_special_device_encoding(int index);
   const char *get_name();
   const char *get_internal_name();
+#ifdef	ENABLE_MULTIBYTE
+  const char *get_subfont_name(int index);
+#endif
 
   static int scan_papersize(const char *, const char **, double *, double *);
 
@@ -62,6 +71,9 @@
   static int load_desc();
   static int name_to_index(const char *);
   static int number_to_index(int);
+#ifdef	ENABLE_MULTIBYTE
+  static int wchar_index(wchar);
+#endif
   static FONT_COMMAND_HANDLER
     set_unknown_desc_command_handler(FONT_COMMAND_HANDLER);
 
@@ -76,6 +88,11 @@
   static int spare2;
   static int sizescale;
   static int tcommand;
+#ifdef	ENABLE_MULTIBYTE
+  // XXX: should be in charinfo or font_wchar_metric?
+  static int lowerwchar;
+  static int wcharkern;
+#endif
   static int pass_filenames;
   static int use_charnames_in_special;
 
@@ -83,13 +100,27 @@
   static const char **style_table;
   static const char *family;
   static int *sizes;
+#ifdef	ENABLE_MULTIBYTE
+  // fontsets - sub font list
+  static fontset_list *fontsets;
+  // get fontset for `wc' in current font `fname'
+  static int get_fontset_font(const char *fname, wchar wc);
+  // is the fontno's font load on demand?
+  static int is_on_demand(int fontno);
+#endif
 private:
   unsigned ligatures;
   font_kern_list **kern_hash_table;
   int space_width;
-  short *ch_index;
+  short *ch_index;	/* XXX: this is used unless font_wchar_metric. */
   int nindices;
   font_char_metric *ch;
+#ifdef ENABLE_MULTIBYTE
+  // font metric for wchar
+  font_wchar_metric *wch;
+  // get font metric for wchar indexed by c
+  font_wchar_metric *get_font_wchar_metric(int c);
+#endif
   int ch_used;
   int ch_size;
   int special;
diff -Naur groff-1.18.1.4.orig/src/include/lib.h groff-1.18.1.4/src/include/lib.h
--- groff-1.18.1.4.orig/src/include/lib.h	2002-03-08 07:33:49.000000000 +0000
+++ groff-1.18.1.4/src/include/lib.h	2006-10-18 18:54:44.000000000 +0000
@@ -88,8 +88,15 @@
 
 extern char invalid_char_table[];
 
+#include "encoding.h" /* XXX: ukai */
+
 inline int invalid_input_char(int c)
 {
+#ifdef ENABLE_MULTIBYTE
+  if (input_encoding->is_wchar_byte(c))
+      return 0;
+  else
+#endif
   return c >= 0 && invalid_char_table[c];
 }
 
diff -Naur groff-1.18.1.4.orig/src/include/printer.h groff-1.18.1.4/src/include/printer.h
--- groff-1.18.1.4.orig/src/include/printer.h	2002-04-14 10:22:57.000000000 +0000
+++ groff-1.18.1.4/src/include/printer.h	2006-10-18 18:54:44.000000000 +0000
@@ -38,6 +38,8 @@
 
 #include "color.h"
 
+#include "encoding.h"
+
 struct environment {
   int fontno;
   int size;
@@ -63,6 +65,9 @@
   printer();
   virtual ~printer();
   void load_font(int i, const char *name);
+#ifdef	ENABLE_MULTIBYTE
+  void set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp = 0);
+#endif
   void set_ascii_char(unsigned char c, const environment *env,
 		      int *widthp = 0);
   void set_special_char(const char *nm, const environment *env,
diff -Naur groff-1.18.1.4.orig/src/libs/libdriver/input.cc groff-1.18.1.4/src/libs/libdriver/input.cc
--- groff-1.18.1.4.orig/src/libs/libdriver/input.cc	2002-09-06 08:10:38.000000000 +0000
+++ groff-1.18.1.4/src/libs/libdriver/input.cc	2006-10-18 18:54:44.000000000 +0000
@@ -250,6 +250,7 @@
 
 #include "driver.h"
 #include "device.h"
+#include "encoding.h"
 
 #include <stdlib.h>
 #include <errno.h>
@@ -1439,6 +1440,19 @@
   char *subcmd_str = get_string_arg();
   char subcmd = subcmd_str[0];
   switch (subcmd) {
+#ifdef ENABLE_MULTIBYTE
+  case 'e':			// x encoding: select encoding
+    {
+      char *str_arg = get_string_arg();
+      if (str_arg == 0)
+	warning("empty argument for `x encoding' command");
+      else {
+	select_input_encoding_handler(str_arg);
+	delete str_arg;
+      }
+      break;
+    }
+#endif
   case 'f':			// x font: mount font
     {
       IntArg n = get_integer_arg();
@@ -1517,7 +1531,7 @@
   return stopped;
 }
 
-
+////////////////////////////////////////////////////////////////
 /**********************************************************************
                      exported part (by driver.h)
  **********************************************************************/
@@ -1625,6 +1639,18 @@
     if (str_arg[0] != 'i')
       fatal("the third command must be `x init'");
     delete str_arg;
+#ifdef ENABLE_MULTIBYTE
+    Char c = get_char();
+    while (is_space_or_tab(c) && c != Char('\n') && c != Char(EOF))
+	c = get_char();
+    unget_char(c);
+    if (c != Char('\n') && c != Char(EOF)) {
+	const char *tmp_encoding = get_string_arg();
+	if (tmp_encoding && *tmp_encoding)
+	    select_input_encoding_handler(tmp_encoding);
+	delete tmp_encoding;
+    }
+#endif
     skip_line_x();
   }
 
@@ -1763,6 +1789,18 @@
 	size_t i = 0;
 	while ((c = str_arg[i++]) != '\0') {
 	  EnvInt w;
+#ifdef	ENABLE_MULTIBYTE
+ 	  if (input_encoding->is_wchar_byte(c)) {
+	    int i0 = i - 1;
+ 	    wchar wc = input_encoding->make_wchar(c, (const unsigned char *)str_arg, (int *)&i);
+ 	    if (is_wchar_code(wc)) {
+	      /* XXX: singlebyte check? */
+ 	      pr->set_wchar_char(wc, str_arg, i0, i - i0, current_env, &w);
+ 	    } else {
+ 	      pr->set_ascii_char((unsigned char) c, current_env, &w);
+ 	    }
+ 	  } else
+#endif
 	  pr->set_ascii_char((unsigned char) c, current_env, &w);
 	  current_env->hpos += w;
 	}
diff -Naur groff-1.18.1.4.orig/src/libs/libdriver/printer.cc groff-1.18.1.4/src/libs/libdriver/printer.cc
--- groff-1.18.1.4.orig/src/libs/libdriver/printer.cc	2002-04-14 10:22:57.000000000 +0000
+++ groff-1.18.1.4/src/libs/libdriver/printer.cc	2006-10-18 18:54:44.000000000 +0000
@@ -27,6 +27,7 @@
 */
 
 #include "driver.h"
+#include "encoding.h"
 
 printer *pr = 0;
 
@@ -138,6 +139,24 @@
   }
 }
 
+#ifdef	ENABLE_MULTIBYTE
+void printer::set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp)
+{
+  unsigned char *buf = new unsigned char[len+1];
+  memset(buf, 0, len+1);
+  memcpy(buf, s+i0, len);
+  font *f;
+  int w;
+  int i = set_char_and_width((const char *)buf, env, &w, &f);
+  if (i != -1) {
+      set_char(c, f, env, w, (const char *)buf);
+      if (widthp)
+	  *widthp = w;
+  }
+  delete [] buf;
+}
+#endif
+
 void printer::set_special_char(const char *nm, const environment *env,
 			       int *widthp)
 {
diff -Naur groff-1.18.1.4.orig/src/libs/libgroff/Makefile.sub groff-1.18.1.4/src/libs/libgroff/Makefile.sub
--- groff-1.18.1.4.orig/src/libs/libgroff/Makefile.sub	2002-08-23 07:04:40.000000000 +0000
+++ groff-1.18.1.4/src/libs/libgroff/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -6,6 +6,7 @@
   color.$(OBJEXT) \
   cset.$(OBJEXT) \
   device.$(OBJEXT) \
+  encoding.$(OBJEXT) \
   errarg.$(OBJEXT) \
   error.$(OBJEXT) \
   fatal.$(OBJEXT) \
@@ -45,6 +46,7 @@
   $(srcdir)/color.cc \
   $(srcdir)/cset.cc \
   $(srcdir)/device.cc \
+  $(srcdir)/encoding.cc \
   $(srcdir)/errarg.cc \
   $(srcdir)/error.cc \
   $(srcdir)/fatal.cc \
diff -Naur groff-1.18.1.4.orig/src/libs/libgroff/encoding.cc groff-1.18.1.4/src/libs/libgroff/encoding.cc
--- groff-1.18.1.4.orig/src/libs/libgroff/encoding.cc	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/src/libs/libgroff/encoding.cc	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,441 @@
+// -*- C++ -*-
+/* Copyright (C) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
+
+This file is part of groff.
+
+groff is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+groff is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
+
+#include "encoding.h"
+#include "device.h"
+
+#include <string.h>
+#ifdef ENABLE_MULTIBYTE
+#include <locale.h>
+#include <wchar.h>
+#ifdef HAVE_LANGINFO_CODESET
+#include <langinfo.h>
+#else
+#include <stdlib.h>
+#endif
+#endif
+
+class ascii8_handler : public encoding_handler {
+  // encoding handler for 8bit ascii
+  // no multibyte support
+public:
+  ascii8_handler() {}
+  ~ascii8_handler() {}
+
+  const char *name() { return "C"; }; /* ??? */
+
+  inline int is_wchar_byte(unsigned char c) { return 0; }
+  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
+    return wchar(c0);
+  }
+  inline int put_wchar(wchar wc, encoding_ostream& eos) {
+    eos.putbyte((unsigned char)wchar_code(wc));
+    return 1;
+  }
+  inline int max_wchar_len() { return 1; };
+
+};
+
+#ifdef ENABLE_MULTIBYTE
+class utf8_handler: public encoding_handler {
+public:
+  utf8_handler() { } 
+  ~utf8_handler() { }
+
+  const char *name() { return "UTF-8"; };
+
+  inline int is_wchar_byte(unsigned char c) {
+    return (c >= 0x80);
+  }
+
+  /*
+   0000 0000-0000 007F   0xxxxxxx
+   0000 0080-0000 07FF   110xxxxx 10xxxxxx
+   0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx
+
+   0001 0000-001F FFFF   11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+   0020 0000-03FF FFFF   111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
+   0400 0000-7FFF FFFF   1111110x 10xxxxxx ... 10xxxxxx
+  */
+
+  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
+    wchar wc = 0;
+    int count = 0;
+    if (! is_wchar_byte(c0)) {
+      return c0;
+    }
+    if ((c0 & 0xFC) == 0xFC) {
+      wc = c0 & 0x01;
+      count = 5;
+    } else if ((c0 & 0xF8) == 0xF8) {
+      wc = c0 & 0x03;
+      count = 4;
+    } else if ((c0 & 0xF0) == 0xF0) {
+      wc = c0 & 0x07;
+      count = 3;
+    } else if ((c0 & 0xE0) == 0xE0) {
+      wc = c0 & 0x0F;
+      count = 2;
+    } else if ((c0 & 0xC0) == 0xC0) {
+      wc = c0 & 0x1F;
+      count = 1;
+    }
+    for (; count > 0; count--) {
+      wc <<= 6;
+      int c1 = eis.getbyte();
+      if (! is_wchar_byte(c1)) {
+	/* illegal utf8 sequence? */
+      }
+      wc |= (c1 & 0x3F);
+    }
+    return -wc;	// XXX: negative
+  }
+
+  inline int put_wchar(wchar wc, encoding_ostream& eos) {
+    int count = 0;
+    if (! is_wchar_code(wc)) {
+      eos.putbyte(wc);
+      return 1;
+    }
+    wc = -wc;	// XXX: negative -> character code
+
+    if (wc < 0x800) {
+      count = 1; eos.putbyte((wc >> 6) | 0xC0);
+    } else if (wc < 0x10000) {
+      count = 2; eos.putbyte((wc >> 12) | 0xE0);
+    } else if (wc < 0x200000) {
+      count = 3; eos.putbyte((wc >> 18) | 0xF0);
+    } else if (wc < 0x4000000) {
+      count = 4; eos.putbyte((wc >> 24) | 0xf8);
+    } else if (wc <= 0x7fffffff) {
+      count = 5; eos.putbyte((wc >> 30) | 0xFC);
+    }
+    for (int i = 0; i < count; i++) {
+      eos.putbyte(((wc >> 6 * (count - i - 1)) & 0x3f) | 0x80);
+    }
+    return count;
+  }
+  inline int max_wchar_len() { return 6; }; /* XXX 3?*/
+
+};
+
+#define USE_ICONV
+#ifdef USE_ICONV
+#include <iconv.h>
+#include <errno.h>
+
+class iconv_handler : public encoding_handler {
+private:
+  iconv_t icd, ocd;
+  const char *encoding_name;
+  static iconv_handler *ih_header;
+
+public:
+  iconv_handler *next;
+
+  static iconv_handler *new_iconv_handler(const char *ename) {
+    iconv_handler *ip;
+    // if already created, use it.
+    for (ip = ih_header; ip != NULL; ip = ip->next) {
+      if (strcmp(ip->name(), ename) == 0) {
+	return ip;
+      }
+    }
+    // not found, create new one.
+    ip = new iconv_handler(ename);
+    ip->next = ih_header;
+    ih_header = ip;
+    return ip;
+  }
+  iconv_handler(const char *ename) : encoding_name(ename) {
+    // internal code is UCS-2BE
+    icd = iconv_open("UCS-2BE", encoding_name);
+    ocd = iconv_open(encoding_name, "UCS-2BE");
+  };
+  ~iconv_handler() {};
+
+  const char *name() { return encoding_name; };
+
+  inline int is_wchar_byte(unsigned char c) {
+    return (c >= 0x80); /* ??? */
+  }
+
+  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
+    wchar wc = 0;
+    char inbuf[8], outbuf[8];
+    char *inp, *outp;
+    size_t inbytesleft, outbytesleft;
+    int i = 0;
+    
+    if (! is_wchar_byte(c0)) {
+      return c0;
+    }
+    for (inbuf[i++] = c0; ;inbuf[i++] = eis.getbyte()) {
+      inbytesleft = i;
+      outbytesleft = sizeof(outbuf);
+      inp = inbuf;
+      outp = outbuf;
+      size_t r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
+      if (r == (size_t)-1) {
+	if (errno == EILSEQ) {
+	  /* illegal sequence? */
+	  return '?';
+	} else if (errno == EINVAL) {
+	  /* incomplete sequence? */
+	  continue;
+	} else if (errno == E2BIG) {
+	  /* no room to output? */
+	  return '?';
+	}
+      }
+      /* ok */
+      /* UCS-2 is 2 bytes */
+      wc = ((outbuf[0] & 0x0ff) << 8) | (outbuf[1] & 0x0ff);
+      return -wc;	// XXX: negative
+    }
+  }
+
+
+  inline int put_wchar(wchar wc, encoding_ostream& eos) {
+    char inbuf[4], outbuf[4];
+    char *inp, *outp;
+    size_t inbytesleft, outbytesleft;
+
+    if (!is_wchar_code(wc)) {
+      eos.putbyte(wc & 0x0ff);
+      return 1;
+    }
+    wc = -wc;	// XXX: negative -> character code
+
+    inbuf[0] = (wc >> 8) & 0x0ff;
+    inbuf[1] = (wc >> 0) & 0x0ff;
+    inbuf[2] = 0;
+    inbytesleft = 2;
+    outbytesleft = 4;
+    inp = inbuf;
+    outp = outbuf;
+    size_t r = iconv(ocd, &inp, &inbytesleft, &outp, &outbytesleft);
+    if (r == (size_t)-1) {
+      if (errno == EILSEQ) {
+	/* illegal sequence? */;
+      } else if (errno == EINVAL) {
+	/* incomplete sequence? */;
+      } else if (errno == E2BIG) {
+	/* no room to output? */;
+      }
+      eos.putbyte('?');
+      return 1;
+    }
+    char *op = outbuf;
+    int n = 0;
+    for (; op < outp; op++, n++) {
+      eos.putbyte(*op & 0x0ff);
+    }
+    return outp - outbuf;
+  }
+  inline int max_wchar_len() { return 6; }; /* XXX */
+
+};
+#else
+class euc_handler : public encoding_handler {
+  static const int WCTABLE_OFFSET = 0xa1;
+  static const int WCTABLE_SIZE = 94;
+  static const int EUCMASK = 0x8080;
+
+public:
+  euc_handler() {}
+  ~euc_handler() {};
+
+  const char *name() { return "EUC-JP"; };
+
+  inline int is_wchar_byte(unsigned char c) {
+    return (c >= 0xa1 && c <= 0xfe);
+  }
+
+  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
+    wchar wc;
+    if (! is_wchar_byte(c0)) {
+      return c0;
+    }
+    int c1 = eis.peekbyte();
+    if (! is_wchar_byte(c1)) {
+      eis.ungetbyte(c1);
+      return c0;
+    }
+    c1 = eis.getbyte();
+    wc = (c0 & 0xff) << 8;
+    wc |= (c1 & 0xff);
+
+    if (wc == 0xa1a1)
+      return ' ';
+    return -wc;
+  }
+
+  inline int put_wchar(wchar wc, encoding_ostream& eos) {
+    if (is_wchar_code(wc)) {
+      wc = -wc;
+      eos.putbyte((wc >> 8) & 0x0ff);
+      eos.putbyte((wc >> 0) & 0x0ff);
+      return 2;    
+    } else {
+      eos.putbyte(wc & 0x0ff);
+      return 1;
+    }
+  }
+  inline int max_wchar_len() { return 2; }; /* XXX */
+};
+#endif /* USE_ICONV */
+#endif
+
+static ascii8_handler ascii8;
+#ifdef ENABLE_MULTIBYTE
+static utf8_handler utf8;
+#ifdef USE_ICONV
+iconv_handler *iconv_handler::ih_header = NULL;
+#else
+static euc_handler eucjp;
+#endif
+#endif
+
+encoding_handler *input_encoding = &ascii8;
+encoding_handler *output_encoding = &ascii8;
+
+static void
+new_encoding_handler(encoding_handler **eptr, const char *encoding_name)
+{
+  if (!encoding_name) {
+    *eptr = &ascii8;
+    return;
+  }
+#ifdef ENABLE_MULTIBYTE
+  if (strcmp(encoding_name, "UTF-8") == 0) {
+    *eptr = &utf8;
+    return;
+  }
+#ifdef USE_ICONV
+  if (strcmp(encoding_name, "C") != 0) {
+    *eptr = iconv_handler::new_iconv_handler(encoding_name);
+    return;
+  }
+#else
+  // printf("encoding request: [%s]\n", encoding_name);
+  if (strcmp(encoding_name, "EUC-JP") == 0) {
+    // printf("encoding: [EUC-JP]\n");
+    *eptr = &eucjp;
+    return;
+  }
+#endif
+#endif
+  // default
+  *eptr = &ascii8;
+  return;
+}
+
+encoding_handler *
+select_input_encoding_handler(const char *encoding_name)
+{
+  new_encoding_handler(&input_encoding, encoding_name);
+  return input_encoding;
+}
+
+encoding_handler *
+select_output_encoding_handler(const char *encoding_name)
+{
+  new_encoding_handler(&output_encoding, encoding_name);
+  return output_encoding;
+}
+
+void
+init_encoding_handler()
+{
+#ifdef ENABLE_MULTIBYTE
+  const char *locale, *charset;
+  // groff 1 defines ISO-8859-1 as the input encoding, so this is required
+  // for compatibility. groff 2 will define UTF-8 (or possibly officially
+  // allow it to be switchable?)
+  select_input_encoding_handler("ISO-8859-1");
+  select_output_encoding_handler("C");
+
+  locale = setlocale(LC_ALL, "");
+  if (locale == NULL ||
+      strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
+    return;
+  }
+  /* check LC_CTYPE is C or POSIX */
+  locale = setlocale(LC_CTYPE, NULL);
+  if (strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
+    return;
+  }
+  /* otherwise */
+#if HAVE_LANGINFO_CODESET
+  charset = nl_langinfo(CODESET);
+#else
+  charset = strchr(locale, '.');
+  if (charset)
+    ++charset;
+  else
+    charset = "";
+#endif
+  if (strncmp(locale, "ja", 2) == 0 || strncmp(locale, "zh", 2) == 0 ||
+      (strncmp(locale, "ko", 2) == 0 && strcmp(charset, "UTF-8") == 0)) {
+    select_input_encoding_handler(charset);
+    select_output_encoding_handler(charset);
+  } else if ((!device || strcmp(device, "ascii8") == 0)) {
+    select_input_encoding_handler(NULL);
+    select_output_encoding_handler(NULL);
+  }
+#endif
+  return;
+}
+
+int
+is_wchar_code(wchar wc)
+{
+  return (wc < 0);
+}
+
+int
+is_wchar_singlebyte(wchar wc)
+{
+    return ((-256 < wc) && (wc < 0));
+}
+
+unsigned char
+wchar_singlebyte(wchar wc)
+{
+    if (wc >= 0)
+	return (unsigned char)wc;
+    else
+	return (unsigned char)-wc;
+}
+
+int
+wchar_code(wchar wc)
+{
+    if (wc >= 0)
+	return wc;
+    else
+	return -wc;
+}
+
+int
+make_wchar(int w)
+{
+    return -w;
+}
diff -Naur groff-1.18.1.4.orig/src/libs/libgroff/font.cc groff-1.18.1.4/src/libs/libgroff/font.cc
--- groff-1.18.1.4.orig/src/libs/libgroff/font.cc	2002-07-23 23:50:52.000000000 +0000
+++ groff-1.18.1.4/src/libs/libgroff/font.cc	2006-10-18 18:54:44.000000000 +0000
@@ -25,6 +25,7 @@
 #include <assert.h>
 #include <math.h>
 #include <stdlib.h>
+#include "encoding.h" // XXX: ukai
 #include "errarg.h"
 #include "error.h"
 #include "cset.h"
@@ -43,8 +44,39 @@
   int italic_correction;
   int subscript_correction;
   char *special_device_coding;
+#ifdef ENABLE_MULTIBYTE
+  char *subfont_name;
+#endif
 };
 
+#ifdef ENABLE_MULTIBYTE
+struct fontset_list {
+  struct fontset_list *next;
+  char *primary_font_name;
+  int fontset_font;
+  wchar start_code;
+  wchar end_code;
+  int on_demand;
+};
+
+fontset_list *font::fontsets = NULL;
+
+struct font_wchar_metric {
+  struct font_wchar_metric *next;
+  char type;
+  int start_code;
+  int end_code;
+  int width;
+  int height;
+  int depth;
+  int pre_math_space;
+  int italic_correction;
+  int subscript_correction;
+  char *special_device_coding;
+  char *subfont_name;
+};
+#endif
+
 struct font_kern_list {
   int i1;
   int i2;
@@ -149,7 +181,11 @@
 
 font::font(const char *s)
 : ligatures(0), kern_hash_table(0), space_width(0), ch_index(0), nindices(0),
-  ch(0), ch_used(0), ch_size(0), special(0), widths_cache(0)
+  ch(0), 
+#ifdef ENABLE_MULTIBYTE
+  wch(0),
+#endif
+  ch_used(0), ch_size(0), special(0), widths_cache(0)
 {
   name = new char[strlen(s) + 1];
   strcpy(name, s);
@@ -183,6 +219,17 @@
     widths_cache = widths_cache->next;
     delete tem;
   }
+#ifdef ENABLE_MULTIBYTE
+  struct font_wchar_metric *wcp, *nwcp;
+  for (wcp = wch; wcp != NULL; wcp = nwcp) {
+    nwcp = wcp->next;
+    if (wcp->special_device_coding)
+      delete [] wcp->special_device_coding;
+    if (wcp->subfont_name)
+      delete [] wcp->subfont_name;
+    delete wcp;
+  }
+#endif
 }
 
 static int scale_round(int n, int x, int y)
@@ -244,6 +291,11 @@
 
 int font::contains(int c)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL)
+    return 1;
+#endif
   return c >= 0 && c < nindices && ch_index[c] >= 0;
 }
 
@@ -266,8 +318,31 @@
   a_delete width;
 }
 
+#ifdef ENABLE_MULTIBYTE
+struct font_wchar_metric *
+font::get_font_wchar_metric(int c)
+{
+  /* XXX: c is font index, not char code... */
+  /* XXX: we assume wchar_code == font index code for wchars */
+  /* XXX: does really code conflicts with index? */
+  struct font_wchar_metric *wcp;
+  for (wcp = wch; wcp != NULL; wcp = wcp->next) {
+    if (wcp->start_code <= wchar_code(c) && wchar_code(c) <= wcp->end_code) {
+      return wcp;
+    }
+  }
+  return NULL;
+}
+#endif
+
 int font::get_width(int c, int point_size)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return scale(wcp->width, point_size);
+  }
+#endif
   assert(c >= 0 && c < nindices);
   int i = ch_index[c];
   assert(i >= 0);
@@ -299,30 +374,60 @@
 
 int font::get_height(int c, int point_size)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return scale(wcp->height, point_size);
+  }
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return scale(ch[ch_index[c]].height, point_size);
 }
 
 int font::get_depth(int c, int point_size)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return scale(wcp->depth, point_size);
+  }
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return scale(ch[ch_index[c]].depth, point_size);
 }
 
 int font::get_italic_correction(int c, int point_size)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return scale(wcp->italic_correction, point_size);
+  }
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return scale(ch[ch_index[c]].italic_correction, point_size);
 }
 
 int font::get_left_italic_correction(int c, int point_size)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return scale(wcp->pre_math_space, point_size);
+  }
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return scale(ch[ch_index[c]].pre_math_space, point_size);
 }
 
 int font::get_subscript_correction(int c, int point_size)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return scale(wcp->subscript_correction, point_size);
+  }
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return scale(ch[ch_index[c]].subscript_correction, point_size);
 }
@@ -371,12 +476,24 @@
 
 int font::get_character_type(int c)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return wcp->type;
+  }
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return ch[ch_index[c]].type;
 }
 
 int font::get_code(int c)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL) {
+    return c;
+  }
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return ch[ch_index[c]].code;
 }
@@ -393,10 +510,26 @@
 
 const char *font::get_special_device_encoding(int c)
 {
+#ifdef ENABLE_MULTIBYTE
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL)
+    return wcp->special_device_coding;
+#endif
   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
   return( ch[ch_index[c]].special_device_coding );
 }
 
+#ifdef	ENABLE_MULTIBYTE
+const char *font::get_subfont_name(int c)
+{
+  font_wchar_metric *wcp = get_font_wchar_metric(c);
+  if (wcp != NULL)
+    return wcp->subfont_name;
+  assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+  return ch[ch_index[c]].subfont_name;
+}
+#endif
+
 void font::alloc_ch_index(int index)
 {
   if (nindices == 0) {
@@ -554,9 +687,11 @@
   return 0;
 }
 
+
 // If the font can't be found, then if not_found is non-NULL, it will be set
 // to 1 otherwise a message will be printed.
 
+
 int font::load(int *not_found)
 {
   char *path;
@@ -570,7 +705,7 @@
   }
   text_file t(fp, path);
   t.skip_comments = 1;
-  char *p;
+  char *p = NULL;
   for (;;) {
     if (!t.next()) {
       t.error("missing charset command");
@@ -681,6 +816,9 @@
     }
     else if (strcmp(command, "charset") == 0) {
       had_charset = 1;
+#ifdef ENABLE_MULTIBYTE
+      int had_range = 0;
+#endif
       int last_index = -1;
       for (;;) {
 	if (!t.next()) {
@@ -695,6 +833,11 @@
 	  command = nm;
 	  break;
 	}
+#ifdef ENABLE_MULTIBYTE
+	int start_code = 0;
+	int end_code = 0;
+	int nrange = sscanf(nm, "u%X..u%X", &start_code, &end_code);
+#endif
 	if (p[0] == '"') {
 	  if (last_index == -1) {
 	    t.error("first charset entry is duplicate");
@@ -711,7 +854,64 @@
 	  }
 	  copy_entry(index, last_index);
 	}
+#ifdef ENABLE_MULTIBYTE
+	else if (nrange == 2) {
+	  had_range = 1;
+	  font_wchar_metric *wcp = new font_wchar_metric;
+	  wcp->start_code = start_code;
+	  wcp->end_code = end_code;
+	  wcp->height = 0;
+	  wcp->depth = 0;
+	  wcp->pre_math_space = 0;
+	  wcp->italic_correction = 0;
+	  wcp->subscript_correction = 0;
+	  int nparms = sscanf(p, "%d,%d,%d,%d,%d,%d",
+			      &wcp->width, &wcp->height, &wcp->depth,
+			      &wcp->italic_correction,
+			      &wcp->pre_math_space,
+			      &wcp->subscript_correction);
+	  if (nparms < 1) {
+	    t.error("bad width for `%1'", nm);
+	    return 0;
+	  }
+	  p = strtok(0, WS);
+	  if (p == 0) {
+	    t.error("missing character type for `%1'", nm);
+	    return 0;
+	  }
+	  int type;
+	  if (sscanf(p, "%d", &type) != 1) {
+	    t.error("bad character type for `%1'", nm);
+	    return 0;
+	  }
+	  if (type < 0 || type > 255) {
+	    t.error("character type `%1' out of range", type);
+	    return 0;
+	  }
+	  wcp->type = type;
+
+	  p = strtok(0, WS);
+	  if ((p == 0) || (strcmp(p, "--") == 0)) {
+	    wcp->subfont_name = NULL;
+	  } else {
+	    wcp->subfont_name = new char[strlen(p) + 1];
+	    strcpy(wcp->subfont_name, p);
+	  }
+
+	  p = strtok(0, WS);
+	  if ((p == NULL) || (strcmp(p, "--") == 0)) {
+	    wcp->special_device_coding = NULL;
+	  } else {
+	    wcp->special_device_coding = new char[strlen(p) + 1];
+	    strcpy(wcp->special_device_coding, p);
+	  }
+	  wcp->next = wch;
+	  wch = wcp;
+	  p = NULL;
+	}
+#endif
 	else {
+	  
 	  font_char_metric metric;
 	  metric.height = 0;
 	  metric.depth = 0;
@@ -747,6 +947,16 @@
 	    t.error("missing code for `%1'", nm);
 	    return 0;
 	  }
+#ifdef	ENABLE_MULTIBYTE
+	  char *subp = strchr(p, ':');
+	  if (subp) {
+	    *subp++ = '\0';
+	    metric.subfont_name = new char[strlen(subp) + 1];
+	    strcpy(metric.subfont_name, subp);
+	  } else {
+	    metric.subfont_name = NULL;
+	  }
+#endif
 	  char *ptr;
 	  metric.code = (int)strtol(p, &ptr, 0);
 	  if (metric.code == 0 && ptr == p) {
@@ -777,7 +987,11 @@
 	  }
 	}
       }
+#ifdef ENABLE_MULTIBYTE
+      if (!had_range && last_index == -1) {
+#else
       if (last_index == -1) {
+#endif
 	t.error("I didn't seem to find any characters");
 	return 0;
       }
@@ -811,6 +1025,11 @@
   { "biggestfont", &font::biggestfont },
   { "spare2", &font::spare2 },
   { "sizescale", &font::sizescale }
+#ifdef	ENABLE_MULTIBYTE
+  ,
+  { "lowerwchar", &font::lowerwchar },
+  { "wcharkern", &font::wcharkern }
+#endif
   };
 
 int font::load_desc()
@@ -981,6 +1200,67 @@
       tcommand = 1;
     else if (strcmp("use_charnames_in_special", p) == 0)
       use_charnames_in_special = 1;
+#ifdef	ENABLE_MULTIBYTE
+    else if (strcmp("fontset", p) == 0) {
+      /* fontset <primary-fontname> <fontname> <code>..<code> [ondemand] */
+      p = strtok(0, WS);
+      if (p == NULL) {
+	t.error("no primary font for fontset");
+	return 0;
+      }
+      char *pfont = NULL;
+      if (strcmp(p, "-") != 0) {
+	pfont = new char[strlen(p)+1];
+	strcpy(pfont, p);
+      }
+      p = strtok(0, WS);
+      if (p == NULL) {
+	t.error("no fontset font for `%1'", 
+		pfont ? pfont : "-");
+	return 0;
+      }
+      int fontset_font = 0;
+      for (int i = 0; i < nfonts; i++) {
+	if (strcmp(p, font_name_table[i]) == 0) {
+	  fontset_font = i;
+	  break;
+	}
+      }
+      if (fontset_font == nfonts) {
+	t.error("fontset font `%1' for font `%2' not defined", 
+		p, pfont ? pfont : "-");
+	return 0;
+      }
+      p = strtok(0, WS);
+      if (p == NULL) {
+	t.error("no range for fontset font `%1' for font `%2'",
+		font_name_table[fontset_font],
+		pfont ? pfont : "-");
+	return 0;
+      }
+      wchar start_code = 0;
+      wchar end_code = 0;
+      int nparms = sscanf(p, "%x..%x", &start_code, &end_code);
+      if (nparms != 2) {
+	t.error("invalid range format `%1'", p);
+	return 0;
+      }
+      p = strtok(0, WS);
+      int on_demand = 0;
+      if (p != NULL && strcmp(p, "ondemand") == 0) {
+	on_demand = 1;
+      }
+      /* XXX */
+      fontset_list *fl = new fontset_list;
+      fl->primary_font_name = pfont;
+      fl->fontset_font = fontset_font;
+      fl->start_code = start_code;
+      fl->end_code = end_code;
+      fl->on_demand = on_demand;
+      fl->next = fontsets;
+      fontsets = fl;
+    }
+#endif
     else if (strcmp("charset", p) == 0)
       break;
     else if (unknown_desc_command_handler) {
@@ -1020,6 +1300,39 @@
   return 1;
 }      
 
+#ifdef ENABLE_MULTIBYTE
+int
+font::get_fontset_font(const char *fname, wchar wc) {
+  fontset_list *fl;
+  int avail_fontno = -1;
+  wc = wchar_code(wc);
+  for (fl = fontsets; fl != NULL; fl = fl->next) {
+    if (fl->primary_font_name == NULL) {
+      if (fl->start_code <= wc && wc <= fl->end_code) {
+	avail_fontno = fl->fontset_font;
+      }
+    }
+    else if (fname && strcmp(fl->primary_font_name, fname) == 0) {
+      if (fl->start_code <= wc && wc <= fl->end_code) {
+	return fl->fontset_font;
+      }
+    }
+  }
+  return avail_fontno;
+}
+
+int
+font::is_on_demand(int fontno) {
+  fontset_list *fl;
+  for (fl = fontsets; fl != NULL; fl = fl->next) {
+    if (fl->fontset_font == fontno) {
+      return fl->on_demand;
+    }
+  }
+  return 0;
+}
+#endif
+
 void font::handle_unknown_font_command(const char *, const char *,
 				       const char *, int)
 {
diff -Naur groff-1.18.1.4.orig/src/libs/libgroff/fontfile.cc groff-1.18.1.4/src/libs/libgroff/fontfile.cc
--- groff-1.18.1.4.orig/src/libs/libgroff/fontfile.cc	2002-05-31 14:31:01.000000000 +0000
+++ groff-1.18.1.4/src/libs/libgroff/fontfile.cc	2006-10-18 18:54:44.000000000 +0000
@@ -24,6 +24,7 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <errno.h>
+#include "encoding.h" // XXX: ukai
 #include "font.h"
 #include "searchpath.h"
 #include "device.h"
@@ -36,6 +37,10 @@
 int font::res = 0;
 int font::hor = 1;
 int font::vert = 1;
+#ifdef	ENABLE_MULTIBYTE
+int font::lowerwchar = 0;
+int font::wcharkern = 0;
+#endif
 int font::unitwidth = 0;
 int font::paperwidth = 0;
 int font::paperlength = 0;
diff -Naur groff-1.18.1.4.orig/src/libs/libgroff/nametoindex.cc groff-1.18.1.4/src/libs/libgroff/nametoindex.cc
--- groff-1.18.1.4.orig/src/libs/libgroff/nametoindex.cc	2002-04-05 20:55:38.000000000 +0000
+++ groff-1.18.1.4/src/libs/libgroff/nametoindex.cc	2006-10-18 18:54:44.000000000 +0000
@@ -24,6 +24,7 @@
 #include <ctype.h>
 #include <assert.h>
 #include <stdlib.h>
+#include "encoding.h" // XXX: ukai
 #include "errarg.h"
 #include "error.h"
 #include "font.h"
@@ -37,6 +38,9 @@
   character_indexer();
   ~character_indexer();
   int ascii_char_index(unsigned char);
+#ifdef	ENABLE_MULTIBYTE
+  int wchar_index(wchar);
+#endif
   int named_char_index(const char *);
   int numbered_char_index(int);
 private:
@@ -68,6 +72,13 @@
   return ascii_index[c];
 }
 
+#ifdef	ENABLE_MULTIBYTE
+int character_indexer::wchar_index(wchar wc)
+{
+  return wc; /* XXX: wchar code == index */
+}
+#endif
+
 int character_indexer::numbered_char_index(int n)
 {
   if (n >= 0 && n < NSMALL) {
@@ -103,6 +114,30 @@
 int font::name_to_index(const char *s)
 {
   assert(s != 0 && s[0] != '\0' && s[0] != ' ');
+#ifdef	ENABLE_MULTIBYTE
+ {
+   int i = 1;
+   wchar wc = input_encoding->make_wchar(s[0], (const unsigned char *)s, &i);
+   /* XXX 
+    * if wchar can be represented in single byte (<256),
+    * it should be the same as char<wc>.
+    */
+   if (is_wchar_singlebyte(wc)) {
+       return indexer.ascii_char_index(wchar_singlebyte(wc));
+   }
+   if (is_wchar_code(wc)) {
+    return indexer.wchar_index(wc);
+   }
+   /* XXX: uA1A1 and \xa1a1 are synonyms */
+   if (s[0] == 'u') {
+     char *res;
+     long n = strtol(s + 1, &res, 16);
+     if (res != s + 1 && *res == '\0') {
+       return indexer.wchar_index(n);
+     }
+   }
+ }
+#endif
   if (s[1] == '\0')
     return indexer.ascii_char_index(s[0]);
   /* char128 and \200 are synonyms */
@@ -115,3 +150,9 @@
   return indexer.named_char_index(s);
 }
 
+#ifdef	ENABLE_MULTIBYTE
+int font::wchar_index(wchar wc)
+{
+  return indexer.wchar_index(wc);
+}
+#endif
diff -Naur groff-1.18.1.4.orig/src/libs/libgroff/searchpath.cc groff-1.18.1.4/src/libs/libgroff/searchpath.cc
--- groff-1.18.1.4.orig/src/libs/libgroff/searchpath.cc	2001-08-19 21:32:28.000000000 +0000
+++ groff-1.18.1.4/src/libs/libgroff/searchpath.cc	2006-10-18 18:54:44.000000000 +0000
@@ -19,6 +19,7 @@
 with groff; see the file COPYING.  If not, write to the Free Software
 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
+#include "encoding.h"
 #include "lib.h"
 
 #include <stdlib.h>
diff -Naur groff-1.18.1.4.orig/src/libs/libgroff/tmpfile.cc groff-1.18.1.4/src/libs/libgroff/tmpfile.cc
--- groff-1.18.1.4.orig/src/libs/libgroff/tmpfile.cc	2002-09-06 07:50:42.000000000 +0000
+++ groff-1.18.1.4/src/libs/libgroff/tmpfile.cc	2006-10-18 18:54:44.000000000 +0000
@@ -24,6 +24,7 @@
 #include <errno.h>
 #include <stdlib.h>
 
+#include "encoding.h"
 #include "posix.h"
 #include "errarg.h"
 #include "error.h"
diff -Naur groff-1.18.1.4.orig/src/preproc/eqn/box.cc groff-1.18.1.4/src/preproc/eqn/box.cc
--- groff-1.18.1.4.orig/src/preproc/eqn/box.cc	2002-04-04 14:04:45.000000000 +0000
+++ groff-1.18.1.4/src/preproc/eqn/box.cc	2006-10-18 18:54:44.000000000 +0000
@@ -80,7 +80,7 @@
 
 int nroff = 0;			// should we grok ndefine or tdefine?
 
-struct {
+struct S {
   const char *name;
   int *ptr;
 } param_table[] = {
diff -Naur groff-1.18.1.4.orig/src/preproc/eqn/eqn.y groff-1.18.1.4/src/preproc/eqn/eqn.y
--- groff-1.18.1.4.orig/src/preproc/eqn/eqn.y	2000-02-06 09:38:01.000000000 +0000
+++ groff-1.18.1.4/src/preproc/eqn/eqn.y	2006-10-18 18:54:44.000000000 +0000
@@ -21,6 +21,7 @@
 #include <string.h>
 #include <stdlib.h>
 
+#include "encoding.h" /* XXX */
 #include "lib.h"
 #include "box.h"
 extern int non_empty_flag;
diff -Naur groff-1.18.1.4.orig/src/preproc/eqn/lex.cc groff-1.18.1.4/src/preproc/eqn/lex.cc
--- groff-1.18.1.4.orig/src/preproc/eqn/lex.cc	2002-02-10 01:22:11.000000000 +0000
+++ groff-1.18.1.4/src/preproc/eqn/lex.cc	2006-10-18 18:54:44.000000000 +0000
@@ -23,6 +23,7 @@
 #include "eqn_tab.h"
 #include "stringclass.h"
 #include "ptable.h"
+#include "encoding.h"
 
 struct definition {
   char is_macro;
@@ -375,6 +376,11 @@
 	lex_error("invalid input character code %1", c);
       else {
 	line += char(c);
+#ifdef	ENABLE_MULTIBYTE
+	if (input_encoding->is_wchar_byte(c)) {
+	  line += char(getc(fp));
+	}
+#endif
 	if (c == '\n') 
 	  break;
       }
diff -Naur groff-1.18.1.4.orig/src/preproc/eqn/main.cc groff-1.18.1.4/src/preproc/eqn/main.cc
--- groff-1.18.1.4.orig/src/preproc/eqn/main.cc	2002-02-19 16:28:31.000000000 +0000
+++ groff-1.18.1.4/src/preproc/eqn/main.cc	2006-10-18 18:54:44.000000000 +0000
@@ -258,6 +258,7 @@
   program_name = argv[0];
   static char stderr_buf[BUFSIZ];
   setbuf(stderr, stderr_buf);
+  init_encoding_handler();
   int opt;
   int load_startup_file = 1;
   static const struct option long_options[] = {
diff -Naur groff-1.18.1.4.orig/src/preproc/eqn/text.cc groff-1.18.1.4/src/preproc/eqn/text.cc
--- groff-1.18.1.4.orig/src/preproc/eqn/text.cc	2000-02-06 09:38:06.000000000 +0000
+++ groff-1.18.1.4/src/preproc/eqn/text.cc	2006-10-18 18:54:44.000000000 +0000
@@ -21,13 +21,20 @@
 #include "eqn.h"
 #include "pbox.h"
 #include "ptable.h"
+#include "encoding.h"
 
 class char_box : public simple_box {
   unsigned char c;
+#ifdef	ENABLE_MULTIBYTE
+  wchar wc;
+#endif
   char next_is_italic;
   char prev_is_italic;
 public:
   char_box(unsigned char);
+#ifdef	ENABLE_MULTIBYTE
+  char_box(unsigned char, wchar);
+#endif
   void debug_print();
   void output();
   int is_char();
@@ -165,11 +172,22 @@
 }
 
 char_box::char_box(unsigned char cc)
-: c(cc), next_is_italic(0), prev_is_italic(0)
+: c(cc),
+#ifdef	ENABLE_MULTIBYTE
+  wc(cc),
+#endif
+  next_is_italic(0), prev_is_italic(0)
 {
   spacing_type = char_table[c].spacing_type;
 }
 
+#ifdef	ENABLE_MULTIBYTE
+char_box::char_box(unsigned char cc, wchar wc)
+: c(cc), wc(wc), next_is_italic(0), prev_is_italic(0)
+{
+}
+#endif
+
 void char_box::hint(unsigned flags)
 {
   if (flags & HINT_PREV_IS_ITALIC)
@@ -188,7 +206,11 @@
   if (c == '\\')
     fputs("\\e", stdout);
   else
+#ifdef	ENABLE_MULTIBYTE
+    output_encoding->put_wchar(wc, stdout);
+#else
     putchar(c);
+#endif
   if (!next_is_italic)
     fputs("\\/", stdout);
   else
@@ -497,6 +519,14 @@
       break;
     default:
     normal_char:
+#ifdef	ENABLE_MULTIBYTE
+      if (input_encoding->is_wchar_byte(c)) {
+        int i = 1;
+	wchar wc = input_encoding->make_wchar(c, (unsigned char *)s, &i);
+	b = new char_box('A', wc); // char_info of wc is same the 'A'.
+	s += i;
+      } else
+#endif
       b = new char_box(c);
       break;
     }
diff -Naur groff-1.18.1.4.orig/src/preproc/html/pre-html.cc groff-1.18.1.4/src/preproc/html/pre-html.cc
--- groff-1.18.1.4.orig/src/preproc/html/pre-html.cc	2002-09-05 23:37:01.000000000 +0000
+++ groff-1.18.1.4/src/preproc/html/pre-html.cc	2006-10-18 18:54:44.000000000 +0000
@@ -63,6 +63,10 @@
 #define DEFAULT_IMAGE_RES        100   // number of pixels per inch resolution
 #define IMAGE_BOARDER_PIXELS       0
 #define INLINE_LEADER_CHAR      '\\'
+#define A4_LENGTH             841890   // taken from devps/Makefile.sub
+#define LETTER_LENGTH         792000   // taken from devps/Makefile.sub
+#define A4_OFFSET                  0
+#define LETTER_OFFSET             50   // 50/72 of an inch
 
 #define TRANSPARENT  "-background white -transparent white"
 #define MIN_ALPHA_BITS             0
@@ -104,6 +108,7 @@
 static char *macroset_template= NULL;           // image template passed to troff by -D
 static int   troff_arg        = 0;              // troff arg index
 static char *image_dir        = NULL;           // user specified image directory
+static char *gsPaper          = NULL;           // the paper size that gs must use
 static int   textAlphaBits    = MAX_ALPHA_BITS;
 static int   graphicAlphaBits = MAX_ALPHA_BITS;
 static char *antiAlias        = NULL;           // antialias arguments we pass to gs.
@@ -211,6 +216,54 @@
 }
 
 /*
+ *  get_papersize - returns an integer determining the paper length from
+ *  devps/DESC
+ */
+
+static int get_papersize (void)
+{
+  char *pathp;
+  FILE *f;
+  int res;
+  f = font_path.open_file("devps/DESC", &pathp);
+  if (f == 0)
+    fatal("can't open devps/DESC");
+  while (get_line(f)) {
+    int n = sscanf(linebuf, "paperlength %d", &res);
+    if (n >= 1) {
+      fclose(f);
+      return res;
+    }
+    if (!strncmp(linebuf, "papersize", 9)) {
+      double length;
+      char *p = linebuf + 9;
+      while (*p == ' ' || *p == '\t')
+        p++;
+      for (p = strtok(p, " \t"); p; p = strtok(0, " \t")) {
+        if (font::scan_papersize(p, 0, &length, 0)) {
+          fclose(f);
+          return int(length * postscriptRes + 0.5);
+        }
+      }
+      fatal("bad argument to `papersize' keyword in devps/DESC");
+    }
+  }
+  fatal("can't find `papersize' or `paperlength' keyword in devps/DESC");
+  return 0;
+}
+
+/*
+ *  determine_vertical_offset - works out the default vertical offset from
+ *                              the page length
+ */
+
+static void determine_vertical_offset (void)
+{
+  vertical_offset = ((A4_LENGTH-get_papersize())*72)/postscriptRes;
+  gsPaper = "-sPAPERSIZE=a4";
+}
+
+/*
  *  html_system - a wrapper for system()
  */
 
@@ -1469,6 +1522,7 @@
   int ok=1;
 
   postscriptRes = get_resolution();
+  determine_vertical_offset();
   i = scanArguments(argc, argv);
   setupAntiAlias();
   checkImageDir();
diff -Naur groff-1.18.1.4.orig/src/preproc/refer/command.cc groff-1.18.1.4/src/preproc/refer/command.cc
--- groff-1.18.1.4.orig/src/preproc/refer/command.cc	2002-02-10 01:22:12.000000000 +0000
+++ groff-1.18.1.4/src/preproc/refer/command.cc	2006-10-18 18:54:44.000000000 +0000
@@ -632,7 +632,7 @@
 ? means that the previous argument is optional, * means that the
 previous argument can occur any number of times. */
 
-struct {
+struct S {
   const char *name;
   command_t func;
   const char *arg_types;
diff -Naur groff-1.18.1.4.orig/src/roff/groff/groff.cc groff-1.18.1.4/src/roff/groff/groff.cc
--- groff-1.18.1.4.orig/src/roff/groff/groff.cc	2002-09-22 08:35:48.000000000 +0000
+++ groff-1.18.1.4/src/roff/groff/groff.cc	2006-10-18 18:54:44.000000000 +0000
@@ -107,6 +107,7 @@
   program_name = argv[0];
   static char stderr_buf[BUFSIZ];
   setbuf(stderr, stderr_buf);
+  init_encoding_handler();
   assert(NCOMMANDS <= MAX_COMMANDS);
   string Pargs, Largs, Fargs;
   int vflag = 0;
diff -Naur groff-1.18.1.4.orig/src/roff/groff/groff.man groff-1.18.1.4/src/roff/groff/groff.man
--- groff-1.18.1.4.orig/src/roff/groff/groff.man	2002-07-13 09:28:17.000000000 +0000
+++ groff-1.18.1.4/src/roff/groff/groff.man	2006-10-18 18:54:44.000000000 +0000
@@ -15,6 +15,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff-base/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
@@ -118,7 +122,7 @@
 .c --------------------------------------------------------------------
 .c ShortOpt ([char [punct]])
 .c
-.c `-c' somwhere in the text 
+.c `-c' somewhere in the text 
 .c second arg is punctuation
 .c
 .de ShortOpt
@@ -130,7 +134,7 @@
 .c --------------------------------------------------------------------
 .c LongOpt  ([name [punct]])
 .c
-.c `--name' somwhere in the text 
+.c `--name' somewhere in the text 
 .c second arg is punctuation
 .c
 .de LongOpt
@@ -314,7 +318,7 @@
 .B groff
 program allows to control the whole
 .I groff
-system by comand line options.
+system by command line options.
 .
 This is a great simplification in comparison to the classical case (which
 uses pipes only).
@@ -610,7 +614,7 @@
 .
 .
 .\" --------------------------------------------------------------------
-.SS Tranparent Options
+.SS Transparent Options
 .\" --------------------------------------------------------------------
 .
 The following options are transparently handed over to the formatter
@@ -695,7 +699,7 @@
 is much easier than
 .IR "classical roff" .
 .
-This section gives an overview of the parts that consitute the groff
+This section gives an overview of the parts that constitute the groff
 system.
 .
 It complements
@@ -948,6 +952,10 @@
 Text output using the EBCDIC code page IBM cp1047 (e.g. OS/390 Unix).
 .
 .TP
+.B nippon
+Text output using the Japanese-EUC character set.
+.
+.TP
 .B dvi
 TeX DVI format.
 .
@@ -956,6 +964,12 @@
 HTML output.
 .
 .TP
+.B ascii8
+For typewriter-like devices.  Unlike
+.BR ascii ,
+this device is 8 bit clean.  This device is intended to be used
+for codesets other than ASCII and ISO-8859-1.
+.TP
 .B latin1
 Text output using the ISO Latin-1 (ISO 8859-1) character set; see
 .BR iso_8859_1 (7).
@@ -1031,7 +1045,7 @@
 .
 .P
 Today, most printing or drawing hardware is handled by the operating
-system, by device drivers, or by software interfaces, usally accepting
+system, by device drivers, or by software interfaces, usually accepting
 PostScript.
 .
 Consequently, there isn't an urgent need for more hardware device
diff -Naur groff-1.18.1.4.orig/src/roff/nroff/nroff.man groff-1.18.1.4/src/roff/nroff/nroff.man
--- groff-1.18.1.4.orig/src/roff/nroff/nroff.man	2002-02-07 08:36:54.000000000 +0000
+++ groff-1.18.1.4/src/roff/nroff/nroff.man	2006-10-18 18:54:44.000000000 +0000
@@ -53,8 +53,10 @@
 command using groff.
 Only 
 .BR ascii ,
+.BR ascii8 ,
 .BR latin1 ,
 .BR utf8 ,
+.BR nippon ,
 and
 .B cp1047
 are valid arguments for the
diff -Naur groff-1.18.1.4.orig/src/roff/nroff/nroff.sh groff-1.18.1.4/src/roff/nroff/nroff.sh
--- groff-1.18.1.4.orig/src/roff/nroff/nroff.sh	2002-02-07 08:36:54.000000000 +0000
+++ groff-1.18.1.4/src/roff/nroff/nroff.sh	2006-10-18 18:54:44.000000000 +0000
@@ -12,6 +12,8 @@
     T=-Tlatin1 ;;
   IBM-1047)
     T=-Tcp1047 ;;
+  EUC-JP)
+    T=-Tnippon ;;
   *)
     case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
       *.UTF-8)
@@ -20,6 +22,8 @@
         T=-Tlatin1 ;;
       *.IBM-1047)
         T=-Tcp1047 ;;
+      ja_JP.ujis | ja_JP.eucJP)
+	T=-Tnippon ;;
       *)
         case "$LESSCHARSET" in
           utf-8)
@@ -28,8 +32,10 @@
             T=-Tlatin1 ;;
           cp1047)
             T=-Tcp1047 ;;
+          japanese)
+	    T=-Tnippon ;;
           *)
-            T=-Tascii ;;
+            T=-Tascii8 ;;
           esac ;;
      esac ;;
 esac
@@ -52,7 +58,7 @@
       exit 1 ;;
     -[iptSUC] | -[mrno]*)
       opts="$opts $1" ;;
-    -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047)
+    -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon)
       T=$1 ;;
     -T*)
       # ignore other devices
diff -Naur groff-1.18.1.4.orig/src/roff/troff/charinfo.h groff-1.18.1.4/src/roff/troff/charinfo.h
--- groff-1.18.1.4.orig/src/roff/troff/charinfo.h	2002-03-22 16:11:18.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/charinfo.h	2006-10-18 18:54:44.000000000 +0000
@@ -29,9 +29,16 @@
   macro *mac;
   unsigned char special_translation;
   unsigned char hyphenation_code;
+#ifdef ENABLE_MULTIBYTE
+  unsigned short flags;
+#else
   unsigned char flags;
+#endif
   unsigned char ascii_code;
   unsigned char asciify_code;
+#ifdef ENABLE_MULTIBYTE
+  wchar wchar_code;
+#endif
   char not_found;
   char transparent_translate;	// non-zero means translation applies
 				// to transparent throughput
@@ -47,6 +54,11 @@
     OVERLAPS_VERTICALLY = 16,
     TRANSPARENT = 32,
     NUMBERED = 64
+#ifdef	ENABLE_MULTIBYTE
+    ,
+    DONT_BREAK_BEFORE = 0x100,	// 256, pre kinsoku
+    DONT_BREAK_AFTER = 0x200	// 512, post kinsoku
+#endif
     };
   enum {
     TRANSLATE_NONE,
@@ -74,7 +86,11 @@
   int get_translation_input();
   charinfo *get_translation(int = 0);
   void set_translation(charinfo *, int, int);
+#ifdef ENABLE_MULTIBYTE
+  void set_flags(unsigned short);
+#else
   void set_flags(unsigned char);
+#endif
   void set_special_translation(int, int);
   int get_special_translation(int = 0);
   macro *set_macro(macro *, int = 0);
@@ -84,6 +100,12 @@
   int get_number();
   int numbered();
   int is_fallback();
+#ifdef	ENABLE_MULTIBYTE
+  wchar get_wchar_code();
+  void set_wchar_code(wchar);
+  int cannot_break_before(); // pre kinsoku
+  int cannot_break_after(); // post kinsoku
+#endif
   symbol *get_symbol();
 };
 
@@ -131,6 +153,18 @@
   return fallback;
 }
 
+#ifdef	ENABLE_MULTIBYTE
+inline int charinfo::cannot_break_before()
+{
+  return flags & DONT_BREAK_BEFORE;
+}
+
+inline int charinfo::cannot_break_after()
+{
+  return flags & DONT_BREAK_AFTER;
+}
+#endif
+
 inline charinfo *charinfo::get_translation(int transparent_throughput)
 {
   return (transparent_throughput && !transparent_translate
@@ -153,7 +187,18 @@
   return (translate_input ? asciify_code : 0);
 }
 
+#ifdef	ENABLE_MULTIBYTE
+inline wchar charinfo::get_wchar_code()
+{
+  return wchar_code;
+}
+#endif
+
+#ifdef	ENABLE_MULTIBYTE
+inline void charinfo::set_flags(unsigned short c)
+#else
 inline void charinfo::set_flags(unsigned char c)
+#endif
 {
   flags = c;
 }
diff -Naur groff-1.18.1.4.orig/src/roff/troff/env.cc groff-1.18.1.4/src/roff/troff/env.cc
--- groff-1.18.1.4.orig/src/roff/troff/env.cc	2002-10-03 15:53:06.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/env.cc	2006-10-18 18:54:44.000000000 +0000
@@ -32,6 +32,7 @@
 #include "charinfo.h"
 #include "macropath.h"
 #include "input.h"
+#include "font.h" // ENABLE_MULTIBYTE only?
 #include <math.h>
 
 symbol default_family("T");
@@ -264,6 +265,13 @@
 void environment::add_char(charinfo *ci)
 {
   int s;
+#ifdef ENABLE_MULTIBYTE
+  int fontno = get_font(); // current font #
+  int fontset_font = get_fontset_fontno(fontno, ci->get_wchar_code());
+  if (fontno >= 0 && fontno != fontset_font) {
+    change_curfont(fontset_font);
+  }
+#endif
   if (interrupted)
     ;
   // don't allow fields in dummy environments
@@ -286,11 +294,95 @@
   else {
     if (line == 0)
       start_line();
+#ifdef	ENABLE_MULTIBYTE
+    /* 
+     * XXX: NEED REWRITE TO BE MORE GENERIC
+     * This code is based on jgroff
+     * about kerning between ASCII and EUC-JP 
+     */
+    if (!ci->get_wchar_code()) {
+      /*
+       * This node is a ASCII character node.
+       */
+      if (!pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
+	/*
+	 * Insert a little space node between EUC and ASCII.
+	 */
+	word_space_node *ws;
+
+	if (ci->ends_sentence() || ci->transparent() || ci->cannot_break_before())
+	  ws = new unbreakable_space_node(hwkern.to_units(), get_fill_color());
+	else
+	  ws = new word_space_node(hwkern.to_units(),
+				   get_fill_color(),
+				   new width_list(env_space_width(this),
+						  env_sentence_space_width(this)));
+	curenv->add_node(ws);
+      }
+      pre_char_is_ascii = 1;
+      pre_wchar_cannot_break_after = 0;
+    } else {
+      /*
+       * This node is a EUC charcater node.
+       */
+      if (!pre_char_is_ascii && line->get_node_type() == NODE_NEWLINE_SPACE) {
+	/*
+	 * remove a newline-node.
+	 */
+	node *ns_node = line;
+	line = line->next;
+	width_total -= ns_node->width();
+	space_total -= ns_node->nspaces();
+	delete ns_node;
+      }
+
+      if (!pre_wchar_cannot_break_after && !ci->cannot_break_before()) {
+	/*
+	 * add a zero-width-space-node before EUC charcater node.
+	 */
+	add_node(new kword_space_node(get_fill_color()));
+	met_with_kword_space = 1;
+      }
+      pre_wchar_cannot_break_after = ci->cannot_break_after();
+
+      if (pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
+	/*
+	 * Insert a little space node between ASCII and EUC.
+	 */
+	unbreakable_space_node *ws =
+	  new unbreakable_space_node(hwkern.to_units(), get_fill_color());
+	curenv->add_node(ws);
+      }
+      pre_char_is_ascii = 0;
+
+      if (!vlower.is_zero()) {
+	/*
+	 * Lower a EUC charcater node.
+	 */
+	curenv->add_node(new vmotion_node(vlower.to_units(), 
+					  get_fill_color())); // lower
+      }
+    }
+#endif
     if (ci != hyphen_indicator_char)
       line = line->add_char(ci, this, &width_total, &space_total);
     else
       line = line->add_discretionary_hyphen();
+#ifdef	ENABLE_MULTIBYTE
+    enable_wcharkern = 1;
+    if (!vlower.is_zero() && ci->get_wchar_code()) {
+      /*
+       * Raise a EUC charcater node.
+       */
+      curenv->add_node(new vmotion_node(-vlower.to_units(), 
+					get_fill_color())); // raise
+    }
+#endif
   }
+#ifdef ENABLE_MULTIBYTE
+  if (fontset_font >= 0 && fontno != fontset_font)
+      change_curfont(fontno); /* restore saved font # */
+#endif
 }
 
 node *environment::make_char_node(charinfo *ci)
@@ -394,7 +486,11 @@
     width_total += x;
     return;
   }
+#ifdef ENABLE_MULTIBYTE
+  add_node(new newline_space_node(x, get_fill_color())); // This node may be removed
+#else
   add_node(new word_space_node(x, get_fill_color(), w));
+#endif
   possibly_break_line(0, spread_flag);
   spread_flag = 0;
 }
@@ -480,6 +576,35 @@
     warning(WARN_FONT, "bad font number");
 }
 
+#ifdef	ENABLE_MULTIBYTE
+void environment::change_curfont(symbol nm)
+{
+  int n = symbol_fontno(nm);
+  if (n < 0) {
+    n = next_available_font_position();
+    if (!mount_font(n, nm))
+      return;
+  }
+  fontno = n;
+}
+
+void environment::change_curfont(int n)
+{
+  if (is_good_fontno(n))
+    fontno = n;
+  else
+    error("bad font number");
+}
+
+void environment::set_encoding(symbol enc)
+{
+  if (enc.is_null() || enc.is_empty())
+    return;
+  select_input_encoding_handler(enc.contents());
+  select_output_encoding_handler(enc.contents());
+}
+#endif /* ENABLE_MULTIBYTE */
+
 void environment::set_family(symbol fam)
 {
   if (interrupted)
@@ -649,6 +774,16 @@
   control_char('.'),
   no_break_control_char('\''),
   hyphen_indicator_char(0)
+#ifdef	ENABLE_MULTIBYTE
+  ,
+  stretch_threshold(0),
+  pre_wchar_cannot_break_after(0),
+  pre_char_is_ascii(-1),
+  enable_wcharkern(0),
+  met_with_kword_space(0),
+  hwkern(font::wcharkern),
+  vlower(font::lowerwchar)
+#endif
 {
   prev_family = family = lookup_family(default_family);
   prev_fontno = fontno = 1;
@@ -739,6 +874,16 @@
   control_char(e->control_char),
   no_break_control_char(e->no_break_control_char),
   hyphen_indicator_char(e->hyphen_indicator_char)
+#ifdef	ENABLE_MULTIBYTE
+  ,
+  stretch_threshold(e->stretch_threshold),
+  pre_wchar_cannot_break_after(0),
+  pre_char_is_ascii(-1),
+  enable_wcharkern(0),
+  met_with_kword_space(0),
+  hwkern(font::wcharkern),
+  vlower(font::lowerwchar)
+#endif
 {
 }
 
@@ -1781,6 +1926,9 @@
   target_text_length = line_length - saved_indent;
   width_total = H0;
   space_total = 0;
+#ifdef	ENABLE_MULTIBYTE
+  enable_wcharkern = 0;
+#endif
 }
 
 hunits environment::get_hyphenation_space()
@@ -1819,6 +1967,23 @@
   skip_line();
 }
 
+#ifdef ENABLE_MULTIBYTE
+void stretch_threshold_request()
+{
+  int n;
+  if (has_arg() && get_integer(&n)) {
+      if (n < 0 || n > 100) {
+	  warning(WARN_RANGE, "stretch threshold value %1 out of range", n);
+      } else {
+	  curenv->stretch_threshold = n;
+      }
+  } else {
+      curenv->stretch_threshold = 0;
+  }
+  skip_line();
+}
+#endif
+
 breakpoint *environment::choose_breakpoint()
 {
   hunits x = width_total;
@@ -2014,6 +2179,30 @@
 	     // When a macro follows a paragraph in fill mode, the
 	     // current line should not be empty.
 	     || (width_total - line->width()) > target_text_length)) {
+#ifdef ENABLE_MULTIBYTE
+    if (met_with_kword_space) {
+      node *linep = line;
+      node *prep = 0;
+      while (linep->next) {
+	if (linep->next->get_node_type() == NODE_GLYPH)
+	  prep = 0;
+	else if (linep->next->get_node_type() == NODE_KWORD_SPACE)
+	  prep = linep;
+        linep = linep->next;
+      }
+      if (prep) {
+        /*
+         * delete a kword_space_node which is in the top of line.
+         */
+        linep = prep->next;
+        prep->next = linep->next;
+        width_total -= linep->width();
+        space_total -= linep->nspaces();
+        delete linep;
+      }
+      met_with_kword_space = 0;
+    }
+#endif
     hyphenate_line(start_here);
     breakpoint *bp = choose_breakpoint();
     if (bp == 0)
@@ -2026,6 +2215,15 @@
     bp->nd->split(bp->index, &pre, &post);
     *ndp = post;
     hunits extra_space_width = H0;
+#ifdef ENABLE_MULTIBYTE
+    int sv_adjust_mode = adjust_mode;
+    if (stretch_threshold) {
+	int ratio = bp->width * 100 / target_text_length;
+	if (ratio < stretch_threshold) {
+	    adjust_mode = ADJUST_LEFT;
+	}
+    }
+#endif
     switch(adjust_mode) {
     case ADJUST_BOTH:
       if (bp->nspaces != 0)
@@ -2041,6 +2239,9 @@
       saved_indent += target_text_length - bp->width;
       break;
     }
+#ifdef ENABLE_MULTIBYTE
+    adjust_mode = sv_adjust_mode;
+#endif
     distribute_space(pre, bp->nspaces, extra_space_width);
     hunits output_width = bp->width + extra_space_width;
     input_line_start -= output_width;
@@ -3237,6 +3438,9 @@
   init_request("hys", hyphenation_space_request);
   init_request("hym", hyphenation_margin_request);
   init_request("pvs", post_vertical_spacing);
+#ifdef ENABLE_MULTIBYTE
+  init_request("stt", stretch_threshold_request);
+#endif
   init_int_env_reg(".f", get_font);
   init_int_env_reg(".b", get_bold);
   init_hunits_env_reg(".i", get_indent);
diff -Naur groff-1.18.1.4.orig/src/roff/troff/env.h groff-1.18.1.4/src/roff/troff/env.h
--- groff-1.18.1.4.orig/src/roff/troff/env.h	2002-09-20 14:39:32.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/env.h	2006-10-18 18:54:44.000000000 +0000
@@ -213,6 +213,15 @@
   unsigned char control_char;
   unsigned char no_break_control_char;
   charinfo *hyphen_indicator_char;
+#ifdef	ENABLE_MULTIBYTE
+  int stretch_threshold;
+  int pre_wchar_cannot_break_after;
+  int pre_char_is_ascii;
+  int enable_wcharkern;
+  int met_with_kword_space;
+  hunits hwkern;
+  vunits vlower;
+#endif
   
   environment(symbol);
   environment(const environment *);	// for temporary environment
@@ -279,6 +288,10 @@
   void wrap_up_tab();
   void set_font(int);
   void set_font(symbol);
+#ifdef	ENABLE_MULTIBYTE
+  void change_curfont(int);
+  void change_curfont(symbol);
+#endif
   void set_family(symbol);
   void set_size(int);
   void set_char_height(int);
@@ -309,6 +322,9 @@
   const char *get_point_size_string();
   const char *get_requested_point_size_string();
   void output_pending_lines();
+#ifdef ENABLE_MULTIBYTE
+  void set_encoding(symbol);
+#endif
   
   friend void title_length();
   friend void space_size();
@@ -347,6 +363,9 @@
 #ifdef WIDOW_CONTROL
   friend void widow_control_request();
 #endif /* WIDOW_CONTROL */
+#ifdef	ENABLE_MULTIBYTE
+  friend void stretch_threshold_request();
+#endif
 
   friend void do_divert(int append, int boxing);
 };
diff -Naur groff-1.18.1.4.orig/src/roff/troff/input.cc groff-1.18.1.4/src/roff/troff/input.cc
--- groff-1.18.1.4.orig/src/roff/troff/input.cc	2002-10-03 15:52:20.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/input.cc	2006-10-18 18:54:44.000000000 +0000
@@ -35,6 +35,7 @@
 #include "macropath.h"
 #include "defs.h"
 #include "input.h"
+#include "encoding.h" // XXX: ukai
 
 // Needed for getpid() and isatty()
 #include "posix.h"
@@ -89,6 +90,11 @@
 charinfo *charset_table[256];
 unsigned char hpf_code_table[256];
 
+#ifdef	ENABLE_MULTIBYTE
+charinfo *wcharset_table_entry(wchar wc);
+
+#endif /* ENABLE_MULTIBYTE */
+
 static int warning_mask = DEFAULT_WARNING_MASK;
 static int inhibit_errors = 0;
 static int ignoring = 0;
@@ -148,6 +154,20 @@
 input_iterator *make_temp_iterator(const char *);
 const char *input_char_description(int);
 
+#ifdef ENABLE_MULTIBYTE
+static void
+select_encoding()
+{
+    symbol e = get_long_name(1);
+    if (e.is_null()) {
+	skip_line();
+	return;
+    }
+    curenv->set_encoding(e);
+    skip_line();
+    
+}
+#endif
 
 void set_escape_char()
 {
@@ -1524,6 +1544,19 @@
   type = TOKEN_NEWLINE;
 }
 
+#ifdef ENABLE_MULTIBYTE
+class encoding_istream_input : public encoding_istream {
+private:
+  node **np;
+public:
+  encoding_istream_input(node **n) : np(n) {};
+  ~encoding_istream_input() {};
+  int getbyte() { return input_stack::get(np); };
+  int peekbyte() { return input_stack::peek(); };
+  void ungetbyte(int ch) { return; };
+};
+#endif
+
 void token::next()
 {
   if (nd) {
@@ -1533,6 +1566,10 @@
   units x;
   for (;;) {
     node *n;
+#ifdef ENABLE_MULTIBYTE
+    encoding_istream_input einput(&n);
+#endif
+
     int cc = input_stack::get(&n);
     if (cc != escape_char || escape_char == 0) {
     handle_normal_char:
@@ -1686,8 +1723,22 @@
 	}
 	return;
       default:
+#ifdef	ENABLE_MULTIBYTE
+	wc = input_encoding->make_wchar(cc, einput);
+	if (is_wchar_code(wc)) {
+	  type = TOKEN_WCHAR;
+	  c = 0;
+	} else if (wc == ' ') {
+	  type = TOKEN_SPACE;
+	  c = cc;
+	} else {
+	  type = TOKEN_CHAR;
+	  c = cc;
+	}
+#else
 	type = TOKEN_CHAR;
 	c = cc;
+#endif
 	return;
       }
     }
@@ -2057,6 +2108,10 @@
   switch(type) {
   case TOKEN_CHAR:
     return c == t.c;
+#ifdef	ENABLE_MULTIBYTE
+  case TOKEN_WCHAR:
+    return wc == t.wc;
+#endif
   case TOKEN_SPECIAL:
     return nm == t.nm;
   case TOKEN_NUMBERED_CHAR:
@@ -2563,6 +2618,27 @@
 	}
 	break;
       }
+#ifdef	ENABLE_MULTIBYTE
+    case token::TOKEN_WCHAR:
+      {
+	wchar wch = tok.wc;
+
+	if (possibly_handle_first_page_transition())
+	  ;
+	else {
+	  for (;;) {
+	    curenv->add_char(wcharset_table_entry(wch));
+	    tok.next();
+	    if (tok.type != token::TOKEN_WCHAR)
+	      break;
+	    wch = tok.wc;
+	  }
+	  suppress_next = 1;
+	  bol = 0;
+	}
+	break;
+      }
+#endif	/* ENABLE_MULTIBYTE */
     case token::TOKEN_TRANSPARENT:
       {
 	if (bol) {
@@ -6018,6 +6094,10 @@
 {
   if (type == TOKEN_CHAR)
     return charset_table[c];
+#ifdef	ENABLE_MULTIBYTE
+  if (type == TOKEN_WCHAR)
+    return wcharset_table_entry(wc);
+#endif
   if (type == TOKEN_SPECIAL)
     return get_charinfo(nm);
   if (type == TOKEN_NUMBERED_CHAR)
@@ -6070,6 +6150,11 @@
   case TOKEN_CHAR:
     *pp = (*pp)->add_char(charset_table[c], curenv, &w, &s);
     break;
+#ifdef	ENABLE_MULTIBYTE
+  case TOKEN_WCHAR:
+    *pp = (*pp)->add_char(wcharset_table_entry(wc), curenv, &w, &s);
+    break;
+#endif
   case TOKEN_DUMMY:
     n = new dummy_node;
     break;
@@ -6142,6 +6227,11 @@
   case TOKEN_CHAR:
     curenv->add_char(charset_table[c]);
     break;
+#ifdef	ENABLE_MULTIBYTE
+  case TOKEN_WCHAR:
+    curenv->add_char(wcharset_table_entry(wc));
+    break;
+#endif
   case TOKEN_DUMMY:
     curenv->add_node(new dummy_node);
     break;
@@ -6900,6 +6990,7 @@
   if (!safer_flag)
     mac_path = &macro_path;
   set_string(".T", device);
+  init_encoding_handler();
   init_charset_table();
   init_hpf_code_table();
   if (!font::load_desc())
@@ -6924,6 +7015,9 @@
     // In the DESC file a font name of 0 (zero) means leave this
     // position empty.
     if (strcmp(font::font_name_table[i], "0") != 0)
+#ifdef ENABLE_MULTIBYTE
+      if (!font::is_on_demand(i))
+#endif
       mount_font(j, symbol(font::font_name_table[i]));
   curdiv = topdiv = new top_level_diversion;
   if (nflag)
@@ -7081,6 +7175,9 @@
   init_request("ecs", save_escape_char);
   init_request("el", else_request);
   init_request("em", end_macro);
+#ifdef ENABLE_MULTIBYTE
+  init_request("encoding", select_encoding);
+#endif
   init_request("eo", escape_off);
   init_request("ex", exit_request);
   init_request("fchar", define_fallback_character);
@@ -7533,12 +7630,92 @@
 
 dictionary charinfo_dictionary(501);
 
+#ifdef ENABLE_MULTIBYTE
+struct charinfo_list {
+  struct charinfo_list *next;
+  charinfo *ci;
+} *wcharset_table = NULL;
+
+/* XXX: use more efficient method? */
+static charinfo*
+lookup_wcharset_table(wchar wc)
+{
+  struct charinfo_list *cl;
+  for (cl = wcharset_table; cl; cl = cl->next) {
+    if (cl->ci && cl->ci->get_wchar_code() == wc)
+      return cl->ci;
+  }
+  return NULL;
+}
+
+static void
+add_wcharset_table(charinfo *ci)
+{
+  struct charinfo_list *cl = new struct charinfo_list;
+  cl->next = wcharset_table;
+  cl->ci = ci;
+  wcharset_table = cl;
+}
+
+charinfo *wcharset_table_entry(wchar wc)
+{
+  if (! is_wchar_code(wc))
+    return NULL;
+  charinfo *cp = lookup_wcharset_table(wc);
+  if (cp == NULL) {
+    int i = wchar_code(wc);
+    char buf[16];
+    if (i > 0x100)
+      sprintf(buf, "u%04X", i);
+    else {
+      cp = get_charinfo_by_number(i);
+      if (cp != NULL)
+	return cp;
+      sprintf(buf, "char%d", i); // ???
+    }
+    symbol nm = symbol(buf);
+    cp = new charinfo(nm);
+    (void)charinfo_dictionary.lookup(nm, cp);
+    cp->set_wchar_code(wc);
+    add_wcharset_table(cp);
+  }
+  return cp;
+}
+
+static charinfo *
+wchar_charinfo(symbol nm)
+{
+  const char *p = nm.contents();
+  if (*p != 'u') {
+    return NULL;
+  }
+  char *pp;
+  wchar wc = make_wchar(strtol(p + 1, &pp, 16));
+  if (pp < p + 5)
+      return NULL;
+  charinfo *cp = lookup_wcharset_table(wc);
+  if (cp)
+    return cp;
+  /* create on demand */
+  cp = new charinfo(nm);
+  cp->set_wchar_code(wc);
+  add_wcharset_table(cp);
+  return cp;
+}
+#endif
+
 charinfo *get_charinfo(symbol nm)
 {
   void *p = charinfo_dictionary.lookup(nm);
   if (p != 0)
     return (charinfo *)p;
+#ifdef ENABLE_MULTIBYTE
+  charinfo *cp = wchar_charinfo(nm);
+  if (cp == NULL)
+    cp = new charinfo(nm);
+#else
   charinfo *cp = new charinfo(nm);
+#endif
   (void)charinfo_dictionary.lookup(nm, cp);
   return cp;
 }
@@ -7548,6 +7725,9 @@
 charinfo::charinfo(symbol s)
 : translation(0), mac(0), special_translation(TRANSLATE_NONE),
   hyphenation_code(0), flags(0), ascii_code(0), asciify_code(0),
+#ifdef ENABLE_MULTIBYTE
+  wchar_code(0),
+#endif
   not_found(0), transparent_translate(1), translate_input(0),
   fallback(0), nm(s)
 {
@@ -7592,6 +7772,14 @@
   asciify_code = c;
 }
 
+#ifdef ENABLE_MULTIBYTE
+void charinfo::set_wchar_code(wchar wc)
+{
+  wchar_code = wc;
+  index = wc; /* XXX: wchar code == index */
+}
+#endif
+
 macro *charinfo::set_macro(macro *m, int f)
 {
   macro *tem = mac;
@@ -7647,6 +7835,13 @@
 int font::name_to_index(const char *nm)
 {
   charinfo *ci;
+#ifdef	ENABLE_MULTIBYTE
+  int i = 1;
+  wchar wc = input_encoding->make_wchar(nm[0], (const unsigned char *)nm, &i);
+  if (is_wchar_code(wc)) {
+    ci = wcharset_table_entry(wc);
+  } else
+#endif
   if (nm[1] == 0)
     ci = charset_table[nm[0] & 0xff];
   else if (nm[0] == '\\' && nm[2] == 0)
@@ -7663,3 +7858,10 @@
 {
   return get_charinfo_by_number(n)->get_index();
 }
+
+#ifdef	ENABLE_MULTIBYTE
+int font::wchar_index(wchar wc)
+{
+  return(wcharset_table_entry(wc)->get_index());
+}
+#endif
diff -Naur groff-1.18.1.4.orig/src/roff/troff/node.cc groff-1.18.1.4/src/roff/troff/node.cc
--- groff-1.18.1.4.orig/src/roff/troff/node.cc	2002-10-03 21:55:09.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/node.cc	2006-10-18 18:54:44.000000000 +0000
@@ -38,6 +38,7 @@
 #include "input.h"
 #include "div.h"
 #include "geometry.h"
+#include "encoding.h"
 
 #include "nonposix.h"
 
@@ -745,8 +746,15 @@
   int current_font_number;
   symbol *font_position;
   int nfont_positions;
+#ifdef ENABLE_MULTIBYTE
+  const char *current_encoding;
+#endif
   enum { TBUF_SIZE = 256 };
+#ifdef	ENABLE_MULTIBYTE
+  wchar tbuf[TBUF_SIZE];
+#else
   char tbuf[TBUF_SIZE];
+#endif
   int tbuf_len;
   int tbuf_kern;
   int begun_page;
@@ -756,6 +764,9 @@
   void put(int i);
   void put(unsigned int i);
   void put(const char *s);
+#ifdef	ENABLE_MULTIBYTE
+  void putw(const wchar wc);
+#endif
   void set_font(tfont *tf);
   void flush_tbuf();
 public:
@@ -799,6 +810,13 @@
   putc(c, fp);
 }
 
+#ifdef	ENABLE_MULTIBYTE
+inline void troff_output_file::putw(wchar wc)
+{
+  output_encoding->put_wchar(wc, fp);
+}
+#endif
+
 inline void troff_output_file::put(unsigned char c)
 {
   putc(c, fp);
@@ -956,7 +974,11 @@
   check_output_limits(hpos, vpos - current_size);
 
   for (int i = 0; i < tbuf_len; i++)
+#ifdef ENABLE_MULTIBYTE
+    putw(tbuf[i]);
+#else
     put(tbuf[i]);
+#endif
   put('\n');
   tbuf_len = 0;
 }
@@ -988,7 +1010,13 @@
     flush_tbuf();
     set_font(tf);
   }
+#ifdef ENABLE_MULTIBYTE
+  wchar c = ci->get_wchar_code();
+  if (c == '\0')
+    c = ci->get_ascii_code();
+#else
   char c = ci->get_ascii_code();
+#endif
   if (c == '\0') {
     flush_tbuf();
     do_motion();
@@ -1014,7 +1042,8 @@
   }
   else if (tcommand_flag) {
     if (tbuf_len > 0 && hpos == output_hpos && vpos == output_vpos
-	&& gcol == current_glyph_color && fcol == current_fill_color
+	&& (!gcol || gcol == current_glyph_color)
+	&& (!fcol || fcol == current_fill_color)
 	&& kk == tbuf_kern
 	&& tbuf_len < TBUF_SIZE) {
       check_charinfo(tf, ci);
@@ -1039,17 +1068,26 @@
     check_charinfo(tf, ci);
     // check_output_limits(output_hpos, output_vpos);
     if (vpos == output_vpos
-	&& gcol == current_glyph_color && fcol == current_fill_color
+	&& (!gcol || gcol == current_glyph_color)
+	&& (!fcol || fcol == current_fill_color)
 	&& n > 0 && n < 100 && !force_motion) {
       put(char(n/10 + '0'));
       put(char(n%10 + '0'));
+#ifdef ENABLE_MULTIBYTE
+      putw(c);
+#else
       put(c);
+#endif
       output_hpos = hpos;
     }
     else {
       do_motion();
       put('c');
+#ifdef ENABLE_MULTIBYTE
+      putw(c);
+#else
       put(c);
+#endif
     }
     hpos += w.to_units() + kk;
   }
@@ -1063,7 +1101,13 @@
     return;
   if (tf != current_tfont)
     set_font(tf);
+#ifdef	ENABLE_MULTIBYTE
+  wchar c = ci->get_wchar_code();
+  if (c == '\0')
+    c = ci->get_ascii_code();
+#else
   char c = ci->get_ascii_code();
+#endif
   if (c == '\0') {
     do_motion();
     glyph_color(gcol);
@@ -1087,11 +1131,16 @@
   else {
     int n = hpos - output_hpos;
     if (vpos == output_vpos
-	&& gcol == current_glyph_color && fcol == current_fill_color
+	&& (!gcol || gcol == current_glyph_color)
+	&& (!fcol || fcol == current_fill_color)
 	&& n > 0 && n < 100) {
       put(char(n/10 + '0'));
       put(char(n%10 + '0'));
+#ifdef ENABLE_MULTIBYTE
+      putw(c);
+#else
       put(c);
+#endif
       output_hpos = hpos;
     }
     else {
@@ -1099,13 +1148,26 @@
       glyph_color(gcol);
       fill_color(fcol);
       put('c');
+#ifdef ENABLE_MULTIBYTE
+      putw(c);
+#else
       put(c);
+#endif
     }
   }
 }
 
 void troff_output_file::set_font(tfont *tf)
 {
+#ifdef ENABLE_MULTIBYTE
+  /* XXX */
+  if (current_encoding != output_encoding->name()) {
+    put("x encoding ");
+    put(output_encoding->name());
+    put('\n');
+    current_encoding = output_encoding->name();
+  }
+#endif
   if (current_tfont == tf)
     return;
   int n = tf->get_input_position();
@@ -1162,7 +1224,7 @@
 
 void troff_output_file::fill_color(color *col)
 {
-  if ((current_fill_color == col) || !color_flag)
+  if (!col || current_fill_color == col || !color_flag)
     return;
   flush_tbuf();
   put("DF");
@@ -1210,7 +1272,7 @@
 
 void troff_output_file::glyph_color(color *col)
 {
-  if ((current_glyph_color == col) || !color_flag)
+  if (!col || current_glyph_color == col || !color_flag)
     return;
   flush_tbuf();
   put("m");
@@ -1497,7 +1559,17 @@
   put(' ');
   put(vresolution);
   put('\n');
+#ifdef ENABLE_MULTIBYTE
+  current_encoding = output_encoding->name();
+  put("x init");
+  if (current_encoding && *current_encoding != '\0') {
+      put(' ');
+      put(current_encoding);
+  }
+  put('\n');
+#else
   put("x init\n");
+#endif
 }
 
 /* output_file */
@@ -1777,6 +1849,9 @@
   int same(node *);
   const char *type();
   int force_tprint();
+#ifdef	ENABLE_MULTIBYTE
+  node_type get_node_type();
+#endif
 };
 
 glyph_node *glyph_node::free_list = 0;
@@ -1802,6 +1877,9 @@
   int same(node *);
   const char *type();
   int force_tprint();
+#ifdef	ENABLE_MULTIBYTE
+  node_type get_node_type();
+#endif
 };
 
 class kern_pair_node : public node {
@@ -5225,6 +5303,55 @@
   return 0;
 }
 
+#ifdef	ENABLE_MULTIBYTE
+kword_space_node::kword_space_node(color *c, node *x) : word_space_node(0, c, new width_list(0, 0), x)
+{}
+
+node *kword_space_node::copy()
+{
+    return new kword_space_node(col);
+}
+newline_space_node::newline_space_node(hunits d, color *c, node *x) : word_space_node(d, c, new width_list(0, 0), x)
+{}
+
+node *newline_space_node::copy()
+{
+    return new newline_space_node(n, col);
+}
+
+const char *kword_space_node::type()
+{
+  return "kword_space_node";
+}
+const char *newline_space_node::type()
+{
+  return "newline_space_node";
+}
+
+node_type node::get_node_type()
+{
+    return NODE_ANOTHER;
+}
+node_type glyph_node::get_node_type()
+{
+    return NODE_GLYPH;
+}
+
+node_type ligature_node::get_node_type()
+{
+    return NODE_ANOTHER;
+}
+
+node_type kword_space_node::get_node_type()
+{
+    return NODE_KWORD_SPACE;
+}
+node_type newline_space_node::get_node_type()
+{
+    return NODE_NEWLINE_SPACE;
+}
+#endif
+
 int unbreakable_space_node::same(node *nd)
 {
   return n == ((unbreakable_space_node *)nd)->n
@@ -5625,6 +5752,28 @@
     return 0;
 }
 
+#ifdef ENABLE_MULTIBYTE
+int get_fontset_fontno(int n, wchar wc)
+{
+  if (n >= 0 && n < font_table_size && font_table[n] != 0) {
+    /* XXX: external_name should be used? */
+    int fn = font::get_fontset_font(font_table[n]->get_name().contents(), wc);
+    if (fn >= 0) {
+      symbol nm(font::font_name_table[fn]);
+      int nn = symbol_fontno(nm);
+      if (nn < 0) {
+	nn = next_available_font_position();
+	if (!mount_font(nn, nm)) {
+	  return -1; /* XXX */
+	}
+      }
+      return nn;
+    }
+  }
+  return n;
+}
+#endif
+
 hunits env_digit_width(environment *env)
 {
   node *n = make_glyph_node(charset_table['0'], env);
diff -Naur groff-1.18.1.4.orig/src/roff/troff/node.h groff-1.18.1.4/src/roff/troff/node.h
--- groff-1.18.1.4.orig/src/roff/troff/node.h	2002-10-02 14:23:28.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/node.h	2006-10-18 18:54:44.000000000 +0000
@@ -20,6 +20,8 @@
 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
 
+#include "config.h"
+
 struct hyphen_list {
   unsigned char hyphen;
   unsigned char breakable;
@@ -31,6 +33,9 @@
 void hyphenate(hyphen_list *, unsigned);
 
 enum hyphenation_type { HYPHEN_MIDDLE, HYPHEN_BOUNDARY, HYPHEN_INHIBIT };
+#ifdef	ENABLE_MULTIBYTE
+enum node_type {NODE_GLYPH, NODE_KWORD_SPACE, NODE_NEWLINE_SPACE, NODE_ANOTHER};
+#endif
 
 class ascii_output_file;
 
@@ -106,6 +111,9 @@
 
   virtual int same(node *) = 0;
   virtual const char *type() = 0;
+#ifdef	ENABLE_MULTIBYTE
+  virtual node_type get_node_type();
+#endif
 };
 
 inline node::node()
@@ -212,6 +220,24 @@
   int force_tprint();
 };
 
+#ifdef	ENABLE_MULTIBYTE
+class kword_space_node : public word_space_node {
+public:
+  kword_space_node(color *, node * = 0);
+  node *copy();
+  const char *type();
+  node_type get_node_type();
+};
+
+class newline_space_node : public word_space_node {
+public:
+  newline_space_node(hunits, color *, node * = 0);
+  node *copy();
+  const char *type();
+  node_type get_node_type();
+};
+#endif
+
 class unbreakable_space_node : public word_space_node {
   unbreakable_space_node(hunits, int, color *, node * = 0);
 public:
@@ -538,6 +564,9 @@
 node *copy_node_list(node *);
 
 int get_bold_fontno(int f);
+#ifdef ENABLE_MULTIBYTE
+int get_fontset_fontno(int f, wchar wc);
+#endif
 
 inline hyphen_list::hyphen_list(unsigned char code, hyphen_list *p)
 : hyphen(0), breakable(0), hyphenation_code(code), next(p)
@@ -595,3 +624,4 @@
 
 font_family *lookup_family(symbol);
 symbol get_font_name(int, environment *);
+
diff -Naur groff-1.18.1.4.orig/src/roff/troff/token.h groff-1.18.1.4/src/roff/troff/token.h
--- groff-1.18.1.4.orig/src/roff/troff/token.h	2002-06-22 21:31:41.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/token.h	2006-10-18 18:54:44.000000000 +0000
@@ -28,12 +28,18 @@
   symbol nm;
   node *nd;
   unsigned char c;
+#ifdef	ENABLE_MULTIBYTE
+  wchar wc;
+#endif
   int val;
   units dim;
   enum token_type {
     TOKEN_BACKSPACE,
     TOKEN_BEGIN_TRAP,
     TOKEN_CHAR,			// a normal printing character
+#ifdef	ENABLE_MULTIBYTE
+    TOKEN_WCHAR,		// a multibyte character
+#endif
     TOKEN_DUMMY,		// \&
     TOKEN_EMPTY,		// this is the initial value
     TOKEN_END_TRAP,
diff -Naur groff-1.18.1.4.orig/src/roff/troff/troff.h groff-1.18.1.4/src/roff/troff/troff.h
--- groff-1.18.1.4.orig/src/roff/troff/troff.h	2002-06-19 13:20:18.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/troff.h	2006-10-18 18:54:44.000000000 +0000
@@ -28,6 +28,7 @@
 #include <stdlib.h>
 #include <errno.h>
 
+#include "encoding.h"
 #include "assert.h"
 #include "color.h"
 #include "device.h"
diff -Naur groff-1.18.1.4.orig/src/roff/troff/troff.man groff-1.18.1.4/src/roff/troff/troff.man
--- groff-1.18.1.4.orig/src/roff/troff/troff.man	2002-09-16 08:42:45.000000000 +0000
+++ groff-1.18.1.4/src/roff/troff/troff.man	2006-10-18 18:54:44.000000000 +0000
@@ -22,6 +22,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff-base/copyright.
+..
 .
 .
 .\" --------------------------------------------------------------------
diff -Naur groff-1.18.1.4.orig/src/utils/tfmtodit/tfmtodit.cc groff-1.18.1.4/src/utils/tfmtodit/tfmtodit.cc
--- groff-1.18.1.4.orig/src/utils/tfmtodit/tfmtodit.cc	2001-08-19 21:32:41.000000000 +0000
+++ groff-1.18.1.4/src/utils/tfmtodit/tfmtodit.cc	2006-10-18 18:54:44.000000000 +0000
@@ -650,7 +650,7 @@
 gives the groff name of the character, `i' gives its index in
 the encoding, which is filled in later  (-1 if it does not appear). */
 
-struct {
+struct S {
   const char *ch;
   int i;
 } lig_chars[] = {
@@ -670,7 +670,7 @@
 
 // Each possible ligature appears in this table.
 
-struct {
+struct S2 {
   unsigned char c1, c2, res;
   const char *ch;
 } lig_table[] = {
diff -Naur groff-1.18.1.4.orig/src/xditview/Dvi.c groff-1.18.1.4/src/xditview/Dvi.c
--- groff-1.18.1.4.orig/src/xditview/Dvi.c	2000-03-01 13:50:49.000000000 +0000
+++ groff-1.18.1.4/src/xditview/Dvi.c	2006-10-18 18:54:44.000000000 +0000
@@ -4,6 +4,8 @@
 #endif /* lint */
 #endif /* SABER */
 
+#include "config.h"
+
 /*
  * Dvi.c - Dvi display widget
  *
@@ -49,6 +51,8 @@
 NBI	-adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
 S	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
 SS	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
+M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
+G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\
 ";
 
 #define offset(field) XtOffset(DviWidget, field)
@@ -94,6 +98,20 @@
 
 static void		SaveToFile ();
 
+/* font.c */
+extern void ParseFontMap();
+extern void DestroyFontMap();
+extern void ForgetFonts();
+
+/* page.c */
+extern void DestroyFileMap();
+extern int SearchPagePosition();
+extern void FileSeek();
+extern void ForgetPagePositions();
+
+/* parse.c */
+extern int ParseInput();
+
 DviClassRec dviClassRec = {
 {
 	&widgetClassRec,		/* superclass		  */	
@@ -406,6 +424,7 @@
 	return ret;
 }
 
+void
 SetDevice (dw, name)
 	DviWidget	dw;
 	char 		*name;
@@ -559,6 +578,9 @@
 	DviWidgetClass super = (DviWidgetClass) wc->core_class.superclass;
 	if (wc->command_class.save == InheritSaveToFile)
 		wc->command_class.save = super->command_class.save;
+#ifdef ENABLE_MULTIBYTE
+	DviInitLocale();
+#endif
 }
 	
 /*
diff -Naur groff-1.18.1.4.orig/src/xditview/DviChar.c groff-1.18.1.4/src/xditview/DviChar.c
--- groff-1.18.1.4.orig/src/xditview/DviChar.c	2002-04-07 04:48:51.000000000 +0000
+++ groff-1.18.1.4/src/xditview/DviChar.c	2006-10-18 18:54:44.000000000 +0000
@@ -5,7 +5,10 @@
  * font indexes and back
  */
 
-#include   "DviChar.h"
+#include <stdlib.h>
+#include "config.h"
+#include "DviChar.h"
+#include "encoding.h"
 
 extern char *xmalloc();
 
@@ -21,7 +24,7 @@
 static int	standard_maps_loaded = 0;
 static void	load_standard_maps ();
 static int	hash_name ();
-static		dispose_hash(), compute_hash();
+static void	dispose_hash(), compute_hash();
 
 DviCharNameMap *
 DviFindMap (encoding)
@@ -58,7 +61,7 @@
 	compute_hash (map);
 }
 
-static
+static void
 dispose_hash (map)
 	DviCharNameMap	*map;
 {
@@ -88,7 +91,7 @@
 	return i;
 }
 
-static
+static void
 compute_hash (map)
 	DviCharNameMap	*map;
 {
@@ -120,7 +123,10 @@
 {
 	int		i;
 	DviCharNameHash	*h;
-
+#ifdef ENABLE_MULTIBYTE
+	if (map->char_index)
+	    return (*map->char_index)(map, name);
+#endif
 	i = hash_name (name) % DVI_HASH_SIZE;
 	for (h = map->buckets[i]; h; h=h->next)
 		if (!strcmp (h->name, name))
@@ -128,9 +134,47 @@
 	return -1;
 }
 
+#ifdef ENABLE_MULTIBYTE
+#include <X11/Xlib.h>
+void
+DviChar2XChar2b(int c, XChar2b *xc)
+{
+    /* XXX: can we assume 'c' is EUC-JP ? */
+	xc->byte1 = (c >> 8) & 0x7f;
+	xc->byte2 = (c) &0x7f;
+	return;
+}
+
+int
+DviCharIndexJISX0208_1983(map, name)
+	DviCharNameMap	*map;
+	char		*name;
+{
+    /* XXX: can we assume name points EUC-JP chars? */
+	unsigned char ub = *name, lb = *(name + 1);
+	int wc;
+	wc = (name[0] & 0xff) << 8;
+	wc |= (name[1] & 0xff);
+	return(wc);
+}
+
+static DviCharNameMap JISX0208_1983_0_map = {
+	"jisx0208.1983-0",
+	0,
+	DviChar2XChar2b,
+	DviCharIndexJISX0208_1983,
+{
+{	"DummyEntry",		/* 0 */},
+}};
+#endif
+
 static DviCharNameMap ISO8859_1_map = {
 	"iso8859-1",
 	0,
+#ifdef ENABLE_MULTIBYTE
+	0,
+	0,
+#endif
 {
 {	0,			/* 0 */},
 {	0,			/* 1 */},
@@ -393,6 +437,10 @@
 static DviCharNameMap Adobe_Symbol_map = {
 	"adobe-fontspecific",
 	1,
+#ifdef ENABLE_MULTIBYTE
+	0,
+	0,
+#endif
 {
 {	0,					/* 0 */},
 {	0,					/* 1 */},
@@ -659,4 +707,7 @@
 	standard_maps_loaded = 1;
 	DviRegisterMap (&ISO8859_1_map);
 	DviRegisterMap (&Adobe_Symbol_map);
+#ifdef ENABLE_MULTIBYTE
+	DviRegisterMap (&JISX0208_1983_0_map);
+#endif
 }
diff -Naur groff-1.18.1.4.orig/src/xditview/DviChar.h groff-1.18.1.4/src/xditview/DviChar.h
--- groff-1.18.1.4.orig/src/xditview/DviChar.h	2000-02-06 09:38:57.000000000 +0000
+++ groff-1.18.1.4/src/xditview/DviChar.h	2006-10-18 18:54:44.000000000 +0000
@@ -10,6 +10,8 @@
  * CharSetRegistry from the CharSetEncoding
  */
 
+#include "config.h"
+
 # define DVI_MAX_SYNONYMS	10
 # define DVI_MAP_SIZE		256
 # define DVI_HASH_SIZE		256
@@ -23,6 +25,10 @@
 typedef struct _dviCharNameMap {
     char		*encoding;
     int			special;
+#ifdef ENABLE_MULTIBYTE
+    void (*char2XChar2b)(/* int c, XChar2b *xc */);
+    int (*char_index)(/* struct _dviCharNameMap *map, char *name */);
+#endif
     char		*dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS];
     DviCharNameHash	*buckets[DVI_HASH_SIZE];
 } DviCharNameMap;
diff -Naur groff-1.18.1.4.orig/src/xditview/DviP.h groff-1.18.1.4/src/xditview/DviP.h
--- groff-1.18.1.4.orig/src/xditview/DviP.h	2000-02-06 09:38:57.000000000 +0000
+++ groff-1.18.1.4/src/xditview/DviP.h	2006-10-18 18:54:44.000000000 +0000
@@ -8,6 +8,7 @@
 
 #ifndef _XtDviP_h
 #define _XtDviP_h
+#include "config.h"
 
 #include "Dvi.h"
 #include "DviChar.h"
@@ -89,9 +90,17 @@
 #define DVI_CHAR_CACHE_SIZE	1024
 
 typedef struct _dviCharCache {
+#ifdef ENABLE_MULTIBYTE
+	XTextItem16	cache[DVI_TEXT_CACHE_SIZE];
+#else
 	XTextItem	cache[DVI_TEXT_CACHE_SIZE];
+#endif
 	char		adjustable[DVI_TEXT_CACHE_SIZE];
+#ifdef ENABLE_MULTIBYTE
+	XChar2b		char_cache[DVI_CHAR_CACHE_SIZE];
+#else
 	char		char_cache[DVI_CHAR_CACHE_SIZE];
+#endif
 	int		index;
 	int		max;
 	int		char_index;
@@ -182,6 +191,7 @@
 	int		word_flag;
 } DviPart;
 
+extern int DviGetAndPut();
 #define DviGetIn(dw,cp)\
     (dw->dvi.tmpFile ? (\
 	DviGetAndPut (dw, cp) \
@@ -228,6 +238,11 @@
 extern DeviceFont	*QueryDeviceFont ();
 
 extern char *GetWord(), *GetLine();
+
+#ifdef ENABLE_MULTIBYTE
+extern void DviInitLocale();
+extern int DviGEtCharacter();
+#endif
 #endif /* _XtDviP_h */
 
 
diff -Naur groff-1.18.1.4.orig/src/xditview/FontMap.jisx0208 groff-1.18.1.4/src/xditview/FontMap.jisx0208
--- groff-1.18.1.4.orig/src/xditview/FontMap.jisx0208	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/src/xditview/FontMap.jisx0208	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,2 @@
+M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
+G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
diff -Naur groff-1.18.1.4.orig/src/xditview/GXditview-ad.h groff-1.18.1.4/src/xditview/GXditview-ad.h
--- groff-1.18.1.4.orig/src/xditview/GXditview-ad.h	2000-02-06 09:39:04.000000000 +0000
+++ groff-1.18.1.4/src/xditview/GXditview-ad.h	2006-10-18 18:54:44.000000000 +0000
@@ -50,3 +50,24 @@
 "GXditview.promptShell.promptDialog.cancel.label: Cancel",
 "GXditview.promptShell.promptDialog.cancel.translations: #override \
 	<BtnUp>:	Cancel() unset()",
+"GXditview*fontMap: \
+TR	-adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+TI	-adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
+TB	-adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+TBI	-adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
+CR	-adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+CI	-adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
+CB	-adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+CBI	-adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
+HR	-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+HI	-adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
+HB	-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+HBI	-adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
+NR	-adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+NI	-adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
+NB	-adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
+NBI	-adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
+S	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
+SS	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
+M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\\n\
+G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0",
diff -Naur groff-1.18.1.4.orig/src/xditview/GXditview.ad groff-1.18.1.4/src/xditview/GXditview.ad
--- groff-1.18.1.4.orig/src/xditview/GXditview.ad	2000-02-06 09:38:57.000000000 +0000
+++ groff-1.18.1.4/src/xditview/GXditview.ad	2006-10-18 18:54:44.000000000 +0000
@@ -55,3 +55,25 @@
 GXditview.promptShell.promptDialog.cancel.label: Cancel
 GXditview.promptShell.promptDialog.cancel.translations: #override \
 	<BtnUp>:	Cancel() unset()
+
+GXditview*fontMap: \
+TR	-adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
+TI	-adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
+TB	-adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
+TBI	-adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
+CR	-adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
+CI	-adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
+CB	-adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
+CBI	-adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
+HR	-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
+HI	-adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
+HB	-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
+HBI	-adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
+NR	-adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
+NI	-adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
+NB	-adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
+NBI	-adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
+S	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
+SS	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
+M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
+G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
diff -Naur groff-1.18.1.4.orig/src/xditview/XFontName.c groff-1.18.1.4/src/xditview/XFontName.c
--- groff-1.18.1.4.orig/src/xditview/XFontName.c	2000-02-06 09:38:58.000000000 +0000
+++ groff-1.18.1.4/src/xditview/XFontName.c	2006-10-18 18:54:44.000000000 +0000
@@ -225,6 +225,7 @@
 	return True;
 }
 
+Bool
 XCopyFontName (name1, name2, fontNameAttributes)
 	XFontName	*name1, *name2;
 	unsigned int	fontNameAttributes;
diff -Naur groff-1.18.1.4.orig/src/xditview/config.h groff-1.18.1.4/src/xditview/config.h
--- groff-1.18.1.4.orig/src/xditview/config.h	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/src/xditview/config.h	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,4 @@
+#ifndef _config_h
+#include "../include/config.h"
+#define _config_h
+#endif
diff -Naur groff-1.18.1.4.orig/src/xditview/device.c groff-1.18.1.4/src/xditview/device.c
--- groff-1.18.1.4.orig/src/xditview/device.c	2000-12-02 21:12:53.000000000 +0000
+++ groff-1.18.1.4/src/xditview/device.c	2006-10-18 18:54:44.000000000 +0000
@@ -2,10 +2,12 @@
 
 #include <stdio.h>
 #include <ctype.h>
+#include <stdlib.h>
 
 #include <X11/Xos.h>
 #include <X11/Intrinsic.h>
 
+#include "config.h"
 #include "device.h"
 
 #ifndef FONTPATH
@@ -48,6 +50,9 @@
     Device *dev;
     struct charinfo *char_table[CHAR_TABLE_SIZE];
     struct charinfo *code_table[256];
+#ifdef ENABLE_MULTIBYTE
+    struct charrange *range;
+#endif
 };
 
 struct charinfo {
@@ -71,6 +76,15 @@
 static struct charinfo *add_char();
 static int read_charset_section();
 static char *canonicalize_name();
+#ifdef ENABLE_MULTIBYTE
+struct charrange {
+	struct charrange *next;
+	int width;
+	int start_code;
+	int end_code;
+};
+static void add_charrange();
+#endif
 
 static
 Device *new_device(name)
@@ -256,6 +270,9 @@
 	f->char_table[i] = 0;
     for (i = 0; i < 256; i++)
 	f->code_table[i] = 0;
+#ifdef ENABLE_MULTIBYTE
+    f->range = 0;
+#endif
     return f;
 }
 
@@ -267,6 +284,15 @@
 
     if (!f)
 	return;
+#ifdef ENABLE_MULTIBYTE
+    {
+	struct charrange *cp, *cp2;
+	for (cp = f->range; cp != NULL; cp = cp2) {
+		cp2 = cp->next;
+		XtFree((char *)cp);
+	}
+    }
+#endif
     XtFree(f->name);
     for (i = 0; i < CHAR_TABLE_SIZE; i++) {
 	struct charinfo *ptr = f->char_table[i];
@@ -342,6 +368,20 @@
 {
     struct charinfo *p;
 
+#ifdef ENABLE_MULTIBYTE
+    int wc;
+    extern DviWCharP();
+    if (DviWCharP(name, &wc)) {
+	    struct charrange *rp;
+	    for (rp = f->range; rp != NULL; rp = rp->next) {
+		    if (rp->start_code <= wc && wc <= rp->end_code) {
+			    *widthp = scale_round(rp->width, ps, 
+						  f->dev->unitwidth);
+			    return 1;
+		    }
+	    }
+    }
+#endif
     name = canonicalize_name(name);
     for (p = f->char_table[hash_name(name) % CHAR_TABLE_SIZE];; p = p->next) {
 	if (!p)
@@ -424,6 +464,22 @@
     return ci;
 }
 
+#ifdef ENABLE_MULTIBYTE
+static void
+add_charrange(f, width, start_code, end_code)
+    DeviceFont *f;
+    int width, start_code, end_code;
+{
+	struct charrange *ci;
+	ci = (struct charrange *)XtMalloc(sizeof(struct charrange));
+	ci->start_code = start_code;
+	ci->end_code = end_code;
+	ci->width = width;
+	ci->next = f->range;
+	f->range = ci;
+}
+#endif
+
 /* Return non-zero for success. */
 
 static
@@ -439,11 +495,31 @@
 	int width;
 	int code;
 	char *p;
+#ifdef ENABLE_MULTIBYTE
+	int scode, ecode;
+#endif
 
 	current_lineno++;
 	name = strtok(buf, WS);
 	if (!name)
 	    continue;		/* ignore blank lines */
+#ifdef ENABLE_MULTIBYTE
+	if (sscanf(name, "u%X..u%X", &scode, &ecode) == 2) {
+		p = strtok((char *)0, WS);
+		if (!p)
+			break;
+		if (sscanf(p, "%d", &width) != 1) {
+			error("bad width field");
+			return 0;
+		}
+		p = strtok((char *)0, WS);
+		if (!p) {
+			error("missing type field");
+			return 0;
+		}
+		add_charrange(f, width, scode, ecode); 
+	} else {
+#endif
 	p = strtok((char *)0, WS);
 	if (!p)			/* end of charset section */
 	    break;
@@ -479,6 +555,9 @@
 	    }
 	    last_charinfo = add_char(f, name, width, code);
 	}
+#ifdef ENABLE_MULTIBYTE
+	}
+#endif
     }
     return 1;
 }
@@ -559,7 +638,7 @@
 FILE *open_device_file(device_name, file_name, result)
      char *device_name, *file_name, **result;
 {
-  char *buf, *path;
+  char *buf;
   FILE *fp;
 
   buf = XtMalloc(3 + strlen(device_name) + 1 + strlen(file_name) + 1);
diff -Naur groff-1.18.1.4.orig/src/xditview/draw.c groff-1.18.1.4/src/xditview/draw.c
--- groff-1.18.1.4.orig/src/xditview/draw.c	2000-02-06 09:39:00.000000000 +0000
+++ groff-1.18.1.4/src/xditview/draw.c	2006-10-18 18:54:44.000000000 +0000
@@ -10,6 +10,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <math.h>
+#include "config.h"
 
 /* math.h on a Sequent doesn't define M_PI, apparently */
 #ifndef M_PI
@@ -17,6 +18,7 @@
 #endif
 
 #include "DviP.h"
+#include "encoding.h" /* XXX */
 
 #define DeviceToX(dw, n) ((int)((n) * (dw)->dvi.scale_factor + .5))
 #define XPos(dw) (DeviceToX((dw), (dw)->dvi.state->x - \
@@ -25,6 +27,10 @@
 
 static int FakeCharacter();
 
+/* font.c */
+extern int MaxFontPosition();
+
+void
 HorizontalMove(dw, delta)
 	DviWidget	dw;
 	int		delta;
@@ -32,6 +38,7 @@
 	dw->dvi.state->x += delta;
 }
 
+void
 HorizontalGoto(dw, NewPosition)
 	DviWidget	dw;
 	int		NewPosition;
@@ -39,6 +46,7 @@
 	dw->dvi.state->x = NewPosition;
 }
 
+void
 VerticalMove(dw, delta)
 	DviWidget	dw;
 	int		delta;
@@ -46,6 +54,7 @@
 	dw->dvi.state->y += delta;
 }
 
+void
 VerticalGoto(dw, NewPosition)
 	DviWidget	dw;
 	int		NewPosition;
@@ -53,6 +62,7 @@
 	dw->dvi.state->y = NewPosition;
 }
 
+void
 AdjustCacheDeltas (dw)
 	DviWidget	dw;
 {
@@ -94,14 +104,21 @@
 		}
 }
 
+void
 FlushCharCache (dw)
 	DviWidget	dw;
 {
 	if (dw->dvi.cache.char_index != 0) {
 		AdjustCacheDeltas (dw);
+#ifdef ENABLE_MULTIBYTE
+		XDrawText16 (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
+			   dw->dvi.cache.start_x, dw->dvi.cache.start_y,
+			   dw->dvi.cache.cache, dw->dvi.cache.index + 1);
+#else
 		XDrawText (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
 			   dw->dvi.cache.start_x, dw->dvi.cache.start_y,
 			   dw->dvi.cache.cache, dw->dvi.cache.index + 1);
+#endif
 	}	
 	dw->dvi.cache.index = 0;
 	dw->dvi.cache.max = DVI_TEXT_CACHE_SIZE;
@@ -115,6 +132,7 @@
 	dw->dvi.cache.start_y = dw->dvi.cache.y = YPos (dw);
 }
 
+void
 Newline (dw)
 	DviWidget	dw;
 {
@@ -123,6 +141,7 @@
 	dw->dvi.word_flag = 0;
 }
 
+void
 Word (dw)
 	DviWidget	dw;
 {
@@ -135,7 +154,6 @@
     :\
 	(fi)->max_bounds.width\
 )
- 
 
 static
 int charExists (fi, c)
@@ -152,14 +170,25 @@
 		|| p->ascent != 0 || p->descent != 0 || p->attributes != 0);
 }
 
-static
+static void
+#ifdef ENABLE_MULTIBYTE
+DoCharacter (dw, c, wid, char2xchar2b)
+#else
 DoCharacter (dw, c, wid)
+#endif
 	DviWidget dw;
 	int c;
 	int wid;    /* width in device units */
+#ifdef ENABLE_MULTIBYTE
+	void (*char2xchar2b)();
+#endif
 {
 	register XFontStruct	*font;
+#ifdef ENABLE_MULTIBYTE
+	register XTextItem16	*text;
+#else
 	register XTextItem	*text;
+#endif
 	int	x, y;
 	
 	x = XPos(dw);
@@ -225,9 +254,25 @@
 			text->font = None;
 		dw->dvi.cache.x += text->delta;
 	}
+#ifdef ENABLE_MULTIBYTE
+	if (charExists(font, c) || char2xchar2b) {
+#else
 	if (charExists(font, c)) {
+#endif
 		int w;
+#ifdef ENABLE_MULTIBYTE
+		if (char2xchar2b) {
+		    (*char2xchar2b)(c,
+				    &dw->dvi.cache.char_cache[dw->dvi.cache.char_index++]);
+		} else {
+			dw->dvi.cache.char_cache[dw->dvi.cache.char_index].
+				byte1 =	(unsigned char)'\0';
+			dw->dvi.cache.char_cache[dw->dvi.cache.char_index++].
+				byte2 =	(unsigned char)c;
+		}
+#else
 		dw->dvi.cache.char_cache[dw->dvi.cache.char_index++] = (char) c;
+#endif
 		++text->nchars;
 		w = charWidth(font, c);
 		dw->dvi.cache.x += w;
@@ -291,7 +336,11 @@
 	if (map)
 		c = DviCharIndex (map, buf);
 	if (c >= 0)
+#ifdef ENABLE_MULTIBYTE
+		DoCharacter (dw, c, wid, map->char2XChar2b);
+#else
 		DoCharacter (dw, c, wid);
+#endif
 	else
 		(void) FakeCharacter (dw, buf, wid);
 	dw->dvi.state->font_number = prevFont;
@@ -345,6 +394,7 @@
 	return 1;
 }
 
+void
 PutNumberedCharacter (dw, c)
 	DviWidget dw;
 	int c;
@@ -368,7 +418,11 @@
 				   dw->dvi.state->font_size, c, &wid))
 		return;
 	if (dw->dvi.native) {
+#ifdef ENABLE_MULTIBYTE
+		DoCharacter (dw, c, wid, NULL);
+#else
 		DoCharacter (dw, c, wid);
+#endif
 		return;
 	}
 	map = QueryFontMap (dw, dw->dvi.state->font_number);
@@ -379,7 +433,11 @@
 	     name = device_name_for_code ((DeviceFont *)0, c)) {
 		int code = DviCharIndex (map, name);
 		if (code >= 0) {
+#ifdef ENABLE_MULTIBYTE
+			DoCharacter (dw, code, wid, map->char2XChar2b);
+#else
 			DoCharacter (dw, code, wid);
+#endif
 			break;
 		}
 		if (FakeCharacter (dw, name, wid))
@@ -387,13 +445,14 @@
 	}
 }
 
+void
 ClearPage (dw)
 	DviWidget	dw;
 {
 	XClearWindow (XtDisplay (dw), XtWindow (dw));
 }
 
-static
+static void
 setGC (dw)
 	DviWidget	dw;
 {
@@ -417,7 +476,7 @@
 	}
 }
 
-static
+static void
 setFillGC (dw)
 	DviWidget	dw;
 {
@@ -444,6 +503,7 @@
 	}
 }
 
+void
 DrawLine (dw, x, y)
 	DviWidget	dw;
 	int		x, y;
@@ -459,6 +519,7 @@
 		   xp + DeviceToX (dw, x), yp + DeviceToX (dw, y));
 }
 
+void
 DrawCircle (dw, diam)
 	DviWidget	dw;
 	int		diam;
@@ -473,6 +534,7 @@
 		  d, d, 0, 64*360);
 }
 
+void
 DrawFilledCircle (dw, diam)
 	DviWidget	dw;
 	int		diam;
@@ -490,6 +552,7 @@
 		  d, d, 0, 64*360);
 }
 
+void
 DrawEllipse (dw, a, b)
 	DviWidget	dw;
 	int		a, b;
@@ -501,6 +564,7 @@
 		  DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
 }
 
+void
 DrawFilledEllipse (dw, a, b)
 	DviWidget	dw;
 	int		a, b;
@@ -515,6 +579,7 @@
 		  DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
 }
 
+void
 DrawArc (dw, x0, y0, x1, y1)
 	DviWidget	dw;
 	int		x0, y0, x1, y1;
@@ -541,6 +606,7 @@
 		  rad*2, rad*2, angle1, angle2);
 }
 
+void
 DrawPolygon (dw, v, n)
 	DviWidget	dw;
 	int		*v;
@@ -572,7 +638,7 @@
 	XtFree((char *)p);
 }
 
-
+void
 DrawFilledPolygon (dw, v, n)
 	DviWidget	dw;
 	int		*v;
@@ -608,7 +674,7 @@
 
 #define POINTS_MAX 10000
 
-static
+static void
 appendPoint(points, pointi, x, y)
 	XPoint	*points;
 	int	*pointi;
@@ -623,7 +689,7 @@
 
 #define FLATNESS 1
 
-static
+static void
 flattenCurve(points, pointi, x2, y2, x3, y3, x4, y4)
 	XPoint	*points;
 	int	*pointi;
@@ -659,7 +725,7 @@
 	}
 }
 
-
+void
 DrawSpline (dw, v, n)
 	DviWidget	dw;
 	int		*v;
diff -Naur groff-1.18.1.4.orig/src/xditview/encoding.h groff-1.18.1.4/src/xditview/encoding.h
--- groff-1.18.1.4.orig/src/xditview/encoding.h	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/src/xditview/encoding.h	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,31 @@
+// -*- C++ -*-
+/* Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
+
+This file is part of groff.
+
+groff is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+groff is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
+
+#ifndef ENCODING_H
+#define ENCODING_H
+
+#include "config.h"
+
+#ifdef ENABLE_MULTIBYTE
+typedef unsigned int wchar;
+#else
+typedef char wchar;
+#endif
+
+#endif
diff -Naur groff-1.18.1.4.orig/src/xditview/font.c groff-1.18.1.4/src/xditview/font.c
--- groff-1.18.1.4.orig/src/xditview/font.c	2000-02-06 09:39:01.000000000 +0000
+++ groff-1.18.1.4/src/xditview/font.c	2006-10-18 18:54:44.000000000 +0000
@@ -9,10 +9,16 @@
 #include <X11/StringDefs.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <stdlib.h>
 #include "DviP.h"
 #include "XFontName.h"
 
-static DisposeFontSizes();
+static void DisposeFontSizes();
+void DestroyFontMap();
+
+/* XFontName.c */
+extern Bool XParseFontName();
+extern Bool XFormatFontName();
 
 static char *
 savestr (s)
@@ -115,7 +121,7 @@
 # define SizePosition		8
 # define EncodingPosition	13
 
-static
+static int
 ConvertFontNameToSize (n)
 	char	*n;
 {
@@ -191,7 +197,7 @@
 	return sizes;
 }
 
-static
+static void
 DisposeFontSizes (dw, fs)
 	DviWidget	dw;
 	DviFontSizeList	*fs;
@@ -263,6 +269,7 @@
 	return f;
 }
 
+void
 ForgetFonts (dw)
 	DviWidget dw;
 {
@@ -322,6 +329,7 @@
 }
 #endif
 
+void
 ParseFontMap (dw)
 	DviWidget	dw;
 {
@@ -357,6 +365,7 @@
 	dw->dvi.font_map = fm;
 }
 
+void
 DestroyFontMap (font_map)
 	DviFontMap	*font_map;
 {
@@ -374,6 +383,7 @@
 
 /* ARGSUSED */
 
+void
 SetFontPosition (dw, position, dvi_name, extra)
 	DviWidget	dw;
 	int		position;
diff -Naur groff-1.18.1.4.orig/src/xditview/lex.c groff-1.18.1.4/src/xditview/lex.c
--- groff-1.18.1.4.orig/src/xditview/lex.c	2000-02-06 09:39:02.000000000 +0000
+++ groff-1.18.1.4/src/xditview/lex.c	2006-10-18 18:54:44.000000000 +0000
@@ -2,8 +2,10 @@
 #include <X11/IntrinsicP.h>
 #include <X11/StringDefs.h>
 #include <stdio.h>
+#include "config.h"
 #include "DviP.h"
 
+int
 DviGetAndPut(dw, cp)
     DviWidget	dw;
     int		*cp;
@@ -67,6 +69,7 @@
 	return Buffer;
 } 
 
+int
 GetNumber(dw)
 	DviWidget	dw;
 {
@@ -90,6 +93,98 @@
 		DviUngetC(dw, c);
 	return i;
 }
+
+#ifdef ENABLE_MULTIBYTE
+#include <locale.h>
+#include <langinfo.h>
+#include <iconv.h>
+#include <errno.h>
+
+static iconv_t icd;
+void
+DviInitLocale()
+{
+	char *enc;
+	setlocale(LC_ALL, "");
+	enc = nl_langinfo(CODESET);
+	icd = iconv_open("UCS-2BE", enc);
+}
+
+int
+DviGetCharacter(dw, cp)
+	DviWidget	dw;
+	char   *cp;
+{
+	char inbuf[8];
+	char outbuf[8];
+	char *inp, *outp;
+	size_t inbytesleft, outbytesleft = 8;
+	int i = 0;
+	int j;
+	int wc = 0;
+	int c;
+	size_t r;
+
+	while (wc == 0) {
+		DviGetC(dw, &c);
+		if (c == EOF)
+			return EOF;
+		inbuf[i++] = c;
+		inbytesleft = i;
+		outbytesleft = BUFSIZ;
+		inp = inbuf;
+		outp = outbuf;
+		r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
+		if (r == (size_t)-1) {
+			if (errno == EILSEQ) {
+				/* illegal sequence */
+			} else if (errno == EINVAL) {
+				/* incomplete sequence */
+				continue;
+			} else if (errno == E2BIG) {
+				/* no room to output? */
+				
+			}
+			DviUngetC(dw, c);
+		}
+		/* ok - pass inbuf to cp */
+		for (j = 0; j < i; j++) {
+			cp[j] = inbuf[j];
+		}
+		cp[j] = '\0';
+		return i;
+	}
+	/* NOT REACHED */
+}
+
+int
+DviWCharP(char *name, int *wc)
+{
+	char outbuf[BUFSIZ];
+	char *inp, *outp;
+	int inbytesleft, outbytesleft;
+	size_t r;
+	*wc = 0;
+	inp = name;
+	inbytesleft = strlen(name);
+	outp = outbuf;
+	outbytesleft = sizeof(outbuf)-1;
+	r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
+	if (r < 0) {
+		return 0;
+	}
+	/* UCS-2 check */
+	if (outbuf + 2 != outp) {
+		return 0;
+	}
+	for (inp = outbuf; inp < outp; inp++) {
+		*wc <<= 8;
+		*wc |= (*inp) & 0x0ff;
+	}
+	return 1;
+}
+
+#endif
 	
 /*
 Local Variables:
diff -Naur groff-1.18.1.4.orig/src/xditview/page.c groff-1.18.1.4/src/xditview/page.c
--- groff-1.18.1.4.orig/src/xditview/page.c	2000-02-06 09:39:02.000000000 +0000
+++ groff-1.18.1.4/src/xditview/page.c	2006-10-18 18:54:44.000000000 +0000
@@ -28,6 +28,7 @@
 	return m;
 }
 
+void
 DestroyFileMap (m)
 	DviFileMap	*m;
 {
@@ -39,6 +40,7 @@
 	}
 }
 
+void
 ForgetPagePositions (dw)
 	DviWidget	dw;
 {
@@ -46,6 +48,7 @@
 	dw->dvi.file_map = 0;
 }
 
+void
 RememberPagePosition(dw, number)
 	DviWidget	dw;
 	int		number;
@@ -64,6 +67,7 @@
 		m->position = ftell (dw->dvi.file);
 }
 
+int
 SearchPagePosition (dw, number)
 	DviWidget	dw;
 	int		number;
@@ -75,6 +79,7 @@
 	return m->position;
 }
 
+void
 FileSeek(dw, position)
 DviWidget	dw;
 long		position;
diff -Naur groff-1.18.1.4.orig/src/xditview/parse.c groff-1.18.1.4/src/xditview/parse.c
--- groff-1.18.1.4.orig/src/xditview/parse.c	2002-04-07 04:48:51.000000000 +0000
+++ groff-1.18.1.4/src/xditview/parse.c	2006-10-18 18:54:44.000000000 +0000
@@ -9,15 +9,49 @@
 #include <X11/StringDefs.h>
 #include <stdio.h>
 #include <ctype.h>
+#include "config.h"
 #include "DviP.h"
+#include "encoding.h"
 
 static int StopSeen = 0;
-static ParseDrawFunction(), ParseDeviceControl();
-static push_env(), pop_env();
+static void ParseDrawFunction(), ParseDeviceControl();
+static void push_env(), pop_env();
+
+/* draw.c */
+extern int PutCharacter();
+extern int PutNumberedCharacter();
+extern void HorizontalGoto();
+extern void Word();
+extern void VerticalGoto();
+extern void VerticalMove();
+extern void FlushCharCache();
+extern void Newline();
+extern void DrawLine();
+extern void DrawCircle();
+extern void DrawFilledCircle();
+extern void DrawEllipse();
+extern void DrawFilledEllipse();
+extern void DrawArc();
+extern void DrawPolygon();
+extern void DrawFilledPolygon();
+extern void DrawSpline();
+
+/* Dvi.c */
+extern void SetDevice();
+
+/* page.c */
+extern void RememberPagePosition();
+
+/* font.c */
+extern void SetFontPosition();
+
+/* lex.c */
+extern int GetNumber();
 
 #define HorizontalMove(dw, delta)	((dw)->dvi.state->x += (delta))
 
 
+int
 ParseInput(dw)
     register DviWidget	dw;
 {
@@ -57,11 +91,17 @@
 					   DviGetC(dw,&otherc)-'0');
 			/* fall through */
 		case 'c':	/* single ascii character */
+#ifdef ENABLE_MULTIBYTE
+			DviGetCharacter(dw, Buffer);
+			if (Buffer[0] == ' ')
+			    break;
+#else
 			DviGetC(dw,&c);
 		    	if (c == ' ')
 			    break;
 			Buffer[0] = c;
 			Buffer[1] = '\0';
+#endif
 			(void) PutCharacter (dw, Buffer);
 			break;
 		case 'C':
@@ -69,10 +109,15 @@
 			(void) PutCharacter (dw, Buffer);
 			break;
 		case 't':
+#ifdef ENABLE_MULTIBYTE
+			while (DviGetCharacter(dw, Buffer) != EOF
+			       && Buffer[0] != ' ' && Buffer[0] != '\n') {
+#else
 			Buffer[1] = '\0';
 			while (DviGetC (dw, &c) != EOF
 			       && c != ' ' && c != '\n') {
 				Buffer[0] = c;
+#endif
 				HorizontalMove (dw, PutCharacter (dw, Buffer));
 			}
 			break;
@@ -158,7 +203,7 @@
 	}
 }
 
-static
+static void
 push_env(dw)
 	DviWidget	dw;
 {
@@ -177,7 +222,7 @@
 	dw->dvi.state = new;
 }
 
-static
+static void
 pop_env(dw)
 	DviWidget	dw;
 {
@@ -188,7 +233,7 @@
 	XtFree ((char *) old);
 }
 
-static
+static void
 InitTypesetter (dw)
 	DviWidget	dw;
 {
@@ -200,7 +245,7 @@
 
 #define DRAW_ARGS_MAX 128
 
-static
+static void
 ParseDrawFunction(dw, buf)
 DviWidget	dw;
 char		*buf;
@@ -284,13 +329,12 @@
 	}
 } 
 
-static
+static void
 ParseDeviceControl(dw)				/* Parse the x commands */
 	DviWidget	dw;
 {
         char str[20], str1[50];
 	int c, n;
-	extern int LastPage, CurrentPage;
 
 	GetWord (dw, str, 20);
 	switch (str[0]) {			/* crude for now */
diff -Naur groff-1.18.1.4.orig/src/xditview/xditview.c groff-1.18.1.4/src/xditview/xditview.c
--- groff-1.18.1.4.orig/src/xditview/xditview.c	2002-06-23 14:11:55.000000000 +0000
+++ groff-1.18.1.4/src/xditview/xditview.c	2006-10-18 18:54:44.000000000 +0000
@@ -46,6 +46,7 @@
 #include <X11/Xaw/SimpleMenu.h>
 #include <X11/Xaw/SmeBSB.h>
 
+#include <stdlib.h>
 #include <signal.h>
 
 #include "Dvi.h"
@@ -101,7 +102,7 @@
  * Report the syntax for calling xditview.
  */
 
-static
+static void
 Syntax(call)
 	char *call;
 {
@@ -126,12 +127,12 @@
     char    *name;
     void    (*function)();
 } menuEntries[] = {
-    "nextPage",	    NextPage,
-    "previousPage", PreviousPage,
-    "selectPage",   SelectPage,
-    "print",	    Print,
-    "openFile",	    OpenFile,
-    "quit",	    Quit,
+    {"nextPage",    NextPage},
+    {"previousPage",PreviousPage},
+    {"selectPage",  SelectPage},
+    {"print",	    Print},
+    {"openFile",    OpenFile},
+    {"quit",	    Quit},
 };
 
 static void	NextPageAction(), PreviousPageAction(), SelectPageAction();
@@ -139,17 +140,18 @@
 static void	AcceptAction(), CancelAction();
 static void	PrintAction();
 static void	RerasterizeAction();
+static void     MakePrompt();
 
 XtActionsRec xditview_actions[] = {
-    "NextPage",	    NextPageAction,
-    "PreviousPage", PreviousPageAction,
-    "SelectPage",   SelectPageAction,
-    "Print",	    PrintAction,
-    "OpenFile",	    OpenFileAction,
-    "Rerasterize",  RerasterizeAction,
-    "Quit",	    QuitAction,
-    "Accept",	    AcceptAction,
-    "Cancel",	    CancelAction,
+    {"NextPage",     NextPageAction},
+    {"PreviousPage", PreviousPageAction},
+    {"SelectPage",   SelectPageAction},
+    {"Print",	     PrintAction},
+    {"OpenFile",     OpenFileAction},
+    {"Rerasterize",  RerasterizeAction},
+    {"Quit",	     QuitAction},
+    {"Accept",	     AcceptAction},
+    {"Cancel",	     CancelAction},
 };
 
 #define MenuNextPage		0
@@ -318,6 +320,7 @@
 
 static char fileBuf[1024];
 
+static void
 ResetMenuEntry (entry)
     Widget  entry;
 {
@@ -516,6 +519,7 @@
     CancelAction (widget, event, params, num_params);
 }
 
+static void
 MakePrompt(centerw, prompt, func, def)
 Widget	centerw;
 char *prompt;
diff -Naur groff-1.18.1.4.orig/src/xditview/xtotroff.c groff-1.18.1.4/src/xditview/xtotroff.c
--- groff-1.18.1.4.orig/src/xditview/xtotroff.c	2000-03-01 13:50:49.000000000 +0000
+++ groff-1.18.1.4/src/xditview/xtotroff.c	2006-10-18 18:54:44.000000000 +0000
@@ -2,6 +2,7 @@
  * xtotroff
  *
  * convert X font metrics into troff font metrics
+ * XXX: ENABLE_MULTIBYTE may not work yet
  */
 
 #include	<X11/Xlib.h>
@@ -10,6 +11,7 @@
 #include	<unistd.h>
 #include	<stdlib.h>
 #include	<fcntl.h>
+#include	"config.h"
 #include	"XFontName.h"
 #include	"DviChar.h"
 
@@ -171,6 +173,47 @@
 			fprintf (out, "spacewidth %d\n", w);
 	}
 	fprintf (out, "charset\n");
+#if 0 /* def	ENABLE_MULTIBYTE */
+	if (fi->min_byte1 != 0 || fi->max_byte1 != 0) {
+		/*
+		 * 2 byte code font.
+		 */
+		int N;
+		int D = fi->max_char_or_byte2 -	fi->min_char_or_byte2 + 1;
+		int max = (fi->max_byte1 - fi->min_byte1 + 1) *
+			(fi->max_char_or_byte2 - fi->min_char_or_byte2 + 1);
+		unsigned byte1;
+		unsigned byte2;
+		unsigned int euc_code;
+
+		for (N = 0; N < max; N++) {
+			byte1 = N / D + fi->min_byte1;
+			byte2 = N % D + fi->min_char_or_byte2;
+			euc_code = ((byte1 << 8) | byte2) & 0xffff | 0x8080;
+			wid = fi->max_bounds.width;
+			fputc(byte1 & 0xff | 0x80, out);/* output EUC code */
+			fputc(byte2 & 0xff | 0x80, out);/* output EUC code */
+			fprintf (out, "\t%d", wid);
+			if (groff_flag) {
+				int	param[5];
+				param[0] = fi->max_bounds.ascent;
+				param[1] = fi->max_bounds.descent;
+				param[2] = 0 /* charRBearing (fi, c) - wid */;
+				param[3] = 0 /* charLBearing (fi, c) */;
+				param[4] = 0; /* XXX */
+				for (j = 0; j < 5; j++)
+					if (param[j] < 0)
+						param[j] = 0;
+				for (j = 4; j >= 0; j--)
+					if (param[j] != 0)
+						break;
+				for (k = 0; k <= j; k++)
+					fprintf (out, ",%d", param[k]);
+			}
+			fprintf (out, "\t0\t%#x\n", euc_code);
+		}
+	} else
+#endif /* ENABLE_MULTIBYTE */
 	for (c = fi->min_char_or_byte2; c <= fi->max_char_or_byte2; c++) {
 		char *name = DviCharName (char_map,c,0);
 		if (charExists (fi, c) && (groff_flag || name)) {
diff -Naur groff-1.18.1.4.orig/stamp-h groff-1.18.1.4/stamp-h
--- groff-1.18.1.4.orig/stamp-h	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/stamp-h	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1 @@
+timestamp
diff -Naur groff-1.18.1.4.orig/tmac/Makefile.sub groff-1.18.1.4/tmac/Makefile.sub
--- groff-1.18.1.4.orig/tmac/Makefile.sub	2002-07-13 20:41:16.000000000 +0000
+++ groff-1.18.1.4/tmac/Makefile.sub	2006-10-18 18:54:44.000000000 +0000
@@ -25,15 +25,19 @@
   html.tmac www.tmac \
   eqnrc \
   troffrc troffrc-end \
-  hyphen.us
+  hyphen.us \
+  andocj.tmac \
+  euc-jp.tmac \
+  gb.tmac big5.tmac
 SPECIALFILES=an.tmac man.tmac s.tmac ms.tmac
-STRIPFILES=e.tmac doc.tmac doc-old.tmac
-MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms
+STRIPFILES=e.tmac doc.tmac doc-old.tmac docj.tmac
+MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms docj-ditroff docj-nroff
 mdocdir=$(tmacdir)/mdoc
 CLEANADD=\
   stamp-wrap stamp-sed *-wrap man.tmac-sed ms.tmac-sed \
   stamp-strip e.tmac-s doc.tmac-s doc-old.tmac-s \
-  doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s
+  doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s \
+  docj.tmac-s docj-ditroff-s docj-nroff-s
 tmac_s_prefix=
 tmac_an_prefix=
 tmac_wrap=
diff -Naur groff-1.18.1.4.orig/tmac/andocj.tmac groff-1.18.1.4/tmac/andocj.tmac
--- groff-1.18.1.4.orig/tmac/andocj.tmac	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/tmac/andocj.tmac	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,12 @@
+.\" Load either tmac.an or tmac.doc.
+.if !\n(.g .ab These macros require groff.
+.de Dd
+.rm Dd
+.do mso tmac.docj
+\\*(Dd\\
+..
+.de TH
+.rm TH
+.do mso tmac.an
+\\*(TH\\
+..
diff -Naur groff-1.18.1.4.orig/tmac/big5.tmac groff-1.18.1.4/tmac/big5.tmac
--- groff-1.18.1.4.orig/tmac/big5.tmac	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/tmac/big5.tmac	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,15 @@
+.\" Kinsoku table for the BIG5 encoding of Chinese, recoded from
+.\" kinsoku.el in Emacs 22.0.50.
+.\" Needs review by native zh_TW speaker.
+.\"
+.cflags 256 ¡B¡C¡A¡D¡G¡F¡H¡I¡Ã¡Ä
+.cflags 256 ¡²Éi¡X¡þ¡U¡L¡¦¡¨¡^
+.cflags 256 ¡f¡b¡r¡n¡v¡z¡j¡Ñ¡×¡Õ¡Ø¡Û¡ñ¢X
+.cflags 256 ¡½¡µ¡¶¡¾¡¿¡°¢E¡÷¡ö¡ô¡ã
+.cflags 512 ¡Ö¡Ù¡ï¡ð¢X¢C¡ì
+.cflags 512 ÛÖ¶yÅV¡D¡¶¡ù£H¢}
+.\"
+.\" http://tcl.apache.org/sources/tcl/tools/encoding/big5.txt lists U+FF0D
+.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
+.\"
+.hc ¡Ð
diff -Naur groff-1.18.1.4.orig/tmac/docj-ditroff groff-1.18.1.4/tmac/docj-ditroff
--- groff-1.18.1.4.orig/tmac/docj-ditroff	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/tmac/docj-ditroff	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,305 @@
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" 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. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"	This product includes software developed by the University of
+.\"	California, Berkeley and its contributors.
+.\" 4. Neither the name of the University 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 REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE
+.\" 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.
+.\"
+.\"     @(#)doc-ditroff	5.8 (Berkeley) 8/5/91
+.\"
+.\" tmac.mdoc-ditroff
+.if \n(.g .if !rC .nr C 0
+.ds aD \fI\s10
+.ds aR \f(CO\s10
+.ds cM \f(CB\s10
+.ds dF \fR\s10
+.ds eM \fI\s10
+.ds eR \fC\s10
+.ds eV \fC\s10
+.ds fA \f(CO\s10
+.ds fD \f(CB\s10
+.ds fL \f(CB\s10
+.ds fN \f(CB\s10
+.ds fP \fP\s0
+.ds fS \s0
+.ds fT \f(CO\s10
+.ds Hs \fR\s10
+.ds iC \f(CB\s10
+.ds lI \fC
+.ds lP \fR\|(\|\fP\s10
+.ds lp \fR(\fP\s10
+.ds rP \fR\|)\|\fP\s10
+.ds rp \fR)\fP\s10
+.ds lB \fR\^[\^\fP\s10
+.ds rB \fR\^]\fP\s10
+.ds mL \fB\s10
+.ds nM \f(CB\s10
+.ds nO \fR\s10
+.ds nT \s0
+.ds pA \fC\s10
+.ds Pu \fR{\ .\ ,\ :\ ;\ (\ )\ [\ ]\ \fR}
+.ds rA \fR\s10
+.ds rT \f(CO\s10
+.ds sH \fB\s10
+.ds sP \s0
+.ds sY \fB\s10
+.ds sX \fR\s10
+.ds tF \fR
+.ds tN \s9
+.ds vA \fI\s10
+.ds Vs \fR\s10
+.ds vT \f(CB\s10
+.ds xR \fC\s10
+.tr *\(**
+.nr sI \w\fC,u*5
+.nr Ti \n(sIu
+.nr Pp .5v
+.ds lS \0
+.nr lS \w'\0'u
+.nr dI 6n
+.de pL
+.nr Hm .5i
+.nr Fm .5i
+.nr ll 6.5i
+.ll 6.5i
+.nr lt 6.5i
+.lt 6.5i
+.nr po 1i
+.po 1.i
+.nr dV .5v
+..
+.ds <= \(<=
+.ds >= \(>=
+.ie \n(.g \{\
+.	ds Lq \(lq
+.	ds Rq \(rq
+.\}
+.el \{\
+.	ds Lq \&``
+.	ds Rq \&''
+.\}
+.ds ua \(ua
+.ds aa \(aa
+.ds ga \(ga
+.ds sR \&'
+.ds sL \&`
+.ds q \&"
+.ds Pi \(*p
+.ds Ne \(!=
+.ds Le \(<=
+.ds Ge \(>=
+.ds Lt <
+.ds Gt >
+.ds Pm \(+-
+.ds If \(if
+.ds Na \fINaN\fP
+.ds Ba \fR\&|\fP
+.nr gX 0
+.de hK
+.ds hT \\*(dT
+.if !"\\*(cH"Null" \{\
+.       ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
+.       el .as hT \\|(\\|\\*(cH\\|)
+.\}
+.if "\\*(cH"Null" \{\
+.	if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
+.\}
+.wh 0 hM
+.wh -1.25i fM
+.nr nL \\n(nl
+.ie \\n(gX==1 \{\
+.	rm n1
+.	bp
+.\}
+.el \{\
+'	bp
+.\}
+.if \\n(nL>0 \{\
+.	if !\\nC \{\
+.		nr % 1
+.	\}
+.\}
+.nr gX 0
+.em lM
+..
+.nr fW \w\fC0
+.de sW
+.nr sW \w\fC\\$1
+.ie \\n(sW>=\\n(fW \{\
+.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
+.       el .nr sW \\n(sW/\\n(fW
+.\}
+.el \{\
+.	ie \\n(sW>0 .nr sW 1
+.	el .nr sW 0
+.\}
+..
+.de aW
+.nr sW \w\fC\\*(A\\$1
+.ie \\n(sW>=\\n(fW \{\
+.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
+.       el .nr sW \\n(sW/\\n(fW
+.\}
+.el \{\
+.	ie \\n(sW>0 .nr sW 1
+.	el .nr sW 0
+.\}
+..
+.de Ql
+.if \\n(aC==0  \{\
+.	ds mN Ql
+.       ds A1 \\$1
+.       ds A2 \\$2
+.       ds A3 \\$3
+.       ds A4 \\$4
+.       ds A5 \\$5
+.       ds A6 \\$6
+.       ds A7 \\$7
+.       ds A8 \\$8
+. 	nr fV \\n(.$
+. 	fV
+.\}
+.nr aP \\n(aP+1
+.aW \\n(aP
+.nr aP \\n(aP-1
+.if \\n(sW>2 .Li
+.if \\n(sW<=2 \{\
+.	if (\\n(aP>0) \{\
+.		ds A\\n(aP Li
+.		nr aP \\n(aP -1
+.	\}		
+.	if (\\n(aP==0) \{\
+.		rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
+.		rm S1 S2 S3 S4 S5 S6 S7 S8 S9
+.		rn A8 A9
+.		rn A7 A8
+.		rn A6 A7
+.		rn A5 A6
+.		rn A4 A5
+.		rn A3 A4
+.		rn A2 A3
+.		rn A1 A2
+.		ds A1 Li
+.	 	nr fV \\n(aC+1
+.		nr aC 0
+.		fV
+.	\}
+.	ds qL \&\\*(sL
+.	ds qR \&\\*(sR
+.	En
+.\}
+..
+.de Sh
+.nr nS 0
+.nr sE 0
+.nr iS 0
+'ad
+.ie "\\$1"NAME" \{\
+.       hK
+'       in 0
+.\}
+.el \{\
+.	ie "\\$1"Ì¾Á°" \{\
+.      		hK
+'		in 0
+.	\}
+.	el \{\
+.		ie "\\$1"Ì¾¾Î" \{\
+.       		hK
+'       		in 0
+.		\}
+.		el \{\
+.       		nr nS 0
+.       		nr nA 0
+.			nr nF 0
+.       		nr nT 0
+.       		nr nY 0
+.       		nr oT 0
+.       		if "\\$1"SYNOPSIS" \{\
+.				na
+.				nr nS 1
+.			\}
+.       		if "\\$1"½ñ¼°" \{\
+.				na
+.				nr nS 1
+.			\}
+.       		if "\\$1"DESCRIPTION" \{\
+.				nr fY 0
+.				nr fZ 0
+.				nr fB 0
+.				nr Fb 0
+.				ds Fb
+.			\}
+.       		if "\\$1"ÀâÌÀ" \{\
+.				nr fY 0
+.				nr fZ 0
+.				nr fB 0
+.				nr Fb 0
+.				ds Fb
+.			\}
+.       		if "\\$1"²òÀâ" \{\
+.				nr fY 0
+.				nr fZ 0
+.				nr fB 0
+.				nr Fb 0
+.				ds Fb
+.			\}
+.       		if "\\$1"SEE" \{\
+.               		nr nA 1
+.               		na
+.       		\}
+.       		if "\\$1"´ØÏ¢¹àÌÜ" \{\
+.               		nr nA 1
+.               		na
+.       		\}
+.       		if "\\$1"FILES" .nr nF 1
+.       		if "\\$1"¥Õ¥¡¥¤¥ë" .nr nF 1
+.       		if "\\$1"´ØÏ¢¥Õ¥¡¥¤¥ë" .nr nF 1
+.       		if "\\$1"STANDARDS" .nr nT 1
+.       		if "\\$1"½àµò" .nr nT 1
+.       		if "\\$1"µ¬³Ê" .nr nT 1
+.       		if "\\$1"AUTHORS" .nr nY 1
+.       		if "\\$1"Ãø¼Ô" .nr nY 1
+.       		if "\\$1"ºî¼Ô" .nr nY 1
+.			if "\\$1"SEE" .nr sE 1
+.			if "\\$1"´ØÏ¢¹àÌÜ" .nr sE 1
+.       		in 0
+.       		nr aN 0
+.		\}
+.	\}
+.\}
+.pL
+'sp
+.ns
+.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
+.if !\\n(cR .ne 3
+'fi
+\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
+\&\fP\s0\&
+.in \\n(.iu+\\n(Tiu
+.ns
+..
diff -Naur groff-1.18.1.4.orig/tmac/docj-nroff groff-1.18.1.4/tmac/docj-nroff
--- groff-1.18.1.4.orig/tmac/docj-nroff	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/tmac/docj-nroff	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,247 @@
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" 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. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"	This product includes software developed by the University of
+.\"	California, Berkeley and its contributors.
+.\" 4. Neither the name of the University 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 REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE
+.\" 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.
+.\"
+.\"     @(#)doc-nroff	5.6 (Berkeley) 8/5/91
+.\"
+.\" tmac.mdoc-nroff
+.ds aD \fI
+.ds aR \fI
+.ds cM \fB
+.ds dF \fR
+.ds eM \fI
+.ds eR \fR
+.ds eV \fR
+.ds fA \fI
+.ds fD \fB
+.ds fL \fB
+.ds fN \fB
+.ds fP \fP
+.ds fS
+.ds fT \fI
+.ds Hs \fR
+.ds iC \fB
+.ds lI \fR
+.ds lP \fR\|(\fP
+.ds rP \fR\|)\fP
+.ds lp \fR\|(\fP
+.ds rp \fR\|)\fP
+.ds lB \fR\|[\|\fP
+.ds rB \fR\|]\fP
+.ds mL \fB
+.ds nM \fB
+.ds nO \fR
+.ds pA \fI
+.ds Pu {\ .\ ,\ ;\ :\ (\ )\ [\ ]}
+.ds rA \fR
+.ds rT \fI
+.ds sH \fB
+.ds sP
+.ds sY \fB
+.ds sX \fI
+.ds tF \fR
+.ds tN
+.ds vA \fI
+.ds Vs \fR
+.ds vT \fB
+.ds xR \fR
+.nr sI .5i
+.nr Ti .5i
+.nr cR 1
+.nr Pp 1v
+.ds lS \0\0
+.nr lS \w'\0\0'u
+.nr dI 6n
+.de pL
+.ie \\n(cR .nr Hm 0
+.el .nr Hm .5i
+.nr Fm .5i
+.nr ll 78n
+.ll 78n
+.nr lt 78n
+.lt 78n
+.nr po 0i
+.po 0i
+.nr dV 1v
+.ad l
+.na
+..
+.ds <= \&<\&=
+.ds >= \&>\&=
+.ds Rq ''
+.ds Lq ``
+.ds ua ^
+.ds aa \'
+.ds ga \`
+.ds sL `
+.ds sR '
+.ds q \&"
+.ds Pi pi
+.ds Ne !=
+.ds Le <=
+.ds Ge >=
+.ds Lt <
+.ds Gt >
+.ds Pm +-
+.ds If infinity
+.ds Na \fINaN\fP
+.ds Ba \fR\&|\fP
+
+.de hK
+.nr % 1
+.ds hT \\*(dT
+.if !"\\*(cH"Null" \{\
+.	ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
+.	el .as hT \\|(\\|\\*(cH\\|)
+.\}
+.if "\\*(cH"Null" .if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
+.ie \\n(cR \{\
+.	hM
+.	wh -1v fM
+.\}
+.el \{\
+.	wh 0 hM
+.	wh -1.167i fM
+.\}
+.if \\n(nl==0:\\n(nl==-1 'bp
+.em lM
+..
+.nr fW \w'0'
+.de sW
+.nr sW \w\\$1
+.ie \\n(sW>=\\n(fW \{\
+.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
+.       el .nr sW \\n(sW/\\n(fW
+.\}
+.el .nr sW 0
+..
+.de aW
+.nr sW \w\\*(A\\$1
+.ie \\n(sW>=\\n(fW \{\
+.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
+.       el .nr sW \\n(sW/\\n(fW
+.\}
+.el .nr sW 0
+..
+.de Ql
+.if \\n(aC==0  \{\
+.	ds mN Ql
+.	ds A1 \\$1
+.	ds A2 \\$2
+.	ds A3 \\$3
+.	ds A4 \\$4
+.	ds A5 \\$5
+.	ds A6 \\$6
+.	ds A7 \\$7
+.	ds A8 \\$8
+.	ds A9 \\$9
+.	nr fV \\n(.$
+. 	fV
+.\}
+.ds qL \&\\*(sL
+.ds qR \&\\*(sR
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.de Sh
+.nr nS 0
+.nr sE 0
+.nr iS 0
+.ie "\\$1"NAME" \{\
+.       hK
+'       in 0
+.\}
+.el \{\
+.	ie "\\$1"Ì¾Á°" \{\
+.      		hK
+'       	in 0
+.	\}
+.	el \{\
+.		ie "\\$1"Ì¾¾Î" \{\
+.       		hK
+'       		in 0
+.		\}
+.		el \{\
+.       		nr nS 0
+.       		nr nA 0
+.       		nr nF 0
+.       		nr nT 0
+.       		nr nY 0
+.       		nr aN 0
+.       		nr oT 0
+.       		if "\\$1"SEE" .nr nA 1
+.       		if "\\$1"´ØÏ¢¹àÌÜ" .nr nA 1
+.       		if "\\$1"FILES" .nr nF 1
+.       		if "\\$1"¥Õ¥¡¥¤¥ë" .nr nF 1
+.       		if "\\$1"´ØÏ¢¥Õ¥¡¥¤¥ë" .nr nF 1
+.       		if "\\$1"STANDARDS" .nr nT 1
+.       		if "\\$1"½àµò" .nr nT 1
+.       		if "\\$1"µ¬³Ê" .nr nT 1
+.       		if "\\$1"SYNOPSIS" .nr nS 1
+.       		if "\\$1"½ñ¼°" .nr nS 1
+.       		if "\\$1"DESCRIPTION" \{\
+.               		rr fB
+.               		rr Fb
+.               		ds Fb
+.               		nr fY 0
+.               		nr fZ 0
+.      			\}
+.       		if "\\$1"ÀâÌÀ" \{\
+.               		rr fB
+.               		rr Fb
+.               		ds Fb
+.               		nr fY 0
+.               		nr fZ 0
+.      			 \}
+.       		if "\\$1"²òÀâ" \{\
+.               		rr fB
+.               		rr Fb
+.               		ds Fb
+.               		nr fY 0
+.               		nr fZ 0
+.       		\}
+.			if "\\$1"AUTHORS" .nr nY 1
+.			if "\\$1"Ãø¼Ô" .nr nY 1
+.			if "\\$1"ºî¼Ô" .nr nY 1
+.     			in 0
+.		\}
+.	\}
+.\}
+.pL
+'sp
+.ns
+.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
+.if !\\n(cR .ne 3
+'fi
+\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
+\&\fP\s0\&
+.in \\n(.iu+\\n(Tiu
+.if "\\$1"SEE" .nr sE 1
+.ns
+..
diff -Naur groff-1.18.1.4.orig/tmac/docj.tmac groff-1.18.1.4/tmac/docj.tmac
--- groff-1.18.1.4.orig/tmac/docj.tmac	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/tmac/docj.tmac	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,3427 @@
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" 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. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"	This product includes software developed by the University of
+.\"	California, Berkeley and its contributors.
+.\" 4. Neither the name of the University 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 REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE
+.\" 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.
+.\"
+.\"     @(#)doc	5.8 (Berkeley) 8/5/91
+.\" Modified by jjc@jclark.com as follows: the doc-* files are assumed to be
+.\" installed as mdoc/doc-* rather than tmac.doc-* (the filename
+.\" `tmac.doc-common' would be too long); when using groff, the doc-* files
+.\" are loaded using the `mso' request.
+.\"   
+.\" .mdoc-parse - attempt to parse troff request arguments
+.\"     %beginstrip%
+.if \n(.g \{\
+.cp 0
+.ftr C CR
+.\}
+.if \n(.g .ig
+.de sO
+.so /usr/share/tmac/\\$1
+..
+.if !\n(.g .ig
+.de sO
+.mso mdoc/\\$1
+..
+.if t \{\
+.       sO docj-ditroff
+.\}
+.if n \{\
+.       sO docj-nroff
+.\}
+.sO doc-common
+.sO doc-syms
+.\" NS Db macro - start/stop DEBUG MODE
+.\" NS Db register DEBUG MODE
+.\" NS iN register DEBUG MODE (inline if 1, to stderr if 0 (default))
+.nr Db 0
+.de Db
+.ie \\n(.$==0 \{\
+.	ie \\n(Db==0 \{\
+.tm DEBUGGING ON
+.		nr Db 1
+.	\}
+.	el \{\
+.tm DEBUGGING OFF
+.		nr Db 0
+.	\}
+.\}
+.el \{\
+.	if "\\$1"on" \{\
+.tm DEBUGGING ON
+.		nr Db 1
+.	\}
+.	if "\\$1"off" \{\
+.tm DEBUGGING OFF
+.		nr Db 0
+.	\}
+.\}
+..
+.\" NS aV macro - parse argument vector (recursive) (.aV arg ... )
+.\" NS fV macro - parse argument vector (recursive) (.fV)
+.\" NS aC register argument counter (aV/fV)
+.\" NS fV register argument counter (must set to \\n(.$ prior to reuqest) (fV)
+.\" NS A[0-9] argument vector (aV/fV)
+.\" NS C[0-9] reg. arg type(1=macro, 2=arg, 3=punct-suf, 4=punct-pre) (aV/fV)
+.\" NS S[0-9] space vector (sV)
+.\" NS aP register argument pointer (aV)
+.\" NS yU local string used for debugging
+.\" NS iI local register (indent for inline debug mode)
+.\" NS mN name of calling request (set in each user requestable macro)
+.de aV
+.nr aC \\n(aC+1
+.ie "\\$1"|" \{\
+.	if "\\*(mN"Op" .ds A\\n(aC \fR\\$1\fP
+.	if "\\*(mN"Ar" .ds A\\n(aC \fR\\$1\fP
+.	if "\\*(mN"Fl" .ds A\\n(aC \fR\\$1\fP
+.	if "\\*(mN"Cm" .ds A\\n(aC \fR\\$1\fP
+.	if "\\*(mN"It" .ds A\\n(aC \fR\\$1\fP
+.\}
+.el .ds A\\n(aC \\$1
+.aU \\n(aC
+.nr C\\n(aC \\n(aT
+.s\\n(aT
+.if \\n(Db \{\
+.	if \\n(aT==1 .ds yU Executable
+.	if \\n(aT==2 .ds yU String
+.	if \\n(aT==3 .ds yU Closing Punctuation or suffix
+.	if \\n(aT==4 .ds yU Opening Punctuation or prefix
+.	if \\n(iN==1 \{\
+.		br
+.		nr iI \\n(.iu
+.		in -\\n(iIu
+.		if \\n(aC==1 \{\
+\&\fBDEBUG(argv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c
+.		\}
+\&\t\fBArgc:\fP \\n(aC  \fBArgv:\fP `\\*(A\\n(aC'  \fBLength:\fP \\n(sW
+\&\t\fBSpace:\fP `\\*(S\\n(aC'  \fBClass:\fP \\*(yU
+.	\}
+.	if \\n(iN==0 \{\
+.		if \\n(aC==1 \{\
+.			tm DEBUG(argv) MACRO: `.\\*(mN'  Line #: \\n(.c
+.		\}
+.		tm \tArgc: \\n(aC  Argv: `\\*(A\\n(aC'  Length: \\n(sW
+.		tm \tSpace: `\\*(S\\n(aC'  Class: \\*(yU
+.	\}
+.\}
+.ie \\n(.$==1 \{\
+.	nr aP 0
+.	ie \\n(dZ==1 \{\
+.		if \\n(oM>1 .as b1 \\*(S0
+.	\}
+.	el \{\
+.		if \\n(oM>0 \{\
+.			if \\n(fC==0 .as b1 \\*(S0
+.		\}
+.	\}
+.	ds S0 \\*(S\\n(aC
+.	if \\n(Db \{\
+.		if \\n(iN==1 \{\
+\&MACRO REQUEST: \t.\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
+.			br
+.			in \\n(iIu
+.		\}
+.		if \\n(iN==0 \{\
+.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
+.		\}
+.	\}
+.\}
+.el .aV \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.de fV
+.nr aC \\n(aC+1
+.if "\\*(A\\n(aC"|" \{\
+.	if "\\*(mN"Op" .ds A\\n(aC \fR\\*(A\\n(aC\fP
+.	if "\\*(mN"Ar" .ds A\\n(aC \fR\\*(A\\n(aC\fP
+.	if "\\*(mN"Fl" .ds A\\n(aC \fR\&\\*(A\\n(aC\fP
+.	if "\\*(mN"Cm" .ds A\\n(aC \fR\\*(A\\n(aC\fP
+.	if "\\*(mN"It" .ds A\\n(aC \fR\\*(A\\n(aC\fP
+.\}
+.aU \\n(aC
+.nr C\\n(aC \\n(aT
+.s\\n(aT
+.if \\n(Db \{\
+.	if \\n(aT==1 .ds yU Executable
+.	if \\n(aT==2 .ds yU String
+.	if \\n(aT==3 .ds yU Closing Punctuation or suffix
+.	if \\n(aT==4 .ds yU Opening Punctuation or prefix
+.	if \\n(iN==1 \{\
+.		br
+.		nr iI \\n(.iu
+.		in -\\n(iIu
+.		if \\n(aC==1 \{\
+\&\fBDEBUG(fargv) MACRO:\fP `.\\*(mN'  \fBLine #:\fP \\n(.c
+.		\}
+\&\t\fBArgc:\fP \\n(aC  \fBArgv:\fP `\\*(A\\n(aC'  \fBLength:\fP \\n(sW
+\&\t\fBSpace:\fP `\\*(S\\n(aC'  \fBClass:\fP \\*(yU
+.	\}
+.	if \\n(iN==0 \{\
+.		if \\n(aC==1 \{\
+.			tm DEBUG(fargv) MACRO: `.\\*(mN'  Line #: \\n(.c
+.		\}
+.		tm \tArgc: \\n(aC  Argv: `\\*(A\\n(aC'  Length: \\n(sW
+.		tm \tSpace: `\\*(S\\n(aC'  Class: \\*(yU
+.	\}
+.\}
+.ie \\n(fV==1 \{\
+.	nr aP 0
+.	ie \\n(dZ==1 \{\
+.		if \\n(oM>1 .as b1 \\*(S0
+.	\}
+.	el \{\
+.		if \\n(oM>0 \{\
+.			if \\n(fC==0 .as b1 \\*(S0
+.		\}
+.	\}
+.	ds S0 \\*(S\\n(aC
+.	nr fV 0
+.	if \\n(Db \{\
+.		ie \\n(iN \{\
+\&\tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
+.			br
+.			in \\n(iIu
+.		\}
+.		el \{\
+.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
+.		\}
+.	\}
+.\}
+.el \{\
+.	nr fV \\n(fV-1
+.	fV
+.\}
+..
+.\" NS aX macro - stuff saved strings into `b1' (used by -diag list)
+.de aX
+.nr aP \\n(aP+1
+.as b1 \&\\*(A\\n(aP
+.ie \\n(fV==1 \{\
+.	nr aP 0
+.	nr fV 0
+.\}
+.el \{\
+.	as b1 \&\\*(sV
+.	nr fV \\n(fV-1
+.	aX
+.\}
+..
+.\" NS aI macro - append arg to arg vector: .aI [arg] [type] (used by .En only)
+.de aI
+.ie \\n(aC<9 \{\
+.	nr aC \\n(aC+1
+.	ds A\\n(aC \\$1
+.	nr C\\n(aC \\$2
+.	s\\$2
+.	ds xV S\\n(aC
+.\}
+.el \{\
+.	tm Usage: Too many arguments (maximum of 8 accepted) (#\\n(.c)
+.	tm \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
+.\}
+..
+.\"
+.\" NS aZ macro - print buffer (pB) and clean up arg vectors (aY)
+.de aZ
+.pB
+.aY
+..
+.\" NS aY macro - clean up arg vector
+.de aY
+.rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
+.rm A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
+.rm S1 S2 S3 S4 S5 S6 S7 S8 S9
+.nr aC 0
+.nr aP 0
+..
+.\" NS pB macro - test for end of vector (eol) (print b1 buffer or divert)
+.de pB
+.ie \\n(dZ==1 \{\
+.	if \\n(oM==1 \{\&\\*(b1
+.		rm S0
+.		ds b1
+.	\}
+.	if \\n(oM==0 \{\
+.		x2
+.	\}
+.\}
+.el \{\
+.	ie \\n(oM==0 \{\&\\*(b1
+.		rm S0
+.		ds b1
+.	\}
+.	el \{\
+.		if ((\\n(sM==1)&(\\n(tP==0)) \{\
+.			x1
+.		\}
+.	\}
+.\}
+.hy
+..
+.\" NS x1 macro - save buffer and divert if tP flag set
+.\" NS eB diversion string
+.\" NS b2 string save of buffer
+.\" NS lK register count of lines read from input file
+.de x1
+.nr dZ \\n(dZ+1
+.ds b2 \\*(b1
+.ds b1
+.nr lK \\n(.c
+.ev 2
+.fi
+.di eB
+..
+.\"
+.\" NS x2 macro - end diversion and print
+.\" NS b0 string local temporary
+.de x2
+.br
+.di
+.ev
+.ie (\\n(.c-\\n(lK>1) \{\
+.	ds b0 \&\\*(eB\\
+.	ds b1 \\*(b2\\*(b0\\*(b1
+.\}
+.el .ds b1 \\*(b2\\*(b1
+\&\\*(b1
+.rm eB b2 b0 b1
+.nr dZ \\n(dZ-1
+..
+.\" NS Fl macro - flags (appends - and prints flags)
+.\" NS cF register save current font
+.\" NS cZ register save current font size
+.de Fl
+.as b1 \&\\*(fL
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 \{\
+.		as b1 \&\|\-\|\fP\s0
+.		pB
+.	\}
+.	el \{\
+.		ds mN Fl
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>0 \{\
+.	ie (\\n(aC-\\n(aP)==0 \{\
+.		as b1 \&\|\-\fP\s0
+.		aZ
+.	\}
+.	el \{\
+.		nr aP \\n(aP+1
+.		ie \\n(C\\n(aP==1 \{\
+.			as b1 \&\|\-\fP\s0
+.			\\*(A\\n(aP
+.		\}
+.		el \{\
+.			nr cF \\n(.f
+.			nr cZ \\n(.s
+.			if \\n(C\\n(aP==3 \{\
+.				as b1 \&\|\-\|
+.			\}
+.			fR
+.		\}
+.	\}
+.\}
+..
+.\"
+.\" NS fR macro - Fl flag recursion routine (special handling)
+.\" NS jM local register
+.\" NS jN local register
+.\"
+.de fR
+.hy 0
+.nr jM \\n(C\\n(aP
+.ie \\n(jM==1 \{\
+.	as b1 \&\fP\s0
+.	\\*(A\\n(aP
+.\}
+.el \{\
+.	nr jN \\n(aP
+.	ie \\n(jM==2 \{\
+.		ie !"\\*(A\\n(aP"\\*(Ba" \{\
+.			ie !"\\*(A\\n(aP"\fR|\fP" \{\
+.		               ie "\\*(A\\n(aP"-" .as b1 \&\|\-\^\-\|
+.		               el .as b1 \&\|\-\\*(A\\n(aP
+.			\}
+.			el .as b1 \&\\*(A\\n(aP
+.		\}
+.		el .as b1 \&\\*(A\\n(aP
+.	\}
+.	el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
+.	ie \\n(aC==\\n(aP \{\
+.		if \\n(jM==4 .as b1 \&\|\-
+.		as b1 \&\fP\s0
+.		aZ
+.	\}
+.	el \{\
+.		nr aP \\n(aP+1
+.		ie ((\\n(C\\n(aP==3)&(\\n(C\\n(jN==4)) .as b1 \&\|\-
+.		el .as b1 \&\\*(S\\n(jN
+.		fR \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.rr jM jN
+..
+.\"
+.\" NS nR macro - general name recursion routine
+.\" NS jM local register
+.\" NS jN local register
+.de nR
+.hy 0
+.nr jM \\n(C\\n(aP
+.ie \\n(jM==1 \{\
+.	as b1 \&\f\\n(cF\s\\n(cZ
+.	\\*(A\\n(aP
+.\}
+.el \{\
+.	nr jN \\n(aP
+.	ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
+.	el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
+.	ie \\n(aC==\\n(aP \{\
+.		as b1 \&\f\\n(cF\s\\n(cZ
+.		aZ
+.	\}
+.	el \{\
+.		nr aP \\n(aP+1
+.		as b1 \&\\*(S\\n(jN
+.		nR
+.	\}
+.\}
+.rr jM jN
+..
+.\" NS Ar macro - command line `argument' macro
+.\"
+.de Ar
+.as b1 \\*(aR
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 \{\
+.		as b1 file\ ...\fP\s0
+.		pB
+.	\}
+.	el \{\
+.		ds mN Ar
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>0 \{\
+.	ie (\\n(aC-\\n(aP)==0 \{\
+.		as b1 \&file\ ...\fP\s0
+.		aZ
+.	\}
+.	el \{\
+.		nr aP \\n(aP+1
+.		ie \\n(C\\n(aP==1 \{\
+.			as b1 \&file\ ...\fP\s0
+.			\\*(A\\n(aP
+.               \}
+.               el \{\
+.                       nr cF \\n(.f
+.			nr cZ \\n(.s
+.			if \\n(C\\n(aP==3 \{\
+.				as b1 \&file\ ...
+.			\}
+.                       nR
+.		\}
+.       \}
+.\}
+..
+.\" NS Ad macro - Addresses
+.de Ad
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Ad address ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Ad
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(aD
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Cd macro - Config declaration (for section 4 SYNOPSIS) (not callable)
+.\" needs work - not very translatable
+.de Cd
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Cd Configuration file declaration (#\\n(.c)
+. 	el \{\
+.		ds mN Cd
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+. 		nr fV \\n(.$
+. 		fV
+.	\}
+.\}
+.br
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(nM
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.	ie \\n(nS \{\
+.		if "\\*(mN"Cd" \{\
+.			rs
+.			ie \\n(nS>1 .br
+.			el \{\
+.				if \\n(iS==0 .nr iS \\n(Dsu
+.			\}
+.			in +\\n(iSu
+.			ti -\\n(iSu
+.			nr nS \\n(nS+1
+.		\}
+.	nR
+.	in -\\n(iSu
+.	\}
+.	el .nR
+.\}
+..
+.\" NS Cm macro - Interactive command modifier (flag)
+.de Cm
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Cm Interactive command modifier ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Cm
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(cM
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Dv macro - define variable
+.de Dv
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Dv define_variable ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Dv
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(eR
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Em macro - Emphasis
+.de Em
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 \{\
+.		tm Usage: .Em text ... \\*(Pu (#\\n(.c)
+.	\}
+.	el \{\
+.		ds mN Em
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(eM
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Er macro - Errnotype
+.de Er
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Er ERRNOTYPE ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Er
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(eR
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Ev macro - Environment variable
+.de Ev
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Ev ENVIRONMENT_VARIABLE ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Ev
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(eV
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Fd macro - function declaration - not callable (& no err check)
+.\" NS fD register subroutine test (in synopsis only)
+.\" NS fY register subroutine count (in synopsis only) (fortran only)
+.\" NS fZ register also subroutine count (in synopsis only)
+.de Fd
+.ds mN Fd
+.if \\n(nS>0 \{\
+.\"	if a variable type was the last thing given, want vertical space
+.	if \\n(fX>0 \{\
+.		Pp
+.		nr fX 0
+.	\}
+.\"	if a subroutine was the last thing given, want vertical space
+.	if \\n(fZ>0 \{\
+.		ie \\n(fD==0 \{\
+.			Pp
+.			rs
+.		\}
+.		el .br
+.	\}
+.	nr fD \\n(fD+1
+.\}
+.nr cF \\n(.f
+.nr cZ \\n(.s
+\&\\*(fD\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.br
+.ft \\n(cF
+.fs \\n(cZ
+..
+.\" NS Fr macro - function return value - not callable (at the moment)
+.de Fr
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Fr Function_return_value... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Fr
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(aR
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Ic macro - Interactive command
+.de Ic
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Ic Interactive command ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Ic
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(iC
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Li macro - literals
+.de Li
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage .Li argument ... \\*(Pu (#\\n(.c)
+.       el \{\
+.		ds mN Li
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.               nr fV \\n(.$
+.               fV
+.       \}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(lI
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Or macro - Pipe symbol (OR)
+.de Or
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Or ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Or
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(iC
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Ms macro - Math symbol
+.de Ms
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Ms Math symbol ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Ms
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(sY
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Nm macro - Name of command or page topic
+.\" NS n1 string - save first invocation of .Nm
+.\" NS iS register - indent second command line in a synopsis
+.de Nm
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 \{\
+.		ie "\\*(n1"" .tm Usage: .Nm Name(s) ... \\*(Pu (#\\n(.c)
+.		el \&\\*(nM\\*(n1\fP\s0
+.	\}
+.	el \{\
+.		ds mN Nm
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.               nr fV \\n(.$
+.               fV
+.       \}
+.\}
+.if \\n(aC>0 \{\
+.	ie \\n(aC==\\n(aP \{\
+.		as b1 \&\\*(nM\\*(n1\fP\s0
+.		aZ
+.	\}
+.	el \{\
+.		as b1 \\*(nM
+.		nr aP \\n(aP+1
+.		ie \\n(C\\n(aP==1 \{\
+.			as b1 \&\\*(n1\fP\s0
+.			\\*(A\\n(aP
+.		\}
+.		el \{\
+.			nr cF \\n(.f
+.			nr cZ \\n(.s
+.			if \\n(nS \{\
+.				if "\\*(mN"Nm" \{\
+.					rs
+.					in -\\n(iSu
+.					ie \\n(nS>1 .br
+.					el \{\
+.						if \\n(iS==0 \{\
+.							sw \\$1
+.					nr iS ((\\n(sWu+1)*\\n(fW)u
+.						\}
+.					\}
+.					in +\\n(iSu
+.					ti -\\n(iSu
+.					nr nS \\n(nS+1
+.				\}
+.			\}
+.			if "\\*(n1"" .ds n1 \\*(A\\n(aP
+.			nR
+.		\}
+.	\}
+.\}
+..
+.\" NS Pa macro - Pathname
+.de Pa
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 \&\\*(pA~\fP\s0
+.	el \{\
+.		ds mN Pa
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(pA
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Sy macro - Symbolics
+.de Sy
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Sy symbolic_text ... \\*(Pu (#\\n(.c)
+. 	el \{\
+.		ds mN Sy
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+. 		nr fV \\n(.$
+. 		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(sY
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Tn macro - Trade Name Macro
+.de Tn
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Tn
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(tN\\*(tF
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS nN macro - Trade Name Macro for inside of reference
+.de nN
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Tn
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(tN
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS Va macro - variable name macro
+.de Va
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Va variable_name(s) ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Va
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	as b1 \\*(vA
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\"
+.\" NS No macro - Normal text macro (default text style if mess up)
+.de No
+.as b1 \\*(nO
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 .tm Usage: .No must be called with arguments (#\\n(.c)
+.	el \{\
+.		ds mN No
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       ie \\n(C\\n(aP==1 \{\
+.		\\*(A\\n(aP
+.       \}
+.       el \{\
+.		nr cF \\n(.f
+.		nr cZ \\n(.s
+.		nR
+.       \}
+.\}
+..
+.\"------------------------------------------------------------------------
+.\" NS Op macro - Option Expression
+.de Op
+.if \\n(aC==0 \{\
+.	ds mN Op
+.\}
+.\" .ds qL \&\\*(lO
+.\" .ds qR \&\\*(rO
+.ds qL \&\\*(lB
+.ds qR \&\\*(rB
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
+..
+.\" NS Aq macro - Enclose string in angle brackets
+.de Aq
+.if \\n(aC==0 .ds mN Aq
+.ds qL \&<
+.ds qR \&>
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Bq macro - Enclose string in square brackets
+.de Bq
+.if \\n(aC==0 .ds mN Bq
+.ds qL \&\\*(lB
+.ds qR \&\\*(rB
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Dq macro - Enclose string in double quotes
+.de Dq
+.if \\n(aC==0 .ds mN Dq
+.ds qL \&\\*(Lq
+.ds qR \&\\*(Rq
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Eq macro - Enclose string in double quotes
+.de Eq
+.if \\n(aC==0 .ds mN Eq
+.ds qL \\$1
+.ds qR \\$2
+.En \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Pq macro - Enclose string in parenthesis
+.de Pq
+.if \\n(aC==0 .ds mN Pq
+.ds qL \&\\*(lP
+.ds qR \&\\*(rP
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Ql macro - Quoted literal is in file mdocj-[dit|n|g]roff (too large
+.\" an if-else to carry along recursively for `if n ...')
+.\"
+.\" NS Sq macro - Enclose string in single quotes
+.de Qq
+.if \\n(aC==0 .ds mN Qq
+.ds qL \&\\*q
+.ds qR \&\\*q
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Sq macro - Enclose string in single quotes
+.de Sq
+.if \\n(aC==0 .ds mN Sq
+.ds qL \&\\*(sL
+.ds qR \&\\*(sR
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\"
+.\" NS Es macro - Set up strings for .En call
+.de Es
+.if \\n(aC==0 \{\
+.	ie \\n(.$>2 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	el \{\
+.		ds qL \\$1
+.		ds qR \\$2
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.	ds qL \\*(A\\n(aP
+.	nr aP \\n(aP+1
+.	ds qR \\*(A\\n(aP
+.	ie \\n(aC>\\n(aP .c\\n(C\\n(aP
+.	el .aZ
+.\}
+..
+.\" .tm En beg arg(A[\\n(aP])==\\*(A\\n(aP;
+.\" .tm En oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
+.\" NS En macro - Enclose string with given args (eg [ and ] etc)
+.\" NS qL string variable set by calling macro
+.\" NS qR string variable set by calling macro
+.\" NS aJ register (for vR)
+.de En
+.ie \\n(aC==0 \{\
+.	ie \\n(.$==0 \{\
+.		as b1 \&\\*(qL\\*(qR
+.		pB
+.	\}
+.	el \{\
+.\".		as mN (En)
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.		as b1 \&\\*(qL
+.	\}
+.\}
+.el \{\
+.	as b1 \&\\*(qL
+.\}
+.if \\n(aC>0 \{\
+.	ie (\\n(aC-\\n(aP)==0 \{\
+.		as b1 \&\\*(qR
+.		aZ
+.	\}
+.	el \{\
+.		ie \\n(C\\n(aC==3 \{\
+.			nr aJ \\n(aC-1
+.			vR
+.			nr aJ \\n(aJ+1
+.			ds A\\n(aJ \&\\*(qR\\*(A\\n(aJ
+.			nr aJ 0
+.		\}
+.		el .aI \&\\*(qR 3
+.		nr aP \\n(aP+1
+.		if \\n(C\\n(aP==1 .\\*(A\\n(aP
+.		if \\n(C\\n(aP>1 \{\
+.			nr aP \\n(aP-1
+.			No
+.		\}
+.	\}
+.\}
+..
+.\" NS vR macro - vector routine (for En, trace backwards past trail punct)
+.de vR
+.if \\n(C\\n(aJ==3 \{\
+.	nr aJ \\n(aJ-1
+.	vR
+.\}
+..
+.\"------------------------------------------------------------------------
+.\" NS Ao macro - Angle open
+.de Ao
+.if \\n(aC==0 .ds mN Ao
+.ds qL \&<
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Ac macro - Angle close
+.de Ac
+.if \\n(aC==0 .ds mN Ac
+.ds qR \&>
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Bo macro - Bracket open
+.de Bo
+.if \\n(aC==0 .ds mN Bo
+.ds qL \&[
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Bc macro - Bracket close
+.de Bc
+.if \\n(aC==0 .ds mN Bc
+.ds qR \&]
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Do macro - Double Quote open
+.de Do
+.if \\n(aC==0 .ds mN Do
+.ds qL \&\\*(Lq
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Dc macro - Double Quote close
+.de Dc
+.if \\n(aC==0 .ds mN Dc
+.ds qR \&\\*(Rq
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Eo macro - Enclose open
+.de Eo
+.if \\n(aC==0 .ds mN Eo
+.ds qL \\$1
+.eO \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Ec macro - Enclose close
+.de Ec
+.if \\n(aC==0 .ds mN Ec
+.ds qR \\$1
+.eC \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Oo macro - Option open
+.de Oo
+.if \\n(aC==0 .ds mN Oo
+.ds qL \&[
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Oc macro - Option close
+.de Oc
+.if \\n(aC==0 .ds mN Oc
+.ds qR \&]
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Po macro - Parenthesis open
+.de Po
+.if \\n(aC==0 .ds mN Po
+.ds qL \&(
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Pc macro - Parenthesis close
+.de Pc
+.if \\n(aC==0 .ds mN Pc
+.ds qR \&)
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Qo macro - Straight Double Quote open
+.de Qo
+.if \\n(aC==0 .ds mN Qo
+.ds qL \&\\*q
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Qc macro - Straight Double Quote close
+.de Qc
+.if \\n(aC==0 .ds mN Qc
+.ds qR \&\\*q
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS So macro - Single Quote open
+.de So
+.if \\n(aC==0 .ds mN So
+.ds qL \&\\*(sL
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Sc macro - Single Quote close
+.de Sc
+.if \\n(aC==0 .ds mN Sc
+.ds qR \&\\*(sR
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Xo macro - Extend open (continue)
+.de Xo
+.if \\n(aC==0 .ds mN Xo
+.\" .nr mN 1
+.ds qL
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS Xe macro - Extend close (end)
+.de Xc
+.\" .nr mN 0
+.if \\n(aC==0 .ds mN Xc
+.ds qR
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS eO macro - enclose string open
+.\" NS oM register (extension possible)
+.de eO
+.nr oM \\n(oM+1
+.\" .tm eO last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
+.ie \\n(aC==0 \{\
+.       ie \\n(.$>0 \{\
+.               aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.		as b1 \\*(qL
+.       \}
+.	el \{\
+.		as b1 \\*(qL
+.		if (\\n(dZ==0)&(\\n(sM==1) \{\
+.			nr dZ \\n(dZ+1
+.			ds b2 \\*(b1
+.			ds b1
+.			nr lK \\n(.c
+.			ev 2
+.			fi
+.			di eB
+.		\}
+.	\}
+.\}
+.el \{\
+.	as b1 \\*(qL
+.\}
+.ie \\n(aC>0 \{\
+.	if \\n(aC>\\n(aP \{\
+.		nr aP \\n(aP+1
+.		ie \\n(C\\n(aP==1 .\\*(A\\n(aP
+.		el  \{\
+.			nr aP \\n(aP-1
+.			No
+.		\}
+.	\}
+.	if \\n(aC==\\n(aP \{\
+.		if \\n(tP==1 \{\
+.\" .tm SETTING Xt!!!
+.			nr Xt 1
+.		\}
+.\".\" .		ds S0
+.\"CHANGED		ds S0 \\*(iV
+.		aY
+.	\}
+.\}
+.el \{\
+.	if \\n(oM>1 .as b1 \\*(sV
+.\}
+..
+.\"
+.\" NS eC macro - enclose string close
+.\" NS aa local register
+.de eC
+.nr oM \\n(oM-1
+.\" tm eC last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
+.as b1 \\*(qR
+.if \\n(aC==0 \{\
+.       ie \\n(.$>0 \{\
+.               aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.       \}
+.	el \{\
+.		ie "\\*(xB"" \{\
+.			pB
+.		\}
+.		el \{\
+.			pB
+.\\*(L\\n(lC
+.			nr Xt 0
+.			ds xB
+.		\}
+.	\}
+.\}
+.if \\n(aC>0 \{\
+.	ie \\n(aC==\\n(aP \{\
+.		ie \\n(oM==0 \{\
+.			aZ
+.		\}
+.		el .aY
+.	\}
+.	el \{\
+.		nr aa \\n(aP+1
+.		if \\n(C\\n(aa==2 .as b1 \\*(S\\n(aC
+.\" tm CURRENT arg (aP==\\*(A\\n(aP and ap+1==\\*(A\\n(aa) tP==\\n(tP Xt==\\n(Xt
+.		rr aa
+.		if \\n(tP>0 \{\
+.\" tm UNSETTING Xt==\\n(Xt!!!!
+.			if \\n(Xt>0 .nr Xt \\n(Xt-1
+.\" tm NOW Xt==\\n(Xt!!!!
+.		\}
+.		No
+.	\}
+.\}
+..
+.\"------------------------------------------------------------------------
+.\" NS Pf macro - Prefix (calls .pF)
+.de Pf
+.if \\n(aC==0 .ds mN Pf
+.ds qL \&\\$1
+.pF \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\" NS pF macro - Prefix (for prefixing open quotes, brackets etc)
+.de pF
+.ie \\n(aC==0 \{\
+.	as b1 \&\\*(qL
+.	ie \\n(.$<2 \{\
+.		tm Warning: Missing arguments - prefix .Pf)
+.		pB
+.	\}
+.	el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.\}
+.el \{\
+.	ie (\\n(aC-\\n(aP)>1 \{\
+.		nr aP \\n(aP+1
+.		as b1 \&\\*(A\\n(aP
+.	\}
+.	el .tm Warning: .Pf: trailing prefix (#\\n(.c)
+.\}
+.if \\n(aC>0 \{\
+.	ie (\\n(aC-\\n(aP)==0 .aZ
+.	el \{\
+.		nr aP \\n(aP+1
+.		c\\n(C\\n(aP
+.	\}
+.\}
+..
+.\" NS Ns macro - remove space (space remove done by .aV or .fV)
+.de Ns
+.if \\n(aC==0 \{\
+.	ds mN Ns
+.	ie \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	el .tm Usage: .Ns must be called with arguments (#\\n(.c)
+.\}
+.No
+..
+.de Ap
+.if \\n(aC==0 \{\
+.	ds mN Ap
+.	tm Usage: Ap "cannot be first request on a line (no .Ap)" (#\\n(.c)
+.\}
+.as b1 \&'
+.No
+..
+.\" NS Hv macro - Hard (unpaddable) Space vector
+.\" NS iV string inter-vector space
+.\" NS sV string inter-argument space
+.de Hv
+.ds iV \\*(sV
+.ds sV \\*(hV
+..
+.\" NS Sv macro - Soft Space vector (troff limitation)
+.de Sv
+.ds sV \\*(iV
+..
+.\" NS Tv macro - Tab Space vector
+.de Tv
+.ds sV \\*(tV
+..
+.\" NS Sm macro - Space mode
+.\" NS sM register - default is one (space mode on)
+.nr sM 1
+.de Sm
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 .tm "Usage: .Sm [off | on]" (#\\n(.c)
+.	el \{\
+.		ds mN Sm
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>0 \{\
+.	nr aP \\n(aP+1
+.	if "\\*(A\\n(aP"on" \{\
+.		ds sV \\*(iV
+.		nr sM 1
+.	\}
+.	if "\\*(A\\n(aP"off" \{\
+.		ds sV
+.		rm S0 S1 S2 S3 S4 S5 S6 S7 S8 S9
+.		nr sM 0
+.	\}
+.	ie \\n(aC>\\n(aP \{\
+.		No
+.	\}
+.	el .aY
+.\}
+..
+.\"------------------------------------------------------------------------
+.\" Size and Argument type macros
+.\" NS aT macro - argument type
+.\" NS aU macro - argument type (same as .aT but uses A[1-9] strings
+.\" NS aT register argument type
+.if \n(.g \{\
+.de aT
+.nr aT 0
+.ie \\n(sW>2:(\A'\\$1'==0) \{\
+.	nr aT 2
+.\}
+.el \{\
+.	if \\n(sW==1 \{\
+.		ie \\n(z\\$1>2 \{\
+.			nr aT \\n(z\\$1
+.		\}
+.		el .nr aT 2
+.	\}
+.	if \\n(sW==2 \{\
+.		ie \\n(\\$1 \{\
+.			nr aT 1
+.		\}
+.		el .nr aT 2
+.	\}
+.\}
+..
+.de aU
+.nr aT 0
+.aW \\$1
+.ie \\n(sW>2:(\A'\\*(A\\$1'==0) .nr aT 2
+.el \{\
+.	if \\n(sW==1 \{\
+.		ie \\n(z\\*(A\\$1>2 \{\
+.			nr aT \\n(z\\*(A\\$1
+.		\}
+.		el .nr aT 2
+.	\}
+.	if \\n(sW==2 \{\
+.		ie (\\n(\\*(A\\$1) \{\
+.			nr aT 1
+.		\}
+.		el .nr aT 2
+.	\}
+.\}
+..
+.\}
+.if !\n(.g \{\
+.de aT
+.nr aT 0
+.ie \\n(sW>2 \{\
+.	nr aT 2
+.\}
+.el \{\
+.	if \\n(sW==1 \{\
+.		ie \\n(z\\$1>2 \{\
+.			nr aT \\n(z\\$1
+.		\}
+.		el .nr aT 2
+.	\}
+.	if \\n(sW==2 \{\
+.		ie \\n(\\$1 \{\
+.			nr aT 1
+.		\}
+.		el .nr aT 2
+.	\}
+.\}
+..
+.de aU
+.nr aT 0
+.aW \\$1
+.ie \\n(sW>2 .nr aT 2
+.el \{\
+.	if \\n(sW==1 \{\
+.		ie \\n(z\\*(A\\$1>2 \{\
+.			nr aT \\n(z\\*(A\\$1
+.		\}
+.		el .nr aT 2
+.	\}
+.	if \\n(sW==2 \{\
+.		ie (\\n(\\*(A\\$1) \{\
+.			nr aT 1
+.		\}
+.		el .nr aT 2
+.	\}
+.\}
+..
+.\}
+.\" NS s1 macro - set spacing for class type 1
+.\" NS s2 macro - set spacing for class type 2
+.\" NS s3 macro - set spacing for class type 3
+.\" NS s1 macro - set spacing for class type 1
+.\" NS s2 macro - set spacing for class type 2
+.\" NS s3 macro - set spacing for class type 3
+.\" NS s4 macro - set spacing for class type 4
+.\" NS S[0-9] string spacing
+.\" NS xX local register
+.\" NS aa local register
+.de s0
+.tm MDOC-ERROR: bogus type 0 (can't set space '\\*(A\\n(aC') (#\\n(.c)
+..
+.de s1
+.if \\n(\\*(A\\n(aC==3 \{\
+.	nr xX \\n(aC-1
+.	rm S\\n(xX
+.	ds S\\n(aC \\*(sV
+.\}
+.if \\n(\\*(A\\n(aC==2 \{\
+.	nr xX \\n(aC-1
+.\" this kludge can probably go away, but need to double check first
+.	ie "\\*(A\\n(aC"Nb" .ds S\\n(xX \\*(hV
+.	el .rm S\\n(xX
+.\}
+..
+.de s2
+.ds S\\n(aC \\*(sV
+..
+.de s3
+.if \\n(aC>1 \{\
+.	nr xX \\n(aC-1
+.	rm S\\n(xX
+.\}
+.ds S\\n(aC \\*(sV
+..
+.de s4
+.nr aa 0
+..
+.\" Class switches (on current argument aP)
+.\" NS c0 macro - catch errors (non-existent class type 0)
+.\" NS c1 macro - call request if type 1
+.\" NS c2 macro - call .No if type 2
+.\" NS c3 macro - call .No if type 3
+.\" NS c4 macro - call .No if type 4
+.de c0
+.tm MDOC-ERROR: bogus class 0 (can't determine '\\*(A\\n(aC') (#\\n(.c)
+..
+.de c1
+.\\*(A\\n(aP
+..
+.de c2
+.nr aP \\n(aP-1
+.No
+..
+.de c3
+.nr aP \\n(aP-1
+.No
+..
+.de c4
+.nr aP \\n(aP-1
+.No
+..
+.\" NS y1 macro - ignore if class 1
+.\" NS y2 macro - ignore if class 2
+.\" NS y3 macro - append if type 3
+.\" NS y4 macro - append if type 4
+.de y1
+.nr aa 1
+..
+.de y2
+.nr aa 1
+..
+.de y3
+.as b1 \\*(A\\n(aP
+.nr aP \\n(aP+1
+.n\\C\\n(aP
+..
+.de y4
+.as b1 \\*(A\\n(aP
+.nr aP \\n(aP+1
+.n\\C\\n(aP
+..
+.\"--------------------------------------------------------------------------
+.\" Ns Bf macro - Begin Font Mode (will be begin-mode/end-mode in groff & TeX)
+.\" Ns Ef macro - End Font Mode
+.de Bf
+.ds mN Bf
+.ie \\n(.$>0 \{\
+.	nr bF \\n(.f
+.	nr bZ \\n(.s
+.	if "\\$1"Em" \&\\*(eM\c
+.	if "\\$1"Li" \&\\*(lI\c
+.	if "\\$1"Sy" \&\\*(sY\c
+.	if "\\$1"-emphasis" \&\\*(eM\c
+.	if "\\$1"-literal" \&\\*(lI\c
+.	if "\\$1"-symbolic" \&\\*(sY\c
+.\}
+.el .tm Usage .Bf [Em | emphasis | Li | literal | Sy | symbolic] (#\\n(.c)
+..
+.de Ef
+.ds mN Ef
+.ie \\n(.$>0 .tm Usage .Ef (does not take arguments) (#\\n(.c)
+.el \&\f\\n(bF\s\\n(bZ
+..
+.\" Ns Bk macro - Begin Keep
+.\" Ns Ek macro - End Keep
+.\" Ns kS string - keep type
+.de Bk
+.ds mN Bk
+.ie \\n(.$==0 \{\
+.tm Usage: .Bk [-lines | -words] (#\\n(.c)
+.\}
+.el \{\
+.	if !"\\*(kS"" .tm .Bk: nesting keeps not implemented yet. (#\\n(.c)
+.	if "\\$1"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
+.	if "\\$1"-words" .Hv
+.	ds kS \\$1
+.\}
+..
+.de Ek
+.ds mN Ek
+.ie \\n(.$>0 .tm Usage .Ek (does not take arguments) (#\\n(.c)
+.el \{\
+.	if "\\*(kS"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
+.	if "\\*(kS"-words" .Sv
+.	rm kS
+.\}
+..
+.\" NS Bd macro - Begin Display display-type [offset string]
+.\" NS Ed macro - end Display
+.\" NS O[0-9] registers - stack of indent
+.\" NS d[0-9] registers - display-type stack
+.de Bd
+.ds mN Bd
+.ie \\n(.$==0 \{\
+.tm Usage: .Bd [-literal | -filled | -ragged | -unfilled] [-offset [string]] [-compact] (#\\n(.c)
+.\}
+.el \{\
+.	ds aa
+.	nr bV 0
+.       nr iD 0
+.	nr dP \\n(dP+1
+.       if "\\$1"-literal" \{\
+.		nr iD \\n(iD+1
+.               ds d\\n(dP dL
+.		nr cF \\n(.f
+.		nr cZ \\n(.s
+.		ie t \{\&\\*(lI
+'			ta 9n 18n 27n 36n 45n 54n 63n 72n
+.		\}
+.		el \{\
+'			ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
+.		\}
+.		nf
+.       \}
+.       if "\\$1"-filled" \{\
+.		nr iD \\n(iD+1
+.               ds d\\n(dP dF
+.		br
+.       \}
+.       if "\\$1"-ragged" \{\
+.		nr iD \\n(iD+1
+.               ds d\\n(dP dR
+.		na
+.       \}
+.       if "\\$1"-unfilled" \{\
+.		nr iD \\n(iD+1
+.               ds d\\n(dP dU
+.		nf
+.       \}
+.\" .tm Here is argc: \\n(.$ and here is iD \\n(iD
+.       if ((\\n(iD>=1)&(\\n(.$>\\n(iD)) \{\
+.		bV \\$2 \\$3 \\$4
+.	\}
+.	if \\n(O\\n(dP>0 'in \\n(.iu+\\n(O\\n(dPu
+.	if (\\n(bV==0) \{\
+.		if (\\n(nS==0) \{\
+.			ie "\\*(d\\n(dP"dR" .sp \\n(dVu
+.			el 'sp \\n(dVu
+.		\}
+.	\}
+.	if \\n(cR==0 .ne 2v
+.	nr bV 0
+.	nr iD 0
+.\}
+..
+.\" NS bV macro - resolve remaining .Bd arguments
+.de bV
+.\" .tm in bV with args: \\$1 \\$2 \\$3
+.nr iD 1
+.ds bY
+.if "\\$1"-offset" \{\
+.	ds bY \\$2
+.	if "\\*(bY"left" \{\
+.		nr iD \\n(iD+1
+.		nr O\\n(dP 0
+.	\}
+.	if "\\*(bY"right" \{\
+.		nr iD \\n(iD+1
+.		nr O\\n(dP (\\n(.l/3)u
+.	\}
+.	if "\\*(bY"center" \{\
+.		nr iD \\n(iD+1
+.		nr O\\n(dP (\\n(.l-\\n(.i)/4u
+.	\}
+.	if "\\*(bY"indent" \{\
+.		nr iD \\n(iD+1
+.		nr O\\n(dP \\n(dIu
+.	\}
+.	if "\\*(bY"indent-two" \{\
+.		nr iD \\n(iD+1
+.		nr O\\n(dP \\n(dIu+\\n(dIu
+.	\}
+.	if \\n(iD==1 \{\
+.		nr iD \\n(iD+1
+.		sW "\\*(bY"
+.		ie \\n(sW>2 \{\
+.			ie ((\\*(bY>9n)&(\\*(bY<100n)) \{\
+.				nr O\\n(dP \\*(bY
+.			\}
+.			el .nr O\\n(dP (\\n(sW)*\\n(fWu
+.		\}
+.		el \{\
+.			if \\n(sW==2 .aT \\*(bY
+.			ie \\n(aT==1 \{\
+.				nr O\\n(dP \\n(\\*(bY
+.			\}
+.			el .nr O\\n(dP \\*(bY
+.		\}
+.	\}
+.\}
+.if "\\$1"-compact" \{\
+.	nr bV 1
+.\}
+.if \\n(iD<\\n(.$ \{\
+.	ie "\\*(bY"" \{\
+.		bV \\$2 \\$3
+.	\}
+.	el \{\
+.		bV \\$3
+.	\}
+.\}
+..
+.\" NS Ed macro - end display
+.de Ed
+.ds mN Ed
+.br
+.if \\n(dP==0 .tm mdoc: Extraneous .Ed
+.if "\\*(d\\n(dP"dL" \{\
+.	ft \\n(cF
+.	fz \\n(cZ
+.\}
+.in \\n(.iu-\\n(O\\n(dPu
+.rr O\\n(dP
+.rm d\\n(dP
+.nr dP \\n(dP-1
+.fi
+.if t .ad
+..
+.\"--------------------------------------------------------------------------
+.\" NS Bl macro - begin list (.Bl list-type)
+.\" NS L[0-9] registers - stack of list types
+.de Bl
+.ie \\n(.$==0 \{\
+.tm Usage: .Bl [[-hang | -tag] [-width]] [ -item | -enum | -bullet | -diag] (#\\n(.c)
+.\}
+.el \{\
+.	ds mN Bl
+.	nr aP 0
+.	nr lC \\n(lC+1
+.	ds A1 \\$2
+.	ds A2 \\$3
+.	ds A3 \\$4
+.	ds A4 \\$5
+.	ds A5 \\$6
+.	ds A6 \\$7
+.	ds A7 \\$8
+.	ds A8 \\$9
+.	nr fV \\n(.$-1
+.	if "\\$1"-hang" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC hL
+.		nr w\\n(lC 6n
+.		nr tC  1
+.	\}
+.	if "\\$1"-tag" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC tL
+.		nr tC  1
+.	\}
+.	if "\\$1"-item" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC iT
+.		nr tC  1
+.	\}
+.	if "\\$1"-enum" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC nU
+.		nr w\\n(lC 3n
+.		nr tC  1
+.	\}
+.	if "\\$1"-bullet" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC bU
+.		nr w\\n(lC 2n
+.		nr tC  1
+.	\}
+.	if "\\$1"-dash" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC hU
+.		nr w\\n(lC 2n
+.		nr tC  1
+.	\}
+.	if "\\$1"-hyphen" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC hU
+.		nr w\\n(lC 2n
+.		nr tC  1
+.	\}
+.	if "\\$1"-inset" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC lL
+.		nr tC  1
+.	\}
+.	if "\\$1"-diag" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC mL
+.		nr mL 1
+.	\}
+.	if "\\$1"-ohang" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC oL
+.		nr tC 1
+.	\}
+.	if "\\$1"-column" \{\
+.		nr aP \\n(aP+1
+.		ds L\\n(lC cL
+.	\}
+.	ie \\n(aP==0 \{\
+.	tm \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	tm Usage: .Bl [[-inset|-tag] -width] [-item|-enum|-bullet|-diag] (#\\n(.c)
+.	\}
+.	el \{\
+.		tY
+.		if (\\n(aP==1)&(\\n(aP<\\n(.$) \{\
+.			nr aP 0
+.			lV
+.			if "\\*(L\\n(lC"cL" \{\
+.				W\\n(wV
+.				nr w\\n(lC 0
+'				in -\\n(eWu
+.				ie \\n(v\\n(lC==1 \{\
+.				       nr aa 0
+.				\}
+.				el \{\
+.					sp \\n(dVu
+.				\}
+.				nf
+.				nr wV 0
+.			\}
+.		\}
+.	\}
+.	nr aP 0
+.\" .	ds b1
+.	aY
+.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
+.\}
+..
+.if \n(.g \{\
+.	nr i 10
+.	while \ni<100 \{\
+.	     nr num!\nin 1
+.	     nr i +1
+.	\}
+.\}
+.\" NS lV macro - resolve remaining .Bl arguments
+.de lV
+.nr aP \\n(aP+1
+.if \\n(fV>=\\n(aP \{\
+.	nr iD 0
+.	if "\\*(A\\n(aP"-compact" \{\
+.		nr iD 1
+.		nr v\\n(lC 1
+.	\}
+.	if "\\*(A\\n(aP"-width" \{\
+.		nr iD 1
+.		nr aP \\n(aP+1
+.		nr tW 1
+.		ds t\\n(lC TagwidtH
+.		ds tS \\*(A\\n(aP
+.		aW \\n(aP
+.		ie \\n(sW>2 \{\
+.			nr w\\n(lC (\\n(sW)*\\n(fWu
+.			if \\n(sW==3 \{\
+.				ie \\n(.g \{\
+.					if \A'\\*(tS' .if r num!\\*(tS \{\
+.						nr w\\n(lC \\*(tS
+.					\}
+.				\}
+.				el \{\
+.					if (\\*(tS>9n)&(\\*(tS<99n) \{\
+.						nr w\\n(lC \\*(tSu
+.					\}
+.				\}
+.			\}
+.		\}
+.		el \{\
+.			aT \\*(tS
+.			ie \\n(aT==1 \{\
+.				nr w\\n(lC \\n(\\*(tS
+.			\}
+.			el \{\
+.				nr w\\n(lC \\*(tSu
+.			\}
+.		\}
+.	\}
+.	if "\\*(A\\n(aP"-offset" \{\
+.		nr iD 1
+.		nr aP \\n(aP+1
+.		ie "\\*(A\\n(aP"indent" \{\
+.			nr o\\n(lC \\n(Dsu
+.		\}
+.		el \{\
+.			ds tS \\*(A\\n(aP
+.			aW \\n(aP
+.			ie \\n(sW>2 \{\
+.				nr o\\n(lC (\\n(sW)*\\n(fWu
+.				ie \\n(.g \{\
+.					if \A'\\*(tS' .if r num!\\*(tS \{\
+.						nr o\\n(lC \\*(tS
+.					\}
+.				\}
+.				el \{\
+.					if (\\*(tS>9n)&(\\*(tS<100n) \{\
+.						nr o\\n(lC \\*(tS
+.					\}
+.				\}
+.			\}
+.			el \{\
+.				ie \\n(C\\n(aP==1 .nr o\\n(lC \\n(\\*(tS
+.				el .nr o\\n(lC \\*(tS
+.			\}
+.		\}
+.	\}
+.	if \\n(iD==0 \{\
+.		if "\\*(L\\n(lC"cL" \{\
+.			nr wV \\n(wV+1
+.			ds A\\n(wV \\*(A\\n(aP
+.		\}
+.	\}
+.	if \\n(fV>\\n(aP .lV
+.\}
+..
+.\" NS El macro - end list
+.\" NS iD local register
+.de El
+.ie \\n(.$>0 \{\
+.	tm Usage: .El (#\\n(.c)
+.\}
+.el \{\
+.	ds mN El
+.	nr iD 0
+.	if "\\*(L\\n(lC"cL" \{\
+.		nr iD 1
+.		cC
+.	\}
+.	if "\\*(L\\n(lC"nU" \{\
+.		nr nU 0
+.	\}
+.	if \\n(mL>0 \{\
+.		nr iD 1
+.		nr mL 0
+.		tZ
+.		nr lC \\n(lC-1
+.		tY
+.	\}
+.	if "\\*(L\\n(lC"iT" \{\
+'		in \\n(.iu-\\n(o\\n(lCu
+.		tZ
+.		nr lC \\n(lC-1
+.		tY
+.		nr iD 1
+.	\}
+.	if "\\*(L\\n(lC"oL" \{\
+'		in \\n(.iu-\\n(o\\n(lCu
+.		tZ
+.		nr lC \\n(lC-1
+.		tY
+.		nr iD 1
+.	\}
+.	if "\\*(L\\n(lC"lL" \{\
+'		in \\n(.iu-\\n(o\\n(lCu
+.		tZ
+.		nr lC \\n(lC-1
+.		tY
+.		nr iD 1
+.	\}
+.	if \\n(iD==0 \{\
+.		lE
+.	\}
+.	br
+.	nr iD 0
+.\}
+..
+.\" NS It macro - list item
+.\" NS iD local register
+.\" NS aA save pA font string for section FILES (no underline if nroff)
+.de It
+.if "\\*(L\\n(lC"" \{\
+.	tm Usage .Bl -list-type [-width [string] | -compact | -offset [string]] (#\\n(.c)
+.	tm .It \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
+.\}
+.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
+.ne 3v
+.ie \\n(.$>0 \{\
+.	ds mN It
+.	ds b1
+.	nr iD 0
+.	ds A1 \\$1
+.	ds A2 \\$2
+.	ds A3 \\$3
+.	ds A4 \\$4
+.	ds A5 \\$5
+.	ds A6 \\$6
+.	ds A7 \\$7
+.	ds A8 \\$8
+.	ds A9 \\$9
+.	nr fV \\n(.$
+.	if "\\*(L\\n(lC"mL" \{\
+.		nr iD 1
+.		nr aP 0
+.		aX
+.		\\*(L\\n(lC
+.	\}
+.	if "\\*(L\\n(lC"cL" \{\
+.		ds b1
+.		nr aP 0
+.		nr iD 1
+.		\\*(L\\n(lC
+.	\}
+.	if "\\*(L\\n(lC"iT" \{\
+.		nr aP 0
+.		nr iD 1
+.		\\*(L\\n(lC
+.	\}
+.	if \\n(iD==0 \{\
+.		fV
+.\" tm ------------------------------------------------------------------------
+.\" tm It list-type==\\*(L\\n(lC, aP==\\n(aP
+.\" tm It beg arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
+.		nr oM \\n(oM+1
+.		nr tP 1
+.		nr aP \\n(aP+1
+.		nr tX \\n(C\\n(aP
+.		ds tX \\*(A\\n(aP
+.		if \\n(nF==1 \{\
+.			ds aA \\*(pA
+.			if n .ds pA \\*(nO
+.		\}
+.		ie \\n(C\\n(aP==1 \{\
+.			\\*(A\\n(aP
+.		\}
+.		el \{\
+.			nr aP \\n(aP-1
+.			No
+.		\}
+.\" tm in It here is b1==\\*(b1
+.\" tm It mid arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
+.		ie \\n(Xt==1 .ds xB \&\\*(L\\n(lC
+.		el .\\*(L\\n(lC
+.	\}
+.	nr iD 0
+.\}
+.el .\\*(L\\n(lC
+..
+.\" NS lL macro - .It item of list-type inset
+.de lL
+.lY
+.br
+\&\\*(b1
+.nr oM \\n(oM-1
+.nr tP 0
+.ds b1
+.aY
+'fi
+..
+.\" NS hL macro - .It item of list-type hanging label (as opposed to tagged)
+.de hL
+.lX
+.nr bb \\n(w\\n(lCu+\\n(lSu
+.ti -\\n(bbu
+.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
+.el \&\\*(b1\h'|\\n(bbu'\c
+.nr oM \\n(oM-1
+.ds b1
+.nr tP 0
+.aY
+'fi
+..
+.\" NS oL macro - .It item of list-type overhanging label
+.de oL
+.lY
+\&\\*(b1
+.br
+.nr oM \\n(oM-1
+.ds b1
+.nr tP 0
+.aY
+'fi
+..
+.\" NS iT macro - .It item of list-type [empty label]
+.de iT
+.lY
+.br
+.\" .ds b1
+.aY
+'fi
+..
+.\" NS nU macro - Enumerated list
+.\" NS nU register count
+.\" NS hU macro - Hyphen paragraph list (sub bullet list)
+.\" NS bU macro - Bullet paragraph list
+.de nU
+.nr oM \\n(oM+1
+.nr nU \\n(nU+1
+.ds b1 \&\\n(nU.
+.uL
+..
+.de bU
+.nr oM \\n(oM+1
+.nr bU \\n(bU+1
+.ds b1 \&\\*(sY\&\(bu\fP
+.uL
+..
+.de hU
+.nr oM \\n(oM+1
+.nr bU \\n(bU+1
+.ds b1 \&\\*(sY\&\-\fP
+.uL
+..
+.\" NS uL macro - .It item of list-type enum/bullet/hyphen
+.de uL
+.lX
+.nr bb \\n(w\\n(lCu+\\n(lSu
+.ti -\\n(bbu
+.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
+.el \&\\*(b1\h'|\\n(bbu'\c
+.nr oM \\n(oM-1
+.\" .nr dZ \\n(dZ+1
+.ds b1
+.nr tP 0
+.aY
+'fi
+..
+.\" NS mL macro - .It item of list-type diagnostic-message
+.de mL
+.nr cF \\n(.f
+.nr cZ \\n(.s
+.ie \\n(mL==1 \{\
+.	nr zB \\n(.c
+.	ie (\\n(zB-\\n(zA)>1 .Pp
+.	el .br
+.	nr zA \\n(zB
+.	nr zB 0
+.\}
+.el \{\
+.	nr zA \\n(.c
+.	br
+.\}
+\&\\*(sY\\*(b1\f\\n(cF\s\\n(cZ\\*(lS\c
+.aY
+.ds b1
+'fi
+..
+.\" NS tL macro - .It item of list-type "tag"
+.de tL
+.\" tm in tL here is b1==\\*(b1
+.if \\n(tW==0 .lW
+.lX
+.nr bb \\n(w\\n(lCu+\\n(lSu
+.ti -\\n(bbu
+.ie (\w\\*(b1u)>(\\n(w\\n(lCu) \{\&\\*(b1
+.       br
+.\}
+.el \&\\*(b1\h'|\\n(bbu'\c
+.if \\n(nF==1 \{\
+.	if n .ds pA \\*(aA
+.\}
+.nr oM \\n(oM-1
+.nr tP 0
+.\" .nr dZ \\n(dZ+1
+.ds b1
+.aY
+'fi
+..
+.\" NS lW macro - resolve unknown label/tag width (if .Bl [inset | tag] only)
+.de lW
+.if !"TagwidtH"\\*(t\\n(lC" \{\
+.       ie \\n(tX==1 \{\
+.               ds t\\n(lN \\*(tX
+.               nr w\\n(lN \\n(\\*(tX
+.       \}
+.       el \{\
+.               ds t\\n(lN No
+.               nr w\\n(lN \\n(No
+.       \}
+.       if !"\\*(t\\n(lC"\\*(t\\n(lN" .nr tC 1
+.\}
+..
+.\" NS lX macro - set up vertical spacing (if compact) and offset+indent (all)
+.de lX
+.ie \\n(tC \{\
+.       nr tC 0
+.       nr tW 0
+.       if \\n(v\\n(lC==0 .sp \\n(dVu
+.       in \\n(.iu+\\n(w\\n(lCu+\\n(o\\n(lCu+\\n(lSu
+.\}
+.el \{\
+.	ie \\n(v\\n(lC==1 \{\
+.	       nr aa 0
+.	\}
+.	el \{\
+.		sp \\n(dVu
+.	\}
+.\}
+.if !\\n(cR .ne 2v
+..
+.\" NS lY macro - set up vertical spacing (if compact) and offset+indent (all)
+.de lY
+.ie \\n(tC \{\
+.       nr tC 0
+.       nr tW 0
+.       if \\n(v\\n(lC==0 .sp \\n(dVu
+.       in \\n(.iu+\\n(o\\n(lCu
+.\}
+.el \{\
+.	ie \\n(v\\n(lC==1 \{\
+.	       nr aa 0
+.	\}
+.	el \{\
+.		sp \\n(dVu
+.	\}
+.\}
+.if !\\n(cR .ne 2v
+..
+.\" NS tS temporary string
+.\" NS hL macro - hanging list function
+.\" NS tS temporary string
+.\" NS hL macro - hanging list function
+.\" NS lT macro - tagged list function
+.\" NS lE macro - list end function
+.\" NS tX string (initial string)
+.\" NS tX register (initial class)
+.\" NS tC parameter change flag
+.\" NS Xt save current list-type flag
+.\" NS lC register - list type stack counter
+.\" NS tP register tag flag (for diversions)
+.\" NS w[0-9] register tag stack (nested tags)
+.\" NS t[0-9] register tag string stack (nested tags)
+.\" NS o[0-9] register offset stack (nested tags)
+.\" NS v[0-9] register vertical tag break stack
+.\" NS h[0-9] register horizontal tag stack (continuous if 1, break if 0)
+.nr lC 0
+.nr wV 0
+.nr w1 0
+.nr o1 0
+.nr v1 0
+.nr h1 0
+.ds t\n(lC
+.de lE
+.\" IN lC o[\\n(lC]==\\n(o\\n(lC, w[\\n(lC]==\\n(w\\n(lC,
+.ie \\n(o\\n(lC>0 \{\
+'	in \\n(.iu-(\\n(w\\n(lCu)-(\\n(o\\n(lCu)-\\n(lSu
+.	rr o\\n(lC
+.\}
+.el 'in \\n(.iu-\\n(w\\n(lCu-\\n(lSu
+.if \\n(lC<=0 .tm Extraneous .El call (#\\n(.c)
+.tZ
+.nr lC \\n(lC-1
+.tY
+..
+.\" NS tY macro - set up next block for list
+.\" NS tZ macro - decrement stack
+.\" NS tY register (next possible lC value)
+.de tY
+.nr tY (\\n(lC+1)
+.nr w\\n(tY 0
+.nr h\\n(tY 0
+.nr o\\n(tY 0
+.ds t\\n(tY \\*(t\\n(lC
+.ds L\\n(tY
+.nr v\\n(tY 0
+..
+.de tZ
+.rm L\\n(tY
+.rr w\\n(tY
+.rr h\\n(tY
+.rr o\\n(tY
+.rm t\\n(tY
+.rr v\\n(tY
+.nr tY \\n(tY-1
+..
+.\" initial values
+.nr w1 0
+.nr o1 0
+.nr h1 0
+.ds t1
+.nr v1 0
+.nr tY 1
+.\" NS Xr macro - cross reference (man page only)
+.de Xr
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Xr
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.	ie \\n(C\\n(aP==1 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
+.	el \{\
+.		ie \\n(C\\n(aP>2 .y\\n(C\\n(aP
+.		el \{\
+.			as b1 \&\\*(xR\\*(A\\n(aP\fP\s0
+.			if \\n(aC>\\n(aP \{\
+.				nr aP \\n(aP+1
+.				if \\n(C\\n(aP==2 \{\
+.					as b1 \&(\\*(A\\n(aP)
+.					nr aP \\n(aP+1
+.				\}
+.				if \\n(aC>=\\n(aP \{\
+.					c\\n(C\\n(aP
+.				\}
+.			\}
+.		\}
+.		aZ
+.       \}
+.\}
+..
+.\" NS Sx macro - cross section reference
+.de Sx
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 .tm Sx Usage: .Sx Section Header \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Sx
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.	as b1 \\*(sX
+.	nr cF \\n(.f
+.	nr cZ \\n(.s
+.	nR
+.\}
+..
+.\" NS cC macro - column-list end-list
+.\" NS eW macro - column indent width
+.\" NS cI register - column indent width
+.\" NS W[1-5] macro - establish tabs for list-type column
+.de cC
+'in \\n(.iu-\\n(o\\n(lCu-\\n(w\\n(lCu
+.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
+.fi
+.tZ
+.nr lC \\n(lC-1
+.tY
+..
+.de W1
+.ta \w\\*(A1    u
+.nr eW \w\\*(A1    u
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
+..
+.de W2
+.ta \w\\*(A1    u +\w\\*(A2    u
+.nr eW \w\\*(A1    u+\w\\*(A2    u
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
+..
+.de W3
+.ta \w\\*(A1    u +\w\\*(A2    u +\w\\*(A3    u
+.nr eW \w\\*(A1    u+\w\\*(A2    u+\w\\*(A3    u
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
+..
+.de W4
+.ta \w\\*(A1    u +\w\\*(A2    u +\w\\*(A3    u +\w\\*(A4    u
+.nr eW \w\\*(A1    u+\w\\*(A2    u +\w\\*(A3    u +\w\\*(A4    u
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
+..
+.de W5
+.ta \w\\*(A1   u +\w\\*(A2   u +\w\\*(A3   u +\w\\*(A4   u +\w\\*(A5   u
+.nr eW \w\\*(A1   u +\w\\*(A2   u +\w\\*(A3   u +\w\\*(A4   u +\w\\*(A5   u
+'	in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
+..
+.\" This is packed abnormally close, intercol width should be an option
+.de W6
+.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
+.nr eW \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
+'	in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
+..
+.\" NS cL macro - column items
+.de cL
+.if \\n(w\\n(lC==0 .nr w\\n(lC \\n(eWu
+.if \\n(.u==0 \{\
+.	fi
+'	in \\n(.iu+\\n(eWu
+.\}
+.ti -\\n(eWu
+.fV
+.nr aP \\n(aP+1
+.ie \\n(aC>=\\n(aP  \{\
+.	if "\\*(A\\n(aP"Ta" \{\
+.		nr jJ \\n(aP-1
+.		rm S\\n(jJ
+.		rr jJ
+.	\}
+.	c\\n(C\\n(aP
+.\}
+.el .tm Usage: .It column_string [Ta [column_string ...] ] (#\\n(.c)
+..
+.\" NS Ta macro - append tab (\t)
+.de Ta
+.ie \\n(aC>0 \{\
+.	nr aP \\n(aP+1
+.	ie \\n(aC>=\\n(aP \{\
+.		if "\\*(A\\n(aP"Ta" \{\
+.			nr jJ \\n(aP-1
+.			rm S\\n(jJ
+.			rr jJ
+.		\}
+.		as b1 \\t
+.		c\\n(C\\n(aP
+.	\}
+.	el \{\
+.		as b1 \\t\\c
+.		rm S\\n(aP
+.		pB
+.		aY
+.\" .		ds b1
+.	\}
+.\}
+.el \{\
+.	tm Usage: Ta must follow column entry: e.g. (#\\n(.c)
+.	tm .It column_string [Ta [column_string ...] ]
+.\}
+..
+.\"
+.\" NS Dl macro - display (one line) literal
+.de Dl
+'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
+.in \\n(.iu+\\n(Dsu
+.ie \\n(aC==0 \{\
+.	ie \\n(.$==0 \{\
+.		tm Usage: .Dl argument ... (#\\n(.c)
+.	\}
+.	el \{\
+.		ds mN Dl
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.		Li
+.	\}
+.\}
+.el \{\
+.	tm Usage: .Dl not callable by other macros (#\\n(.c)
+.\}
+.in \\n(.iu-\\n(Dsu
+..
+.\"
+.\" NS D1 macro - display (one line)
+.de D1
+'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
+.in \\n(.iu+\\n(Dsu
+.ie \\n(aC==0 \{\
+.	ie \\n(.$==0 \{\
+.		tm Usage: .D1 argument ... (#\\n(.c)
+.	\}
+.	el \{\
+.		ds mN D1
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.		nr aP \\n(aP+1
+.		ie \\n(C\\n(aP==1 .\\*(A\\n(aP
+.		el .No
+.	\}
+.\}
+.el \{\
+.	tm Usage: .D1 not callable by other macros (#\\n(.c)
+.\}
+.in \\n(.iu-\\n(Dsu
+..
+.\" NS Ex macro - DEFUNCT
+.de Ex
+.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\"
+.\" NS Ex macro - DEFUNCT
+.de Ex
+.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+..
+.\"
+.\" NS Vt macro - Variable type (for forcing old style variable declarations)
+.\" this is not done in the same manner as .Ot for fortrash - clean up later
+.de Vt
+.\" if a function declaration was the last thing given, want vertical space
+.if \\n(fD>0 \{\
+.	Pp
+.	nr fD 0
+.\}
+.\"	if a subroutine was the last thing given, want vertical space
+.if \\n(fZ>0 \{\
+.	ie \\n(fX==0 \{\
+.		Pp
+.		rs
+.	\}
+.	el .br
+.\}
+.nr fX \\n(fX+1
+.nr cF \\n(.f
+.nr cZ \\n(.s
+\\*(fT\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.ie \\n(oT==0 .br
+.el \&\ \&
+.ft \\n(cF
+.fs \\n(cZ
+..
+.\"
+.\" NS Ft macro - Function type
+.nr fZ 0
+.de Ft
+.if \\n(nS>0 \{\
+.	if \\n(fZ>0 \{\
+.		Pp
+.		nr fD 0
+.		nr fX 0
+.	\}
+.	if \\n(fD>0 \{\
+.		Pp
+.		nr fD 0
+.		nr fX 0
+.	\}
+.	if \\n(fX>0 \{\
+.		Pp
+.		nr fX 0
+.	\}
+.	nr fY 1
+.\}
+.nr cF \\n(.f
+.nr cZ \\n(.s
+\&\\*(fT\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.ft \\n(cF
+.fs \\n(cZ
+.\" .br
+..
+.\"
+.\" NS Ot macro - Old Function type (fortran - no newline)
+.\" Ns oT register
+.nr oT 0
+.de Ot
+.nr oT 1
+.if \\n(nS>0 \{\
+.	if \\n(fZ>0 \{\
+.		Pp
+.		nr fD 0
+.		nr fX 0
+.	\}
+.	if \\n(fD>0 \{\
+.		Pp
+.		nr fD 0
+.		nr fX 0
+.	\}
+.	if \\n(fX>0 \{\
+.		Pp
+.		nr fX 0
+.	\}
+.	nr fY 1
+.\}
+.if \\n(.$==4 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3 \\$4
+.if \\n(.$==3 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3
+.if \\n(.$==2 .as b1 \&\\*(fT\&\\$1 \\$2
+.if \\n(.$==1 .as b1 \&\\*(fT\&\\$1
+.as b1 \&\ \fP
+..
+.\"
+.\" NS Fa macro - Function arguments
+.de Fa
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .Fa Function Arguments ... \\*(Pu (#\\n(.c)
+.       el \{\
+.		ds mN Fa
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.ie \\n(fC>0 \{\
+.	fC
+.\}
+.el \{\
+.	if \\n(aC>\\n(aP \{\
+.		as b1 \\*(fA
+.		nr aP \\n(aP+1
+.		nr cF \\n(.f
+.		nr cZ \\n(.s
+.		nR
+.		if \\n(nS>0 \{\
+.			if \\n(fZ>0 .br
+.		\}
+.	\}
+.\}
+..
+.\" NS fC macro - interal .Fa for .FO and .Fc
+.de fC
+.ie \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.\" .	nr aa \\n(aP
+.\" .	if \\n(nS>0 \{\
+.		ds Fb
+.		nr fB 0
+.		nr Fb 0
+.		fB \\*(A\\n(aP
+.		if \\n(fB>1 \{\
+.			rm A\\n(aP
+.			rn Fb A\\n(aP
+.		\}
+.\" .	\}
+.	if \\n(fC>1 \{\
+.		as b1 \&\f\\n(cF\s\\n(cZ,\\*(S\\n(aP\\*(fA\\*(A\\n(aP\fP\s0
+.\" .		as b1 \&\\,\\*(S\\n(aP\fP\s0\\*(fA\\*(A\\n(aP\fP\s0
+.	\}
+.	if \\n(fC==1 \{\
+.		as b1 \&\|\\*(fA\\*(A\\n(aP\fP\s0
+.	\}
+.	nr fC \\n(fC+1
+.	fC
+.\}
+.el  \{\
+.	aY
+.\}
+..
+.\" NS Fn macro - functions
+.\" NS fY register - dick with old style function declarations (fortran)
+.\" NS fZ register - break a line when more than one function in a synopsis
+.\"
+.de Fn
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 .tm Usage: .Fn function_name function_arg(s) ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN Fn
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(nS>0 \{\
+.\" if there is/has been more than one subroutine declaration
+.	if \\n(fY==0 \{\
+.		if \\n(fZ>0 \{\
+.			Pp
+.			nr fX 0
+.			nr fD 0
+.		\}
+.	\}
+.	if \\n(fY==1 \{\
+.		br
+.		nr fX 0
+.		nr fD 0
+.		nr fY 0
+.	\}
+.	if \\n(fD>0 \{\
+.		Pp
+.		nr fX 0
+.	\}
+.	if \\n(fX>0 \{\
+.		Pp
+.		nr fD 0
+.	\}
+.	nr fZ \\n(fZ+1
+.	nr fY 0
+.	rs
+.	ie \\n(nS>1 .br
+.	el \{\
+.		if \\n(iS==0 \{\
+.			nr iS ((8)*\\n(fW)u
+.		\}
+.	\}
+.	in +\\n(iSu
+.	ti -\\n(iSu
+.	nr nS \\n(nS+1
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.	nr cF \\n(.f
+.	nr cZ \\n(.s
+.	as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
+.	ie \\n(aC>\\n(aP \{\
+.		as b1 \\*(fA
+.		nr aP \\n(aP+1
+.		f\\n(C\\n(aP
+.	\}
+.	el \{\
+.		as b1 \|\\*(rp
+.		aZ
+.	\}
+.	if \\n(nS>0 \{\
+. 		in -\\n(iSu
+.	\}
+.\}
+..
+.\"
+.\" NS f1 macro - class switch
+.\" NS f2 macro - handle function arguments
+.\" NS f3 macro - punctuation
+.\" NS f4 macro - write out function
+.de f1
+.as b1 \\*(rp\f\\n(cF\s\\n(cZ
+.\\*(A\\n(aP
+..
+.de f2
+.if \\n(nS>0 \{\
+.	ds Fb
+.	nr fB 0
+.	nr Fb 0
+.	fB \\*(A\\n(aP
+.	if \\n(fB>1 \{\
+.		rm A\\n(aP
+.		rn Fb A\\n(aP
+.	\}
+.\}
+.as b1 \\*(A\\n(aP
+.ie \\n(aC>\\n(aP \{\
+.	nr aa \\n(aP
+.	nr aP \\n(aP+1
+.	if \\n(C\\n(aP==2 \{\
+.		as b1 \&\|\f\\n(cF\s\\n(cZ,\\*(S\\n(aa\fP\s0\|
+.	\}
+.	f\\n(C\\n(aP
+.\}
+.el  \{\
+.	as b1 \\*(rp\f\\n(cF\s\\n(cZ
+.	aZ
+.\}
+..
+.de f3
+.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP
+.ie \\n(aC>\\n(aP \{\
+.	No
+.\}
+.el .aZ
+..
+.de f4
+.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP
+.ie \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.	No
+.\}
+.el .aZ
+..
+.de Fo
+.hy 0
+.if \\n(aC==0 \{\
+.	ie \\n(.$==0 .tm Usage: .Fo function_name
+.	el \{\
+.		ds mN Fo
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(nS>0 \{\
+.\" if there is/has been more than one subroutine declaration
+.	if \\n(fY==0 \{\
+.		if \\n(fZ>0 \{\
+.			Pp
+.			nr fX 0
+.			nr fD 0
+.		\}
+.	\}
+.	if \\n(fY==1 \{\
+.		br
+.		nr fX 0
+.		nr fD 0
+.		nr fY 0
+.	\}
+.	if \\n(fD>0 \{\
+.		Pp
+.		nr fX 0
+.	\}
+.	if \\n(fX>0 \{\
+.		Pp
+.		nr fD 0
+.	\}
+.	nr fZ \\n(fZ+1
+.	nr fY 0
+.	rs
+.	ie \\n(nS>1 .br
+.	el \{\
+.		if \\n(iS==0 \{\
+.			nr iS ((8)*\\n(fW)u
+.		\}
+.	\}
+.	in +\\n(iSu
+.	ti -\\n(iSu
+.	nr nS \\n(nS+1
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr oM \\n(oM+1
+.	nr fC 1
+.	nr aP \\n(aP+1
+.	nr cF \\n(.f
+.	nr cZ \\n(.s
+.	as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
+.	aY
+.\}
+..
+.de Fc
+.if \\n(aC==0 \{\
+.	if \\n(.$>0 \{\
+.		ds mN Fo
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.nr fC 0
+.nr oM \\n(oM-1
+.as b1 \|\\*(rp
+.ie \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.	\\*(A\\n(aP
+.\}
+.el \{\
+.	aZ
+.\}
+.if \\n(nS>0 \{\
+.	in -\\n(iSu
+.\}
+.hy
+..
+.\" NS fb macro - if SYNOPSIS, set hard space inbetween function args
+.\" NS fb register - count of words in a function argument
+.\" NS Fb register - counter
+.\" NS Fb string - temporary string
+.de fB
+.\" .tm fB==\\n(fB, Fb==\\n(Fb, 1==\\$1 2==\\$2 3==\\$3 4==\\$4 5==\\$5 6==\\$6
+.if \\n(fB==0 \{\
+.	nr fB \\n(.$
+.	nr Fb 0
+.	ds Fb
+.\}
+.nr Fb \\n(Fb+1
+.as Fb \&\\$1
+.if \\n(Fb<\\n(fB \{\
+.	as Fb \&\\*(hV
+.	fB \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.\}
+..
+.\" NS Fc - Function close - not implemented yet
+.\" NS Fo - Function open - not implemented yet
+.\"
+.\" Very crude references, stash all reference info into strings (usual
+.\" use of b1 buffer, then b1 contents copied to string of retrievable
+.\" naming convention), print out reference on .Re request and clean up.
+.\" Ordering very limited, no fancy citations, but can do articles, journals
+.\" and books - need to add several missing options (like city etc).
+.\" should be able to grab a refer entry, massage it a wee bit (prefix
+.\" a `.' to the %[A-Z]) and not worry (ha!)
+.\"
+.\" NS Rs macro - Reference Start
+.\" NS rS register - Reference Start flag
+.\" NS rS string - Reference Start buffer name for next save (of b1 buffer)
+.de Rs
+.nr rS 1
+.rC
+.if \\n(nA==1 .Pp
+.nr Kl 0
+..
+.\" NS Re macro - Reference End
+.de Re
+.rZ
+.rC
+.nr rS 0
+..
+.\" NS rC macro - reference cleanup
+.de rC
+.nr uK 0
+.nr jK 0
+.nr nK 0
+.nr oK 0
+.nr qK 0
+.nr rK 0
+.nr tK 0
+.nr vK 0
+.nr dK 0
+.nr pK 0
+.nr bK 0
+.ds rS
+.rm U1 U2 U3 U4 U5 U6 U7 U8
+.rm uK jK nK oK rK qK tK vK dK pK bK
+..
+.\" NS rZ macro - reference print
+.de rZ
+.if \\n(uK \{\&\\*(U1,
+.	nr aK 1
+.	if (\\n(uK>1 \{\
+.		aK
+.	\}
+.	nr Kl -\\n(uK
+.\}
+.if \\n(tK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \{\
+.		ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q.
+.		\}
+.		el \{\&\\*(eM\\*(tK\\*(nO.
+.		\}
+.	\}
+.	if \\n(Kl>0 \{\
+.		ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q,
+.		\}
+.		el \{\&\\*(eM\\*(tK\\*(nO,
+.		\}
+.	\}
+.\}
+.if \\n(bK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(eM\\*(bK\\*(nO.
+.	if \\n(Kl>0 \&\\*(eM\\*(bK\\*(nO,
+.\}
+.if \\n(jK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(eM\\*(jK\\*(nO.
+.	if \\n(Kl>0 \&\\*(eM\\*(jK\\*(nO,
+.\}
+.if \\n(rK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(rK.
+.	if \\n(Kl>0 \&\\*(rK,
+.\}
+.if \\n(nK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(nK.
+.	if \\n(Kl>0 \&\\*(nK,
+.\}
+.if \\n(vK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(vK.
+.	if \\n(Kl>0 \&\\*(vK,
+.\}
+.if \\n(pK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(pK.
+.	if \\n(Kl>0 \&\\*(pK,
+.\}
+.if \\n(qK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(qK.
+.	if \\n(Kl>0 \&\\*(qK,
+.\}
+.if \\n(dK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(dK.
+.	if \\n(Kl>0 \&\\*(dK,
+.\}
+.if \\n(oK \{\
+.	nr Kl \\n(Kl-1
+.	if \\n(Kl==0 \&\\*(oK.
+.	if \\n(Kl>0 \&\\*(oK,
+.\}
+.if \\n(Kl>0 .tm unresolved reference problem
+..
+.\" NS aK macro - print out reference authors
+.de aK
+.nr aK \\n(aK+1
+.ie (\\n(uK-\\n(aK)==0 \{\&and \\*(U\\n(aK,
+.\}
+.el \{\&\\*(U\\n(aK,
+.	aK
+.\}
+..
+.\" NS %A macro - reference author(s)
+.\" NS uK register - reference author(s) counter
+.\" NS U[1-9] strings - reference author(s) names
+.de %A
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%A Author_name (#\\n(.c)
+.	el \{\
+.		nr uK \\n(uK+1
+.		nr Kl \\n(Kl+1
+.		ds rS U\\n(uK
+.		ds mN %A
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %B macro - [reference] Book Name
+.\" NS bK string - Book Name
+.\" NS bK register - Book Name flag
+.de %B
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%B Book Name (#\\n(.c)
+.       el \{\
+.		ds mN %B
+.		if \\n(rS>0 \{\
+.			nr bK \\n(bK+1
+.			nr Kl \\n(Kl+1
+.			ds rS bK
+.		\}
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.	ie \\n(rS==0 \{\
+.		as b1 \&\\*(eM
+.		nR
+.	\}
+.	el .rR
+.\}
+..
+.\" NS %D macro - [reference] Date
+.\" NS dK string - Date String
+.\" NS dK register - Date flag
+.de %D
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%D Date (#\\n(.c)
+.       el \{\
+.		ds mN %D
+.		nr dK \\n(dK+1
+.		nr Kl \\n(Kl+1
+.		ds rS dK
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %J macro - [reference] Journal Name
+.\" NS jK register - [reference] Journal Name flag
+.\" NS jK string - [reference] Journal Name
+.de %J
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%J Journal Name (#\\n(.c)
+.       el \{\
+.		ds mN %J
+.		nr jK \\n(jK+1
+.		ds rS jK
+.		nr Kl \\n(Kl+1
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %N macro - [reference] issue number
+.\" NS nK register - [reference] issue number flag
+.\" NS nK string - [reference] issue number
+.de %N
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%N issue number (#\\n(.c)
+.	el \{\
+.		nr nK \\n(nK+1
+.		nr Kl \\n(Kl+1
+.		ds rS nK
+.		ds mN %N
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %O macro - [reference] optional information
+.\" NS oK register - [reference] optional information flag
+.\" NS oK string - [reference] optional information
+.de %O
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%O optional information ... \\*(Pu (#\\n(.c)
+.       el \{\
+.		ds mN %O
+.		nr oK \\n(oK+1
+.		nr Kl \\n(Kl+1
+.		ds rS oK
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %P macro - [reference] page numbers
+.\" NS pK register - [reference] page number flag
+.\" NS pK string - [reference] page number
+.de %P
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%P page numbers ... \\*(Pu (#\\n(.c)
+.       el \{\
+.		ds mN %P
+.		nr pK \\n(pK+1
+.		nr Kl \\n(Kl+1
+.		ds rS pK
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %Q macro - Corporate or Foreign Author
+.\" NS qK string - Corporate or Foreign Author
+.\" NS qK register - Corporate or Foreign Author flag
+.de %Q
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%Q Corporate or Foreign Author (#\\n(.c)
+.       el \{\
+.		ds mN %Q
+.		nr qK \\n(qK+1
+.		nr Kl \\n(Kl+1
+.		ds rS qK
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %R macro - [reference] report name
+.\" NS rK string - [reference] report name
+.\" NS rK register - [reference] report flag
+.de %R
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%R reference report (#\\n(.c)
+.       el \{\
+.		ds mN %R
+.		nr rK \\n(rK+1
+.		nr Kl \\n(Kl+1
+.		ds rS rK
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS %T macro - reference title
+.\" NS tK string - reference title
+.\" NS tK register - reference title flag
+.de %T
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%T (#\\n(.c)
+.       el \{\
+.		ds mN %T
+.		if \\n(rS>0 \{\
+.			nr tK \\n(tK+1
+.			nr Kl \\n(Kl+1
+.			ds rS tK
+.		\}
+.               ds A1 \\$1
+.               ds A2 \\$2
+.               ds A3 \\$3
+.               ds A4 \\$4
+.               ds A5 \\$5
+.               ds A6 \\$6
+.               ds A7 \\$7
+.               ds A8 \\$8
+.               ds A9 \\$9
+.		nr fV \\n(.$
+.		fV
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.\" .	ie \\n(jS==1 \{\
+.\" .		nr cF \\n(.f
+.\" .		nr cZ \\n(.s
+.\" .		ds qL \&\\*(Lq\\*(rA
+.\" .		ds qR \&\\*(Rq\f\\n(cF\s\\n(cZ
+.\" .		En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.\" .	\}
+.\" .	el \{\
+.		nr aP \\n(aP+1
+.		nr cF \\n(.f
+.		nr cZ \\n(.s
+.		ie \\n(rS==0 \{\
+.			as b1 \&\\*(eM
+.			nR
+.		\}
+.		el .rR
+.\" .	\}
+.\}
+..
+.\" NS %V macro - reference volume
+.\" NS vK string - reference volume
+.\" NS vK register - reference volume flag
+.de %V
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .%V Volume , ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN %V
+.		nr vK \\n(vK+1
+.		nr Kl \\n(Kl+1
+.		ds rS vK
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       rR
+.\}
+..
+.\" NS rR macro - reference recursion routine
+.\" NS jM local register
+.\" NS jN local register
+.de rR
+.hy 0
+.nr jM \\n(C\\n(aP
+.ie \\n(jM==1 \{\
+.\" .	as b1 \&\f\\n(cF\s\\n(cZ
+.	ie "\\*(A\\n(aP"Tn" \{\
+.		nN
+.	\}
+.	el \{\
+.		if \\n(aC>8 .tm Usage: \\*(mN - maximum 8 arguments (#\\n(.c)
+.		aI rR 1
+.		\\*(A\\n(aP
+.	\}
+.\}
+.el \{\
+.	nr jN \\n(aP
+.	ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
+.	el .as b1 \&\\*(A\\n(aP
+.\" .	el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
+.	ie \\n(aC==\\n(aP \{\
+.\" .		as b1 \&\f\\n(cF\s\\n(cZ
+.		rD
+.	\}
+.	el \{\
+.		nr aP \\n(aP+1
+.		as b1 \&\\*(S\\n(jN
+.		rR
+.	\}
+.\}
+.rr jM jN
+..
+.\" NS rD macro - save b1 buffer in to appropriate name
+.de rD
+.as \\*(rS \\*(b1
+.ds b1
+.ds rS
+.aY
+..
+.\" NS Hf macro - source include header files.
+.de Hf
+.Pp
+File:
+.Pa \\$1
+.Pp
+.nr cF \\n(.f
+.nr cZ \\n(.s
+.ie t \{\
+\&\\*(lI
+.br
+.ta +9n 18n 27n 36n 45n 54n 63n 72n
+.\}
+.el \{\
+.ta +8n 16n 24n 32n 40n 48n 56n 64n 72n
+.\}
+.nf
+.so  \\$1
+.fi
+.ft \\n(cF
+.fz \\n(cZ
+.Pp
+..
+.\" NS An macro - author name
+.\" NS aN register
+.nr aN 0
+.de An
+.if \\n(nY==1 \{\
+.	ie \\n(aN==1 \{\
+.		br
+.	\}
+.	el \{\
+.		nr aN 1
+.	\}
+.\}
+.if \\n(aC==0 \{\
+.       ie \\n(.$==0 .tm Usage: .An author_name ... \\*(Pu (#\\n(.c)
+.	el \{\
+.		ds mN An
+.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
+.	\}
+.\}
+.if \\n(aC>\\n(aP \{\
+.	nr aP \\n(aP+1
+.       nr cF \\n(.f
+.	nr cZ \\n(.s
+.       nR
+.\}
+..
+.\" NS Sf macro -defunct
+.de Sf
+.tm .Sf defunct, use prefix or Ns
+..
+.ds rV "function returns the value 0 if successful; otherwise the value -1 is returned and the global variable \\*(vAerrno\fP is set to indicate the error.
+.\" Ns Rv macro - return values
+.\" Ns rV string - standard return message
+.de Rv
+.ie \\n(.$==0 \{\
+.tm Usage: .Rv [-std] (#\\n(.c)
+.\}
+.el \{\
+.	ds mN Rv
+.\" .	nr aP 0
+.\" .	nr lR \\n(lR+1
+.\" .	ds A1 \\$2
+.\" .	ds A2 \\$3
+.\" .	ds A3 \\$4
+.\" .	ds A4 \\$5
+.\" .	ds A5 \\$6
+.\" .	ds A6 \\$7
+.\" .	ds A7 \\$8
+.\" .	ds A8 \\$9
+.\" .	nr fV \\n(.$-1
+.	if "\\$1"-std" \{\
+.	nr cH \\*(cH
+.	if (\\n(cH<2):(\\n(cH>3) .tm Usage: .Rv -std sections 2 and 3 only
+.		br
+\&The
+.Fn \\$2
+\&\\*(rV
+.	\}
+.\}
+..
diff -Naur groff-1.18.1.4.orig/tmac/euc-jp.tmac groff-1.18.1.4/tmac/euc-jp.tmac
--- groff-1.18.1.4.orig/tmac/euc-jp.tmac	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/tmac/euc-jp.tmac	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,7 @@
+.\" euc-jp.tmac
+.\"
+.cflags 256 ,:;>}
+.cflags 256 ¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡Ë¡Í¡Ï¡Ñ¡×¡Ù¡Û¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¡¼
+.cflags 256 ¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç
+.cflags 512 �ʡ̡ΡС֡ء�
+.hc ¡¾
diff -Naur groff-1.18.1.4.orig/tmac/gb.tmac groff-1.18.1.4/tmac/gb.tmac
--- groff-1.18.1.4.orig/tmac/gb.tmac	1970-01-01 00:00:00.000000000 +0000
+++ groff-1.18.1.4/tmac/gb.tmac	2006-10-18 18:54:44.000000000 +0000
@@ -0,0 +1,15 @@
+.\" Kinsoku table for the GB2312 encoding of Chinese, recoded from
+.\" kinsoku.el in Emacs 22.0.50.
+.\" Checked by Simon Law, who reckons this is "mostly right". That will
+.\" probably do for now ...
+.\"
+.cflags 256 ¡¢¡££®£¬¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡¯¡±£©¡³¡µ¡·¡¹¡»¡½
+.cflags 256 ¡¿£»£º£¿£¡¡À¡Á¡Â¡Ã¡ã¡ä¡å¡æ£¯£Ü£¢£ß£þ£ü¨å
+.cflags 512 �ŨƨǨȨɨʨ˨̨ͨΨϨШѨҨӨԨը֨רب٨�
+.\" Simon Law supplied these.
+.cflags 512 £¨¡®¡°¡²¡´¡¶¡¸¡º¡¼¡¾
+.\"
+.\" http://tcl.apache.org/sources/tcl/tools/encoding/gb2312.txt lists U+FF0D
+.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
+.\"
+.hc £­
diff -Naur groff-1.18.1.4.orig/tmac/groff_trace.man groff-1.18.1.4/tmac/groff_trace.man
--- groff-1.18.1.4.orig/tmac/groff_trace.man	2002-07-13 20:52:47.000000000 +0000
+++ groff-1.18.1.4/tmac/groff_trace.man	2006-10-18 18:54:44.000000000 +0000
@@ -31,6 +31,10 @@
 A copy of the Free Documentation License is included as a file called
 FDL in the main directory of the groff source package.
 ..
+.ig
+A copy of the GNU Free Documentation License is also available in this
+Debian package as /usr/share/doc/groff/copyright.
+..
 .
 .\" --------------------------------------------------------------------
 .\" Setup
diff -Naur groff-1.18.1.4.orig/tmac/troffrc groff-1.18.1.4/tmac/troffrc
--- groff-1.18.1.4.orig/tmac/troffrc	2002-03-02 16:30:46.000000000 +0000
+++ groff-1.18.1.4/tmac/troffrc	2006-10-18 18:54:44.000000000 +0000
@@ -13,7 +13,9 @@
 .do ds troffrc!X100 X.tmac
 .do ds troffrc!X100-12 X.tmac
 .do ds troffrc!ascii tty.tmac
+.do ds troffrc!ascii8 tty.tmac
 .do ds troffrc!latin1 tty.tmac
+.do ds troffrc!nippon tty.tmac
 .do ds troffrc!utf8 tty.tmac
 .do ds troffrc!cp1047 tty.tmac
 .do ds troffrc!lj4 lj4.tmac
@@ -36,4 +38,13 @@
 .\" Load hyphenation patterns from `hyphen.us' (in the tmac directory).
 .do hpf hyphen.us
 .
+.\" For CJK hack. The hardcoded list of locales is especially nasty, but
+.\" getting the locale charmap requires a troff extension.
+.ie     "\V[LANG]"ja_JP.eucJP" .do mso euc-jp.tmac
+.el .ie "\V[LANG]"zh_CN"       .do mso gb.tmac
+.el .ie "\V[LANG]"zh_CN.GBK"   .do mso gb.tmac
+.el .ie "\V[LANG]"zh_SG"       .do mso gb.tmac
+.el .ie "\V[LANG]"zh_SG.GBK"   .do mso gb.tmac
+.el .if "\V[LANG]"zh_TW"       .do mso big5.tmac
+.
 .\" Don't let blank lines creep in here.
diff -Naur groff-1.18.1.4.orig/tmac/tty.tmac groff-1.18.1.4/tmac/tty.tmac
--- groff-1.18.1.4.orig/tmac/tty.tmac	2002-04-20 14:51:11.000000000 +0000
+++ groff-1.18.1.4/tmac/tty.tmac	2006-10-18 18:54:44.000000000 +0000
@@ -68,7 +68,7 @@
 .ie '\*(.T'cp1047' \
 .  do mso cp1047.tmac
 .el \
-.  if '\*(.T'latin1' \
+.  if !'\*(.T'ascii' \
 .    do mso latin1.tmac
 .
 .\" If you want the character definitions in tty-char.tmac to be loaded
