shithub: figlet

Download patch

ref: d2a8054621f4700626191e44425d3a3f831b77b1
author: glenda <glenda@9front.local>
date: Thu Aug 5 07:54:28 EDT 2021

initial commit

--- /dev/null
+++ b/CHANGES
@@ -1,0 +1,122 @@
+Changes in FIGlet 2.2.2
+-----------------------
+
+License changed from "Artistic License" to "Academic Free 
+License" as agreed by FIGlet authors. 05 July 2005 
+
+Changes in FIGlet 2.2.1
+-----------------------
+
+FIGlet 2.2.1 is a minor revision of FIGlet 2.2.  The files
+README, Makefile, figfont.txt, figlet.c and figlet.6 have been 
+changed to reflect changes in documentation, official contact 
+details etc. FTP-NOTE merged into README. FAQ and CHANGES 
+added to the distribution.
+
+All other files are identical with the 2.2 release.
+
+These changes were made by Christiaan Keet <keet@plig.net>
+
+Changes in FIGlet 2.2
+---------------------
+
+FIGlet 2.2 is a moderate revision of FIGlet 2.1.2.  The new features are:
+
+o	font files and control files can be compressed using ``zip'', and
+	will be automatically decompressed
+
+o	new commands in controlfiles provide support for
+	single-byte (default), double-byte, HZ, Shift-JIS, and Unicode
+	UTF-8 encodings of the input
+
+o	ISO 2022 escape sequences are decoded and interpreted
+
+o	control files can now have the format of Unicode Consortium
+	mapping tables (two columns of numbers representing
+	input character and output character, no ranges, # comments)
+
+o	new options -s (smush, same as -m-2), -k (kern, same as -m0),
+	-S (forced smushing), and -W (full width, same as -m-1) make
+	-m option unnecessary except for font designers.  The -S option
+	works even if the font's smushmode is 0 or -1, in which case
+	the smushmode is read from a new parameter in the
+	font's first line, or does universal overlapping if no such parameter
+	exists
+
+o	universal smushing (-o option to force it, but -S will use it
+	if no smush rules are available) makes FIGcharacters overlap by
+	one place independent of how they are constructed
+	more fonts smushable.
+
+o	file "figmagic" can be appended to your system magic number
+	file to make the "file" command recognize FIGlet files
+
+o	file "figfont.txt" is an implementation-independent specification
+	for FIGlet fonts and control files
+
+o	integrated support for extended characters (extended Latin in
+	"standard", Greek in "big", katakana in "banner", Hebrew in new
+	"ivrit" fonts) with appropriate controlfiles
+
+o	smushing rule 16 has changed slightly: "/\" now smushes
+	into "|" and "\/" smushes into "Y"; "><" still smushes
+	into "X" and "<>" is still not smushed at all.
+
+o	-A option introduced in FIGlet 2.1.2 is now optional;
+	if any words appear on the command line after the options,
+	they are formatted, and the standard input is not read.
+
+These changes were made by John Cowan <cowan@ccil.org>.
+
+Changes in FIGlet 2.1.2
+------------------------
+
+FIGlet 2.1.2 is a minor revision of FIGlet 2.1.1.  The files
+README, FTP-NOTE, figlet.c and figlet.6 have been changed.  All other
+files are identical with the 2.1.1 release.
+
+o	The only new option is -A, which causes FIGlet to read input
+	from the command line.
+
+These changes were made by Gilbert Healton <ghealton@nmia.com> as Glenn
+Chappell is now busy as a new professor of Mathematics.
+
+Changes in FIGlet 2.1
+----------------------
+
+A number of minor bugs and major incompatibility problems have been
+fixed.  FIGlet 2.1 should compile correctly on many operating systems for
+which FIGlet 2.0 did not.
+
+o	The "-F" command line option, which used to list all the available
+	fonts, has been removed, since it made FIGlet incompatible with some
+	operating systems.  It has been replaced by the "figlist" script.  The
+	"showfigfonts" script has been updated so that it no longer requires
+	the "-F" option to be available.
+
+o	The FIGlet font file format has been extended to allow an arbitrarily
+	large number of characters.  The ISO Latin-1 character set, which
+	includes many accented letters and special symbols, has been added to
+	most standard fonts.
+
+o	FIGlet can now print right-to-left.  This can be specified on the
+	command line ("-R") or in the font file.  Thus, for example, Hebrew and
+	Arabic fonts can be handled more easily.
+
+o	FIGlet can now right justify its output.  This is the default when
+	right-to-left printing is selected.  It can also be specified on the
+	command line ("-r").
+
+o	FIGlet now supports "control files".  These can be used to change which
+	character FIGlet will print when it sees a certain input character --
+	sort of an expanded version of the "-D" option.  For example, a control
+	file could convert lower-case letters to upper-case or map certain
+	ASCII characters to accented letters.  Control file names end with the
+	suffix ".flc".  Select a control file by using "-C controlfile" on the
+	command line.  Several controlfiles can be used at once by giving
+	muliple "-C" options.
+
+o	There is now a way for programs that use FIGlet to get various
+	information from FIGlet, for example, what version of FIGlet is being
+	used or the name of the default font directory.  This information is
+	gotten through the "-I" option.  See the man page for details.
--- /dev/null
+++ b/FAQ
@@ -1,0 +1,65 @@
+ _____ _____ _____ __      __       _____ _____ _____  
+|   __|     |   __|  |____|  |_    |   __|  _  |     | This FIGlet FAQ is 
+|   __|-   -|  |  |  | - _|   _|   |   __|     |  |  | posted once a month
+|__|  |_____|_____|__|____|__|     |__|  |__|__|__  _| on figlet@figlet.org
+  info@figlet.org        http://www.figlet.org/   |__|   [FIGlet FAQ v0.92]
+
+===========================================================================
+The latest version of FIGlet is 2.2.2 and can be downloaded from
+ftp://ftp.figlet.org/pub/figlet/program
+===========================================================================
+
+1  What is FIGlet? 
+2  Where can I get FIGlet from?
+3  Where can I get more fonts for FIGlet?
+4  Where can I hear about regular FIGlet program and font updates?
+5  How can I contribute?
+6  Why am I getting this mail and can you make it stop?
+7  Where does the name FIGlet come from?
+
+===========================================================================
+
+
+1.  What is FIGlet? 
+   FIGlet is a program for making large letters out of ordinary text
+                     _ _ _          _   _     _
+                    | (_) | _____  | |_| |__ (_)___
+                    | | | |/ / _ \ | __| '_ \| / __|
+                    | | |   <  __/ | |_| | | | \__ \
+                    |_|_|_|\_\___|  \__|_| |_|_|___/
+
+
+2.  Where can I get FIGlet from?
+    From the official FIGlet website at http://www.figlet.org/
+    or from the FIGlet FTP site at ftp://ftp.figlet.org/pub/figlet/
+
+                    
+3.  Where can I get more fonts for FIGlet?
+    From the FTP site at ftp://ftp.figlet.org/pub/figlet/fonts/
+    There are currently over 400 fonts available for download
+
+                    
+4  Where can I hear about regular FIGlet program and font updates?
+    There is a mailing list available for FIGlet.  To subscribe 
+    or unsubscribe from the FIGlet mailing list, please visit 
+    http://www.figlet.org/mailman/listinfo/figlet 
+
+
+5.  How can I contribute?
+    To contribute new fonts, software or information, please contact 
+    us at info@figlet.org
+
+
+6.  Why am I getting this mail and can you make it stop?
+    If you received this email it is probably because you are subscribed 
+    to the FIGlet mailing list. Please see Question 4 of this FAQ on how 
+    to unsubscribe from the FIGlet list.
+
+
+7. Where does the name FIGlet come from?
+   "Frank, Ian and Glen's letters"
+
+
+= FAQ Maintainer ==========================================================
+Christiaan Keet                keet@plig.net                   05 July 2005
+===========================================================================
--- /dev/null
+++ b/LICENSE
@@ -1,0 +1,51 @@
+The Academic Free License
+v. 2.1
+
+This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work:
+
+Licensed under the Academic Free License version 2.1
+
+1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following:
+
+a) to reproduce the Original Work in copies;
+
+b) to prepare derivative works ("Derivative Works") based upon the Original Work;
+
+c) to distribute copies of the Original Work and Derivative Works to the public;
+
+d) to perform the Original Work publicly; and
+
+e) to display the Original Work publicly.
+
+2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works.
+
+3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work.
+
+4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license.
+
+5) This section intentionally omitted.
+
+6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work.
+
+7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer.
+
+8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
+
+9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions.
+
+10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware.
+
+11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License.
+
+12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License.
+
+13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.
+
+14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.
+
+This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner.
+
+ 
+
--- /dev/null
+++ b/Makefile
@@ -1,0 +1,62 @@
+# Makefile for figlet version 2.2.2 (05 July 2005) 
+# adapted from Makefile for figlet version 2.2 (15 Oct 1996)
+# Copyright 1993, 1994,1995 Glenn Chappell and Ian Chai
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001 John Cowan
+# Copyright 2002 Christiaan Keet
+
+# Please make sure DESTDIR, MANDIR, DEFAULTFONTDIR and
+#   DEFAULTFONTFILE are defined to reflect the situation
+#   on your computer.  See README for details.
+
+# Don't change this even if your shell is different. The only reason
+# for changing this is if sh is not in the same place.
+SHELL = /bin/sh
+CC = gcc
+CFLAGS = -g
+
+# Where the executables should be put
+DESTDIR = /usr/local/bin
+
+# Where the man page should be put
+MANDIR = /usr/local/man/man6
+
+# Where figlet will search first for fonts (the ".flf" files).
+DEFAULTFONTDIR = /usr/local/share/figlet
+# Use this definition if you can't put things in /usr/local/share/figlet
+DEFAULTFONTDIR = fonts
+
+# The filename of the font to be used if no other is specified
+#   (standard.flf is recommended, but any other can be used).
+#   This font file should reside in the directory specified by
+#   DEFAULTFONTDIR.
+DEFAULTFONTFILE = standard.flf
+
+##
+##  END OF CONFIGURATION SECTION
+##
+
+SOURCES = figlet.c zipio.c crc.c inflate.c
+
+all: figlet chkfont
+
+figlet: $(SOURCES)
+	$(CC) $(CFLAGS) -DDEFAULTFONTDIR=\"$(DEFAULTFONTDIR)\" \
+	   -DDEFAULTFONTFILE=\"$(DEFAULTFONTFILE)\" \
+	   $(SOURCES) -o figlet
+	chmod a+x figlet
+
+chkfont: chkfont.c
+	$(CC) $(CFLAGS) -o chkfont chkfont.c
+
+clean:
+	rm -f *.o figlet chkfont
+
+install: figlet chkfont
+	mkdir -p $(DEFAULTFONTDIR)
+	cp figlet $(DESTDIR)
+	cp figlet.6 $(MANDIR)
+	cp chkfont $(DESTDIR)
+	cp figlist $(DESTDIR)
+	cp showfigfonts $(DESTDIR)
+	cp fonts/*.flf $(DEFAULTFONTDIR)
+	cp fonts/*.flc $(DEFAULTFONTDIR)
--- /dev/null
+++ b/README
@@ -1,0 +1,239 @@
+About FIGlet (Frank, Ian & Glenn's Letters) release 2.2.2, 05 July 2005
+-----------------------------------------------------------------------
+FIGlet is a program that creates large characters out of ordinary
+screen characters
+ _ _ _          _   _     _       
+| (_) | _____  | |_| |__ (_)___   
+| | | |/ / _ \ | __| '_ \| / __|  
+| | |   <  __/ | |_| | | | \__ \_ 
+|_|_|_|\_\___|  \__|_| |_|_|___(_)
+                                  
+(This is meant to be viewed in a monospaced font.)  FIGlet can create
+characters in many different styles and can kern and "smush" these
+characters together in various ways.  FIGlet output is generally
+reminiscent of the sort of "signatures" many people like to put at the
+end of e-mail and UseNet messages.
+
+If you like FIGlet (hey, even if you *hate* FIGlet), please send an
+e-mail message to <info@figlet.org>
+
+The official FIGlet web page: http://www.figlet.org/
+
+Files -- Unix version
+---------------------
+
+README       -- This file.
+figlet.c     -- The FIGlet source code.
+zipio.h,     -- A package for reading ZIP archives
+zipio.c,
+inflate.c,
+crc.c
+getopt.c     -- Source for the standard "getopt" routine, in case you
+                don't have it in your C library.  Not used by default.
+Makefile     -- The FIGlet makefile.  Used by the make command. 
+figlet.6     -- The FIGlet man(ual) page. 
+figlist      -- Script that lists available fonts and control files.
+showfigfonts -- Script that gives a sample of each available font.
+chkfont.c    -- Source code for chkfont: a program that checks FIGlet
+                fonts for formatting errors.  You can ignore this file
+                unless you intend to design or edit fonts.
+figfont.txt  -- Text file that explains the format of FIGlet fonts.
+                You can ignore this file unless you intend to design
+                or edit fonts.
+fonts        -- Directory containing fonts and control files.
+<xxx>.flf    -- All files ending in ".flf" are FIGlet font files.
+<xxx>.flc    -- All files ending in ".flc" are FIGlet control files.
+
+Files -- DOS version
+--------------------
+
+README       -- This file
+figlet.exe   -- The FIGlet program.
+figlet.man   -- The FIGlet man(ual) page. 
+showall.bat  -- Batch file that lists available fonts and samples of each.
+chkfont.exe  -- A program that checks FIGlet fonts for formatting errors.
+                You can ignore this file unless you intend to design
+                or edit fonts.
+figfont.txt  -- Text file that explains the format of FIGlet fonts.
+                You can ignore this file unless you intend to design
+                or edit fonts.
+fonts        -- Directory containing fonts and control files.
+<xxx>.flf    -- All files ending in ".flf" are FIGlet font files.
+<xxx>.flc    -- All files ending in ".flc" are FIGlet control files.
+
+
+Installing FIGlet --- Unix version
+----------------------------------
+
+First decide in which directories FIGlet and the FIGlet font files
+(the ".flf" files) will be stored (we recommend "/usr/games" and
+"/usr/games/lib/figlet.dir", respectively) and which will be the
+default font (we recommend "standard.flf").
+
+Edit "Makefile", and set the variables DEFAULTFONTDIR and
+DEFAULTFONTFILE to the appropriate values.  Set DEFAULTFONTDIR to be
+the full pathname of the directory in which you will keep the FIGlet
+font files.  Set DEFAULTFONTFILE to be the filename of the default
+font.
+
+At this point, you have two choices:
+
+(1) Just compile FIGlet.  To go this, go into the directory containing
+the FIGlet source, and type "make figlet".  Then copy the various files
+to the proper locations.  The executable (figlet), along with figlist
+and showfigfonts, goes wherever you keep your executables.  The fonts
+(<xxx>.flf) and control files (<xxx>.flc) go in the default font
+directory.  The man page (figlet.6) goes in section 6 (usually
+/usr/man/man6).  If you cannot, or do not want to, install the man page,
+you can probably still read it using
+
+        nroff -man figlet.6 | more
+
+(2) Do a complete installation.  To do the this, set the variables
+DESTDIR and MANDIR in Makefile to the appropriate values.  DESTDIR
+should be the full pathname of the directory in which the executable
+files should be put (we recommend "/usr/games");  MANDIR should be the
+full pathname of the directory in which the figlet man page should be
+put, generally "/usr/man/man6".  Once DEFAULTFONTDIR, DEFAULTFONTFILE,
+DESTDIR and MANDIR have been set, in the directory containing the FIGlet
+source, type "make install".
+
+If space is a problem, the only files you absolutely must have to run
+figlet are "figlet" (the executable) and at least one font (preferably
+the one you chose to be the default font).
+
+Installing FIGlet -- DOS version
+--------------------------------
+
+Unpack the ZIPfile using PKUNZIP, Info-Zip UNZIP, WinUnzip, or any other
+ZIP-compatible program.  Be sure to use the -d option with PKUNZIP
+in order to preserve the directory structure.  We recommend that you
+unpack the archive into C:\FIGLET, but any directory will do.
+
+If you unpack the archive on top of an older version of FIGlet, be
+sure to delete the file FIGLET.COM.  The executable program in this
+release is named FIGLET.EXE.  You can keep your old fonts by putting
+them in a FONTS subdirectory before unpacking.  (There are upgraded
+versions of the standard fonts in the archive.)
+
+Using FIGlet
+------------
+
+(Note: FIGlet needs a good thorough tutorial.  Currently I don't have
+the time to write one, but if anyone wants to do so, go right ahead.
+I'd be glad to help out a little.  Write us at <ianchai@usa.net> if
+you're interested.  -GGC-)
+
+At the shell prompt, type "figlet".  Then type, say, "Hello, world!"
+and press return.  "Hello, world!" in nice, big, designer characters
+should appear on your screen.  If you chose standard.flf to be the
+default font, you should see
+ _   _      _ _                             _     _ _ 
+| | | | ___| | | ___    __      _____  _ __| | __| | |
+| |_| |/ _ \ | |/ _ \   \ \ /\ / / _ \| '__| |/ _` | |
+|  _  |  __/ | | (_) |   \ V  V / (_) | |  | | (_| |_|
+|_| |_|\___|_|_|\___( )   \_/\_/ \___/|_|  |_|\__,_(_)
+                    |/                                
+Then type something else, or type an EOF (typically control-D) to quit
+FIGlet.
+
+Now you can send the output of figlet to a file (e.g., "figlet > file")
+and e-mail it to your friends (who will probably say, "Wow!  It must
+have taken you hours to put that together!")
+
+To use other fonts, use the "-f" command line option.  For example, if
+you had said "figlet -f smslant" above, you would have seen
+   __ __    ____                         __   ____
+  / // /__ / / /__      _    _____  ____/ /__/ / /
+ / _  / -_) / / _ \_   | |/|/ / _ \/ __/ / _  /_/ 
+/_//_/\__/_/_/\___( )  |__,__/\___/_/ /_/\_,_(_)  
+                  |/                              
+
+Here are some other useful command line options:
+
+-c   center -- centers the output of FIGlet.
+-k  tells FIGlet to kern characters without smushing them together.
+-t   terminal -- FIGlet asks your terminal how wide it is, and uses
+     this to determine when to break lines.  Normally, FIGlet assumes
+     80 columns so that people with wide terminals won't annoy the
+     people they e-mail FIGlet output to.
+-p   paragraph mode -- eliminates some spurious line breaks when piping
+     a multi-line file through FIGlet.
+-v   version -- prints information about your copy of FIGlet.
+
+For in-depth explanations of these and other options, see the man page.
+DOS users, see figlet.man.
+
+
+Other Fonts & Mailing List
+--------------------------
+
+A good number of FIGlet fonts have been developed, most of which are
+not included in the standard FIGlet package.  Many of these can be
+obtained from http://www.figlet.org/   Some non-Roman fonts are 
+available at this site.  As of this writing, we have Hebrew, Cyrillic
+(Russian) and Greek.
+
+There are 3 mailing lists available for FIGlet:
+	 figlet@figlet.org           General discussion of FIGlet
+	 figletfonts@figlet.org      Announcements about fonts 
+	 figletsoftware@figlet.org   Announcements about software 
+	 (The last two lists are moderated)
+
+To subscribe or unsubscribe from the FIGlet mailing lists, please visit 
+the corresponding URL:
+	 http://www.figlet.org/mailman/listinfo/figlet 
+	 http://www.figlet.org/mailman/listinfo/figletfonts 
+	 http://www.figlet.org/mailman/listinfo/figletsoftware 
+
+Also, for those who maintain archives of figlet fonts, please note that
+all of the standard fonts have been changed, as of release 2.1, to
+include non-ASCII characters.  These fonts are the following:
+
+big.flf (also contains Greek)
+banner.flf (also contains Cyrillic and Japanese katakana)
+block.flf
+bubble.flf
+digital.flf
+ivrit.flf (right-to-left, also contains Hebrew)
+lean.flf
+mini.flf
+script.flf
+shadow.flf
+slant.flf
+small.flf
+smscript.flf
+smshadow.flf
+smslant.dld
+standard.flf
+term.flf
+
+The new versions of these fonts can be identified by the words "figlet
+release 2.1" somewhere in the first few lines.  
+
+
+Other Stuff
+-----------
+
+FIGlet is available for operating systems other than Unix.  
+Please see ftp://ftp.figlet.org/program/
+
+Although you don't have to design your own fonts to use FIGlet, we'd
+certainly like it if lots of people did make up new FIGlet fonts.  If
+you feel like giving it a try, see the "FONT FILE FORMAT" section of
+the man page.  If you do design a font, please let us know by mailing us
+at <info@figlet.org>
+
+See "Other Things to Try" in the EXAMPLES section of the man page
+for... well... other things to try.
+
+
+Authors
+-------
+
+FIGlet was written mostly by Glenn Chappell <c486scm@semovm.semo.edu>.  The
+author not being an e-mail fanatic, most correspondence (bug reports, rave
+reviews, etc.) used to be handled to his secretary (who is definitely
+an e-mail fanatic), Ian Chai <ianchai@usa.net> and has since moved on to 
+another FIGlet enthusiast, Christiaan Keet <info@figlet.org>
+
--- /dev/null
+++ b/chkfont.c
@@ -1,0 +1,468 @@
+#include <u.h>
+#include <libc.h>
+#include <stdio.h>
+#include <ctype.h>
+
+#define DATE "20 Feb 1996"
+#define VERSION "2.2"
+
+/*
+   chkfont
+   By Glenn Chappell <ggc@uiuc.edu>
+
+   This program checks figlet 2.0/2.1 font files for format errors.
+   It also looks for signs of common problems and gives warnings.
+   chkfont does not modify font files.
+
+   Usage: chkfont fontfile ...
+
+   Note: This is very much a spare-time project. It's probably
+   full o' bugs ....
+*/
+
+/* #define CHECKBLANKS */
+#define FONTFILESUFFIX ".flf"
+#define FONTFILEMAGICNUMBER "flf2"
+char posshardblanks[9] = { '!', '@', '#', '$', '%', '&', '*', 0x7f, 0 };
+
+char *myname,*fontfilename;
+FILE *fontfile;
+char hardblank;
+int charheight,upheight,maxlen=0,old_layout;
+int spectagcnt;
+char *fileline;
+int maxlinelength=0,currline;
+int ec,wc;
+
+int incon_endmarkwarn,endmark_countwarn,nonincrwarn;
+int bigcodetagwarn,deutschcodetagwarn,asciicodetagwarn;
+int codetagcnt;
+int gone;
+
+void exit(int status)
+{
+  if (status == 0)
+    exits(nil);
+  else {
+     char s[5];
+     snprint(s,5,"%d",status);
+     exits(s);
+  }
+}
+
+void weregone(int really)
+{
+if (!really && 2*ec+wc<=40) {
+  return;
+  }
+if (ec+wc>0) printf("*******************************************************************************\n");
+if (!really) {
+  printf("%s: Too many errors/warnings.\n",fontfilename);
+  }
+printf("%s: Errors: %d, Warnings: %d\n",fontfilename,ec,wc);
+if (currline>1 && maxlen!=maxlinelength) {
+  printf("%s: maxlen: %d, actual max line length: %d\n",
+    fontfilename,maxlen,maxlinelength);
+  if (codetagcnt>0 && spectagcnt==-1) {
+    printf("%s: Code-tagged characters: %d\n",fontfilename,codetagcnt);
+    }
+  }
+printf("-------------------------------------------------------------------------------\n");
+gone=1;
+}
+
+char *my_alloc(int size)
+{
+char *ptr;
+
+ptr=(char *)malloc(size);
+if (ptr==0) {
+  fprintf(stderr,"%s: Out of memory\n",myname);
+  }
+else {
+  return(ptr);
+  }
+ return(0);
+}
+
+int badsuffix(char *path,char *suffix)
+{
+  char ucsuffix[10];
+  char *s;
+
+  strcpy(ucsuffix,suffix);
+  for (s = ucsuffix; *s; s++) {
+    *s = toupper(*s);
+    }
+
+  if (strlen(path)<strlen(suffix)) return 1;
+  s = path + strlen(path) - strlen(suffix);
+  if (strcmp(s,suffix) == 0) return 0;
+  if (strcmp(s,ucsuffix) == 0) return 0;
+  return 1;
+}
+
+void usageerr(void)
+{
+fprintf(stderr,"chkfont by Glenn Chappell <ggc@uiuc.edu>\n");
+fprintf(stderr,"Version: %s, date: %s\n",VERSION,DATE);
+fprintf(stderr,"Checks figlet 2.0/2.1 font files for format errors.\n");
+fprintf(stderr,"(Does not modify font files.)\n");
+fprintf(stderr,"Usage: %s fontfile ...\n",myname);
+exit(1);
+}
+
+
+void readchar(void)
+{
+int i,expected_width,k,len,newlen,diff,l;
+char endmark,expected_endmark;
+int leadblanks,minleadblanks,trailblanks,mintrailblanks;
+
+for (i=0;i<charheight;i++) {
+  fgets(fileline,maxlen+1000,fontfile);
+  if (feof(fontfile)) {
+    printf("%s: ERROR (fatal)- Unexpected end of file after line %d.\n",
+      fontfilename,currline);
+    ec++;
+    weregone(1); if (gone) return;
+    }
+  currline++;
+  len=strlen(fileline)-1;
+  if (len>maxlinelength) {
+    maxlinelength=len;
+    }
+  if (len>maxlen) {
+    printf("%s: ERROR- Line length > maxlen in line %d.\n",
+      fontfilename,currline);
+    ec++;
+    weregone(0); if (gone) return;
+    }
+  k=len;
+  endmark=k<0?'\0':(k==0||fileline[k]!='\n')?fileline[k]:fileline[k-1];
+  for(;k>=0?(fileline[k]=='\n' || fileline[k]==endmark):0;k--) {
+    fileline[k]='\0';
+    }
+  newlen=strlen(fileline);
+  for (l=0;l<newlen ? fileline[l]==' ' : 0;l++) ;
+  leadblanks = l;
+  for (l=newlen-1;l>=0 ? fileline[l]==' ' : 0;l--) ;
+  trailblanks = newlen-1-l;
+  if (i==0) {
+    expected_endmark = endmark;
+    expected_width = newlen;
+    minleadblanks = leadblanks;
+    mintrailblanks = trailblanks;
+    if (endmark==' ') {
+      printf("%s: Warning- Blank endmark in line %d.\n",
+        fontfilename,currline);
+      wc++;
+      weregone(0); if (gone) return;
+      }
+    }
+  else {
+    if (leadblanks<minleadblanks) minleadblanks = leadblanks;
+    if (trailblanks<mintrailblanks) mintrailblanks = trailblanks;
+    if (endmark!=expected_endmark && !incon_endmarkwarn) {
+      printf("%s: Warning- Inconsistent endmark in line %d.\n",
+        fontfilename,currline);
+      printf("%s:          (Above warning will only be printed once.)\n",
+        fontfilename);
+      incon_endmarkwarn = 1;
+      wc++;
+      weregone(0); if (gone) return;
+      }
+    if (newlen!=expected_width) {
+      printf("%s: ERROR- Inconsistent character width in line %d.\n",
+        fontfilename,currline);
+      ec++;
+      weregone(0); if (gone) return;
+      }
+    }
+  diff=len-newlen;
+  if (diff>2) {
+    printf("%s: ERROR- Too many endmarks in line %d.\n",
+      fontfilename,currline);
+    ec++;
+    weregone(0); if (gone) return;
+    }
+  else if (charheight>1 && (diff!=(i==charheight-1)+1)) {
+    if (!endmark_countwarn) {
+      printf("%s: Warning- Endchar count convention violated in line %d.\n",
+        fontfilename,currline);
+      printf("%s:          (Above warning will only be printed once.)\n",
+        fontfilename);
+      endmark_countwarn = 1;
+      wc++;
+      weregone(0); if (gone) return;
+      }
+    }
+  }
+#ifdef CHECKBLANKS
+if (minleadblanks+mintrailblanks>0 && old_layout>=0) {
+  printf("%s: Warning- Leading/trailing blanks in char. ending at line %d.\n",
+    fontfilename,currline);
+  printf("%s:          (Above warning only given when old_layout > -1.)\n",
+    fontfilename);
+  wc++;
+  weregone(0); if (gone) return;
+  }
+#endif /* #ifdef CHECKBLANKS */
+}
+
+
+void checkit(void)
+{
+int i,k,cmtcount,numsread,ffrighttoleft,have_layout,layout;
+char magicnum[5],cha;
+long oldord,theord;
+int tmpcnt,len;
+
+ec=0;wc=0;
+incon_endmarkwarn=0; endmark_countwarn=0; nonincrwarn=0;
+bigcodetagwarn=0; deutschcodetagwarn=0;
+asciicodetagwarn=0;
+codetagcnt=0;
+gone=0;
+if (!strcmp(fontfilename,"-")) {
+  fontfilename="(stdin)";
+  fontfile=stdin;
+  }
+else {
+  fontfile=fopen(fontfilename,"r");
+  if (fontfile == NULL) {
+    fprintf(stderr,"%s: Could not open file '%s'\n",myname,fontfilename);
+    exit(1);
+    }
+  }
+
+if (fontfile!=stdin) {
+  if (badsuffix(fontfilename,FONTFILESUFFIX)) {
+    printf("%s: ERROR- Filename does not end with '%s'.\n",
+      fontfilename,FONTFILESUFFIX);
+    ec++;
+    weregone(0); if (gone) return;
+    }
+  }
+fscanf(fontfile,"%4s",magicnum);
+if (strcmp(magicnum,FONTFILEMAGICNUMBER)) {
+  printf("%s: ERROR- Incorrect magic number.\n",fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+cha=getc(fontfile);
+if (cha!='a') {
+  printf("%s: Warning- Sub-version character is not 'a'.\n",fontfilename);
+  wc++;
+  weregone(0); if (gone) return;
+  }
+fileline=(char*)my_alloc(sizeof(char)*(1001));
+if (fgets(fileline,1001,fontfile)==NULL) {
+  fileline[0] = '\0';
+  }
+if (strlen(fileline)>0 ? fileline[strlen(fileline)-1]!='\n' : 0) {
+  while(k=getc(fontfile),k!='\n'&&k!=EOF) ; /* Advance to end of line */
+  }
+numsread=sscanf(fileline,"%c %d %d %d %d %d %d %d %d",
+  &hardblank,&charheight,&upheight,&maxlen,&old_layout,&cmtcount,
+  &ffrighttoleft,&layout,&spectagcnt);
+free(fileline);
+if (numsread<7) {
+  ffrighttoleft=0;
+  }
+if (numsread<9) {
+  spectagcnt=-1;
+  }
+have_layout = (numsread>=8);
+if (6>numsread) {
+  printf("%s: ERROR (fatal)- First line improperly formatted.\n",fontfilename);
+  ec++;
+  weregone(1); if (gone) return;
+  }
+if (!strchr(posshardblanks,hardblank)) {
+  printf("%s: Warning- Unusual hardblank.\n",fontfilename);
+  wc++;
+  weregone(0); if (gone) return;
+  }
+if (charheight<1) {
+  printf("%s: ERROR (fatal)- charheight not positive.\n",fontfilename);
+  ec++;
+  weregone(1); if (gone) return;
+  }
+if (upheight>charheight || upheight<1) {
+  printf("%s: ERROR- up_height out of bounds.\n",fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (maxlen<1) {
+  printf("%s: ERROR (fatal)- maxlen not positive.\n",fontfilename);
+  ec++;
+  weregone(1); if (gone) return;
+  }
+if (old_layout<-1) {
+  printf("%s: ERROR- old_layout < -1.\n",fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (old_layout>63) {
+  printf("%s: ERROR- old_layout > 63.\n",fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (have_layout && layout<0) {
+  printf("%s: ERROR- layout < 0.\n", fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (have_layout &&layout>32767) {
+  printf("%s: ERROR- layout > 32767.\n", fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (have_layout && old_layout == -1 && (layout & 192)) {
+  printf("%s: ERROR- layout %d is inconsistent with old_layout -1.\n",
+    fontfilename,layout);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (have_layout && old_layout == 0 && (layout & 192) != 64 &&
+                                   (layout & 255) != 128) {
+  printf("%s: ERROR- layout %d is inconsistent with old_layout 0.\n",
+    fontfilename,layout);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (have_layout && old_layout > 0 &&
+      (!(layout & 128) || old_layout != (layout & 63))) {
+  printf("%s: ERROR- layout %d is inconsistent with old_layout %d.\n",
+    fontfilename,layout,old_layout);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (cmtcount<0) {
+  printf("%s: ERROR- cmt_count is negative.\n",fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+if (ffrighttoleft<0 || ffrighttoleft>1) {
+  printf("%s: ERROR- rtol out of bounds.\n",fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+
+for (i=1;i<=cmtcount;i++) {
+  while(k=getc(fontfile),k!='\n'&&k!=EOF) ; /* Advance to end of line */
+  }
+
+maxlinelength = 0;
+currline=cmtcount+1;
+fileline=(char*)my_alloc(sizeof(char)*(maxlen+1001));
+for (i=0;i<102;i++) {
+  readchar();
+  if (gone) return;
+  }
+
+oldord=0;
+while(fgets(fileline,maxlen+1000,fontfile)!=NULL) {
+  currline++;
+  len=strlen(fileline)-1;
+  if (len-100>maxlinelength) {
+    maxlinelength=len-100;
+    }
+  if (len>maxlen+100) {
+    printf("%s: ERROR- Code tag line way too long in line %d.\n",
+      fontfilename,currline);
+    ec++;
+    weregone(0); if (gone) return;
+    }
+  tmpcnt=sscanf(fileline,"%li",&theord);
+  if (tmpcnt<1) {
+    printf("%s: Warning- Extra chars after font in line %d.\n",
+      fontfilename,currline);
+    wc++;
+    weregone(0); if (gone) return;
+    break;
+    }
+  codetagcnt++;
+  if (theord>65535 && !bigcodetagwarn) {
+    printf("%s: Warning- Code tag > 65535 in line %d.\n",
+      fontfilename,currline);
+    printf("%s:          (Above warning will only be printed once.)\n",
+      fontfilename);
+    bigcodetagwarn = 1;
+    wc++;
+    weregone(0); if (gone) return;
+    }
+  if (theord==-1) {
+    printf("%s: ERROR- Code tag -1 (unusable) in line %d.\n",
+      fontfilename,currline);
+    ec++;
+    weregone(0); if (gone) return;
+    break;
+    }
+  if (theord>=-255 && theord<=-249 &&!deutschcodetagwarn) {
+    printf("%s: Warning- Code tag in old Deutsch area in line %d.\n",
+      fontfilename,currline);
+    printf("%s:          (Above warning will only be printed once.)\n",
+      fontfilename);
+    deutschcodetagwarn = 1;
+    wc++;
+    weregone(0); if (gone) return;
+    }
+  if (theord<127 && theord>31 && !asciicodetagwarn) {
+    printf("%s: Warning- Code tag in ASCII range in line %d.\n",
+      fontfilename,currline);
+    printf("%s:          (Above warning will only be printed once.)\n",
+      fontfilename);
+    asciicodetagwarn = 1;
+    wc++;
+    weregone(0); if (gone) return;
+    }
+  else if (theord<=oldord && theord>=0 && oldord>=0 && !nonincrwarn) {
+    printf("%s: Warning- Non-increasing code tag in line %d.\n",
+      fontfilename,currline);
+    printf("%s:          (Above warning will only be printed once.)\n",
+      fontfilename);
+    nonincrwarn = 1;
+    wc++;
+    weregone(0); if (gone) return;
+    }
+  oldord=theord;
+  readchar();
+  if (gone) return;
+  }
+
+if (spectagcnt!=-1 && spectagcnt!=codetagcnt) {
+  printf("%s: ERROR- Inconsistent Codetag_Cnt value %d\n",
+    fontfilename, spectagcnt);
+  ec++;
+  weregone(0); if (gone) return;
+  }
+
+if (fontfile!=stdin) fclose(fontfile);
+
+weregone(1); if (gone) return;
+}
+
+
+void main(int argc,char *argv[])
+{
+int arg;
+
+if ((myname=strrchr(argv[0],'/'))!=NULL) {
+  myname++;
+  }
+else {
+  myname = argv[0];
+  }
+if (argc<2) {
+  usageerr();
+  }
+for (arg=1;arg<argc;arg++) {
+  fontfilename=argv[arg];
+  fileline=NULL;
+  checkit();
+  if (fileline!=NULL) free(fileline);
+  }
+exit(0);
+}
--- /dev/null
+++ b/crc.c
@@ -1,0 +1,126 @@
+/*
+ * crc.c - CRC calculation routine
+ *
+ * Version 1.0
+ */
+
+/*
+ * Copyright (c) 1995, Edward B. Hamrick
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that
+ *
+ * (i)  the above copyright notice and the text in this "C" comment block
+ *      appear in all copies of the software and related documentation, and
+ *
+ * (ii) any modifications to this source file must be sent, via e-mail
+ *      to the copyright owner (currently hamrick@primenet.com) within 
+ *      30 days of such modification.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL EDWARD B. HAMRICK BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "crc.h"
+
+/* This is a pre-computed table to make crc computations efficient */
+static unsigned long crctable[] = {
+  0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL,
+  0x076dc419L, 0x706af48fL, 0xe963a535L, 0x9e6495a3L,
+  0x0edb8832L, 0x79dcb8a4L, 0xe0d5e91eL, 0x97d2d988L,
+  0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, 0x90bf1d91L,
+  0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
+  0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L,
+  0x136c9856L, 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL,
+  0x14015c4fL, 0x63066cd9L, 0xfa0f3d63L, 0x8d080df5L,
+  0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L, 0xa2677172L,
+  0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
+  0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L,
+  0x32d86ce3L, 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L,
+  0x26d930acL, 0x51de003aL, 0xc8d75180L, 0xbfd06116L,
+  0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L, 0xb8bda50fL,
+  0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
+  0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL,
+  0x76dc4190L, 0x01db7106L, 0x98d220bcL, 0xefd5102aL,
+  0x71b18589L, 0x06b6b51fL, 0x9fbfe4a5L, 0xe8b8d433L,
+  0x7807c9a2L, 0x0f00f934L, 0x9609a88eL, 0xe10e9818L,
+  0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
+  0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL,
+  0x6c0695edL, 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L,
+  0x65b0d9c6L, 0x12b7e950L, 0x8bbeb8eaL, 0xfcb9887cL,
+  0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L, 0xfbd44c65L,
+  0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
+  0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL,
+  0x4369e96aL, 0x346ed9fcL, 0xad678846L, 0xda60b8d0L,
+  0x44042d73L, 0x33031de5L, 0xaa0a4c5fL, 0xdd0d7cc9L,
+  0x5005713cL, 0x270241aaL, 0xbe0b1010L, 0xc90c2086L,
+  0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
+  0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L,
+  0x59b33d17L, 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL,
+  0xedb88320L, 0x9abfb3b6L, 0x03b6e20cL, 0x74b1d29aL,
+  0xead54739L, 0x9dd277afL, 0x04db2615L, 0x73dc1683L,
+  0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
+  0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L,
+  0xf00f9344L, 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL,
+  0xf762575dL, 0x806567cbL, 0x196c3671L, 0x6e6b06e7L,
+  0xfed41b76L, 0x89d32be0L, 0x10da7a5aL, 0x67dd4accL,
+  0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
+  0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L,
+  0xd1bb67f1L, 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL,
+  0xd80d2bdaL, 0xaf0a1b4cL, 0x36034af6L, 0x41047a60L,
+  0xdf60efc3L, 0xa867df55L, 0x316e8eefL, 0x4669be79L,
+  0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
+  0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL,
+  0xc5ba3bbeL, 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L,
+  0xc2d7ffa7L, 0xb5d0cf31L, 0x2cd99e8bL, 0x5bdeae1dL,
+  0x9b64c2b0L, 0xec63f226L, 0x756aa39cL, 0x026d930aL,
+  0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
+  0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L,
+  0x92d28e9bL, 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L,
+  0x86d3d2d4L, 0xf1d4e242L, 0x68ddb3f8L, 0x1fda836eL,
+  0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L, 0x18b74777L,
+  0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
+  0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L,
+  0xa00ae278L, 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L,
+  0xa7672661L, 0xd06016f7L, 0x4969474dL, 0x3e6e77dbL,
+  0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L, 0x37d83bf0L,
+  0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
+  0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L,
+  0xbad03605L, 0xcdd70693L, 0x54de5729L, 0x23d967bfL,
+  0xb3667a2eL, 0xc4614ab8L, 0x5d681b02L, 0x2a6f2b94L,
+  0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL, 0x2d02ef8dL
+};
+
+/*
+ * This CRC algorithm is the same as that used in zip.  Normally it
+ * should be initialized with 0xffffffff, and the final CRC stored
+ * should be crc ^ 0xffffffff.
+ *
+ * It implements the polynomial:
+ *
+ * x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1
+ */
+
+unsigned long CrcUpdate(          /* returns updated crc         */
+  unsigned long crc,              /* starting crc                */
+  unsigned char *buffer,          /* buffer to use to update crc */
+  long length                     /* length of buffer            */
+)
+{
+  long i;
+
+  for (i=0; i<length; i++)
+  {
+    crc = crctable[buffer[i] ^ ((unsigned char) crc)] ^ (crc >> 8);
+  }
+
+  return crc;
+}
--- /dev/null
+++ b/crc.h
@@ -1,0 +1,59 @@
+/*
+ * crc.h - CRC calculation routine
+ *
+ * Version 1.0
+ */
+
+/*
+ * Copyright (c) 1995, Edward B. Hamrick
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that
+ *
+ * (i)  the above copyright notice and the text in this "C" comment block
+ *      appear in all copies of the software and related documentation, and
+ *
+ * (ii) any modifications to this source file must be sent, via e-mail
+ *      to the copyright owner (currently hamrick@primenet.com) within 
+ *      30 days of such modification.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL EDWARD B. HAMRICK BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * This CRC algorithm is the same as that used in zip.  Normally it
+ * should be initialized with 0xffffffff, and the final CRC stored
+ * should be crc ^ 0xffffffff.
+ *
+ * It implements the polynomial:
+ *
+ * x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1
+ */
+
+#ifndef __CRC_H
+#define __CRC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+unsigned long CrcUpdate(          /* returns updated crc         */
+  unsigned long crc,              /* starting crc                */
+  unsigned char *buffer,          /* buffer to use to update crc */
+  long length                     /* length of buffer            */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+++ b/figfont.txt
@@ -1,0 +1,1687 @@
+        _____  ___  ____   __                _
+       |  ___||_ _|/ ___| / _|  ___   _ __  | |_  ___  _
+       | |_    | || |  _ | |_  / _ \ | '_ \ | __|/ __|(_)
+       |  _|   | || |_| ||  _|| (_) || | | || |_ \__ \ _
+       |_|    |___|\____||_|   \___/ |_| |_| \__||___/(_)
+
+       The FIGfont Version 2 FIGfont and FIGdriver Standard
+       === ======= ======= = ======= === ========= ========
+              Draft 2.0 Copyright 1996, 1997
+                  by John Cowan and Paul Burton
+              Portions Copyright 1991, 1993, 1994
+                  by Glenn Chappell and Ian Chai
+              May be freely copied and distributed.
+
+             Figlet lives at: http://www.figlet.org/
+
+  _____          __           __
+ / ___/__  ___  / /____ ___  / /____
+/ /__/ _ \/ _ \/ __/ -_) _ \/ __(_-<
+\___/\___/_//_/\__/\__/_//_/\__/___/
+
+    INTRODUCTION
+    BASIC DEFINITIONS AND CONCEPTS
+        "FIGfont"
+        "FIGcharacters" and "Sub-characters"
+        "FIGdriver"
+        "FIGure"
+        "FIG"
+        "Layout Modes"
+        "Smushing Rules"
+        "Hardblanks"
+    CREATING FIGFONTS
+        The Header Line
+        Interpretation of Layout Parameters
+        Setting Layout Parameters Step-by-Step
+        FIGfont Comments
+        FIGcharacter Data
+           - Basic Data Structure
+           - Character Codes
+           - Required FIGcharacters
+           - Code Tagged FIGcharacters
+    NOTES - AVOIDING ERRORS AND GENERAL ADVICE
+    CONTROL FILES
+        Standard Format
+        Extended Commands
+    STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS
+    CHART OF CAPABILITIES OF FIGLET 2.2.2 AND FIGWIN 1.0
+
+
+INTRODUCTION
+============
+
+This document specifies the format of font files, and the associated control
+files, used by the FIGlet and FIGWin programs (FIGdrivers).  It is written
+for designers who wish to build fonts (FIGfonts) usable by either program,
+and also serves as a standard for development of future versions or similar
+FIGdrivers.  Some features explained here are not supported by both programs.
+See separate documentation to learn how to use FIGlet or FIGWin.
+
+NOTE: FIGWin 1.0 is packaged with a program called FIGfont Editor for Windows
+1.0, which is just that.  It does not require a complete understanding of
+this document to create FIGfonts.  However it is a good idea to become
+familiar with the "BASIC DEFINITIONS AND CONCEPTS" information before using
+it.
+
+If you design a FIGfont, please send an e-mail announcement to
+<figletfonts@figlet.org>, the FIGlet fonts mailing list, and email a copy
+to info@figlet.org for us to put it on the ftp site (ftp://ftp.figlet.org/)
+
+BASIC DEFINITIONS AND CONCEPTS
+===== =========== === ========
+
+"FIGfont"
+
+A FIGfont is a file which represents the graphical arrangement of characters
+representing larger characters.  Since a FIGfont file is a text file, it can
+be created with any text editing program on any platform.  The filename of a
+FIGfont file must end with ".flf", which stands for "<F>IG<L>ettering
+<F>ont".
+
+
+"FIGcharacters" and "Sub-characters"
+
+Because FIGfonts describe large characters which consist of smaller
+characters, confusion can result when descussing one or the other.
+Therefore, the terms "FIGcharacter" and "sub-character" are used,
+respectively.
+
+
+"FIGdriver"
+
+The term FIGdriver is used in this document to encompass FIGlet, FIGWin, and
+any future programs which use FIGfonts.
+
+
+"FIGure"
+
+A FIGure (thusly capitalized) is an image created by a FIGdriver.
+
+
+"FIG"
+
+A bit of history:
+
+In Spring 1991, inspired by the Email signature of a friend named Frank, and
+goaded on by Ian Chai, Glenn Chappell wrote a nifty little 170-line "C"
+program called "newban", which would create large letters out of ordinary
+text characters.  At the time, it was only compiled for UNIX.  In hindsight,
+we now call it "FIGlet 1.0".  FIGlet stands for <F>rank, <I>an, and <G>lenn's
+<let>ters.  In various incarnations, newban circulated around the net for a
+couple of years.  It had one font, which included only lowercase letters.
+
+In early 1993, Ian decided newban was due for a few changes, so together Ian
+and Glenn added the full ASCII character set, to start with.  First, though,
+Ian had to find a copy of the source, since Glenn had tossed it away as not
+worth the disk space.  Ian and Glenn discussed what could be done with it,
+decided on a general re-write, and, 7 months later, ended up with 888 lines
+of code, 13 FIGfonts and documentation.  This was FIGlet 2.0, the first real
+release.
+
+To their great surprise, FIGlet took the net by storm.  They received floods
+of "FIGlet is great!" messages and a new contributed FIGfont about once a
+week.  To handle all the traffic, Ian quickly set up a mailing list, Daniel
+Simmons kindly offered space for an FTP site, several people volunteered to
+port FIGlet to non-Unix operating systems, ...and bug reports poured in.
+
+Because of these, and the need to make FIGlet more "international", Ian and
+Glenn released a new version of FIGlet which could handle non-ASCII character
+sets and right-to-left printing.  This was FIGlet 2.1, which, in a couple of
+weeks, became figlet 2.1.1.  This weighed in at 1314 lines, and there were
+over 60 FIGfonts.
+
+By late 1996, FIGlet had quite a following of fans subscribing to its mailing
+list.  It had been ported to MS-DOS, Macintosh, Amiga, Apple II GS, Atari ST,
+Acorn and OS/2.  FIGlet had been further updated, and there were nearly 200
+FIGfonts.
+
+John Cowan and Paul Burton are two FIGlet fans who decided to create new
+versions.  While John wrote FIGlet version 2.2 using C, Paul wrote FIGWin
+1.0, the first true GUI (Windows) implementation of FIGlet, using Visual
+Basic.  John and Paul worked together to add new features to FIGfont files
+which could be read by both programs, and together wrote this document, which
+we hope helps to establish consistency in FIGfonts and help with the creation
+of future FIGdrivers.  FIGlet 2.2 has about 4800 lines of code, of which
+over half is a support library for reading compressed files.
+
+FIGlet 2.2 and FIGWin 1.0 both allow greater flexibility by use of new
+information which can be contained in FIGfont files without interfering with
+the function of older FIGdrivers.
+
+NOTE: The Macintosh version of FIGlet is still command-line driven as of this
+writing, and a GUI version is very much in demand.  The FIGlet C code is
+written to be easily plugged in to a GUI shell, so it will be a relatively
+easy task for a Macintosh developer.
+
+
+
+
+"Layout Modes"
+
+A FIGdriver may arrange FIGcharacters using one of three "layout modes",
+which define the spacing between FIGcharacters.  The layout mode for the
+horizontal axis may differ from the layout mode for the vertical axis.  A
+default choice is defined for each axis by every FIGfont.
+
+The three layout modes are:
+
+    Full Size (Separately called "Full Width" or "Full Height".)
+
+        Represents each FIGcharacter occupying the full width or
+        height of its arrangement of sub-characters as designed.
+
+    Fitting Only (Separately called "Kerning or "Vertical Fitting".)
+
+        Moves FIGcharacters closer together until they touch.
+        Typographers use the term "kerning" for this phenomenon
+        when applied to the horizontal axis, but fitting also
+        includes this as a vertical behavior, for which there is
+        apparently no established typographical term.
+
+    Smushing (Same term for both axes.)
+
+        Moves FIGcharacters one step closer after they touch, so that
+        they partially occupy the same space.  A FIGdriver must decide
+        what sub-character to display at each junction.  There are two
+        ways of making these decisions: by controlled smushing or by
+        universal smushing.
+
+        Controlled smushing uses a set of "smushing rules" selected by
+        the designer of a FIGfont.  (See "Smushing Rules" below.)
+        Each rule is a comparison of the two sub-characters which must
+        be joined to yield what to display at the junction.
+        Controlled smushing will not always allow smushing to occur,
+        because the compared sub-characters may not correspond to any
+        active rule.  Wherever smushing cannot occur, fitting occurs
+        instead.
+
+        Universal smushing simply overrides the sub-character from the
+        earlier FIGcharacter with the sub-character from the later
+        FIGcharacter.  This produces an "overlapping" effect with some
+        FIGfonts, wherin the latter FIGcharacter may appear to be "in
+        front".
+
+        A FIGfont which does not specify any smushing rules for a
+        particular axis indicates that universal smushing is to occur
+        when smushing is requested.  Therefore, it is not possible for
+        a FIGfont designer to "forbid" smushing.  However there are
+        ways to ensure that smushing does not cause a FIGfont to be
+        illegible when smushed.  This is especially important for
+        smaller FIGfonts.  (See "Hardblanks" for details.)
+
+For vertical fitting or smushing, entire lines of output FIGcharacters are
+"moved" as a unit.
+
+Not all FIGdrivers do vertical fitting or smushing.  At present, FIGWin 1.0
+does, but FIGlet 2.2 does not.  Further, while FIGlet 2.2 allows the user to
+override the FIGfont designer's set of smushing rules, FIGWin 1.0 does not.
+
+NOTE: In the documentation of FIGlet versions prior to 2.2, the term
+"smushmode" was used to mean the layout mode, and this term further included
+the smushing rules (if any) to be applied.  However, since the layout mode
+may or may not involve smushing, we are straying from the use of this
+somewhat misleading term.
+
+
+"Smushing Rules"
+
+Again, smushing rules are for controlled smushing.  If none are defined to be
+active in a FIGfont, universal smushing occurs instead.
+
+Generally, if a FIGfont is "drawn at the borders" using sub-characters
+"-_|/\[]{}()<>", you will want to use controlled smushing by selecting from
+the rules below.  Otherwise, if your FIGfont uses a lot of other
+sub-characters, do not select any rules and universal smushing will occur
+instead.  (See "Hardblanks" below if your FIGfont is very small and would
+become illegible if smushed.)  Experimentation is the best way to make these
+decisions.
+
+There are six possible horizontal smushing rules and five possible vertical
+smushing rules.  Below is a description of all of the rules.
+
+NOTE: Ignore the "code values" for now.  They are explained later.
+
+    The Six Horizontal Smushing Rules
+
+        Rule 1: EQUAL CHARACTER SMUSHING (code value 1)
+
+            Two sub-characters are smushed into a single sub-character
+            if they are the same.  This rule does not smush
+            hardblanks.  (See "Hardblanks" below.)
+
+        Rule 2: UNDERSCORE SMUSHING (code value 2)
+
+            An underscore ("_") will be replaced by any of: "|", "/",
+            "\", "[", "]", "{", "}", "(", ")", "<" or ">".
+
+        Rule 3: HIERARCHY SMUSHING (code value 4)
+
+            A hierarchy of six classes is used: "|", "/\", "[]", "{}",
+            "()", and "<>".  When two smushing sub-characters are
+            from different classes, the one from the latter class
+            will be used.
+
+        Rule 4: OPPOSITE PAIR SMUSHING (code value 8)
+
+            Smushes opposing brackets ("[]" or "]["), braces ("{}" or
+            "}{") and parentheses ("()" or ")(") together, replacing
+            any such pair with a vertical bar ("|").
+
+        Rule 5: BIG X SMUSHING (code value 16)
+
+            Smushes "/\" into "|", "\/" into "Y", and "><" into "X".
+            Note that "<>" is not smushed in any way by this rule.
+            The name "BIG X" is historical; originally all three pairs
+            were smushed into "X".
+
+        Rule 6: HARDBLANK SMUSHING (code value 32)
+
+            Smushes two hardblanks together, replacing them with a
+            single hardblank.  (See "Hardblanks" below.)
+
+
+    The Five Vertical Smushing Rules
+
+        Rule 1: EQUAL CHARACTER SMUSHING (code value 256)
+
+            Same as horizontal smushing rule 1.
+
+        Rule 2: UNDERSCORE SMUSHING (code value 512)
+
+            Same as horizontal smushing rule 2.
+
+        Rule 3: HIERARCHY SMUSHING (code value 1024)
+
+            Same as horizontal smushing rule 3.
+
+        Rule 4: HORIZONTAL LINE SMUSHING (code value 2048)
+
+            Smushes stacked pairs of "-" and "_", replacing them with
+            a single "=" sub-character.  It does not matter which is
+            found above the other.  Note that vertical smushing rule 1
+            will smush IDENTICAL pairs of horizontal lines, while this
+            rule smushes horizontal lines consisting of DIFFERENT
+            sub-characters.
+
+        Rule 5: VERTICAL LINE SUPERSMUSHING (code value 4096)
+
+            This one rule is different from all others, in that it
+            "supersmushes" vertical lines consisting of several
+            vertical bars ("|").  This creates the illusion that
+            FIGcharacters have slid vertically against each other.
+            Supersmushing continues until any sub-characters other
+            than "|" would have to be smushed.  Supersmushing can
+            produce impressive results, but it is seldom possible,
+            since other sub-characters would usually have to be
+            considered for smushing as soon as any such stacked
+            vertical lines are encountered.
+
+
+"Hardblanks"
+
+A hardblank is a special sub-character which is displayed as a blank (space)
+in rendered FIGures, but is treated more like a "visible" sub-character when
+fitting or smushing horizontally.  Therefore, hardblanks keep adjacent
+FIGcharacters a certain distance apart.
+
+NOTE: Hardblanks act the same as blanks for vertical operations.
+
+Hardblanks have three purposes:
+
+    1) Hardblanks are used to create the blank (space) FIGcharacter.
+
+        Usually the space FIGcharacter is simply one or two vertical
+        columns of hardblanks.  Some slanted FIGfonts as shown below
+        have a diagonal arrangement of hardblanks instead.
+
+    2) Hardblanks can prevent "unreasonable" fitting or smushing.
+
+        Normally when fitting or smushing, the blank (space)
+        sub-character is considered "vacant space".  In the following
+        example, a capital "C" FIGcharacter is smushed with a "minus"
+        FIGcharacter.
+                ______                        ______
+               / ____/                       / ____/
+              / /      ____  >>-Becomes->   / /  ____
+             / /___   /___/                / /__/___/
+             \____/                        \____/
+
+        The FIGure above looks like a capital G.  To prevent this, a
+        FIGfont designer might place a hardblank in the center of the
+        capital C.  In the following example, the hardblank is
+        represented as a "$":
+                ______                        ______
+               / ____/                       / ____/
+              / /  $   ____  >>-Becomes->   / /   ____
+             / /___   /___/                / /___/___/
+             \____/                        \____/
+
+        Using hardblanks in this manner ensures that FIGcharacters
+        with a lot of empty space will not be unreasonably "invaded"
+        by adjacent FIGcharacters.  Generally, FIGcharacters such as
+        capital C, L or T, or small punctuation marks such as commas,
+        may contain hardblanks, since they may contain a lot of vacant
+        space which is "accessible" from either side.
+
+    3) Hardblanks can prevent smushing from making FIGfonts illegible.
+
+        This legitimate purpose of hardblanks is often overused.  If a
+        FIGfont designer is absolutely sure that smushing "visible"
+        sub-characters would make their FIGfont illegible, hardblanks
+        may be positioned at the end of each row of sub-characters,
+        against the visible sub-characters, creating a barrier.
+
+        With older FIGdrivers, using hardblanks for this purpose meant
+        that FIGcharacters would have to be separated by at least one
+        blank in output FIGures, since only a hardblank could smush
+        with another hardblank.  However with the advent of universal
+        smushing, this is no longer necessary.  Hardblanks ARE
+        overriden by any visible sub-character when performing
+        universal smushing.  Hardblanks still represent a "stopping
+        point", but only AFTER their locations are occupied.
+
+        NOTE: Earlier it was stated that universal smushing overrides
+        the sub-character from the former FIGcharacter with the
+        sub-character from the latter FIGcharacter.  Hardblanks (and
+        blanks or spaces) are the exception to this rule; they will
+        always be overriden by visible sub-characters, regardless of
+        which FIGcharacter contains the hardblank.  This ensures that
+        no visible sub-characters "disappear".
+
+        Therefore, one can design a FIGfont with a default behavior of
+        universal smushing, while the output FIGure would LOOK like
+        the effect of fitting, or even full size if additional
+        hardblanks are used.  If a user "scales down" the layout mode
+        to fitting, the result would look like "extra spacing" between
+        FIGcharacters.
+
+        Taking this concept further, a FIGcharacter may also include
+        extra blanks (spaces) on the left side of each FIGcharacter,
+        which would define the FIGcharacter's width as slightly larger
+        than required for the visible sub-characters and hardblanks.
+        With such a FIGfont, a user who further "scales down" the
+        layout mode to full size would see even greater spacing.
+
+        These techniques prevent horizontal smushing from causing a
+        FIGfont to become illegible, while offering greater
+        flexibility of output to users.
+
+        NOTE: These techniques cannot be used to prevent vertical
+        smushing of visible sub-characters, since hardblanks are not
+        respected in the vertical axis.  Although it is possible to
+        select only one vertical smushing rule which involves only
+        sub-characters which are not used in your FIGfont, it is
+        recommend that you do NOT do so.  In our opinion, most users
+        would prefer to get what they ask for, rather than being
+        told, in effect: "I, the FIGfont designer, have decided that
+        you wouldn't like the results of vertical smushing, so I have
+        prevented you from trying it."  Instead, we recommend setting
+        the default behavior to either fitting or full height, and
+        either allowing universal smushing, or selecting vertical
+        smushing rules which seem most appropriate.  A user of your
+        FIGfont will quickly see why you did not choose smushing as
+        the default vertical layout mode, and will agree with you.
+
+
+"Character Sets" and "Character Codes"
+
+When you type using your keyboard, you are actually sending your computer a
+series of numbers.  Each number must be interpreted by your computer so that
+it knows what character to display.  The computer uses a list of definitions,
+called a "character set".  The numbers which represent each character are
+ called "character codes".
+
+There are many character sets, most of which are internationally accepted as
+standards.  By far, the most common character set is ASCII, which stands for
+"American Standard Code for Information Interchange".  ASCII identifies its
+characters with codes ranging from 0 to 127.
+
+NOTE: The term "ASCII art" has become well-understood to mean artistic images
+which consist of characters on your screen (such as FIGures).
+
+For a list of the printable ASCII characters with the corresponding codes,
+see the section "REQUIRED CHARACTERS" below.  The other ASCII codes in the
+range of 0 through 31 are "control characters" such as carriage-return
+(code 13), linefeed/newline (code 10), tab (code 9), backspace (code 8) or
+null (code 0).  Code 127 is a delete in ASCII.
+
+Getting more technical for just a moment: A byte consisting of 8 bits (eight
+ 1's or 0's) may represent a number from 0 to 255.  Therefore, most computers
+have DIRECT access to 256 characters at any given time.  A character set
+which includes 256 characters is called an 8-bit character set.
+
+For Latin-based languages, ASCII is almost always the first half of a larger
+8-bit character set.  Latin-1 is the most common example of an 8-bit
+character set.  Latin-1 includes all of ASCII, and adds characters with codes
+from 128 to 255 which include umlauted ("double-dotted") letters and
+characters with various other accents.  In the United States, Windows and
+most Unix systems have Latin-1 directly available.
+
+Most modern systems allow the possibility of changing 8-bit character sets.
+On Windows systems, character sets are referred to as "code pages".  There
+are many other character sets which are not mentioned here.  DOS has its own
+character set (which also has international variants) that includes graphics
+characters for drawing lines.  It is also an extension of ASCII.
+
+For some languages, 8-bit character sets are insufficient, particularly on
+East Asian systems.  Therefore, some systems allow 2 bytes for each
+character, which multiplies the 256 possibilties by 256, resulting in 65536
+possible characters.  (Much more than the world will ever need.)
+
+Unicode is a character set standard which is intended to fulfill the
+worldwide need for a single character set which includes all characters used
+worldwide.  Unicode includes character codes from 0 to 65535, although at
+present, only about 22,000 characters have been officially assigned and named
+by the Unicode Consortium.  The alphabets and other writing systems
+representable with Unicode include all Latin-alphabet systems, Greek,
+Russian and other Cyrillic-alphabet systems, Hebrew, Arabic, the various
+languages of India, Chinese, Japanese, Korean, and others.  The existing
+Unicode symbols include chess pieces, astrological signs, gaming symbols,
+telephones, pointing fingers, etc. --- just about any type of FIGcharacter
+you may wish to create.  Unicode is constantly (but slowly) being extended
+to handle new writing systems and symbols.  Information on Unicode is
+available at http://www.unicode.org and at ftp://unicode.org .
+
+Unicode, Latin-1, and ASCII all specify the same meanings for overlapping
+character codes:  ASCII 65 = Latin-1 65 = Unicode 65 = "A", formally known
+as "LATIN CAPITAL LETTER A".
+
+Since a keyboard usually has only about 100 keys, your computer may contain
+a program called a "keyboard map", which will interpret certain keystrokes
+or combinations of keystrokes as different character codes.  Keyboard maps
+use "mapping tables" to make these determinations.  The appropriate keyboard
+activity for a given character code may involve several keystrokes.  Almost
+all systems are capable of handling at least 8-bit character sets (containing
+256 characters), so there is always an active keyboard map, at least for
+those characters which are not actually painted on the keys.  (United States
+users may not even know that their computer can interpret special keystrokes.
+Such keystrokes may be something similar to holding down the ALT key while
+typing a character code on the numeric keypad.  Try it!)
+
+Below are characters 160 through 255, AS REPRESENTED ON YOUR SYSTEM.
+
+       ������������������������������������������������
+       ����������������������������������������������+
+IMPORTANT NOTE: Depending on which character set is active on your system,
+you may see different characters.  This document (like all computer
+documents) does not contains characters per se, only bytes.  What you see
+above is your particular computer's representation of these byte values.
+In other words, your active character set.  However, if it is Latin-1, the
+first visible character is an inverted "!", and the last is an umlauted "y".
+Although we can safely assume your computer has ASCII, it does not
+necessarily have the Latin-1 character set active.
+
+What does all this have to do with FIGfonts???
+
+First, it should be evident that it is best to use only ASCII characters for
+sub-characters when possible.  This will ensure portability to different
+platforms.
+
+FIGlet has gained international popularity, but early versions were made to
+handle only FIGcharacters with assigned character codes corresponding to
+ASCII.  So, over the years there have been four methods used to create
+"virtual mapping tables" within the program itself:
+
+     The first method was simply to create FIGcharacters which do not
+     look like the ASCII character set implies.  For example, a
+     FIGfont might contain Greek letters, and within its comments, it
+     may say, "If you type A, you'll get a Greek Alpha" etc.  With
+     the advent of newer features, it is preferable not to use this
+     method. Instead, when possible, add new FIGcharacters to
+     existing FIGfonts or create new FIGfonts with FIGcharacters coded
+     to match the expectations of ASCII/Latin-1/Unicode, and create an
+     appropriate control file.  (See "CONTROL FILES" below.)  Remember
+     that Unicode includes almost any character for which you may want
+     to create a FIGcharacter.
+
+     The second method was very specific, to accommodate the German
+     audience.  A special option was added to the FIGlet program
+     which would re-route input characters "[", "\", and "]" to
+     umlauted A, O and U, while "{", "|", and "}" would become the
+     respective lowercase versions of these.  Also, "~" was made to
+     become the s-z character when this special option was used.  This
+     was called "the -D option."  The addition of this feature meant
+     that all compatible FIGfonts must contain these Deutsch (German)
+     FIGcharacters, in addition to the ASCII FIGcharacters.  Although
+     this option is still available in the most recent version, it is
+     no longer necessary, as the same result can be achieved by the
+     newer features described below.  However, the requirement for
+     Deutsch FIGcharacters remains for backward compatibility.  (Or at
+     least zero-width FIGcharacters in their place.)
+
+     Later, FIGlet was made to accept control files, which are quite
+     literally a form of mapping table.  (See "CONTROL FILES" below.)
+     This was a significant advance for internationalization.
+
+     FIGlet 2.2 can now accept specially encoded formats of input
+     text which imply more than one byte per character.
+
+
+CREATING FIGFONTS
+======== ========
+
+NOTE: FIGWin 1.0 is packaged with a program called FIGfont Editor for Windows
+1.0, which is just that.  There is no need to read further if you intend to
+use it.  However, the section "CONTROL FILES" below is still relevant.
+
+Since a FIGfont file is a text file, it can be created with any text editing
+program on any platform, and will still be compatible with FIGdrivers on all
+operating systems, except that the bytes used to indicate the end of each
+text line may vary.  (PC's use carriage return and linefeed at the end of
+each line, Macintosh uses carriage return only, and UNIX uses linefeed only.)
+
+This minor difference among operating systems is handled easily by setting
+your FTP program to ASCII mode during upload or download.  So there is no
+need to be concerned about this as long as you remember to do this during
+file transfer.
+
+The filename of a FIGfont file must end with ".flf", which stands for
+"<F>IG<L>ettering <F>ont".    The first part of the filename should contain
+only letters, and should be lowercase on operating systems which permit case
+sensitive filenames.  The filename should be unique in the first 8
+characters, since some older file systems truncate longer filenames.
+
+It is easier to modify an existing FIGfont than it is to create a new one
+from scratch.  The first step is to read and understand this document.
+You may want to load "standard.flf" or another FIGfont into a text editor as
+an example while you read.
+
+A FIGfont file contains three portions: a header line, comments, and
+FIGcharacter data.
+
+
+THE HEADER LINE
+
+The header line gives information about the FIGfont.  Here is an example
+showing the names of all parameters:
+
+          flf2a$ 6 5 20 15 3 0 143 229    NOTE: The first five characters in
+            |  | | | |  |  | |  |   |     the entire file must be "flf2a".
+           /  /  | | |  |  | |  |   \
+  Signature  /  /  | |  |  | |   \   Codetag_Count
+    Hardblank  /  /  |  |  |  \   Full_Layout*
+         Height  /   |  |   \  Print_Direction
+         Baseline   /    \   Comment_Lines
+          Max_Length      Old_Layout*
+
+  * The two layout parameters are closely related and fairly complex.
+      (See "INTERPRETATION OF LAYOUT PARAMETERS".)
+
+For those desiring a quick explanation, the above line indicates that this
+FIGfont uses "$" to represent the hardblank in FIGcharacter data, it has
+FIGcharacters which are 6 lines tall, 5 of which are above the baseline, no
+line in the FIGfont data is more than 20 columns wide, the default horizontal
+layout is represented by the number 15, there are 3 comment lines, the
+default print direction for this FIGfont is left-to-right, a complete
+description of default and possible horizontal and vertical layouts is
+represented by the number 143, and there are 229 code-tagged characters.
+
+The first seven parameters are required.  The last three (Direction,
+Full_Layout, and Codetag_Count, are not.  This allows for backward
+compatibility with older FIGfonts, but a FIGfont without these parameters would
+force a FIGdriver to "guess" (by means not described in this document) the
+information it would expect to find in Full_Layout.  For this reason, inclusion
+of all parameters is strongly recommended.
+
+Future versions of this standard may add more parameters after Codetag_Count.
+
+A description of each parameter follows:
+
+     Signature
+
+The signature is the first five characters: "flf2a".  The first four
+characters "flf2" identify the file as compatible with FIGlet version 2.0 or
+later (and FIGWin 1.0).  The "a" is currently ignored, but cannot be omitted.
+Different characters in the "a" location may mean something in future
+versions of this standard.  If so, you can be sure your FIGfonts will still
+work if this character is "a".
+
+     Hardblank
+
+Immediately following the signature is the hardblank character.  The
+hardblank character in the header line defines which sub-character will be
+used to represent hardblanks in the FIGcharacter data.
+
+By convention, the usual hardblank is a "$", but it can be any character
+except a blank (space), a carriage-return, a newline (linefeed) or a null
+character.  If you want the entire printable ASCII set available to use, make
+the hardblank a "delete" character (character code 127).  With the exception
+of delete, it is inadvisable to use non-printable characters as a hardblank.
+
+     Height
+
+The Height parameter specifies the consistent height of every FIGcharacter,
+measured in sub-characters.  Note that ALL FIGcharacters in a given FIGfont
+have the same height, since this includes any empty space above or below.
+This is a measurement from the top of the tallest FIGcharacter to the bottom
+of the lowest hanging FIGcharacter, such as a lowercase g.
+
+     Baseline
+
+The Baseline parameter is the number of lines of sub-characters from the
+baseline of a FIGcharacter to the top of the tallest FIGcharacter.  The
+baseline of a FIGfont is an imaginary line on top of which capital letters
+would rest, while the tails of lowercase g, j, p, q, and y may hang below.
+In other words, Baseline is the height of a FIGcharacter, ignoring any
+descenders.
+
+This parameter does not affect the output of FIGlet 2.2 or FIGWin 1.0, but
+future versions or other future FIGdrivers may use it.  The Baseline
+parameter should be correctly set to reflect the true baseline as described
+above.  It is an error for Baseline to be less than 1 or greater than the
+Height parameter.
+
+     Max_Length
+
+The Max_Length parameter is the maximum length of any line describing a
+FIGcharacter.  This is usually the width of the widest FIGcharacter, plus 2
+(to accommodate endmarks as described later.)  However, you can (and probably
+should) set Max_Length slightly larger than this as a safety measure in case
+your FIGfont is edited to include wider FIGcharacters.  FIGlet (but not
+FIGWin 1.0) uses this number to minimize the memory taken up by a FIGfont,
+which is important in the case of FIGfonts with many FIGcharacters.
+
+     Old_Layout
+
+(See "INTERPRETATION OF LAYOUT PARAMETERS" below.)
+
+     Comment_Lines
+
+Between the first line and the actual FIGcharacters of the FIGfont are the
+comment lines.  The Comment_Lines parameter specifies how many lines there
+are.  Comments are optional, but recommended to properly document the origin
+of a FIGfont.
+
+     Print_Direction
+
+The Print_Direction parameter tells which direction the font is to be
+printed by default.  A value of 0 means left-to-right, and 1 means
+right-to-left.  If this parameter is absent, 0 (left-to-right) is assumed.
+Print_Direction may not specify vertical print, although FIGdrivers are
+capable of vertical print.  Versions of FIGlet prior to 2.1 ignore this
+parameter.
+
+      Full_Layout
+
+(See "INTERPRETATION OF LAYOUT PARAMETERS" just below.)
+
+      Codetag_Count
+
+Indicates the number of code-tagged (non-required) FIGcharacters in this
+FIGfont.  This is always equal to the total number of FIGcharacters in the font
+minus 102.  This parameter is typically ignored by FIGdrivers, but can be
+used to verify that no characters are missing from the end of the FIGfont.
+The chkfont program will display the number of codetagged characters
+in the FIGfont on which it is run, making it easy to insert this parameter
+after a FIGfont is written.
+
+
+INTERPRETATION OF LAYOUT PARAMETERS
+
+Full_Layout describes ALL information about horizontal and vertical layout:
+the default layout modes and potential smushing rules, even when smushing is
+not a default layout mode.
+
+Old_Layout does not include all of the information desired by the most
+recent FIGdrivers, which is the inspiration for the creation of the new
+Full_Layout parameter.  Old_Layout is still required for backward
+compatibility, and FIGdrivers must be able to interpret FIGfonts which do not
+have the Full_Layout parameter.  (See "STANDARDIZED CAPABILITIES OF CURRENT
+AND FUTURE FIGDRIVERS".)
+
+Versions of FIGlet prior to 2.2 do not recognize the Full_Layout parameter.
+Documentation accompanying FIGlet versions prior to 2.2 refer to Old_Layout
+as "smushmode", which is somewhat misleading since it can indicate layout
+modes other than smushing.
+
+Old_Layout and Full_Layout must contain some redundant information.
+
+Setting the layout parameters is a matter of adding numbers together ("code
+values").  What follows is a chart of the meanings of all code values.
+(You may skip down to "SETTING LAYOUT PARAMETERS STEP BY STEP" if you prefer,
+or if you find this portion confusing.)
+
+Full_Layout: (Legal values 0 to 32767)
+
+     1  Apply horizontal smushing rule 1 when smushing
+     2  Apply horizontal smushing rule 2 when smushing
+     4  Apply horizontal smushing rule 3 when smushing
+     8  Apply horizontal smushing rule 4 when smushing
+    16  Apply horizontal smushing rule 5 when smushing
+    32  Apply horizontal smushing rule 6 when smushing
+    64  Horizontal fitting (kerning) by default
+   128  Horizontal smushing by default (Overrides 64)
+   256  Apply vertical smushing rule 1 when smushing
+   512  Apply vertical smushing rule 2 when smushing
+  1024  Apply vertical smushing rule 3 when smushing
+  2048  Apply vertical smushing rule 4 when smushing
+  4096  Apply vertical smushing rule 5 when smushing
+  8192  Vertical fitting by default
+ 16384  Vertical smushing by default (Overrides 8192)
+
+When no smushing rules are included in Full_Layout for a given axis, the
+meaning is that universal smushing shall occur, either by default or when
+requested.
+
+Old_Layout: (Legal values -1 to 63)
+
+    -1  Full-width layout by default
+     0  Horizontal fitting (kerning) layout by default*
+     1  Apply horizontal smushing rule 1 by default
+     2  Apply horizontal smushing rule 2 by default
+     4  Apply horizontal smushing rule 3 by default
+     8  Apply horizontal smushing rule 4 by default
+    16  Apply horizontal smushing rule 5 by default
+    32  Apply horizontal smushing rule 6 by default
+
+* When Full_Layout indicates UNIVERSAL smushing as a horizontal default
+(i.e., when none of the code values of horizontal smushing rules are included
+and code value 128 is included in Full_Layout) Old_Layout must be set to 0
+(zero).  Older FIGdrivers which cannot read the Full_Layout parameter are
+also incapable of universal smushing.  Therefore they would be directed to
+the "next best thing", which is horizontal fitting (kerning).
+
+NOTE: You should NOT add the -1 value to any positive code value for
+Old_Layout.  This would be a logical contradiction.
+
+See "STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS" for the
+behavior of a FIGdriver when the Full_Layout parameter is absent (presumably
+in an older FIGfont).
+
+The following rules establish consistency between Old_Layout and Full_Layout.
+
+  If full width is to be the horizontal default:
+    Old_Layout must be -1.
+    Full_Layout must NOT include code values 64 nor 128.
+
+  If horizontal fitting (kerning) is to be default:
+    Old_Layout must be 0.
+    Full_Layout must include code value 64.
+    Full_Layout must NOT include code value 128.
+
+  If CONTROLLED smushing is to be the horizontal default:
+    Old_Layout must be a positive number, represented by the added
+        code values of all desired horizontal smushing rules.
+    Full_Layout must include the code values for the SAME set of
+        horizontal smushing rules as included in Old_Layout.
+    Full_Layout must include code value 128.
+
+  If UNIVERSAL smushing is to be the horizontal default:
+    Old_Layout must be 0.
+    Full_Layout must include code value 128.
+    Full_Layout must NOT include any code value under 64.
+
+In general terms, if Old_Layout specifies horizontal smushing rules,
+Full_Layout must specify the same set of horizontal rules, and both must
+indicate the same horizontal default layout mode.
+
+
+SETTING LAYOUT PARAMETERS STEP-BY-STEP
+
+The following step-by-step process will yield correct and consistent values
+for the two layout parameters.  You may skip this if you find the
+explanations above easier to use.
+
+Step 1: Start with 0 for both numbers.
+
+     Write "Old_Layout" and "Full_Layout" on a piece of paper.
+     Write the number 0 next to each.
+     The number 0 may be crossed out and changed several times below.
+     Go to step 2.
+
+Step 2: Set the DEFAULT HORIZONTAL LAYOUT MODE.
+
+     If you want to use FULL WIDTH as the default
+        Make Old_Layout -1
+        Go to step 3.
+     If you want to use HORIZONTAL FITTING (kerning) as the default
+        Make Full_Layout 64
+        Go to step 3.
+     If you want to use HORIZONTAL SMUSHING as the default
+        Make Full_Layout 128
+        Go to step 3.
+
+Step 3: Specify HOW TO SMUSH HORIZONTALLY WHEN SMUSHING.
+
+     If you want to use UNIVERSAL smushing for the horizontal axis
+        Go to step 4.
+     If you want to use CONTROLLED smushing for the horizontal axis
+        Add together the code values for all the horizontal smushing
+        rules you want from the list below to get the horizontal
+        smushing rules total.
+
+            EQUAL CHARACTER SMUSHING          1
+            UNDERSCORE SMUSHING               2
+            HIERARCHY SMUSHING                4
+            OPPOSITE PAIR SMUSHING            8
+            BIG X SMUSHING                   16
+            HARDBLANK SMUSHING               32
+
+            Horizontal smushing rules total: ___
+
+     If Full_Layout is currently 128
+        Change Old_Layout to the horizontal smushing rules total.
+        Increase Full_Layout by the horizontal smushing rules total.
+        Go to Step 4.
+     If Full_Layout is currently 0 or 64
+        Increase Full_Layout by the horizontal smusing rules total.
+        Go to Step 4.
+
+Step 4: Set the DEFAULT VERTICAL LAYOUT MODE.
+
+     If you want to use FULL HEIGHT as the default
+        Go to step 5.
+     If you want to use VERTICAL FITTING as the default
+        Increase Full_Layout by 8192.
+        Go to step 5.
+     If you want to use VERTICAL SMUSHING as the default
+        Increase Full_Layout by 16384.
+        Go to step 5.
+
+Step 5: Specify HOW TO SMUSH VERTICALLY WHEN SMUSHING.
+
+     If you want to use UNIVERSAL smushing for the vertical axis
+        Go to step 6.
+     If you want to use CONTROLLED smushing for the vertical axis
+        Add together the code values for all the vertical smushing
+        rules you want from the list below to get the vertical
+        smushing rules total.
+
+            EQUAL CHARACTER SMUSHING        256
+            UNDERSCORE SMUSHING             512
+            HIERARCHY SMUSHING             1024
+            HORIZONTAL LINE SMUSHING       2048
+            VERTICAL LINE SUPERSMUSHING    4096
+
+            Vertical smushing rules total: ____
+
+        Increase Full_Layout by the vertical smushing rules total.
+        Go to step 6.
+
+Step 6: You're done.
+
+The resulting value of Old_Layout will be a number from -1 to 63.
+The resulting value of Full_Layout will be a number from 0 and 32767.
+
+
+FIGFONT COMMENTS
+
+After the header line are FIGfont comments.  The comments can be as many
+lines as you like, but should at least include your name and Email address.
+Here is an example which also shows the header line.
+
+    flf2a$ 6 5 20 15 3 0 143
+    Example by Glenn Chappell <ggc@uiuc.edu> 8/94
+    Permission is hereby given to modify this font, as long as the
+    modifier's name is placed on a comment line.
+
+Comments are not required, but they are appreciated.  Please comment your
+FIGfonts.
+
+Remember to adjust the Comment_Lines parameter as you add lines to your
+comments.  Don't forget that blank lines DO count.
+
+
+FIGCHARACTER DATA
+============ ====
+
+The FIGcharacter data begins on the next line after the comments and
+continues to the end of the file.
+
+BASIC DATA STRUCTURE
+
+The sub-characters in the file are given exactly as they should be output,
+with two exceptions:
+
+    1) Hardblanks should be the hardblank character specified in the
+       header line, not a blank (space).
+
+    2) Every line has one or two endmark characters, whose column
+       locations define the width of each FIGcharacter.
+
+In most FIGfonts, the endmark character is either "@" or "#".  The FIGdriver
+will eliminate the last block of consecutive equal characters from each line
+of sub-characters when the font is read in.  By convention, the last line of
+a FIGcharacter has two endmarks, while all the rest have one. This makes it
+easy to see where FIGcharacters begin and end.  No line should have more
+than two endmarks.
+
+Below is an example of the first few FIGcharacters, taken from small.flf.
+
+NOTE: The line drawn below consisting of "|" represents the left margin of
+your editor.  It is NOT part of the FIGfont.  Also note that hardblanks are
+represented as "$" in this FIGfont, as would be described in the header line.
+
+                        |$@
+                        |$@
+           blank/space  |$@
+                        |$@
+                        |$@@
+                        | _ @
+                        || |@
+     exclamation point  ||_|@
+                        |(_)@
+                        |   @@
+                        | _ _ @
+                        |( | )@
+          double quote  | V V @
+                        |  $  @
+                        |     @@
+                        |   _ _   @
+                        | _| | |_ @
+           number sign  ||_  .  _|@
+                        ||_     _|@
+                        |  |_|_|  @@
+                        |    @
+                        | ||_@
+           dollar sign  |(_-<@
+                        |/ _/@
+                        | || @@
+
+Notice that each FIGcharacter occupies the same number of lines (6 lines, in
+this case), which must also be expressed in the header line as the Height
+parameter.
+
+Also notice that for every FIGcharacter, there must be a consistent width
+(length) for each line once the endmarks are removed.  To do otherwise would
+be an error.
+
+Be aware of the vertical alignment of each FIGcharacter within its height,
+so that all FIGcharacters will be properly lined up when printed.
+
+If one of the last sub-characters in a particular FIGcharacter is "@", you
+should use another character for the endmark in that FIGcharacter so that
+the intended "@" is not interpreted as an endmark.  "#" is a common
+alternative.
+
+Load a few existing FIGfonts into your favorite text editor for other
+examples.
+
+
+REQUIRED FIGCHARACTERS
+
+Some FIGcharacters are required, and must be represented in a specific order.
+Specifically: all of the printable character codes from ASCII shown in the
+table below, in order, plus character codes 196, 214, 220, 228, 246, 252,
+and 223, in that order.  In Latin-1, these extra 7 characters represent the
+following German characters: umlauted "A", "O", "U", "a", "o" and "u"; and
+also "ess-zed".
+
+    Printable portion of the ASCII character set:
+
+        32 (blank/space) 64 @             96  `
+        33 !             65 A             97  a
+        34 "             66 B             98  b
+        35 #             67 C             99  c
+        36 $             68 D             100 d
+        37 %             69 E             101 e
+        38 &             70 F             102 f
+        39 '             71 G             103 g
+        40 (             72 H             104 h
+        41 )             73 I             105 i
+        42 *             74 J             106 j
+        43 +             75 K             107 k
+        44 ,             76 L             108 l
+        45 -             77 M             109 m
+        46 .             78 N             110 n
+        47 /             79 O             111 o
+        48 0             80 P             112 p
+        49 1             81 Q             113 q
+        50 2             82 R             114 r
+        51 3             83 S             115 s
+        52 4             84 T             116 t
+        53 5             85 U             117 u
+        54 6             86 V             118 v
+        55 7             87 W             119 w
+        56 8             88 X             120 x
+        57 9             89 Y             121 y
+        58 :             90 Z             122 z
+        59 ;             91 [             123 {
+        60 <             92 \             124 |
+        61 =             93 ]             125 }
+        62 >             94 ^             126 ~
+        63 ?             95 _
+
+    Additional required Deutsch FIGcharacters, in order:
+
+        196 (umlauted "A" -- two dots over letter "A")
+        214 (umlauted "O" -- two dots over letter "O")
+        220 (umlauted "U" -- two dots over letter "U")
+        228 (umlauted "a" -- two dots over letter "a")
+        246 (umlauted "o" -- two dots over letter "o")
+        252 (umlauted "u" -- two dots over letter "u")
+        223 ("ess-zed" -- see FIGcharacter illustration below)
+                                      ___
+                                     / _ \
+                                    | |/ /
+                  Ess-zed >>--->    | |\ \
+                                    | ||_/
+                                    |_|
+
+If you do not wish to define FIGcharacters for all of those required above,
+you MAY create "empty" FIGcharacters in their place by placing endmarks flush
+with the left margin.  The Deutsch FIGcharacters are commonly created as
+empty.  If your FIGfont includes only capital letters, please copy them to
+the appropriate lowercase locations, rather than leaving lowercase letters
+empty.  A FIGfont which does not include at least all ASCII letters, a space,
+and a few basic punctuation marks will probably frustrate some users.  (For
+example "@" is more frequently desired as a FIGcharacter than you may think,
+since Email addresses may be written as FIGures.)
+
+
+CODE TAGGED FIGCHARACTERS
+
+After the required FIGcharacters, you may create FIGcharacters with any
+character code in the range of -2147483648 to +2147483647. (Over four
+billion possibilities, which is "virtual infinity" for this purpose.)
+One exception: character code -1 is NOT allowed for technical reasons.
+It is advisable to assign character codes such that the appearance of your
+FIGcharacters matches the expectations of ASCII/Latin-1/Unicode, with a few
+exceptions:
+
+    1) If a FIGcharacter with code 0 is present, it is treated
+       specially.  It is a FIGfont's "missing character".  Whenever
+       the FIGdriver is told to print a character which doesn't exist
+       in the current FIGfont, it will print FIGcharacter 0.  If there
+       is no FIGcharacter 0, nothing will be printed.
+
+    2) If a FIGfont contains a non-Latin alphabet in character codes
+       in the ASCII range 32-126 (which is discouraged), we have found
+       it helpful to include a human-readable translation table as one
+       of the FIGcharacters instead of a "glyph".  Typically, the "~"
+       would contain this table.  The translation table FIGcharacter
+       would contain a list of all the special characters in the
+       FIGfont, along with the ASCII characters to which they
+       correspond.  Keep this table no more than 79 columns wide.
+       (Thanks to Gedaliah Friedenberg for this idea.)
+
+    3) In more extensive Unicode fonts, you can assign a negative
+       character code (other than -1) to one or more translation
+       tables, similar to #2 above.  (All Unicode character codes are
+       positive.)  And, you will most likely suggest within the
+       comments that a user access one of several control files (See
+       "CONTROL FILES" below) to gain access to Latin-2, Latin-3, or
+       other 8-bit standardized character sets.  The control files may
+       redirect the "~" character to one of the negative character codes so
+       that the translation table would display the table when "~" is
+       given for input.  Doing this allows you to still have a "~"
+       FIGcharacter for those who do not use a control file.
+
+Those FIGcharacters which are not required must have an explicit character
+code in a separate line preceding them, called a "code tag".  A code tag
+contains the value of the character code, followed by whitespace (a few
+spaces), and perhaps an optional comment.  The comment is usually the name of
+the FIGcharacter.  The Unicode Consortium has assigned formal names to all
+officially accepted characters, and these may be used.  An entire code tag,
+including the comment, should not occupy more than 95 columns.  (Over 100
+characters here may make older versions of FIGlet crash.)
+
+Here is an example, showing two code tagged FIGcharacters after the last two
+required Deutsch FIGcharacters.  Again, the line drawn below consisting of
+"|" represents the left margin of your editor, and is NOT part of the FIGfont.
+
+                        | _   _ @
+                        |(_) (_)@
+                        || | | |@
+                        || |_| |@
+                        | \__,_|@
+                        |       @@
+                        |  ___ @
+                        | / _ \@
+                        || |/ /@
+                        || |\ \@
+                        || ||_/@
+                        ||_|   @@
+                        |161  INVERTED EXCLAMATION MARK
+                        | _ @
+                        |(_)@
+                        || |@
+                        || |@
+                        ||_|@
+                        |   @@
+                        |162  CENT SIGN
+                        |   _  @
+                        |  | | @
+                        | / __)@
+                        || (__ @
+                        | \   )@
+                        |  |_| @@
+
+
+A character code may be expressed in decimal (as shown above, numbers we're
+all familiar with), or in Octal (seldom used) or in hexadecimal.
+
+Character codes expressed in octal must be preceded by "0" (zero), and if
+negative, "-" (minus) must precede the "0".  There are eight octal digits:
+01234567.  You may recall octal numbers from school as "base 8 numbers".
+
+Character codes expressed in hexadecimal must be preceded by "0x" or "0X".
+(That's also a zero.)  If negative, the "-" must precede the "0x".  There are
+16 hexadecimal digits: 01234567890ABCDEF.  (The "letter-digits" may also be
+lowercase.)  Hexadecimal is "base 16".
+
+It is common to express character codes less than 256 (in the range of an
+8-bit character set) as decimal, while FIGfonts which extend into the Unicode
+range would have character codes expressed in hexadecimal.  This is because
+the Unicode Standard expresses character codes in hexadecimal, which is
+helpful for programmers.
+
+The code tagged FIGcharacters may be listed in any order, but simple
+sequential order is recommended.
+
+If two or more FIGcharacters have the same character code, the last one in
+the FIGfont is the one used.  It is common for the Deutsch FIGcharacters to
+be given twice in a FIGfont, just to maintain a consistent order for the
+Latin-1 range (128 to 255).
+
+It is not advisable to assign character codes in the range of 1 to 31, since
+this range includes control characters in ASCII.  Character code 127 is a
+delete in ASCII, and is also not advised.  Character codes 128 to 159 are
+additional control characters in Latin-1, and they too should not be used.
+All of the above are legal, technically, but are not part of what is legal
+for input, so they could only be accessed by use of a control file.
+(See "CONTROL FILES" below.)  If you are still tempted to use them, consider
+negative character codes instead, which are meaningless in all standardized
+character sets.
+
+Again, the character code -1 is illegal for technical reasons.
+
+
+NOTES - AVOIDING ERRORS AND GENERAL ADVICE
+=====   ======== ====== === ======= ======
+
+It is very important that every character in a font has the same height, and,
+once the endmarks are removed, that all the lines constituting a single
+FIGcharacter have the same length.  Be careful also that no lines in the font
+file have trailing blanks (spaces), as the FIGdriver will take these to be
+the endmarks.  (FIGWin 1.0 will not consider blanks to be endmarks.)
+
+Errors in a FIGfont can be detected by using the "chkfont" program,
+part of the standard FIGlet package, and also available, as of this
+writing from http://www.figlet.org/
+�
+For FIGWin users, the FIGWin program will report errors when a FIGfont is
+read in; it is less forgiving than FIGlet, which can produce nonsense if the
+FIGfont is incorrectly formatted.
+
+Remember that sub-characters outside of the ASCII range will not necessarily
+display the same way on your system as on others.
+
+The blank (space) FIGcharacter should usually consist of one or two columns
+of hardblanks and nothing else; slanted fonts are an exception to this rule.
+If the space FIGcharacter does not contain any hardblanks, it will disappear
+when horizontal fitting (kerning) or smushing occurs.
+
+Again, if you design a FIGfont, please let us know!
+
+
+CONTROL FILES
+======= =====
+
+A FIGfont control file is a separate text file, associated with one or more
+FIGfonts, that indicates how to map input characters into FIGfont character
+codes.  By default, FIGdrivers read single bytes from the input source and
+interpret them as Latin-1 FIGcharacters.
+
+FIGlet version 2.2 (and later) can optionally interpret its input as DBCS or
+UTF-8 characters, making it possible to access FIGcharacters with codes
+outside the Latin-1 range (greater than 255).
+
+In addition, though, all versions of FIGlet can use control files to
+transform specific character codes (or ranges of codes) as other codes
+(or ranges).  Multiple control files can be specified, in which case multiple
+stages of transformation are performed.
+
+The filename of a control file always ends with ".flc".
+
+CONTROL FILE FORMAT
+
+Control files contain several kinds of lines.  Lines beginning with "#", as
+well as blank lines, are comment lines and are ignored.  All other lines are
+command lines, with one of the following formats:
+
+    t inchar outchar
+    t inchar1-inchar2 outchar1-outchar2
+    number number
+    f
+    h
+    j
+    b
+    u
+    g{0|1|2|3} {94|96|94x94} [char]
+    g{L|R} {0|1|2|3}
+
+where "inchar", "outchar", and "char" are either Latin-1 characters
+representing their own codes, or else are numeric character codes preceded by
+a "\" character; and "number" is a numeric character code with no preceding
+"\" character.
+
+Thus "A" represents the code 65, as does "\65", and "\0x100" represents the
+code 256 (100 in hexadecimal).  In addition, "\ " (backslash followed by a
+space) represents the code 32 (space), and the following backslash sequences
+are also understood:
+
+    \a        code 7 (a bell/alert)
+    \b        code 8 (a backspace)
+    \e        code 27 (an ESC character)
+    \f        code 12 (a form feed)
+    \n        code 10 (a newline/line feed)
+    \r        code 13 (a carriage return)
+    \t        code 9 (a horizontal tab)
+    \v        code 11 (a vertical tab)
+    \\        code 92 (a backslash)
+
+All of these combinations except perhaps "\\" are very unlikely to be used,
+but they are provided just in case they are needed.
+
+Whitespace characters are used between "t" and "inchar" and between "inchar"
+and "outchar", but not around the "-" characters used in the second type of
+"t" command.
+
+The term "string" refers to any number of characters represented in the
+format given above.  The characters begin after the whitespace following the
+letter "s", and continue to the end of the line.
+
+Anything following the first letter of an "f", "h", "j", or "u" command is
+ignored.
+
+The first type of "t" command transforms characters with the code "inchar"
+into characters with the code "outchar". The second type of "t" command
+transforms characters in the range "inchar1" to "inchar2" as the
+corresponding codes in the range "outchar1" to "outchar2". Both ranges must
+be of the same size.  The form "number number" is equivalent to a "t"
+command of the first type, and is provided for compatibility with the mapping
+tables issued by the Unicode Consortium.
+
+Multiple transformation stages can be encoded in a single control file by
+using "f" commands to separate the stages.
+
+Versions of FIGlet before 2.1 required that the first line of a control file
+consist of the signature string "flc2a".  This signature line is still
+permitted in FIGlet 2.2 and later versions, but is no longer required.
+
+Here is an example of a control file.  The blanks at the beginning of each
+line are for readability only, and are not part of the file.
+
+The following control file:
+
+    flc2a
+    t # $
+    t A-Z a-z
+
+will map the "#" character to "$", and will also convert uppercase ASCII to
+lowercase ASCII.
+
+If a number of consecutive "t" commands are given, then for each character
+processed, only the first applicable command (if any) will be executed.
+Consider this control file:
+
+    t A B
+    t B A
+
+It will swap the characters "A" and "B".  If the FIGdriver reads an "A", the
+first command will change "A" to "B", in which case the second will not be
+executed.  If the FIGdriver reads a "B", the first command will have no
+effect, and the second command will change "B" to "A".  Here is another
+control file:
+
+    t A B
+    t A C
+
+In this example, the second line is never executed.  In short, a sequence of
+"t" lines "does what it ought to".
+
+More complex files, in which a single character is acted upon by several "t"
+commands, can be set up using an "f" command. For example:
+
+    flc2a
+    t a-z A-Z
+    f
+    t Q ~
+
+This control file specifies two transformation stages.  In the first stage,
+lowercase ASCII letters are changed to their uppercase equivalents.  The
+second stage maps any Q (whether original or a converted "q") into the "~"
+character. If the "f" command were omitted, "q" characters would remain "Q"
+and not be converted to "~".
+
+EXTENDED COMMANDS
+
+The "h", "j", "b", "u", and "g" commands are only understood by FIGlet
+version 2.2 or later.  They control how a FIGdriver interprets bytes in the
+input.  By default, the FIGdriver interprets each byte of input as a distinct
+character.  This mode is suitable for most character encodings.  All these
+commands are logically acted on before any other control file commands, no
+matter where in the sequence of control files they appear.  They are also
+mutually exclusive; if more than one of these commands is found, only the
+last is acted on.  Multiple "g" commands are permitted, however.
+
+The "h" command forces the input to be interpreted in HZ mode, which is used
+for the HZ character encoding of Chinese text.  In this mode, the sequence
+"~{" (which is removed from the input) signals that all following characters
+are two bytes long until the sequence "~}" is detected. In addition, the
+sequence "~~" is changed to just "~", and all other two-byte sequences
+beginning with "~" are removed from the input. The character code
+corresponding to a two-byte character is:
+
+    first character * 256 + second character
+
+The "j" command forces the input to be interpreted in Shift-JIS mode (also
+called "MS-Kanji mode").  Input bytes in the ranges 128-159 and 224-239 are
+read as the high-order byte of a two-byte character; all other bytes are
+interpreted as one-byte characters.  The value of a two-byte character is
+determined in the same way as in HZ mode.
+
+The "b" command forces the input to be interpreted in DBCS mode, which is
+suitable for processing HZ or Shift-GB Chinese text or Korean text.  Input
+bytes in the ranges 128-255 are read as the high-order byte of a two-byte
+character; all other bytes are interpreted as one-byte characters.  The
+value of a two-byte character is determined in the same way as in HZ mode.
+
+The "u" command forces the input to be interpreted in UTF-8 mode, which
+causes any input byte in the range 0x80 to 0xFF to be interpreted as the
+first byte of a multi-byte Unicode (ISO 10646) character.  UTF-8 characters
+can be from 1 to 6 bytes long.  An incorrectly formatted sequence is
+interpreted as the character 128 (normally an unused control character).
+
+Otherwise, the input is allowed to contain ISO 2022 escape sequences, which
+are decoded to generate appropriate character codes.  These character codes
+are *not* a subset of Unicode, but may be more useful in processing East
+Asian text.  A brief explanation of ISO 2022 is given here in order to
+clarify how a FIGdriver should interpret it.  The "g" command provides
+information for the ISO 2022 interpreter, and is explained below.
+
+ISO 2022 text is specified using a mixture of registered character sets.
+At any time, up to four character sets may be available.  Character sets
+have one of three sizes:  single-byte character sets with 94 characters
+(e.g. ASCII), single-byte character sets with 96 characters (e.g. the top
+halves of ISO Latin-1 to Latin-5), or double-byte character sets with
+94 x 94 characters (e.g. JIS 0208X-1983).  Each registered character set has
+a standard designating byte in the range 48 to 125; the bytes are unique withi
+n character set sizes, but may be reused across sizes.  For example, byte 66
+designates the 94-character set ASCII, the 96-character set ISO Latin-2 (top
+half), and the 94 x 94 Japanese character set JIS 0208X-1983. In this
+document, the designating byte of a character set will be represented by <D>.
+
+The four available character sets are labeled G0, G1, G2, and G3.  Initially,
+G0 is the 94-character set ASCII, and G1 is the 96-character set ISO Latin-1
+(top half).  The other character sets are unassigned.  The following escape
+sequences (where ESC = the byte 27) specify changes to the available
+character sets:
+
+        ESC ( <D>    Set G0 to the 94-character set <D>
+        ESC ) <D>    Set G1 to the 94-character set <D>
+        ESC * <D>    Set G2 to the 94-character set <D>
+        ESC + <D>    Set G3 to the 94-character set <D>
+        ESC - <D>    Set G1 to the 96-character set <D>
+        ESC . <D>    Set G2 to the 96-character set <D>
+        ESC / <D>    Set G3 to the 96-character set <D>
+        ESC $ <D>    Set G0 to the 94 x 94 character set <D>
+        ESC $ ( <D>    Set G0 to the 94 x 94 character set <D>
+        ESC $ ) <D>    Set G1 to the 94 x 94 character set <D>
+        ESC $ * <D>    Set G2 to the 94 x 94 character set <D>
+        ESC $ + <D>    Set G3 to the 94 x 94 character set <D>
+
+
+Note that G0 may not be a 96-character set, and that there are two ways to
+specify a 94 x 94 character set in G0, of which the first is deprecated.
+
+ISO 2022 decoding affects input bytes in the ranges 33 to 126 and 160 to 255,
+known as "the left half" and "the right half" respectively.  All other bytes,
+unless they belong to a control sequence shown in this document, remain
+unchanged.  Initially, the left half is interpreted as character set G0,
+and the right half as character set G1.  This can be changed by the following
+control sequences:
+
+        SI (byte 15)    Interpret the left half as G1 characters
+        SO (byte 14)    Interpret the left half as G0 characters
+        ESC n           Interpret the left half as G2 characters
+        ESC o           Interpret the left half as G3 characters
+        ESC ~           Interpret the right half as G1 characters
+        ESC }           Interpret the right half as G2 characters
+        ESC |           Interpret the right half as G3 characters
+        SS2 (byte 142)  Interpret next character only as G2
+        ESC N           Interpret next character only as G2
+        SS3 (byte 143)  Interpret next character only as G3
+        ESC O           Interpret next character only as G3
+
+
+This rich schema may be used in various ways.  In ISO-2022-JP, the Japanese
+flavor of ISO 2022, only the bytes 33-126 and the G0 character set is used,
+and escape sequences are used to switch between ASCII, ISO-646-JP (the
+Japanese national variant of ASCII), and JIS 0208X-1983.  In other versions,
+the G1 character set has 94 x 94 size, and so any byte in the range 160-255
+is automatically the first byte of a double-byte character.
+
+FIGdrivers that support ISO 2022 do so in the following way.  Each character i
+is decoded and assigned to a character set <D>.
+
+    If the character belongs to a 94-bit character set,
+        then if its value exceeds 128, it is reduced by 128,
+        and the value 65536 * <D> is added to it,
+            unless <D> is 66 (ASCII).
+    If the character belongs to a 96-bit character set,
+        then if its value is less than 128, it is increased by 128,
+        and the value 65536 * <D> is added to it,
+            unless <D> is 65 (ISO Latin-1).
+    If the character belongs to a 94 x 94 character set,
+        then the value is the sum of:
+            the first byte * 256,
+            plus the second byte,
+            plus the value 65536 * <D>.
+
+
+Thus, the character code 65 ("A") in ASCII remains 65, the character code
+196 in ISO Latin-1 ("A-umlaut") remains 196, the character code 65 (0x41)
+in ISO-646-JP (whose <D> is 74 = 0x4A) becomes 0x4A0041 =4849729, and the
+two-byte sequence 33 33 (0x21 0x21) in JIS 0208X-1983 (whose <D> is
+65 = 0x41) becomes 0x412121 = 4268321.  These codes may be used in compiling
+FIGfonts suitable for use with ISO 2022 encoded text.
+
+The initial settings of G0 through G3 and their assignments to the left half
+and the right half can be altered in a control file by using "g" commands,
+as follows:
+
+    g {0|1|2|3} {94|96|94x94} [<D>]
+
+specifies that one of G0-G3 is a 94, 96, or 94x94 character set with
+designating character <D>.  If no designating character is specified, then a
+<D> value of zero is assumed.
+
+For example, the list of control commands:
+
+    g 0 94 B
+    g 1 96 A
+
+sets the G0 character set to ASCII (94-character set "B") and the G1
+character set to the top half of Latin-1 (96-character set "A"). (This is the
+default setting).
+
+To change the initial assignments of G0 to the left half and G1 to the right
+half, "g" commands of the form
+
+    g {L|R} {0|1|2|3}
+
+For example, the command:
+
+    g R 2
+
+causes right-half bytes (in the range 160-255) to be interpreted as G2.
+Whether these bytes are interpreted singly or in pairs depends on the type
+of character set that is currently available as G2.
+
+Spaces may be freely used or omitted in "g" commands.
+
+The standard FIGlet distribution contains mapping tables for Latin-2 (ISO 8859-2),
+Latin-3 (ISO 8859-3), Latin-4 (ISO 8859-4), and Latin-5 (ISO 8859-9).  They
+can be used with the font "standard.flf", which contains all the characters
+used in these standards.
+
+
+STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS
+============ ============ == ======= === ====== ==========
+
+We assert the following as the "Law" of our intentions:
+
+PROFIT
+
+All future FIGdrivers shall be FREE OF CHARGE to the general public via the
+Internet.  Any advertisements of other works by the author must be in
+documentation only, and limited to ONE "screenful", and shall not appear by
+normal program behavior, nor interfere with normal behavior.  No FIGdriver
+shall disable itself after a set period of time or request "donations".
+No FIGdriver shall offer any other FIGdriver with improved capability for
+creating FIGures in exchange for money.
+
+REQUIRED FEATURES OF FUTURE VERSIONS
+
+Future FIGdrivers must read and process FIGfont files as described in this
+document, but are not necessarily expected to process control files, smush,
+perform fitting or kerning, perform vertical operations, or even produce
+multiple lines in output FIGures.
+
+FIGDRIVER NAMES
+
+Future FIGdrivers must be named to include capitalized "FIG" and shall have
+an incremental version number specific to its own platform.
+
+BACKWARDS COMPATIBILITY OF FUTURE VERSIONS
+
+Any future FIGdriver created for the same platform as an existing FIGdriver,
+and using the same name as the existing FIGdriver, shall be considered a new
+version of the preceding FIGdriver, and shall contain all historical comments
+of updates to past versions on the same platform, and shall have full
+capability of the preceding versions.  If the source code is not provided to
+the general public, it shall be at least provided to any potential developers
+of later versions, and such comments relating to past versions shall be
+accessible to any user by other means or documentation.  If a new program is
+created on a platform that already has an existing FIGdriver, it must be
+given a new and distinct name.  This allows multiple FIGdrivers to exist for
+the same platform with different capabilities.
+
+The format of FIGfonts may not be modified to be non-backwards compatible
+UNLESS:
+
+    1) The new format is easily editable as an ASCII text file,
+       beginning with the characters "flf" followed by a sequential
+       number.
+
+    2) At least all of the same information can be derived from the
+       new format as the prior format (currently "flf2").  This
+       includes the main comments which give credit to the FIGfont
+       designer.
+
+    3) Individuals are found who are willing and have the ability to
+       either port or develop versions for at least UNIX, DOS,
+       Windows, and Amiga which will read both the new formats AND the
+       prior format (currently "flf2"), and retain the capability of
+       past versions.  It is intended that this will be expanded to
+       include Macintosh if a GUI version exists.  This list of
+       required operating systems may be reduced if an operating
+       system falls out of popularity or increased if a new operating
+       system for which there is a FIGdriver comes into greater
+       popularity, according to the consensus of opinions of past
+       developers for the most popular operating systems.
+
+    4) A C, Java, or other version must always exist which can
+       receive input and instructions either from a command line, a
+       file, or directly over the internet so that FIGures can be
+       obtained from internet-based services without the need to
+       download any FIGdriver.
+
+    5) All existing FIGfonts available from the "official" point of
+       distribution (http://www.figlet.org/),
+       must be converted to the new format, and offered for download
+       alongsidethe new versions.
+
+THE FUNCTION OF WORD WRAPPING
+
+All future FIGdrivers should duplicate these behaviors, unless a version is
+only capable of outputting one-line FIGures, which is acceptable as long no
+preceding versions exist for its platform which can output multiple-line
+FIGures.
+
+FIGdrivers which perform word wrapping do so by watching for blanks (spaces)
+in input text, making sure that the FIGure is no more wide than the maximum
+width allowed.
+
+Input text may also include linebreaks, so that a user may specify where
+lines begin or end instead of relying on the word wrapping of the FIGdriver.
+(Linebreaks are represented by different bytes on different platforms, so
+each FIGdriver must watch for the appropriate linebreaks for its particular
+platform.)
+
+When a FIGdriver word wraps and there are several consecutive blanks in input
+text where the wrapping occurred, the FIGdriver will disregard all blanks
+until the next non-blank input character is encountered.  However, if blanks
+in input text immediately follow a linebreak, or if blanks are the first
+characters in the input text, the blanks will be "printed", moving any
+visible FIGcharacters which follow on the same output line to the right.
+Similarly, if an image is right-aligned, and blanks immediately precede
+linebreaks or the end of input text, a FIGdriver will move an entire line of
+output FIGcharacters to the left to make room for the blank FIGcharacters
+until the left margin is encountered.  (If the print direction is
+right-to-left, everything stated in this paragraph is reversed.)
+
+Word processing programs or text editors usually behave similarly in all
+regards to word wrapping.
+
+GENERAL INTENT FOR CROSS-PLATFORM PORTABILITY
+
+Currently, all versions of FIGlet are compiled from C code, while FIGWin 1.0
+is written in Visual Basic.  Over time it is intended that a later version of
+FIGWin will be created using a GUI C programming language, and that the
+FIGlet C code shall continue to be written to be easily "plugged in" to a
+GUI shell.  It is preferable for developers of FIGdrivers for new platforms
+to use C or a GUI version of C, so that when the core rendering engine of
+FIGlet is updated, it will be portable to other platforms.
+
+CONTROL FILE COMMANDS
+
+New control file commands may be added to later versions of this standard.
+However, the commands "c", "d", and "s" are permanently reserved and may
+never be given a meaning.
+
+FILE COMPRESSION
+
+FIGfonts (and control files) are often quite long, especially if many
+FIGcharacters are included, or if the FIGcharacters are large.  Therefore,
+some FIGdrivers (at present, only FIGlet version 2.2 or later) allow
+compressed FIGfonts and control files.
+
+The standard for FIG compression is to place the FIGfont or control file into
+a ZIP archive.  ZIP archives can be created by the proprietary program PKZIP
+on DOS and Windows platforms, or by the free program Info-ZIP ZIP on almost
+all platforms.  More information on ZIP can be obtained at
+http://www.cdrom.com/pub/infozip/Info-Zip.html .
+
+The ZIP archive must contain only a single file.  Any files in the archive
+after the first are ignored by FIGdrivers.  In addition, the standard
+extension ".zip" of the archive must be changed to ".flf" or ".flc" as
+appropriate.  It does not matter what the name of the file within the
+archive is.
+
+
+
+CHART OF CAPABILITIES OF FIGLET 2.2 AND FIGWIN 1.0
+===== == ============ == ====== === === ====== ===
+
+The following chart lists all capabilities which are either new with the
+release of both FIGdrivers, or is not a common capability among both.
+
+                                              FIGlet 2.2    FIGWIN 1.0
+    Interpreting the Full_Layout parameter:     Yes           Yes
+    Universal smushing:                         Yes           Yes
+    Supporting multi-byte input text formats:   Yes           No
+    Processing control files:                   Yes           No
+    Changing default smushing rules:            Yes           No
+    Bundled with a GUI editor of FIGfonts:      No            Yes
+    Vertical fitting and smushing:              No            Yes
+
+                 ___________           __               _
+                 \_   _____/ ____     |__| ____ ___ __ | |
+                  |    __)_ /    \    |  |/  _ <   |  || |
+                  |        \   |  \   |  (  <_> )___  | \|
+                 /_______  /___|  /\__|  |\____// ____| __
+                         \/     \/\______|      \/      \/
--- /dev/null
+++ b/figlet.c
@@ -1,0 +1,2032 @@
+/****************************************************************************
+
+  FIGlet Copyright 1991, 1993, 1994 Glenn Chappell and Ian Chai
+  FIGlet Copyright 1996, 1997, 1998, 1999, 2000, 2001 John Cowan
+  FIGlet Copyright 2002 Christiaan Keet
+  Portions written by Paul Burton and Christiaan Keet
+  Internet: <info@figlet.org>
+  FIGlet, along with the various FIGlet fonts and documentation, is
+    copyrighted under the provisions of the Academic Free License 
+    (as listed in the file "LICENSE" which is included in this package)
+****************************************************************************/
+
+#define DATE "05 July 2005"
+#define VERSION "2.2.2"
+#define VERSION_INT 20202
+
+/* FIGlet (Frank, Ian & Glenn's Letters) */
+/* by Glenn Chappell */
+/* Apr 1991 */
+/* Automatic file addition by Ian Chai May 1991 */
+/* Punctuation and numbers addition by Ian Chai Jan 1993 */
+/* Full ASCII by Glenn Chappell Feb 1993 */
+/* Line-breaking, general rewrite by Glenn Chappell Mar 1993 */
+/* Hard blanks by Glenn Chappell Apr 1993 */
+/* Release 2.0 5 Aug 1993 */
+/* Right-to-left printing, extended char set by Glenn Chappell Dec 1993 */
+/* Control files by Glenn Chappell Feb 1994 */
+/* Release 2.1 12 Aug 1994 */
+/* Release 2.1.1 25 Aug 1994 */
+/* Release 2.1.2 by Gilbert (Mad Programmer) Healton: Add -A command line 
+   option.  Sept 8, 1996 */
+/* Release 2.2 by John Cowan: multibyte inputs, compressed fonts,
+   mapping tables, kerning/smushing options. */
+/* Release 2.2.1 by Christiaan Keet: minor updates including readmes
+   FAQs and comments. 13 July 2002. The new official FIGlet website is 
+   http://www.figlet.org/  */
+/* Release 2.2.2 by Christiaan Keet: License changed from "Artistic License"
+   to "Academic Free License" as agreed by FIGlet authors. 05 July 2005 */
+
+/*---------------------------------------------------------------------------
+  DEFAULTFONTDIR and DEFAULTFONTFILE should be defined in the Makefile.
+  DEFAULTFONTDIR is the full path name of the directory in which FIGlet
+    will search first for fonts (the ".flf" files).
+  DEFAULTFONTFILE is the filename of the font to be used if no other
+    is specified (standard.flf is recommended, but any other can be
+    used). This file should reside in the directory specified by
+    DEFAULTFONTDIR.
+---------------------------------------------------------------------------*/
+#ifndef DEFAULTFONTDIR
+#define DEFAULTFONTDIR "fonts"
+#endif
+#ifndef DEFAULTFONTFILE
+#define DEFAULTFONTFILE "standard.flf"
+#endif
+
+#include <u.h>
+#include <libc.h>
+#include <stdio.h>
+#include <ctype.h>
+
+#include "zipio.h"     /* Package for reading compressed files */
+
+#define MYSTRLEN(x) ((int)strlen(x)) /* Eliminate ANSI problem */
+
+#define DIRSEP '/'
+#define DIRSEP2 '\\'
+/* Leave alone for Unix and MS-DOS/Windows!
+Note: '/' also used in filename in get_columns(). */
+
+#define FONTFILESUFFIX ".flf"
+#define FONTFILEMAGICNUMBER "flf2"
+#define FSUFFIXLEN MYSTRLEN(FONTFILESUFFIX)
+#define CONTROLFILESUFFIX ".flc"
+#define CONTROLFILEMAGICNUMBER "flc2"   /* no longer used in 2.2 */
+#define CSUFFIXLEN MYSTRLEN(CONTROLFILESUFFIX)
+#define DEFAULTCOLUMNS 80
+
+
+/****************************************************************************
+
+  Globals dealing with chars that are read
+
+****************************************************************************/
+
+typedef long inchr; /* "char" read from stdin */
+
+inchr *inchrline;  /* Alloc'd inchr inchrline[inchrlinelenlimit+1]; */
+                   /* Note: not null-terminated. */
+int inchrlinelen,inchrlinelenlimit;
+inchr deutsch[7] = {196, 214, 220, 228, 246, 252, 223};
+  /* Latin-1 codes for German letters, respectively:
+     LATIN CAPITAL LETTER A WITH DIAERESIS = A-umlaut
+     LATIN CAPITAL LETTER O WITH DIAERESIS = O-umlaut
+     LATIN CAPITAL LETTER U WITH DIAERESIS = U-umlaut
+     LATIN SMALL LETTER A WITH DIAERESIS = a-umlaut
+     LATIN SMALL LETTER O WITH DIAERESIS = o-umlaut
+     LATIN SMALL LETTER U WITH DIAERESIS = u-umlaut
+     LATIN SMALL LETTER SHARP S = ess-zed
+  */
+
+int hzmode;  /* true if reading double-bytes in HZ mode */
+int gndbl[4]; /* gndbl[n] is true if Gn is double-byte */
+inchr gn[4]; /* Gn character sets: ASCII, Latin-1, none, none */
+int gl; /* 0-3 specifies left-half Gn character set */
+int gr; /* 0-3 specifies right-half Gn character set */
+
+int Myargc;  /* to avoid passing around argc and argv */
+char **Myargv;
+
+/****************************************************************************
+
+  Globals dealing with chars that are written
+
+****************************************************************************/
+
+typedef struct fc {
+  inchr ord;
+  char **thechar;  /* Alloc'd char thechar[charheight][]; */
+  struct fc *next;
+  } fcharnode;
+
+fcharnode *fcharlist;
+char **currchar;
+int currcharwidth;
+int previouscharwidth;
+char **outputline;    /* Alloc'd char outputline[charheight][outlinelenlimit+1]; */
+int outlinelen;
+
+
+/****************************************************************************
+
+  Globals dealing with command file storage
+
+****************************************************************************/
+
+typedef struct cfn {
+  char *thename;
+  struct cfn *next;
+  } cfnamenode;
+
+cfnamenode *cfilelist,**cfilelistend;
+
+typedef struct cm {
+  int thecommand;
+  inchr rangelo;
+  inchr rangehi;
+  inchr offset;
+  struct cm *next;
+  } comnode;
+
+comnode *commandlist,**commandlistend;
+
+/****************************************************************************
+
+  Globals affected by command line options
+
+****************************************************************************/
+
+int deutschflag,justification,paragraphflag,right2left,multibyte;
+int cmdinput;
+
+#define SM_SMUSH 128
+#define SM_KERN 64
+#define SM_EQUAL 1
+#define SM_LOWLINE 2
+#define SM_HIERARCHY 4
+#define SM_PAIR 8
+#define SM_BIGX 16
+#define SM_HARDBLANK 32
+
+int smushmode;
+
+#define SMO_NO 0     /* no command-line smushmode */
+#define SMO_YES 1    /* use command-line smushmode, ignore font smushmode */
+#define SMO_FORCE 2  /* logically OR command-line and font smushmodes */
+
+int smushoverride;
+
+int outputwidth;
+int outlinelenlimit;
+char *fontdirname,*fontname;
+
+
+/****************************************************************************
+
+  Globals read from font file
+
+****************************************************************************/
+
+char hardblank;
+int charheight;
+
+
+/****************************************************************************
+
+  Name of program, used in error messages
+
+****************************************************************************/
+
+char *myname;
+
+#include <draw.h>
+#define TIOCGWINSZ
+
+#ifdef TIOCGWINSZ
+/****************************************************************************
+
+  get_columns
+
+  Determines the number of columns of /dev/acme or /dev/window. 
+  Returns the number of columns, or -1 if error.  May return 0 if columns unknown.
+  Requires include files <draw.h>.
+
+****************************************************************************/
+
+int get_columns(void)
+{  
+  int n, fd;
+  char buf[128], *f[10], *p;
+
+  if(access("/mnt/acme", OREAD) >= 0){
+    if((fd = open("/dev/acme/2/ctl", OREAD)) < 0) return 0;
+    n = read(fd, buf, sizeof buf - 1);
+    close(fd);
+    if(n <= 0) return -1;
+    buf[n] = 0;
+    n = tokenize(buf, f, nelem(f));
+    if(n < 7) return -1;
+    return atoi(f[5]);
+  }
+
+  if((fd = open("/dev/window", OREAD)) < 0){
+    return -1;
+  }
+  n = read(fd, buf, 5*12);
+  close(fd);
+  if(n < 5*12) return -1;
+  buf[n] = 0;
+
+  /* copy from /sys/src/cmd/mc.c */
+  /* window stucture:
+	4 bit left edge
+	1 bit gap
+	12 bit scrollbar
+	4 bit gap
+	text
+	4 bit right edge
+  */
+  return atoi(buf+3*12) - atoi(buf+1*12) - (4+1+12+4+4);
+}
+#endif /* ifdef TIOCGWINSZ */
+
+/****************************************************************************
+
+  exit
+
+  Calls exits. 
+
+****************************************************************************/
+void exit(int status)
+{
+  if (status == 0)
+    exits(nil);
+  else {
+     char s[5];
+     snprint(s,5,"%d",status);
+     exits(s);
+  }
+}
+
+/****************************************************************************
+
+  myalloc
+
+  Calls malloc.  If malloc returns error, prints error message and
+  quits.
+
+****************************************************************************/
+
+char *myalloc(ulong size)
+{
+  char *ptr;
+
+  if ((ptr = (char*)malloc(size))==0) {
+    fprintf(stderr,"%s: Out of memory\n",myname);
+    exit(1);
+    }
+  else {
+    return ptr;
+    }
+  return(0);
+}
+
+
+/****************************************************************************
+
+  hasdirsep
+
+  Returns true if s1 contains a DIRSEP or DIRSEP2 character.
+
+****************************************************************************/
+
+int hasdirsep(char *s1)
+{
+  if (strchr(s1, DIRSEP)) return 1;
+  else if (strchr(s1, DIRSEP2)) return 1;
+  else return 0;
+}
+
+/****************************************************************************
+
+  suffixcmp
+
+  Returns true if s2 is a suffix of s1; uses case-blind comparison.
+
+****************************************************************************/
+
+int suffixcmp(char *s1, char *s2)
+{
+  int len1, len2;
+
+  len1 = MYSTRLEN(s1);
+  len2 = MYSTRLEN(s2);
+  if (len2 > len1) return 0;
+  s1 += len1 - len2;
+  while (*s1) {
+    if (tolower(*s1) != tolower(*s2)) return 0;
+    s1++;
+    s2++;
+    }
+  return 1;
+}
+   
+/****************************************************************************
+
+  skiptoeol
+
+  Skips to the end of a line, given a stream.  Handles \r, \n, or \r\n.
+
+****************************************************************************/
+
+void skiptoeol(ZFILE *fp)
+{
+  int dummy;
+
+  while (dummy=Zgetc(fp),dummy!=EOF) {
+    if (dummy == '\n') return;
+    if (dummy == '\r') {
+      dummy = Zgetc(fp);
+      if (dummy != EOF && dummy != '\n') Zungetc(dummy,fp);
+      return;
+      }
+  }
+}
+
+
+/****************************************************************************
+
+  myfgets
+
+  Local version of fgets.  Handles \r, \n, and \r\n terminators.
+
+****************************************************************************/
+
+char *myfgets(char *line,int maxlen,ZFILE *fp)
+{
+  int c = 0;
+  char *p;
+
+  p = line;
+  while((c=Zgetc(fp))!=EOF&&maxlen) {
+    *p++ = c;
+    maxlen--;
+    if (c=='\n') break;
+    if (c=='\r') {
+      c = Zgetc(fp);
+      if (c != EOF && c != '\n') Zungetc(c,fp);
+      *(p-1) = '\n';
+      break;
+      }
+    }
+  *p = 0;
+  return (c==EOF) ? NULL : line;
+}
+
+/****************************************************************************
+
+  usageerr
+
+  Prints "Usage: ...." line to the given stream.
+
+****************************************************************************/
+
+void printusage(FILE *out)
+{
+  fprintf(out,
+    "Usage: %s [ -cklnoprstvxDELNRSWX ] [ -d fontdirectory ]\n",
+    myname);
+  fprintf(out,
+    "              [ -f fontfile ] [ -m smushmode ] [ -w outputwidth ]\n");
+  fprintf(out,
+    "              [ -C controlfile ] [ -I infocode ] [ message ]\n");
+}
+
+
+/****************************************************************************
+
+  printinfo
+
+  Prints version and copyright message, or utility information.
+
+****************************************************************************/
+
+void printinfo(int infonum)
+{
+  switch (infonum) {
+    case 0: /* Copyright message */
+      printf("FIGlet Copyright 1991-2002 Glenn Chappell, Ian Chai, ");
+      printf("John Cowan, Christiaan Keet\n");
+      printf("Internet: <info@figlet.org> ");
+      printf("Version: %s, date: %s\n\n",VERSION,DATE);
+      printf("FIGlet, along with the various FIGlet fonts");
+      printf(" and documentation, may be\n");
+      printf("freely copied and distributed.\n\n");
+      printf("If you use FIGlet, please send an");
+      printf(" e-mail message to <info@figlet.org>.\n\n");
+      printf("The latest version of FIGlet is available from the");
+      printf(" web site,\n\thttp://www.figlet.org/\n\n");
+      printusage(stdout);
+      break;
+    case 1: /* Version (integer) */
+      printf("%d\n",VERSION_INT);
+      break;
+    case 2: /* Font directory */
+      printf("%s\n",fontdirname);
+      break;
+    case 3: /* Font */
+      printf("%s\n",fontname);
+      break;
+    case 4: /* Outputwidth */
+      printf("%d\n",outputwidth);
+    }
+}
+
+
+/****************************************************************************
+
+  readmagic
+
+  Reads a four-character magic string from a stream.
+
+****************************************************************************/
+void readmagic(ZFILE *fp,char *magic)
+{
+  int i;
+
+  for (i=0;i<4;i++) {
+    magic[i] = Zgetc(fp);
+    }
+  magic[4] = 0;
+  }
+  
+/****************************************************************************
+
+  skipws
+
+  Skips whitespace characters from a stream.
+
+****************************************************************************/
+void skipws(ZFILE *fp)
+{
+  int c;
+  while (c=Zgetc(fp),isascii(c)&&isspace(c)) ;
+  Zungetc(c,fp);
+  }
+
+/****************************************************************************
+
+  readnum
+
+  Reads a number from a stream.  Accepts "0" prefix for octal and
+  "0x" or "0X" for hexadecimal.  Ignores leading whitespace.
+
+****************************************************************************/
+void readnum(ZFILE *fp,inchr *nump)
+{
+  int acc = 0;
+  char *p;
+  int c;
+  int base;
+  int sign = 1;
+  char digits[] = "0123456789ABCDEF";
+
+  skipws(fp);
+  c = Zgetc(fp);
+  if (c=='-') {
+    sign = -1;
+    }
+  else {
+    Zungetc(c,fp);
+    }
+  c = Zgetc(fp);
+  if (c=='0') {
+     c = Zgetc(fp);
+     if (c=='x'||c=='X') {
+       base = 16;
+       }
+     else {
+       base = 8;
+       Zungetc(c,fp);
+       }
+    }
+  else {
+    base = 10;
+    Zungetc(c,fp);
+    }
+
+  while((c=Zgetc(fp))!=EOF) {
+    c=toupper(c);
+    p=strchr(digits,c);
+    if (!p) {
+      Zungetc(c,fp);
+      *nump = acc * sign;
+      return;
+      }
+    acc = acc*base+(p-digits);
+    }
+  *nump = acc * sign;
+  }  
+
+/****************************************************************************
+
+  readTchar
+
+  Reads a control file "T" command character specification.
+
+  Character is a single byte, an escape sequence, or
+  an escaped numeric.
+
+****************************************************************************/
+
+inchr readTchar(ZFILE *fp)
+{
+  inchr thechar;
+  char next;
+
+  thechar=Zgetc(fp);
+  if (thechar=='\n' || thechar=='\r') { /* Handle badly-formatted file */
+    Zungetc(thechar,fp);
+    return '\0';
+    }
+  if (thechar!='\\') return thechar;
+  next=Zgetc(fp);
+  switch(next) {
+    case 'a':
+      return 7;
+    case 'b':
+      return 8;
+    case 'e':
+      return 27;
+    case 'f':
+      return 12;
+    case 'n':
+      return 10;
+    case 'r':
+      return 13;
+    case 't':
+      return 9;
+    case 'v':
+      return 11;
+    default:
+      if (next=='-' || next=='x' || (next>='0' && next<='9')) {
+        Zungetc(next,fp);
+        readnum(fp,&thechar);
+        return thechar;
+        }
+      return next;
+    }
+}
+
+/****************************************************************************
+
+  charsetname
+
+  Get a Tchar representing a charset name, or 0 if none available.
+  Called in getcharset().
+
+****************************************************************************/
+
+inchr charsetname(ZFILE *fp)
+{
+  inchr result;
+
+  result = readTchar(fp);
+  if (result == '\n' || result == '\r') {
+    result = 0;
+    Zungetc(result,fp);
+    }
+  return result;
+  }
+
+/****************************************************************************
+
+  charset
+
+  Processes "g[0123]" character set specifier
+  Called in readcontrol().
+
+****************************************************************************/
+
+void charset(int n, ZFILE *controlfile)
+{
+  int ch;
+
+  skipws(controlfile);
+  if (Zgetc(controlfile) != '9') {
+    skiptoeol(controlfile);
+    return;
+    }
+  ch = Zgetc(controlfile);
+  if (ch == '6') {
+     gn[n] = 65536L * charsetname(controlfile) + 0x80;
+     gndbl[n] = 0;
+     skiptoeol(controlfile);
+     return;
+     }
+  if (ch != '4') {
+    skiptoeol(controlfile);
+    return;
+    }
+  ch = Zgetc(controlfile);
+  if (ch == 'x') {
+     if (Zgetc(controlfile) != '9') {
+       skiptoeol(controlfile);
+       return;
+       }
+     if (Zgetc(controlfile) != '4') {
+       skiptoeol(controlfile);
+       return;
+       }
+     skipws(controlfile);
+     gn[n] = 65536L * charsetname(controlfile);
+     gndbl[n] = 1;
+     skiptoeol(controlfile);
+     return;
+     }
+  Zungetc(ch, controlfile);
+  skipws(controlfile);
+  gn[n] = 65536L * charsetname(controlfile);
+  gndbl[n] = 0;
+  return;
+  }
+
+/****************************************************************************
+
+  readcontrol
+
+  Allocates memory and reads in the given control file.
+  Called in readcontrolfiles().
+
+****************************************************************************/
+
+void readcontrol(char *controlname)
+{
+  inchr firstch,lastch;
+  char dashcheck;
+  inchr offset;
+  char *controlpath,magicnum[5];
+  int command;
+  ZFILE *controlfile;
+  int namelen;
+
+  namelen = MYSTRLEN(fontdirname);
+  controlpath = (char*)myalloc(sizeof(char)
+    *(namelen+MYSTRLEN(controlname)+CSUFFIXLEN+2));
+  controlfile = NULL;
+  if (!hasdirsep(controlname)) {
+    strcpy(controlpath,fontdirname);
+    controlpath[namelen] = DIRSEP;
+    controlpath[namelen+1] = '\0';
+    strcat(controlpath,controlname);
+    strcat(controlpath,CONTROLFILESUFFIX);
+    controlfile = Zopen(controlpath,"rb");
+    }
+  if (controlfile==NULL) {
+    strcpy(controlpath,controlname);
+    strcat(controlpath,CONTROLFILESUFFIX);
+    controlfile = Zopen(controlpath,"rb");
+    if (controlfile==NULL) {
+      fprintf(stderr,"%s: %s: Unable to open control file\n",myname,
+        controlpath);
+      exit(1);
+      }
+    }
+
+  free(controlpath);
+
+  (*commandlistend) = (comnode*)myalloc(sizeof(comnode));
+  (*commandlistend)->thecommand = 0; /* Begin with a freeze command */
+  commandlistend = &(*commandlistend)->next;
+  (*commandlistend) = NULL;
+
+  while(command=Zgetc(controlfile),command!=EOF) {
+    switch (command) {
+      case 't': /* Translate */
+        skipws(controlfile);
+        firstch=readTchar(controlfile);
+        if ((dashcheck=Zgetc(controlfile))=='-') {
+          lastch=readTchar(controlfile);
+          }
+        else {
+          Zungetc(dashcheck,controlfile);
+          lastch=firstch;
+          }
+        skipws(controlfile);
+        offset=readTchar(controlfile)-firstch;
+        skiptoeol(controlfile);
+        (*commandlistend) = (comnode*)myalloc(sizeof(comnode));
+        (*commandlistend)->thecommand = 1;
+        (*commandlistend)->rangelo = firstch;
+        (*commandlistend)->rangehi = lastch;
+        (*commandlistend)->offset = offset;
+        commandlistend = &(*commandlistend)->next;
+        (*commandlistend) = NULL;
+        break;
+      case '0': case '1': case '2': case '3': case '4':
+      case '5': case '6': case '7': case '8': case '9':
+      case '-':
+                /* Mapping table entry */
+        Zungetc(command,controlfile);
+        readnum(controlfile,&firstch);
+        skipws(controlfile);
+	readnum(controlfile,&lastch);
+	offset=lastch-firstch;
+        lastch=firstch;
+        skiptoeol(controlfile);
+        (*commandlistend) = (comnode*)myalloc(sizeof(comnode));
+        (*commandlistend)->thecommand = 1;
+        (*commandlistend)->rangelo = firstch;
+        (*commandlistend)->rangehi = lastch;
+        (*commandlistend)->offset = offset;
+        commandlistend = &(*commandlistend)->next;
+        (*commandlistend) = NULL;
+        break;
+      case 'f': /* freeze */
+        skiptoeol(controlfile);
+        (*commandlistend) = (comnode*)myalloc(sizeof(comnode));
+        (*commandlistend)->thecommand = 0;
+        commandlistend = &(*commandlistend)->next;
+        (*commandlistend) = NULL;
+        break;
+      case 'b': /* DBCS input mode */
+        multibyte = 1;
+        break;
+      case 'u': /* UTF-8 input mode */
+        multibyte = 2;
+        break;
+      case 'h': /* HZ input mode */
+        multibyte = 3;
+        break;
+      case 'j': /* Shift-JIS input mode */
+        multibyte = 4;
+        break;
+      case 'g': /* ISO 2022 character set choices */
+        multibyte = 0;
+        skipws(controlfile);
+        command=Zgetc(controlfile);
+        switch (command) {
+          case '0': /* define G0 charset */
+            charset(0, controlfile);
+            break;
+          case '1': /* set G1 charset */
+            charset(1, controlfile);
+            break;
+          case '2': /* set G2 charset */
+            charset(2, controlfile);
+            break;
+          case '3': /* set G3 charset */
+            charset(3, controlfile);
+            break;
+          case 'l': case 'L': /* define left half */
+            skipws(controlfile);
+            gl = Zgetc(controlfile) - '0';
+            skiptoeol(controlfile);
+            break;
+          case 'r': case 'R': /* define right half */
+            skipws(controlfile);
+            gr = Zgetc(controlfile) - '0';
+            skiptoeol(controlfile);
+            break;
+          default: /* meaningless "g" command */
+            skiptoeol(controlfile);
+          }
+      case '\r': case '\n': /* blank line */
+        break;
+      default: /* Includes '#' */
+        skiptoeol(controlfile);
+      }
+    }
+  Zclose(controlfile);
+}
+
+
+/****************************************************************************
+
+  readcontrolfiles
+
+  Reads in the controlfiles names in cfilelist.  Uses readcontrol.
+  Called in main().
+
+****************************************************************************/
+
+void readcontrolfiles(void)
+{
+  cfnamenode *cfnptr;
+
+  for (cfnptr=cfilelist;cfnptr!=NULL;cfnptr=cfnptr->next) {
+    readcontrol(cfnptr->thename);
+    }
+}
+
+
+/****************************************************************************
+
+  clearcfilelist
+
+  Clears the control file list.  Assumes thename does not need freeing.
+
+****************************************************************************/
+
+void clearcfilelist(void)
+{
+  cfnamenode *cfnptr1,*cfnptr2;
+
+  cfnptr1 = cfilelist;
+  while (cfnptr1 != NULL) {
+    cfnptr2 = cfnptr1->next;
+    free(cfnptr1);
+    cfnptr1 = cfnptr2;
+    }
+  cfilelist = NULL;
+  cfilelistend = &cfilelist;
+}
+
+
+/****************************************************************************
+
+  getparams
+
+  Handles all command-line parameters.  Puts all parameters within
+  bounds.
+
+****************************************************************************/
+extern int getopt(int argc,char *argv[],char *opts);
+
+void getparams(void)
+{
+  extern char *optarg;
+  extern int optind;
+  int c; /* "Should" be a char -- need int for "!= -1" test*/
+  int columns,firstfont,infoprint;
+  char *controlname;
+
+  if ((myname = strrchr(Myargv[0],DIRSEP))!=NULL) {
+    myname++;
+    }
+  else {
+    myname = Myargv[0];
+    }
+  fontdirname = DEFAULTFONTDIR;
+  firstfont = 1;
+  fontname = (char*)myalloc(sizeof(char)*(MYSTRLEN(DEFAULTFONTFILE)+1));
+  strcpy(fontname,DEFAULTFONTFILE); /* Some systems don't have strdup() */
+  if (suffixcmp(fontname,FONTFILESUFFIX)) {
+    fontname[MYSTRLEN(fontname)-FSUFFIXLEN]='\0';
+    }
+  cfilelist = NULL;
+  cfilelistend = &cfilelist;
+  commandlist = NULL;
+  commandlistend = &commandlist;
+  smushoverride = SMO_NO;
+  deutschflag = 0;
+  justification = -1;
+  right2left = -1;
+  paragraphflag = 0;
+  infoprint = -1;
+  cmdinput = 0;
+  outputwidth = DEFAULTCOLUMNS;
+  gn[1] = 0x80;
+  gr = 1;
+  while ((c = getopt(Myargc,Myargv,"ADEXLRI:xlcrpntvm:w:d:f:C:NFskSWo"))!= -1) {
+      /* Note: -F is not a legal option -- prints a special err message.  */
+    switch (c) {
+      case 'A':
+        cmdinput = 1;
+        break;
+      case 'D':
+        deutschflag = 1;
+        break;
+      case 'E':
+        deutschflag = 0;
+        break;
+      case 'X':
+        right2left = -1;
+        break;
+      case 'L':
+        right2left = 0;
+        break;
+      case 'R':
+        right2left = 1;
+        break;
+      case 'x':
+        justification = -1;
+        break;
+      case 'l':
+        justification = 0;
+        break;
+      case 'c':
+        justification = 1;
+        break;
+      case 'r':
+        justification = 2;
+        break;
+      case 'p':
+        paragraphflag = 1;
+        break;
+      case 'n':
+        paragraphflag = 0;
+        break;
+      case 's':
+        smushoverride = SMO_NO;
+        break;
+      case 'k':
+        smushmode = SM_KERN;
+        smushoverride = SMO_YES;
+        break;
+      case 'S':
+        smushmode = SM_SMUSH;
+	smushoverride = SMO_FORCE;
+        break;
+      case 'o':
+        smushmode = SM_SMUSH;
+	smushoverride = SMO_YES;
+        break;
+      case 'W':
+        smushmode = 0;
+	smushoverride = SMO_YES;
+        break;
+      case 't':
+#ifdef TIOCGWINSZ
+        columns = get_columns();
+        if (columns>0) {
+          outputwidth = columns;
+          }
+#else /* ifdef TIOCGWINSZ */
+        fprintf(stderr,
+          "%s: \"-t\" is disabled, since ioctl is not fully implemented.\n",
+          myname);
+#endif /* ifdef TIOCGWINSZ */
+        break;
+      case 'v':
+        infoprint = 0;
+        break;
+      case 'I':
+        infoprint = atoi(optarg);
+        break;
+      case 'm':
+        smushmode = atoi(optarg);
+        if (smushmode < -1) {
+          smushoverride = SMO_NO;
+          break;
+          }
+	if (smushmode == 0) smushmode = SM_KERN;
+	else if (smushmode == -1) smushmode = 0;
+	else smushmode = (smushmode & 63) | SM_SMUSH;
+	smushoverride = SMO_YES;
+        break;
+      case 'w':
+        columns = atoi(optarg);
+        if (columns>0) {
+          outputwidth = columns;
+          }
+        break;
+      case 'd':
+        fontdirname = optarg;
+        break;
+      case 'f':
+        if (firstfont) {
+          free(fontname);
+          firstfont = 0;
+          }
+        fontname = optarg;
+        if (suffixcmp(fontname,FONTFILESUFFIX)) {
+          fontname[MYSTRLEN(fontname)-FSUFFIXLEN] = '\0';
+          }
+        break;
+      case 'C':
+        controlname = optarg;
+        if (suffixcmp(controlname, CONTROLFILESUFFIX)) {
+          controlname[MYSTRLEN(controlname)-CSUFFIXLEN] = '\0';
+          }
+        (*cfilelistend) = (cfnamenode*)myalloc(sizeof(cfnamenode));
+        (*cfilelistend)->thename = controlname;
+        cfilelistend = &(*cfilelistend)->next;
+        (*cfilelistend) = NULL;
+        break;
+      case 'N':
+        clearcfilelist();
+        multibyte = 0;
+        gn[0] = 0;
+        gn[1] = 0x80;
+        gn[2] = gn[3] = 0;
+        gndbl[0] = gndbl[1] = gndbl[2] = gndbl[3] = 0;
+        gl = 0;
+        gr = 1;
+        break;
+      case 'F': /* Not a legal option */
+        fprintf(stderr,"%s: illegal option -- F\n",myname);
+        printusage(stderr);
+        fprintf(stderr,"\nBecause of numerous incompatibilities, the");
+        fprintf(stderr," \"-F\" option has been\n");
+        fprintf(stderr,"removed.  It has been replaced by the \"figlist\"");
+        fprintf(stderr," program, which is now\n");
+        fprintf(stderr,"included in the basic FIGlet package.  \"figlist\"");
+        fprintf(stderr," is also available\n");
+        fprintf(stderr,"from  http://www.figlet.org/");
+        fprintf(stderr,"under UNIX utilities.\n");
+        exit(1);
+        break;
+      default:
+        printusage(stderr);
+        exit(1);
+      }
+    }
+  if (optind!=Myargc) cmdinput = 1; /* force cmdinput if more arguments */
+  outlinelenlimit = outputwidth-1;
+  if (infoprint>=0) {
+    printinfo(infoprint);
+    exit(0);
+    }
+}
+
+
+/****************************************************************************
+
+  clearline
+
+  Clears both the input (inchrline) and output (outputline) storage.
+
+****************************************************************************/
+
+void clearline(void)
+{
+  int i;
+
+  for (i=0;i<charheight;i++) {
+    outputline[i][0] = '\0';
+    }
+  outlinelen = 0;
+  inchrlinelen = 0;
+}
+
+
+/****************************************************************************
+
+  readfontchar
+
+  Reads a font character from the font file, and places it in a
+  newly-allocated entry in the list.
+
+****************************************************************************/
+
+void readfontchar(ZFILE *file,inchr theord,char *line,int maxlen)
+{
+  int row,k;
+  char endchar;
+  fcharnode *fclsave;
+
+  fclsave = fcharlist;
+  fcharlist = (fcharnode*)myalloc(sizeof(fcharnode));
+  fcharlist->ord = theord;
+  fcharlist->thechar = (char**)myalloc(sizeof(char*)*charheight);
+  fcharlist->next = fclsave;
+  for (row=0;row<charheight;row++) {
+    if (myfgets(line,maxlen+1,file)==NULL) {
+      line[0] = '\0';
+      }
+    k = MYSTRLEN(line)-1;
+    while (k>=0 && isspace(line[k])) {
+      k--;
+      }
+    if (k>=0) {
+      endchar = line[k];
+      while (k>=0 ? line[k]==endchar : 0) {
+        k--;
+        }
+      }
+    line[k+1] = '\0';
+    fcharlist->thechar[row] = (char*)myalloc(sizeof(char)*(k+2));
+    strcpy(fcharlist->thechar[row],line);
+    }
+}
+
+
+/****************************************************************************
+
+  readfont
+
+  Allocates memory, initializes variables, and reads in the font.
+  Called near beginning of main().
+
+****************************************************************************/
+
+void readfont(void)
+{
+#define MAXFIRSTLINELEN 1000
+  int i,row,numsread;
+  inchr theord;
+  int maxlen,cmtlines,ffright2left;
+  int smush,smush2;
+  char *fontpath,*fileline,magicnum[5];
+  ZFILE *fontfile;
+  int namelen;
+
+  namelen = MYSTRLEN(fontdirname);
+  fontpath = (char*)myalloc(sizeof(char)
+    *(namelen+MYSTRLEN(fontname)+FSUFFIXLEN+2));
+  fontfile = NULL;
+  if (!hasdirsep(fontname)) {
+    strcpy(fontpath,fontdirname);
+    fontpath[namelen] = DIRSEP;
+    fontpath[namelen+1] = '\0';
+    strcat(fontpath,fontname);
+    strcat(fontpath,FONTFILESUFFIX);
+    fontfile = Zopen(fontpath,"rb");
+    }
+  if (fontfile==NULL) {
+    strcpy(fontpath,fontname);
+    strcat(fontpath,FONTFILESUFFIX);
+    fontfile = Zopen(fontpath,"rb");
+    if (fontfile==NULL) {
+      fprintf(stderr,"%s: %s: Unable to open font file\n",myname,fontpath);
+      exit(1);
+      }
+    }
+
+  readmagic(fontfile,magicnum);
+  fileline = (char*)myalloc(sizeof(char)*(MAXFIRSTLINELEN+1));
+  if (myfgets(fileline,MAXFIRSTLINELEN+1,fontfile)==NULL) {
+    fileline[0] = '\0';
+    }
+  if (MYSTRLEN(fileline)>0 ? fileline[MYSTRLEN(fileline)-1]!='\n' : 0) {
+    skiptoeol(fontfile);
+    }
+  numsread = sscanf(fileline,"%*c%c %d %*d %d %d %d %d %d",
+    &hardblank,&charheight,&maxlen,&smush,&cmtlines,
+    &ffright2left,&smush2);
+  free(fileline);
+  if (strcmp(magicnum,FONTFILEMAGICNUMBER) || numsread<5) {
+    fprintf(stderr,"%s: %s: Not a FIGlet 2 font file\n",myname,fontpath);
+    exit(1);
+    }
+  for (i=1;i<=cmtlines;i++) {
+    skiptoeol(fontfile);
+    }
+  free(fontpath);
+
+  if (numsread<6) {
+    ffright2left = 0;
+    }
+
+  if (numsread<7) { /* if no smush2, decode smush into smush2 */
+    if (smush == 0) smush2 = SM_KERN;
+    else if (smush < 0) smush2 = 0;
+    else smush2 = (smush & 31) | SM_SMUSH;
+    }
+
+  if (charheight<1) {
+    charheight = 1;
+    }
+
+  if (maxlen<1) {
+    maxlen = 1;
+    }
+
+  maxlen += 100; /* Give ourselves some extra room */
+
+  if (smushoverride == SMO_NO)
+     smushmode = smush2;
+  else if (smushoverride == SMO_FORCE)
+     smushmode |= smush2;
+
+  if (right2left<0) {
+    right2left = ffright2left;
+    }
+
+  if (justification<0) {
+    justification = 2*right2left;
+    }
+
+  fileline = (char*)myalloc(sizeof(char)*(maxlen+1));
+  /* Allocate "missing" character */
+  fcharlist = (fcharnode*)myalloc(sizeof(fcharnode));
+  fcharlist->ord = 0;
+  fcharlist->thechar = (char**)myalloc(sizeof(char*)*charheight);
+  fcharlist->next = NULL;
+  for (row=0;row<charheight;row++) {
+    fcharlist->thechar[row] = (char*)myalloc(sizeof(char));
+    fcharlist->thechar[row][0] = '\0';
+    }
+  for (theord=' ';theord<='~';theord++) {
+    readfontchar(fontfile,theord,fileline,maxlen);
+    }
+  for (theord=0;theord<=6;theord++) {
+    readfontchar(fontfile,deutsch[theord],fileline,maxlen);
+    }
+  while (myfgets(fileline,maxlen+1,fontfile)==NULL?0:
+    sscanf(fileline,"%li",&theord)==1) {
+    readfontchar(fontfile,theord,fileline,maxlen);
+    }
+  Zclose(fontfile);
+  free(fileline);
+}
+
+
+/****************************************************************************
+
+  linealloc
+
+  Allocates & clears outputline, inchrline. Sets inchrlinelenlimit.
+  Called near beginning of main().
+
+****************************************************************************/
+
+void linealloc(void)
+{
+  int row; 
+
+  outputline = (char**)myalloc(sizeof(char*)*charheight);
+  for (row=0;row<charheight;row++) {
+    outputline[row] = (char*)myalloc(sizeof(char)*(outlinelenlimit+1));
+    }
+  inchrlinelenlimit = outputwidth*4+100;
+  inchrline = (inchr*)myalloc(sizeof(inchr)*(inchrlinelenlimit+1));
+  clearline();
+}
+
+
+/****************************************************************************
+
+  getletter
+
+  Sets currchar to point to the font entry for the given character.
+  Sets currcharwidth to the width of this character.
+
+****************************************************************************/
+
+void getletter(inchr c)
+{
+  fcharnode *charptr;
+
+  for (charptr=fcharlist;charptr==NULL?0:charptr->ord!=c;
+    charptr=charptr->next) ;
+  if (charptr!=NULL) {
+    currchar = charptr->thechar;
+    }
+  else {
+    for (charptr=fcharlist;charptr==NULL?0:charptr->ord!=0;
+      charptr=charptr->next) ;
+    currchar = charptr->thechar;
+    }
+  previouscharwidth = currcharwidth;
+  currcharwidth = MYSTRLEN(currchar[0]);
+}
+
+
+/****************************************************************************
+
+  smushem
+
+  Given 2 characters, attempts to smush them into 1, according to
+  smushmode.  Returns smushed character or '\0' if no smushing can be
+  done.
+
+  smushmode values are sum of following (all values smush blanks):
+    1: Smush equal chars (not hardblanks)
+    2: Smush '_' with any char in hierarchy below
+    4: hierarchy: "|", "/\", "[]", "{}", "()", "<>"
+       Each class in hier. can be replaced by later class.
+    8: [ + ] -> |, { + } -> |, ( + ) -> |
+   16: / + \ -> X, > + < -> X (only in that order)
+   32: hardblank + hardblank -> hardblank
+
+****************************************************************************/
+
+char smushem(char lch,char rch)
+{
+  if (lch==' ') return rch;
+  if (rch==' ') return lch;
+
+  if (previouscharwidth<2 || currcharwidth<2) return '\0';
+    /* Disallows overlapping if the previous character */
+    /* or the current character has a width of 1 or zero. */
+
+  if ((smushmode & SM_SMUSH) == 0) return '\0';  /* kerning */
+
+  if ((smushmode & 63) == 0) {
+    /* This is smushing by universal overlapping. */
+    if (lch==' ') return rch;
+    if (rch==' ') return lch;
+    if (lch==hardblank) return rch;
+    if (rch==hardblank) return lch;
+      /* Above four lines ensure overlapping preference to */
+      /* visible characters. */
+    if (right2left==1) return lch;
+      /* Above line ensures that the dominant (foreground) */
+      /* fig-character for overlapping is the latter in the */
+      /* user's text, not necessarily the rightmost character. */
+    return rch;
+      /* Occurs in the absence of above exceptions. */
+    }
+  
+  if (smushmode & SM_HARDBLANK) {
+    if (lch==hardblank && rch==hardblank) return lch;
+    }
+
+  if (lch==hardblank || rch==hardblank) return '\0';
+
+  if (smushmode & SM_EQUAL) {
+    if (lch==rch) return lch;
+    }
+
+  if (smushmode & SM_LOWLINE) {
+    if (lch=='_' && strchr("|/\\[]{}()<>",rch)) return rch;
+    if (rch=='_' && strchr("|/\\[]{}()<>",lch)) return lch;
+    }
+
+  if (smushmode & SM_HIERARCHY) {
+    if (lch=='|' && strchr("/\\[]{}()<>",rch)) return rch;
+    if (rch=='|' && strchr("/\\[]{}()<>",lch)) return lch;
+    if (strchr("/\\",lch) && strchr("[]{}()<>",rch)) return rch;
+    if (strchr("/\\",rch) && strchr("[]{}()<>",lch)) return lch;
+    if (strchr("[]",lch) && strchr("{}()<>",rch)) return rch;
+    if (strchr("[]",rch) && strchr("{}()<>",lch)) return lch;
+    if (strchr("{}",lch) && strchr("()<>",rch)) return rch;
+    if (strchr("{}",rch) && strchr("()<>",lch)) return lch;
+    if (strchr("()",lch) && strchr("<>",rch)) return rch;
+    if (strchr("()",rch) && strchr("<>",lch)) return lch;
+    }
+
+  if (smushmode & SM_PAIR) {
+    if (lch=='[' && rch==']') return '|';
+    if (rch=='[' && lch==']') return '|';
+    if (lch=='{' && rch=='}') return '|';
+    if (rch=='{' && lch=='}') return '|';
+    if (lch=='(' && rch==')') return '|';
+    if (rch=='(' && lch==')') return '|';
+    }
+
+  if (smushmode & SM_BIGX) {
+    if (lch=='/' && rch=='\\') return '|';
+    if (rch=='/' && lch=='\\') return 'Y';
+    if (lch=='>' && rch=='<') return 'X';
+      /* Don't want the reverse of above to give 'X'. */
+    }
+
+  return '\0';
+}
+
+
+/****************************************************************************
+
+  smushamt
+
+  Returns the maximum amount that the current character can be smushed
+  into the current line.
+
+****************************************************************************/
+
+int smushamt(void)
+{
+  int maxsmush,amt;
+  int row,linebd,charbd;
+  char ch1,ch2;
+
+  if ((smushmode & (SM_SMUSH | SM_KERN)) == 0) {
+    return 0;
+    }
+  maxsmush = currcharwidth;
+  for (row=0;row<charheight;row++) {
+    if (right2left) {
+      for (charbd=MYSTRLEN(currchar[row]);
+        ch1=currchar[row][charbd],(charbd>0&&(!ch1||ch1==' '));charbd--) ;
+      for (linebd=0;ch2=outputline[row][linebd],ch2==' ';linebd++) ;
+      amt = linebd+currcharwidth-1-charbd;
+      }
+    else {
+      for (linebd=MYSTRLEN(outputline[row]);
+        ch1 = outputline[row][linebd],(linebd>0&&(!ch1||ch1==' '));linebd--) ;
+      for (charbd=0;ch2=currchar[row][charbd],ch2==' ';charbd++) ;
+      amt = charbd+outlinelen-1-linebd;
+      }
+    if (!ch1||ch1==' ') {
+      amt++;
+      }
+    else if (ch2) {
+      if (smushem(ch1,ch2)!='\0') {
+        amt++;
+        }
+      }
+    if (amt<maxsmush) {
+      maxsmush = amt;
+      }
+    }
+  return maxsmush;
+}
+
+
+/****************************************************************************
+
+  addchar
+
+  Attempts to add the given character onto the end of the current line.
+  Returns 1 if this can be done, 0 otherwise.
+
+****************************************************************************/
+
+int addchar(inchr c)
+{
+  int smushamount,row,k;
+  char *templine;
+
+  getletter(c);
+  smushamount = smushamt();
+  if (outlinelen+currcharwidth-smushamount>outlinelenlimit
+      ||inchrlinelen+1>inchrlinelenlimit) {
+    return 0;
+    }
+
+  templine = (char*)myalloc(sizeof(char)*(outlinelenlimit+1));
+  for (row=0;row<charheight;row++) {
+    if (right2left) {
+      strcpy(templine,currchar[row]);
+      for (k=0;k<smushamount;k++) {
+        templine[currcharwidth-smushamount+k] =
+          smushem(templine[currcharwidth-smushamount+k],outputline[row][k]);
+        }
+      strcat(templine,outputline[row]+smushamount);
+      strcpy(outputline[row],templine);
+      }
+    else {
+      for (k=0;k<smushamount;k++) {
+        outputline[row][outlinelen-smushamount+k] =
+          smushem(outputline[row][outlinelen-smushamount+k],currchar[row][k]);
+        }
+      strcat(outputline[row],currchar[row]+smushamount);
+      }
+    }
+  free(templine);
+  outlinelen = MYSTRLEN(outputline[0]);
+  inchrline[inchrlinelen++] = c;
+  return 1;
+}
+
+
+/****************************************************************************
+
+  putstring
+
+  Prints out the given null-terminated string, substituting blanks
+  for hardblanks.  If outputwidth is 1, prints the entire string;
+  otherwise prints at most outputwidth-1 characters.  Prints a newline
+  at the end of the string.  The string is left-justified, centered or
+  right-justified (taking outputwidth as the screen width) if
+  justification is 0, 1 or 2, respectively.
+
+****************************************************************************/
+
+void putstring(char *string)
+{
+  int i,len;
+
+  len = MYSTRLEN(string);
+  if (outputwidth>1) {
+    if (len>outputwidth-1) {
+      len = outputwidth-1;
+      }
+    if (justification>0) {
+      for (i=1;(3-justification)*i+len+justification-2<outputwidth;i++) {
+        putchar(' ');
+        }
+      }
+    }
+  for (i=0;i<len;i++) {
+    putchar(string[i]==hardblank?' ':string[i]);
+    }
+  putchar('\n');
+}
+
+
+/****************************************************************************
+
+  printline
+
+  Prints outputline using putstring, then clears the current line.
+
+****************************************************************************/
+
+void printline(void)
+{
+  int i;
+
+  for (i=0;i<charheight;i++) {
+    putstring(outputline[i]);
+    }
+  clearline();
+}
+
+
+/****************************************************************************
+
+  splitline
+
+  Splits inchrline at the last word break (bunch of consecutive blanks).
+  Makes a new line out of the first part and prints it using
+  printline.  Makes a new line out of the second part and returns.
+
+****************************************************************************/
+
+void splitline(void)
+{
+  int i,gotspace,lastspace,len1,len2;
+  inchr *part1,*part2;
+
+  part1 = (inchr*)myalloc(sizeof(inchr)*(inchrlinelen+1));
+  part2 = (inchr*)myalloc(sizeof(inchr)*(inchrlinelen+1));
+  gotspace = 0;
+  for (i=inchrlinelen-1;i>=0;i--) {
+    if (!gotspace && inchrline[i]==' ') {
+      gotspace = 1;
+      lastspace = i;
+      }
+    if (gotspace && inchrline[i]!=' ') {
+      break;
+      }
+    }
+  len1 = i+1;
+  len2 = inchrlinelen-lastspace-1;
+  for (i=0;i<len1;i++) {
+    part1[i] = inchrline[i];
+    }
+  for (i=0;i<len2;i++) {
+    part2[i] = inchrline[lastspace+1+i];
+    }
+  clearline();
+  for (i=0;i<len1;i++) {
+    addchar(part1[i]);
+    }
+  printline();
+  for (i=0;i<len2;i++) {
+    addchar(part2[i]);
+    }
+  free(part1);
+  free(part2);
+}
+
+
+/****************************************************************************
+
+  handlemapping
+
+  Given an input character (type inchr), executes re-mapping commands
+  read from control files.  Returns re-mapped character (inchr).
+
+****************************************************************************/
+
+inchr handlemapping(inchr c)
+{
+  comnode *cmptr;
+
+  cmptr=commandlist;
+  while (cmptr!=NULL) {
+    if (cmptr->thecommand ?
+      (c >= cmptr->rangelo && c <= cmptr->rangehi) : 0) {
+      c += cmptr->offset;
+      while(cmptr!=NULL ? cmptr->thecommand : 0) {
+        cmptr=cmptr->next;
+        }
+      }
+    else {
+      cmptr=cmptr->next;
+      }
+    }
+  return c;
+}
+
+/****************************************************************************
+
+  Agetchar
+
+  Replacement to getchar().
+  Acts exactly like getchar if -A is NOT specified,
+  else obtains input from All remaining command line words.
+
+****************************************************************************/
+
+int Agetchar(void)
+{
+    extern int optind;		/* current argv[] element under study */
+    static AgetMode = 0;	/* >= 0 for displacement into argv[n], <0 EOF */
+    char   *arg;		/* pointer to active character */
+    int    c;			/* current character */
+
+    if ( ! cmdinput )		/* is -A active? */
+	return( getchar() );	/* no: return stdin character */
+
+    if ( AgetMode < 0 || optind >= Myargc )		/* EOF is sticky: */
+	return( EOF );		/* **ensure it now and forever more */
+
+    /* find next character */
+    arg = Myargv[optind];		/* pointer to active arg */
+    c = arg[AgetMode++]&0xFF;	/* get appropriate char of arg */
+
+    if ( ! c )			/* at '\0' that terminates word? */
+    {   /* at end of word: return ' ' if normal word, '\n' if empty */
+	c = ' ';		/* suppose normal word and return blank */
+	if ( AgetMode == 1 )	/* if ran out in very 1st char, force \n */
+	    c = '\n';		/* (allows "hello '' world" to do \n at '') */
+	AgetMode = 0;		/* return to char 0 in NEXT word */
+	if ( ++optind >= Myargc )	/* run up word count and check if at "EOF" */
+	{   /* just ran out of arguments */
+	    c = EOF;		/* return EOF */
+	    AgetMode = -1;	/* ensure all future returns return EOF */
+	}
+    }
+
+    return( c );		/* return appropriate character */
+
+}	/* end: Agetchar() */
+
+
+/****************************************************************************
+
+  iso2022
+
+  Called by getinchr.  Interprets ISO 2022 sequences
+
+******************************************************************************/
+
+inchr iso2022(void)
+{
+  inchr ch;
+  inchr ch2;
+  int save_gl;
+  int save_gr;
+
+  ch = Agetchar();
+  if (ch == EOF) return ch;
+  if (ch == 27) ch = Agetchar() + 0x100; /* ESC x */
+  if (ch == 0x100 + '$') ch = Agetchar() + 0x200; /* ESC $ x */
+  switch (ch) {
+    case 14: /* invoke G0 into GL */
+      gl = 0;
+      return iso2022();
+    case 15: /* invoke G1 into GL */
+      gl = 1;
+      return iso2022();
+    case 142: case 'N' + 0x100: /* invoke G2 into GL for next char */
+      save_gl = gl; save_gr = gr;
+      gl = gr = 2;
+      ch = iso2022();
+      gl = save_gl; gr = save_gr;
+      return ch;
+    case 143: case 'O' + 0x100: /* invoke G3 into GL for next char */
+      save_gl = gl; save_gr = gr;
+      gl = gr = 3;
+      ch = iso2022();
+      gl = save_gl; gr = save_gr;
+      return ch;
+    case 'n' + 0x100: /* invoke G2 into GL */
+      gl = 2;
+      return iso2022();
+    case 'o' + 0x100: /* invoke G3 into GL */
+      gl = 3;
+      return iso2022();
+    case '~' + 0x100: /* invoke G1 into GR */
+      gr = 1;
+      return iso2022();
+    case '}' + 0x100: /* invoke G2 into GR */
+      gr = 2;
+      return iso2022();
+    case '|' + 0x100: /* invoke G3 into GR */
+      gr = 3;
+      return iso2022();
+    case '(' + 0x100: /* set G0 to 94-char set */
+      ch = Agetchar();
+      if (ch == 'B') ch = 0; /* ASCII */
+      gn[0] = ch << 16;
+      gndbl[0] = 0;
+      return iso2022();
+    case ')' + 0x100: /* set G1 to 94-char set */
+      ch = Agetchar();
+      if (ch == 'B') ch = 0;
+      gn[1] = ch << 16;
+      gndbl[1] = 0;
+      return iso2022();
+    case '*' + 0x100: /* set G2 to 94-char set */
+      ch = Agetchar();
+      if (ch == 'B') ch = 0;
+      gn[2] = ch << 16;
+      gndbl[2] = 0;
+      return iso2022();
+    case '+' + 0x100: /* set G3 to 94-char set */
+      ch = Agetchar();
+      if (ch == 'B') ch = 0;
+      gn[3] = ch << 16;
+      gndbl[3] = 0;
+      return iso2022();
+    case '-' + 0x100: /* set G1 to 96-char set */
+      ch = Agetchar();
+      if (ch == 'A') ch = 0; /* Latin-1 top half */
+      gn[1] = (ch << 16) | 0x80;
+      gndbl[1] = 0;
+      return iso2022();
+    case '.' + 0x100: /* set G2 to 96-char set */
+      ch = Agetchar();
+      if (ch == 'A') ch = 0;
+      gn[2] = (ch << 16) | 0x80;
+      gndbl[2] = 0;
+      return iso2022();
+    case '/' + 0x100: /* set G3 to 96-char set */
+      ch = Agetchar();
+      if (ch == 'A') ch = 0;
+      gn[3] = (ch << 16) | 0x80;
+      gndbl[3] = 0;
+      return iso2022();
+    case '(' + 0x200: /* set G0 to 94 x 94 char set */
+      ch = Agetchar();
+      gn[0] = ch << 16;
+      gndbl[0] = 1;
+      return iso2022();
+    case ')' + 0x200: /* set G1 to 94 x 94 char set */
+      ch = Agetchar();
+      gn[1] = ch << 16;
+      gndbl[1] = 1;
+      return iso2022();
+    case '*' + 0x200: /* set G2 to 94 x 94 char set */
+      ch = Agetchar();
+      gn[2] = ch << 16;
+      gndbl[2] = 1;
+      return iso2022();
+    case '+' + 0x200: /* set G3 to 94 x 94 char set */
+      ch = Agetchar();
+      gn[3] = ch << 16;
+      gndbl[3] = 1;
+      return iso2022();
+    default:
+      if (ch & 0x200) { /* set G0 to 94 x 94 char set (deprecated) */
+        gn[0] = (ch & ~0x200) << 16;
+        gndbl[0] = 1;
+        return iso2022();
+        }
+      }
+
+  if (ch >= 0x21 && ch <= 0x7E) { /* process GL */
+    if (gndbl[gl]) {
+      ch2 = Agetchar();
+      return gn[gl] | (ch << 8) | ch2;
+      }
+    else return gn[gl] | ch;
+    }
+  else if (ch >= 0xA0 && ch <= 0xFF) { /* process GR */
+    if (gndbl[gr]) {
+      ch2 = Agetchar();
+      return gn[gr] | (ch << 8) | ch2;
+      }
+    else return gn[gr] | (ch & ~0x80);
+    }
+  else return ch;
+  }
+
+/****************************************************************************
+
+  ungetinchr
+
+  Called by main.  Pushes back an "inchr" to be read by getinchr
+  on the next call.
+
+******************************************************************************/
+inchr getinchr_buffer;
+int getinchr_flag;
+
+inchr ungetinchr(inchr c)
+{
+  getinchr_buffer = c;
+  getinchr_flag = 1;
+  return c;
+}
+
+/*****************************************************************************
+
+  getinchr
+
+  Called by main.  Processes multibyte characters.  Invokes Agetchar.
+  If multibyte = 0, ISO 2022 mode (see iso2022 routine).
+  If multibyte = 1,  double-byte mode (0x00-0x7f bytes are characters,
+    0x80-0xFF bytes are first byte of a double-byte character).
+  If multibyte = 2, Unicode UTF-8 mode (0x00-0x7F bytes are characters,
+    0x80-0xBF bytes are nonfirst byte of a multibyte character,
+    0xC0-0xFD bytes are first byte of a multibyte character,
+    0xFE-0xFF bytes are errors (all errors return code 0x0080)).
+  If multibyte = 3, HZ mode ("~{" starts double-byte mode, "}~" ends it,
+    "~~" is a tilde, "~x" for all other x is ignored).
+  If multibyte = 4, Shift-JIS mode (0x80-0x9F and 0xE0-0xEF are first byte
+    of a double-byte character, all other bytes are characters).
+ 
+
+*****************************************************************************/
+
+inchr getinchr(void)
+{
+  int ch, ch2, ch3, ch4, ch5, ch6;
+
+  if (getinchr_flag) {
+    getinchr_flag = 0;
+    return getinchr_buffer;
+    }
+
+  switch(multibyte) {
+    case 0: /* single-byte */
+      return iso2022();
+   case 1: /* DBCS */
+     ch = Agetchar();
+     if ((ch >= 0x80 && ch <= 0x9F) ||
+         (ch >= 0xE0 && ch <= 0xEF)) {
+       ch = (ch << 8) + Agetchar();
+       }
+     return ch;
+   case 2: /* UTF-8 */
+      ch = Agetchar();
+      if (ch < 0x80) return ch;  /* handles EOF, too */
+      if (ch < 0xC0 || ch > 0xFD)
+        return 0x0080;  /* illegal first character */
+      ch2 = Agetchar() & 0x3F;
+      if (ch < 0xE0) return ((ch & 0x1F) << 6) + ch2;
+      ch3 = Agetchar() & 0x3F;
+      if (ch < 0xF0)
+        return ((ch & 0x0F) << 12) + (ch2 << 6) + ch3;
+      ch4 = Agetchar() & 0x3F;
+      if (ch < 0xF8)
+        return ((ch & 0x07) << 18) + (ch2 << 12) + (ch3 << 6) + ch4;
+      ch5 = Agetchar() & 0x3F;
+      if (ch < 0xFC)
+        return ((ch & 0x03) << 24) + (ch2 << 18) + (ch3 << 12) +
+          (ch4 << 6) + ch5;
+      ch6 = Agetchar() & 0x3F;
+      return ((ch & 0x01) << 30) + (ch2 << 24) + (ch3 << 18) +
+        (ch4 << 12) + (ch5 << 6) + ch6;
+   case 3: /* HZ */
+     ch = Agetchar();
+     if (ch == EOF) return ch;
+     if (hzmode) {
+       ch = (ch << 8) + Agetchar();
+       if (ch == ('}' << 8) + '~') {
+         hzmode = 0;
+         return getinchr();
+         }
+       return ch;
+       }
+     else if (ch == '~') {
+       ch = Agetchar();
+       if (ch == '{') {
+          hzmode = 1;
+          return getinchr();
+          }
+      else if (ch == '~') {
+        return ch;
+        }
+      else {
+        return getinchr();
+        }
+      }
+     else return ch;
+   case 4: /* Shift-JIS */
+     ch = Agetchar();
+     if ((ch >= 0x80 && ch <= 0x9F) ||
+         (ch >= 0xE0 && ch <= 0xEF)) {
+       ch = (ch << 8) + Agetchar();
+       }
+     return ch;
+   default:
+     return 0x80;
+    }
+  }
+
+/****************************************************************************
+
+  main
+
+  The main program, of course.
+  Reads characters 1 by 1 from stdin, and makes lines out of them using
+  addchar. Handles line breaking, (which accounts for most of the
+  complexity in this function).
+
+****************************************************************************/
+
+void main(int argc,char *argv[])
+{
+  inchr c,c2;
+  int i;
+  int last_was_eol_flag;
+/*---------------------------------------------------------------------------
+  wordbreakmode:
+    -1: /^$/ and blanks are to be absorbed (when line break was forced
+      by a blank or character larger than outlinelenlimit)
+    0: /^ *$/ and blanks are not to be absorbed
+    1: /[^ ]$/ no word break yet
+    2: /[^ ]  *$/
+    3: /[^ ]$/ had a word break
+---------------------------------------------------------------------------*/
+  int wordbreakmode;
+  int char_not_added;
+
+  Myargc = argc;
+  Myargv = argv;
+  getparams();
+  readcontrolfiles();
+  readfont();
+  linealloc();
+
+  wordbreakmode = 0;
+  last_was_eol_flag = 0;
+
+  while ((c = getinchr())!=EOF) {
+
+    if (c=='\n'&&paragraphflag&&!last_was_eol_flag) {
+      ungetinchr(c2 = getinchr());
+      c = ((isascii(c2)&&isspace(c2))?'\n':' ');
+      }
+    last_was_eol_flag = (isascii(c)&&isspace(c)&&c!='\t'&&c!=' ');
+
+    if (deutschflag) {
+      if (c>='[' && c<=']') {
+        c = deutsch[c-'['];
+        }
+      else if (c >='{' && c <= '~') {
+        c = deutsch[c-'{'+3];
+        }
+      }
+
+    c = handlemapping(c);
+
+    if (isascii(c)&&isspace(c)) {
+      c = (c=='\t'||c==' ') ? ' ' : '\n';
+      }
+
+    if ((c>'\0' && c<' ' && c!='\n') || c==127) continue;
+
+/*
+  Note: The following code is complex and thoroughly tested.
+  Be careful when modifying!
+*/
+
+    do {
+      char_not_added = 0;
+
+      if (wordbreakmode== -1) {
+        if (c==' ') {
+          break;
+          }
+        else if (c=='\n') {
+          wordbreakmode = 0;
+          break;
+          }
+        wordbreakmode = 0;
+        }
+
+      if (c=='\n') {
+        printline();
+        wordbreakmode = 0;
+        }
+
+      else if (addchar(c)) {
+        if (c!=' ') {
+          wordbreakmode = (wordbreakmode>=2)?3:1;
+          }
+        else {
+          wordbreakmode = (wordbreakmode>0)?2:0;
+          }
+        }
+
+      else if (outlinelen==0) {
+        for (i=0;i<charheight;i++) {
+          if (right2left && outputwidth>1) {
+            putstring(currchar[i]+MYSTRLEN(currchar[i])-outlinelenlimit);
+            }
+          else {
+            putstring(currchar[i]);
+            }
+          }
+        wordbreakmode = -1;
+        }
+
+      else if (c==' ') {
+        if (wordbreakmode==2) {
+          splitline();
+          }
+        else {
+          printline();
+          }
+        wordbreakmode = -1;
+        }
+
+      else {
+        if (wordbreakmode>=2) {
+          splitline();
+          }
+        else {
+          printline();
+          }
+        wordbreakmode = (wordbreakmode==3)?1:0;
+        char_not_added = 1;
+        }
+
+      } while (char_not_added);
+    }
+
+  if (outlinelen!=0) {
+    printline();
+    }
+  exit(0);
+}
--- /dev/null
+++ b/figlet.man
@@ -1,0 +1,1064 @@
+.\"  FIGlet
+.\"  Copyright (C) 1991, 1993, 1994 Glenn Chappell and Ian Chai
+.\"  Internet: <info@figlet.org>
+.\"  Portions Copyright 1996, 1997, 1998, 1999, 2000, 2001 by John Cowan <cowan@ccil.org>
+.\"  Portions Copyright 2002 by Christiaan Keet
+.\"  FIGlet, along with the various FIGlet fonts and documentation, may
+.\"  be freely copied and distributed.
+.\"  If you use FIGlet, please send an e-mail message to
+.\"  <info@figlet.org>
+.\"
+.TH FIGLET 6 "05 July 2005" "v2.2.2"
+
+.SH NAME
+FIGlet \- display large characters made up of ordinary screen characters
+
+.SH SYNOPSIS
+.B figlet
+[
+.B \-cklnoprstvxDELNRSWX
+]
+[
+.B \-d
+.I fontdirectory
+]
+.PD 0
+.IP
+.PD
+[
+.B \-f
+.I fontfile
+]
+[
+.B \-m
+.I layoutmode
+]
+.PD 0
+.IP
+.PD
+[
+.B \-w
+.IR outputwidth
+]
+[
+.B \-C
+.I controlfile
+]
+.PD 0
+.IP
+.PD
+[
+.B \-I
+.I infocode
+]
+[
+.I message
+]
+
+.SH DESCRIPTION
+.B FIGlet
+prints its input using large characters
+(called ``FIGcharacters'')made up of ordinary
+screen characters
+(called ``sub-characters'').
+.B FIGlet
+output is generally reminiscent of the
+sort of ``signatures'' many people like to put at the end of e-mail
+and UseNet messages.  It is also reminiscent of the output of some banner
+programs, although it is oriented normally, not sideways.
+
+.B FIGlet
+can print in a variety of fonts, both left-to-right and right-to-left,
+with adjacent FIGcharacters kerned and ``smushed'' together in various ways.
+.B FIGlet
+fonts are stored in
+separate files, which can be identified by the suffix
+.RB `` .flf ''.
+Most
+.B FIGlet
+font files will be stored in
+.B FIGlet's
+default font directory.
+
+.B FIGlet
+can also use ``control files'', which tell it to map certain input
+characters to certain other characters, similar to the Unix
+.B tr
+command.  Control files can be identified by the suffix
+.RB `` .flc ''.
+Most
+.B FIGlet
+control files will be stored in
+.B FIGlet's
+default font directory.
+
+You can store
+.B FIGlet
+fonts and control files
+in compressed form.
+See
+.BR "COMPRESSED FONTS" .
+
+.SH USAGE
+Just start up
+.B FIGlet
+(type
+.RB `` figlet '')
+and then type whatever you want.
+Alternatively, pipe a file or the output of another command through
+.BR FIGlet ,
+or put input on the command line
+after the options.
+See
+.B EXAMPLES
+for other things to do.
+
+.SH OPTIONS
+.B FIGlet
+reads command line options from left to right, and only the last
+option that affects a parameter has any effect.  Almost every option
+has an inverse, so that, for example, if
+.B FIGlet
+is customized with a shell
+.BR alias ,
+all the options are usually still available.
+
+Commonly-used options are
+.BR \-f ,
+.BR \-c ,
+.BR \-k ,
+.BR \-t ,
+.B \-p
+and
+.BR \-v .
+
+.TP
+.BI \-f \ fontfile
+Select the font.  The
+.B .flf
+suffix may be left off of
+.IR fontfile ,
+in which case
+.B FIGlet
+automatically appends it.
+.B FIGlet
+looks for the file first in the default font directory and then
+in the current directory, or, if
+.I fontfile
+was given as a full pathname, in the given directory.
+If the
+.B \-f
+option is not specified,
+.B FIGlet
+uses the font that was specified
+when it was compiled.  To find out which font this is, use the
+.B \-I3
+option.
+
+.TP
+.BI \-d \ fontdirectory
+Change the default font directory.
+.B FIGlet
+looks for fonts first in the
+default directory and then in the current directory.
+If the
+.B \-d
+option is not specified,
+.B FIGlet
+uses the directory that was specified
+when it was compiled.  To find out which directory this is, use the
+.B \-I2
+option.
+
+.TP
+.B \-c
+.PD 0
+.TP
+.B \-l
+.PD 0
+.TP
+.B \-r
+.PD 0
+.TP
+.B \-x
+.PD
+These options handle the justification of
+.B FIGlet
+output.
+.B \-c
+centers the output horizontally.
+.B \-l
+makes the output flush-left.
+.B \-r
+makes it flush-right.
+.B \-x
+(default) sets the justification according to whether left-to-right or
+right-to-left text is selected.  Left-to-right text will be flush-left,
+while right-to-left text will be flush-right.  (Left-to-right versus
+right-to-left text is controlled by
+.BR \-L ,
+.B \-R
+and
+.BR \-X .)
+
+.TP
+.B \-t
+.PD 0
+.TP
+.BI \-w \ outputwidth
+.PD
+These options control the
+.IR outputwidth ,
+or the screen width
+.B FIGlet
+assumes when formatting its output.
+.B FIGlet
+uses the
+.I outputwidth
+to determine when to break lines and how to center
+the output.  Normally,
+.B FIGlet
+assumes 80 columns so that people with wide terminals
+won't annoy the people they e-mail
+.B FIGlet
+output to.
+.B \-t
+sets the
+.I outputwidth
+to the terminal width.  If the terminal width cannot be determined,
+the previous
+.I outputwidth
+is retained.
+.B \-w
+sets the
+.I outputwidth
+to the given integer.  An
+.I outputwidth
+of 1 is a special value that tells
+.B FIGlet
+to print each non-space FIGcharacter, in its entirety, on a separate line,
+no matter how wide it is.
+
+.TP
+.B \-p
+.PD 0
+.TP
+.B \-n
+.PD
+These options control how
+.B FIGlet
+handles newlines.
+.B \-p
+puts
+.B FIGlet
+into ``paragraph mode'', which eliminates some unnecessary line
+breaks when piping a multi-line file through
+.BR FIGlet .
+In paragraph mode,
+.B FIGlet
+treats line breaks within a paragraph as if they were merely blanks
+between words.  (Specifically,
+.B \-p
+causes
+.B FIGlet
+to convert any newline which is not preceded by a newline and not
+followed by a space character into a blank.)
+.B \-n
+(default) puts
+.B FIGlet
+back to normal, in which every newline
+.B FIGlet
+reads causes it to produce a line break.
+
+.TP
+.B \-D
+.PD 0
+.TP
+.B \-E
+.PD
+.B \-D
+switches to the German (ISO 646-DE) character set.  Turns `[', `\e'
+and `]' into umlauted A, O and U, respectively.  `{', `|' and `}' turn
+into the respective lower case versions of these.  `~' turns into s-z.
+.B \-E
+turns off
+.B \-D
+processing.
+These options are deprecated,
+which means they probably will not appear
+in the next version of
+.BR FIGlet .
+
+.TP
+.BI \-C \ controlfile
+.PD 0
+.TP
+.B \-N
+.PD
+These options deal with
+.B FIGlet
+.IR controlfiles .
+A 
+.I controlfile
+is a file containing a list of commands that
+.B FIGlet
+executes each time it reads a character.  These commands can map certain
+input characters to other characters, similar to the Unix
+.B tr
+command or the
+.B FIGlet
+.B \-D
+option.
+.B FIGlet
+maintains a list of
+.IR controlfiles ,
+which is empty when
+.B FIGlet
+starts up.
+.B \-C
+adds the given
+.I controlfile
+to the list.
+.B \-N
+clears the
+.I controlfile
+list, cancelling the effect of any previous
+.BR \-C .
+.B FIGlet
+executes the commands in all
+.I controlfiles
+in the list.  See
+the file
+.IR figfont.txt ,
+provided with FIGlet,
+for details on how to write a
+.IR controlfile .
+
+.TP
+.B \-s
+.PD 0
+.TP
+.B \-S
+.PD 0
+.TP
+.B \-k
+.PD 0
+.TP
+.B \-W
+.PD
+.TP
+.B \-o
+.PD
+These options control how
+.B FIGlet
+spaces the FIGcharacters that it outputs.
+.B \-s
+(default) and
+.B \-S
+cause ``smushing''.
+The FIGcharacters are displayed
+as close together as possible,
+and overlapping sub-characters are removed.
+Exactly which sub-characters count as ``overlapping''
+depends on the font's
+.IR layoutmode ,
+which is defined by the font's author.
+.B \-k
+causes ``kerning''.  As many blanks as possible are
+removed between FIGcharacters, so that they
+touch, but the FIGcharacters are not smushed.
+.B \-W
+makes
+.B FIGlet
+display all FIGcharacters at their full width,
+which may be fixed or variable, depending on the font.
+
+The difference between
+.B \-s
+and
+.B \-S
+is that
+.B \-s
+will not smush a font whose author specified
+kerning or full width as the default
+.IR layoutmode ,
+whereas
+.B \-S
+will attempt to do so.
+
+If there is no information in the font
+about how to smush,
+or if the
+.B \-o
+option is specified,
+then the FIGcharacters are ``overlapped''.
+This means that after kerning,
+the first subcharacter of
+each FIGcharacter is removed.
+(This is not done if a FIGcharacter
+contains only one subcharacter.)
+
+.TP
+.BI \-m \ layoutmode
+Specifies an explicit
+.I layoutmode
+between
+.B 1
+and
+.BR 63 .
+.I Smushmodes
+are explained in
+.IR figfont.txt ,
+which also provides complete information
+on the format of a
+.B FIGlet
+font.
+For the sake of backward compatibility
+with versions of
+.B FIGlet
+before 2.2,
+.B \-m0
+is equivalent to
+.BR \-k ,
+.B \-m-1
+is equivalent to
+.BR \-W ,
+and
+.B \-m-2
+is equivalent to
+.BR \-s .
+The
+.B \-m
+switch is normally
+used only by font designers testing the various
+.I layoutmodes
+with a new font.
+
+.TP
+.B \-v
+.PD 0
+.TP
+.BI \-I \ infocode
+.PD
+These options print various information about
+.BR FIGlet ,
+then exit.  If several of these options are given on the command line, only
+the last is executed, and only after
+all other command-line options have been dealt with.
+
+.B \-v
+prints version and copyright information, as well as a ``Usage: ...''
+line.
+.B \-I
+prints the information corresponding to the given
+.I infocode
+in a consistent, reliable (i.e., guaranteed to be the same in
+future releases) format.
+.B \-I
+is primarily intended to be used by programs that use
+.BR FIGlet .
+.I infocode
+can be any of the following.
+.RS
+.TP
+.BR -1 " Normal operation (default)."
+This
+.I infocode
+indicates that
+.B FIGlet
+should operate normally, not giving any informational printout,
+printing its input in the selected font.
+.TP
+.BR 0 " Version and copyright."
+This is identical to
+.BR \-v .
+.TP
+.BR 1 " Version (integer)."
+This will print the version of your copy of
+.B FIGlet
+as a decimal integer.  The main version number is multiplied by 10000,
+the sub-version number is multiplied by 100, and the sub-sub-version
+number is multiplied by 1.  These are added together, and the result is
+printed out.  For example,
+.B FIGlet
+2.2 will print
+.RB `` 20200 ''
+, version 2.2.2 will print
+.RB `` 20202 ''.
+Similarly, version 3.7.2 would print
+.RB `` 30702 ''.
+These numbers are guaranteed to be
+ascending, with later versions having higher numbers.  Note that
+the first major release of
+.BR FIGlet ,
+version 2.0, did not have the
+.B \-I
+option.
+.TP
+.BR 2 " Default font directory."
+This will print the default font directory.  It is affected by the
+.B \-d
+option.
+.TP
+.BR 3 " Font."
+This will print the name of the font
+.B FIGlet
+would use.  It is affected by
+the
+.B \-f
+option.
+This is not a filename; the
+.RB `` .flf ''
+suffix is not printed.
+.TP
+.BR 4 " Output width."
+This will print the value
+.B FIGlet
+would use for
+.IR outputwidth ,
+the number of columns wide
+.B FIGlet
+assumes the screen is.
+It is affected by the
+.B \-w
+and
+.B \-t
+options.
+.RE
+.IP
+If
+.I infocode
+is any other positive value,
+.B FIGlet
+will simply exit without printing anything.
+
+.TP
+.B \-L
+.PD 0
+.TP
+.B \-R
+.PD 0
+.TP
+.B \-X
+.PD
+These options control whether
+.B FIGlet
+prints left-to-right or right-to-left.
+.B \-L
+selects left-to-right printing.
+.B \-R
+selects right-to-left printing.
+.B \-X
+(default) makes
+.B FIGlet
+use whichever is specified in the font file.
+
+Once the options are read,
+if there are any remaining words on the command line,
+they are used instead
+of standard input as the source of text.
+This feature
+allows shell scripts to generate large letters without having to dummy
+up standard input files.
+
+An empty argument, obtained by two sequential quotes,
+results in a line break.
+
+.SH EXAMPLES
+To use
+.B FIGlet
+with its default settings, simply type
+.RS
+.nf
+.ft B
+
+example% figlet
+
+.ft R
+.fi
+.RE
+and then type whatever you like.
+
+To change the font, use the
+.B \-f
+option, for example,
+.RS
+.nf
+.ft B
+
+example% figlet \-f script
+
+.ft R
+.fi
+.RE
+
+Use the
+.B \-c
+option if you would prefer centered output:
+.RS
+.nf
+.ft B
+
+example% figlet \-c
+
+.ft R
+.fi
+.RE
+
+We have found that the most common use of
+.B FIGlet
+is making up large text to be placed in e-mail messages.  For this
+reason,
+.B FIGlet
+defaults to 80 column output.  If you are using a wider terminal, and
+would like
+.B FIGlet
+to use the full width of your terminal, use the
+.B \-t
+option:
+.RS
+.nf
+.ft B
+
+example% figlet \-t
+
+.ft R
+.fi
+.RE
+
+If you don't want
+.B FIGlet
+to smush FIGcharacters into each other, use the
+.B \-k
+option:
+.RS
+.nf
+.ft B
+
+example% figlet \-k
+
+.ft R
+.fi
+.RE
+
+If
+.B figlet
+gets its input from a file, it is often a good idea to use
+.BR \-p :
+.RS
+.nf
+.ft B
+
+example% figlet \-p < myfile
+
+.ft R
+.fi
+.RE
+
+Of course, the above can be combined:
+.RS
+.nf
+.ft B
+
+example% figlet \-ptk \-f shadow < anotherfile
+example% figlet \-cf slant
+
+.ft R
+.fi
+.RE
+
+Finally, if you want to have
+.B FIGlet
+take the input from the command
+line instead of a file:
+.RS
+.nf
+.ft B
+
+example% figlet Hello world
+
+.ft R
+.fi
+.RE
+
+.SS Other Things to Try
+On many systems nice effects can be obtained from the
+.B lean
+font by piping it through
+.BR tr .
+Some you might want to try are the following:
+
+.RS
+.nf
+.ft B
+example% figlet \-f lean | tr ' _/' ' ()'
+example% figlet \-f lean | tr ' _/' './\e\e'
+example% figlet \-f lean | tr ' _/' ' //'
+example% figlet \-f lean | tr ' _/' '/  '
+.ft R
+.fi
+.RE
+
+Similar things can be done with the
+.B block
+font and many of the other
+.B FIGlet
+fonts.
+
+.SH COMPRESSED FONTS
+You can compress the fonts and controlfiles
+using the
+.B zip
+archiving program.
+Place only one font or controlfile in each archive,
+and rename the archive file (which will have a name
+ending in
+.BR .zip )
+back to
+.B .flf
+or
+.B .flc
+as the case may be.
+If you don't rename the file appropriately,
+.B FIGlet
+won't be able to find it.
+
+.B FIGlet
+does not care what the filename within the
+.B .zip
+archive is, and will process only the first file.
+
+The
+.B .zip
+format was chosen because tools to create and manipulate it
+are widely available for free
+on many platforms.
+
+.SH THE STANDARD FONTS
+
+Here are a few notes about some of the fonts provided with
+.IR FIGlet .
+You can get many other font from the Web site
+.br
+http://www.figlet.org/   This location 
+should also contain the latest version of
+.B FIGlet
+and other related utilities.
+
+The font
+.I standard
+is the basic
+.B FIGlet
+font, used when no other font is specified.
+(This default can be changed when
+.B FIGlet
+is compiled on your system.)
+The
+.I controlfiles
+.IR 8859-2 ,
+.IR 8859-3 ,
+.IR 8859-4 ,
+and
+.I 8859-9
+are provided for interpreting those character sets,
+also known as ISO Latin-2 through Latin-5 respectively.
+The character set 8859-1 (ISO Latin-1) is
+.B FIGlet's
+default and requires no special
+.IR controlfile .
+
+Closely related are the fonts
+.IR slant ,
+.IR shadow ,
+.IR small ,
+.I smslant
+(both small and slanted),
+.IR smshadow ,
+(both small and shadowed),
+and
+.IR big .
+These fonts support only Latin-1, except that
+.I big
+supports Greek FIGcharacters as well;
+the
+.I controlfiles
+.I frango
+(for Greek text written in Latin characters, so-called
+.RI `` frangovlakhika ''),
+and
+.I 8859-7
+(for mixed Latin/Greek text)
+are provided.
+
+The
+.I ivrit
+font is a right-to-left font
+including both Latin and Hebrew FIGcharacters;
+the Latin characters are those of the
+.I standard
+font.
+The available
+.I controlfiles
+are
+.IR ilhebrew ,
+which maps the letters you get
+by typing on a U.S. keyboard
+as if it were a Hebrew keyboard;
+.IR ushebrew ,
+which makes a reasonable mapping from
+Latin letters to Hebrew ones;
+and
+.IR 8859-8 ,
+which supports mixed Latin/Hebrew text.
+.B Warning:
+.B FIGlet
+doesn't support bidirectional text,
+so everything will come out right-to-left,
+even Latin letters.
+
+The fonts
+.IR terminal ,
+.IR digital ,
+and
+.I bubble
+output the input character with some decoration around it
+(or no decoration,
+in the case of
+.IR terminal ).
+The characters coded 128 to 159,
+which have varying interpretations, are output as-is.
+You can use the appropriate
+.I controlfiles
+to process Latin-2, Latin-3, or Latin-4 (but not Latin-5) text,
+provided your output device
+has screen or printer fonts that
+are appropriate for these character sets.
+
+Two script fonts are available:
+.IR script ,
+which is larger than
+.IR standard ,
+and
+.IR smscript ,
+which is smaller.
+
+The font 
+.I lean
+is made up solely of `/' and `_' sub-characters;
+.I block
+is a straight (non-leaning) version of it.
+
+The font
+.I mini
+is very small, and especially suitable for e-mail signatures.
+
+The font
+.I banner
+looks like the output of the
+.B banner
+program;
+it is a capitals and small capitals font
+that doesn't support the ISO Latin-1 extensions
+to plain ASCII.
+It does, however, support the Japanese
+.I katakana
+syllabary;
+the
+.I controlfile
+.I uskata
+maps the upper-case and lower-case Latin letters
+into the 48 basic
+.I katakana
+characters,
+and the
+.I controlfile
+.I jis0201
+handles JIS 0201X (JIS-Roman)
+mixed Latin and
+.I katakana
+text.
+Furthermore, the
+.I banner
+font also supports Cyrillic (Russian)
+FIGcharacters; the
+.I controlfile
+.I 8859-5
+supports mixed Latin and Cyrillic text,
+the
+.I controlfile
+.I koi8r
+supports the popular KOI8-R mapping of mixed text,
+and the
+.I controlfile
+.I moscow
+supports a
+sensible mapping from Latin to Cyrillic,
+compatible with the
+.I moscow
+font (not supplied).
+
+The fonts
+.I mnemonic
+and
+.I safemnem
+support the mnemonic character set
+documented in RFC 1345.
+They implement a large subset of Unicode
+(over 1800 characters) very crudely,
+using ASCII-based mnemonic sequences,
+and are good for getting a quick look
+at UTF-8 unicode files,
+using the controlfile
+.IR utf8 .
+
+.SH FILES
+.PD 0
+.TP 20
+.IB file .flf
+.B FIGlet
+font file
+.TP 20
+.IB file .flc
+.B FIGlet
+control file
+.PD
+
+.SH DIAGNOSTICS
+.B FIGlet's
+diagnostics are intended to be self-explanatory.  Possible
+messages are
+
+.RS
+.nf
+.ft B
+Usage: ...
+Out of memory
+Unable to open font file
+Not a FIGlet 2 font file
+Unable to open control file
+Not a FIGlet 2 control file
+"\-t" is disabled, since ioctl is not fully implemented.
+.ft R
+.fi
+.RE
+
+This last message is printed when the
+.B \-t
+option is given, but the operating system in use does not include
+the system call
+.B FIGlet
+uses to determine the terminal width.
+
+.B FIGlet
+also prints an explanatory message if the
+.B \-F
+option is given on the command line.
+The earlier version of
+.BR FIGlet ,
+version 2.0, listed the available fonts when the
+.B \-F
+option was given.  This option has been removed from
+.B FIGlet
+2.1.  It has been replaced by the
+.B figlist
+script, which is part of the standard
+.B FIGlet
+package.
+
+.SH ORIGIN
+.RB `` FIGlet ''
+stands for ``Frank, Ian and Glenn's LETters''.  Inspired by Frank's .sig,
+Glenn wrote (most of) it, and Ian helped.
+
+Most of the standard
+.B FIGlet
+fonts were inspired by signatures on various UseNet
+articles.  Since typically hundreds of people use the same style of
+letters in their signatures, it was often not deemed necessary to give
+credit to any one font designer.
+
+.SH BUGS
+Very little error checking is done on font and control files.  While
+.B FIGlet
+tries to be forgiving of errors, and should (hopefully) never actually
+crash, using an improperly-formatted file with
+.B FIGlet
+will produce unpredictable output.
+
+.B FIGlet
+does not handle format characters in a very intelligent way.
+A tab character is converted to a blank, and vertical-tab, form-feed and
+carriage-return are each converted to a newline.  On many systems, tabs
+can be handled better by piping files through
+.B expand
+before piping through
+.BR FIGlet .
+
+.B FIGlet
+output is quite ugly if it is displayed in a proportionally-spaced font.
+I suppose this is to be expected.
+
+Please report any errors you find in this man page or the program to
+<info@figlet.org>
+.SH MAILING LIST
+You can get many fonts which are not in the basic
+.B FIGlet
+package from the Web site
+http://www.figlet.org/   It 
+should also contain the latest version of
+.B FIGlet
+and other utilities related to
+.BR FIGlet .
+We run 3 e-mail lists dedicated to
+.B FIGlet
+software and font announcements, as well as general discussion about
+.BR FIGlet :
+    figlet@figlet.org          General discussion 
+    figletfonts@figlet.org     Font announcements
+    figletsoftware@figlet.org  Software announcements 
+    (The last two lists are moderated)
+
+To subscribe or unsubscribe from the FIGlet mailing lists, please visit the corresponding URL:
+    http://www.figlet.org/mailman/listinfo/figlet 
+    http://www.figlet.org/mailman/listinfo/figletfonts 
+    http://www.figlet.org/mailman/listinfo/figletsoftware 
+
+.SH AUTHORS
+Glenn Chappell <c486scm@semovm.semo.edu> did most of the work. 
+You can e-mail him but he is not an e-mail fanatic; people who e-mail
+Glenn will probably get answers, but if you e-mail his best friend:
+
+Ian Chai <ianchai@usa.net>, who
+.I is
+an e-mail fanatic, you'll get answers, endless conversation about the
+mysteries of life, invitations to join some 473 mailing lists and a
+free toaster.  (Well, ok, maybe not the free toaster.) 
+
+Frank inspired this whole project with his .sig, but don't e-mail
+him; he's decidedly an un-e-mail-fanatic.
+
+Gilbert "The Mad Programmer" Healton <ghealton@nmia.com> added the
+.B \-A
+option for version 2.1.1.  This option specified input from
+the command line; it is still allowed,
+but has no effect.
+
+John Cowan <cowan@ccil.org> added the
+.BR \-o ,
+.BR \-s ,
+.BR \-k ,
+.BR \-S ,
+and
+.B \-W
+options, and
+the support for Unicode mapping tables,
+ISO 2022/HZ/Shift-JIS/UTF-8 input,
+and compressed fonts
+and control files.
+He also revised this documentation,
+with a lot of input from
+Paul Burton <solution@earthlink.net>.
+
+Christiaan Keet <keet@plig.net> revised the official FIGlet documentation 
+and set up the new FIGlet website at http://www.figlet.org/ (and the 
+corresponding ftp://ftp.figlet.org/pub/figlet/)
--- /dev/null
+++ b/figlist
@@ -1,0 +1,69 @@
+#!/bin/rc
+# figlist by Glenn Chappell <ggc@uiuc.edu>
+# figlet release 2.1.1 -- 25 Aug 1994
+#
+# adapted for Rc by Lee Duhem <lee.duhem@gmail.com>
+# February 2007
+#
+# Lists all fonts and control files in figlet's default font directory.
+# Replaces "figlet -F", which was removed from figlet version 2.1.
+#
+# Usage: figlist [ -d directory ]
+
+# Set up $path so figlet can be found
+path=(. /bin /bin/games /bin/games/figlet)
+
+# Get figlet version
+FIGLETVERSION=`{figlet -I1 >[2]/dev/null}
+if (test -z "$FIGLETVERSION" )
+  FIGLETVERSION=20000
+
+USAGE='Usage: '^ `{basename $0} ^' [ -d directory ]'
+
+if(~ $1 -d){
+  FONTDIROPT=(-d $2)
+  if(! ~ $#* 2){
+    echo $USAGE
+    exit usage
+  }
+}
+if not {
+  FONTDIROPT=''
+  if(! ~ $#* 0){
+    echo $USAGE
+    exit usage
+  }
+}
+
+if(test $FIGLETVERSION -lt 20100){
+  # figlet 2.0
+  figlet $FONTDIROPT -F
+  exit
+}
+
+# From here on we may assume figlet 2.1 or later
+
+FONTDIR=`{eval figlet $FONTDIROPT -I2}
+FONT=`{figlet -I3}
+echo Default font: $FONT
+echo Font directory: $FONTDIR
+
+if (test (-d $FONTDIR) -a (-r $FONTDIR)){
+  cd $FONTDIR
+  if(ls *.flf >/dev/null >[2=1]){
+    echo 'Figlet fonts in this directory:'
+    ls *.flf >[2] /dev/null | sed 's/\.flf$//'
+  }
+  if not
+    echo 'No figlet fonts in this directory'
+
+  if(ls *.flc >/dev/null >[2=1]){
+    echo 'Figlet control files in this directory:'
+    ls *.flc >[2] /dev/null | sed 's/\.flc$//'
+  }
+  if not
+    echo 'No figlet control files in this directory'
+}
+if not
+  echo 'Unable to open directory'
+
--- /dev/null
+++ b/figmagic
@@ -1,0 +1,6 @@
+# Append this file to your /etc/magic or /usr/share/misc/magic file
+# to enable the ``file'' command to report on FIGlet fonts and controlfiles.
+0	string		flf		FIGlet font
+>3	string		>2a		version %-2.2s
+0	string		flc		FIGlet controlfile
+>3	string		>2a		version %-2.2s
--- /dev/null
+++ b/fonts/646-ca.flc
@@ -1,0 +1,157 @@
+#
+#	Name:             CSA_Z243.4-1985-1 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       CSA_Z243.4-1985-1 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the CSA_Z243.4-1985-1 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in CSA_Z243.4-1985-1 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-121
+#   &g0esc x2877 &g1esc x2977 &g2esc x2a77 &g3esc x2b77
+#   &alias ISO646-CA
+#   &alias csa7-1
+#   &alias ca
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00E0	# LATIN SMALL LETTER A WITH GRAVE
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00E2	# LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x5C	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x5D	0x00EA	# LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x5E	0x00EE	# LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x5F	0x005F	# LOW LINE
+0x60	0x00F4	# LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
+0x7C	0x00F9	# LATIN SMALL LETTER U WITH GRAVE
+0x7D	0x00E8	# LATIN SMALL LETTER E WITH GRAVE
+0x7E	0x00FB	# LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-ca2.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             CSA_Z243.4-1985-2 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       CSA_Z243.4-1985-2 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the CSA_Z243.4-1985-2 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in CSA_Z243.4-1985-2 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-122
+#   &alias ISO646-CA2
+#   &g0esc x2878 &g1esc x2978 &g2esc x2a78 &g3esc x2b78
+#   &alias csa7-2
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00E0	# LATIN SMALL LETTER A WITH GRAVE
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00E2	# LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x5C	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x5D	0x00EA	# LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x5E	0x00C9	# LATIN CAPITAL LETTER E WITH ACUTE
+0x5F	0x005F	# LOW LINE
+0x60	0x00F4	# LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
+0x7C	0x00F9	# LATIN SMALL LETTER U WITH GRAVE
+0x7D	0x00E8	# LATIN SMALL LETTER E WITH GRAVE
+0x7E	0x00FB	# LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-cn.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             GB_1988-80 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       GB_1988-80 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the GB_1988-80 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in GB_1988-80 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-57
+#   &g0esc x2854 &g1esc x2954 &g2esc x2a54 &g3esc x2b54
+#   &alias cn
+#   &alias ISO646-CN
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x00A5	# YEN SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x005B	# LEFT SQUARE BRACKET
+0x5C	0x005C	# REVERSE SOLIDUS
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x007B	# LEFT CURLY BRACKET
+0x7C	0x007C	# VERTICAL LINE
+0x7D	0x007D	# RIGHT CURLY BRACKET
+0x7E	0x203E	# OVERLINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-cu.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             NC_NC00-10:81 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       NC_NC00-10:81 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the NC_NC00-10:81 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in NC_NC00-10:81 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias cuba
+#   &alias iso-ir-151
+#   &alias ISO646-CU
+#   &g0esc x282141 &g1esc x292141 &g2esc x2a2141 &g3esc x2b2141
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x00A4	# CURRENCY SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00A1	# INVERTED EXCLAMATION MARK
+0x5C	0x00D1	# LATIN CAPITAL LETTER N WITH TILDE
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x00BF	# INVERTED QUESTION MARK
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00B4	# ACUTE ACCENT
+0x7C	0x00F1	# LATIN SMALL LETTER N WITH TILDE
+0x7D	0x005B	# LEFT SQUARE BRACKET
+0x7E	0x00A8	# DIAERESIS
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-de.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             DIN_66003 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       DIN_66003 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the DIN_66003 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in DIN_66003 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-21
+#   &g0esc x284b &g1esc x294b &g2esc x2a4b &g3esc x2b4b
+#   &alias de
+#   &alias ISO646-DE
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00A7	# SECTION SIGN
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
+0x5C	0x00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
+0x5D	0x00DC	# LATIN CAPITAL LETTER U WITH DIAERESIS
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E4	# LATIN SMALL LETTER A WITH DIAERESIS
+0x7C	0x00F6	# LATIN SMALL LETTER O WITH DIAERESIS
+0x7D	0x00FC	# LATIN SMALL LETTER U WITH DIAERESIS
+0x7E	0x00DF	# LATIN SMALL LETTER SHARP S (German)
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-dk.flc
@@ -1,0 +1,155 @@
+#
+#	Name:             DS_2089 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       DS_2089 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the DS_2089 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in DS_2089 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: Danish Standard, DS 2089, February 1974
+#   &alias DS2089
+#   &alias ISO646-DK
+#   &alias dk
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C6	# LATIN CAPITAL LETTER AE
+0x5C	0x00D8	# LATIN CAPITAL LETTER O WITH STROKE
+0x5D	0x00C5	# LATIN CAPITAL LETTER A WITH RING ABOVE
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E6	# LATIN SMALL LETTER AE
+0x7C	0x00F8	# LATIN SMALL LETTER O WITH STROKE
+0x7D	0x00E5	# LATIN SMALL LETTER A WITH RING ABOVE
+0x7E	0x007E	# TILDE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-es.flc
@@ -1,0 +1,155 @@
+#
+#	Name:             ES to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       ES characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ES code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ES order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-17
+#   &alias ISO646-ES
+#   &g0esc x285a &g1esc x295a &g2esc x2a5a &g3esc x2b5a
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x00A3	# POUND SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00A7	# SECTION SIGN
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00A1	# INVERTED EXCLAMATION MARK
+0x5C	0x00D1	# LATIN CAPITAL LETTER N WITH TILDE
+0x5D	0x00BF	# INVERTED QUESTION MARK
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00B0	# DEGREE SIGN
+0x7C	0x00F1	# LATIN SMALL LETTER N WITH TILDE
+0x7D	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x7E	0x007E	# TILDE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-es2.flc
@@ -1,0 +1,155 @@
+#
+#	Name:             ES2 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       ES2 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ES2 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ES2 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-85
+#   &alias ISO646-ES2
+#   &g0esc x2868 &g1esc x2968 &g2esc x2a68 &g3esc x2b68
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x2219	# BULLET OPERATOR
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00A1	# INVERTED EXCLAMATION MARK
+0x5C	0x00D1	# LATIN CAPITAL LETTER N WITH TILDE
+0x5D	0x00C7	# LATIN CAPITAL LETTER C WITH CEDILLA
+0x5E	0x00BF	# INVERTED QUESTION MARK
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00B4	# ACUTE ACCENT
+0x7C	0x00F1	# LATIN SMALL LETTER N WITH TILDE
+0x7D	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x7E	0x00A8	# DIAERESIS
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-fr.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             NF_Z_62-010 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       NF_Z_62-010 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the NF_Z_62-010 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in NF_Z_62-010 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-69
+#   &alias ISO646-FR
+#   &g0esc x2866 &g1esc x2966 &g2esc x2a66 &g3esc x2b66
+#   &alias fr
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x00A3	# POUND SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00E0	# LATIN SMALL LETTER A WITH GRAVE
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00B0	# DEGREE SIGN
+0x5C	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x5D	0x00A7	# SECTION SIGN
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x00B5	# MICRO SIGN
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
+0x7C	0x00F9	# LATIN SMALL LETTER U WITH GRAVE
+0x7D	0x00E8	# LATIN SMALL LETTER E WITH GRAVE
+0x7E	0x00A8	# DIAERESIS
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-gb.flc
@@ -1,0 +1,157 @@
+#
+#	Name:             BS_4730 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       BS_4730 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the BS_4730 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in BS_4730 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-4
+#   &alias ISO646-GB
+#   &g0esc x2841 &g1esc x2941 &g2esc x2a41 &g3esc x2b41
+#   &alias gb
+#   &alias uk
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x00A3	# POUND SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x005B	# LEFT SQUARE BRACKET
+0x5C	0x005C	# REVERSE SOLIDUS
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x007B	# LEFT CURLY BRACKET
+0x7C	0x007C	# VERTICAL LINE
+0x7D	0x007D	# RIGHT CURLY BRACKET
+0x7E	0x203E	# OVERLINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-hu.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             MSZ_7795.3 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       MSZ_7795.3 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the MSZ_7795.3 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in MSZ_7795.3 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-86
+#   &alias ISO646-HU
+#   &g0esc x2869 &g1esc x2969 &g2esc x2a69 &g3esc x2b69
+#   &alias hu
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x00A4	# CURRENCY SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00C1	# LATIN CAPITAL LETTER A WITH ACUTE
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C9	# LATIN CAPITAL LETTER E WITH ACUTE
+0x5C	0x00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
+0x5D	0x00DC	# LATIN CAPITAL LETTER U WITH DIAERESIS
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x00E1	# LATIN SMALL LETTER A WITH ACUTE
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
+0x7C	0x00F6	# LATIN SMALL LETTER O WITH DIAERESIS
+0x7D	0x00FC	# LATIN SMALL LETTER U WITH DIAERESIS
+0x7E	0x02DD	# DOUBLE ACUTE ACCENT
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-irv.flc
@@ -1,0 +1,155 @@
+#
+#	Name:             ISO_646.irv:1983 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       ISO_646.irv:1983 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO_646.irv:1983 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO_646.irv:1983 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-2
+#   &alias irv
+#   &g0esc x2840 &g1esc x2940 &g2esc x2a40 &g3esc x2b40
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x00A4	# CURRENCY SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x005B	# LEFT SQUARE BRACKET
+0x5C	0x005C	# REVERSE SOLIDUS
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x007B	# LEFT CURLY BRACKET
+0x7C	0x007C	# VERTICAL LINE
+0x7D	0x007D	# RIGHT CURLY BRACKET
+0x7E	0x203E	# OVERLINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-it.flc
@@ -1,0 +1,155 @@
+#
+#	Name:             IT to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       IT characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the IT code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in IT order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-15
+#   &alias ISO646-IT
+#   &g0esc x2859 &g1esc x2959 &g2esc x2a59 &g3esc x2b59
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x00A3	# POUND SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00A7	# SECTION SIGN
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00B0	# DEGREE SIGN
+0x5C	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x5D	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x00F9	# LATIN SMALL LETTER U WITH GRAVE
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E0	# LATIN SMALL LETTER A WITH GRAVE
+0x7C	0x00F2	# LATIN SMALL LETTER O WITH GRAVE
+0x7D	0x00E8	# LATIN SMALL LETTER E WITH GRAVE
+0x7E	0x00EC	# LATIN SMALL LETTER I WITH GRAVE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-jp.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             JIS_C6220-1969-ro to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       JIS_C6220-1969-ro characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the JIS_C6220-1969-ro code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in JIS_C6220-1969-ro order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-14
+#   &g0esc x284a &g1esc x294a &g2esc x2a4a &g3esc x2b4a
+#   &alias jp
+#   &alias ISO646-JP
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x005B	# LEFT SQUARE BRACKET
+0x5C	0x00A5	# YEN SIGN
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x007B	# LEFT CURLY BRACKET
+0x7C	0x007C	# VERTICAL LINE
+0x7D	0x007D	# RIGHT CURLY BRACKET
+0x7E	0x203E	# OVERLINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-kr.flc
@@ -1,0 +1,152 @@
+#
+#	Name:             KSC5636 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       KSC5636 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the KSC5636 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in KSC5636 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &alias ISO646-KR
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x005B	# LEFT SQUARE BRACKET
+0x5C	0x20A9	# WON SIGN
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x007B	# LEFT CURLY BRACKET
+0x7C	0x007C	# VERTICAL LINE
+0x7D	0x007D	# RIGHT CURLY BRACKET
+0x7E	0x007E	# TILDE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-no.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             NS_4551-1 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       NS_4551-1 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the NS_4551-1 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in NS_4551-1 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-60
+#   &alias ISO646-NO
+#   &g0esc x2860 &g1esc x2960 &g2esc x2a60 &g3esc x2b60
+#   &alias no
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C6	# LATIN CAPITAL LETTER AE
+0x5C	0x00D8	# LATIN CAPITAL LETTER O WITH STROKE
+0x5D	0x00C5	# LATIN CAPITAL LETTER A WITH RING ABOVE
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E6	# LATIN SMALL LETTER AE
+0x7C	0x00F8	# LATIN SMALL LETTER O WITH STROKE
+0x7D	0x00E5	# LATIN SMALL LETTER A WITH RING ABOVE
+0x7E	0x203E	# OVERLINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-no2.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             NS_4551-2 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       NS_4551-2 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the NS_4551-2 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in NS_4551-2 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias ISO646-NO2
+#   &alias iso-ir-61
+#   &g0esc x2861 &g1esc x2961 &g2esc x2a61 &g3esc x2b61
+#   &alias no2
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x00B6	# PILCROW SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C6	# LATIN CAPITAL LETTER AE
+0x5C	0x00D8	# LATIN CAPITAL LETTER O WITH STROKE
+0x5D	0x00C5	# LATIN CAPITAL LETTER A WITH RING ABOVE
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E6	# LATIN SMALL LETTER AE
+0x7C	0x00F8	# LATIN SMALL LETTER O WITH STROKE
+0x7D	0x00E5	# LATIN SMALL LETTER A WITH RING ABOVE
+0x7E	0x007C	# VERTICAL LINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-pt.flc
@@ -1,0 +1,155 @@
+#
+#	Name:             PT to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       PT characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the PT code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in PT order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-16
+#   &alias ISO646-PT
+#   &g0esc x284c &g1esc x294c &g2esc x2a4c &g3esc x2b4c
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00A7	# SECTION SIGN
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C3	# LATIN CAPITAL LETTER A WITH TILDE
+0x5C	0x00C7	# LATIN CAPITAL LETTER C WITH CEDILLA
+0x5D	0x00D5	# LATIN CAPITAL LETTER O WITH TILDE
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E3	# LATIN SMALL LETTER A WITH TILDE
+0x7C	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x7D	0x00F5	# LATIN SMALL LETTER O WITH TILDE
+0x7E	0x00B0	# DEGREE SIGN
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-pt2.flc
@@ -1,0 +1,155 @@
+#
+#	Name:             PT2 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       PT2 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the PT2 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in PT2 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-84
+#   &alias ISO646-PT2
+#   &g0esc x2867 &g1esc x2967 &g2esc x2a67 &g3esc x2b67
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00B4	# ACUTE ACCENT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C3	# LATIN CAPITAL LETTER A WITH TILDE
+0x5C	0x00C7	# LATIN CAPITAL LETTER C WITH CEDILLA
+0x5D	0x00D5	# LATIN CAPITAL LETTER O WITH TILDE
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E3	# LATIN SMALL LETTER A WITH TILDE
+0x7C	0x00E7	# LATIN SMALL LETTER C WITH CEDILLA
+0x7D	0x00F5	# LATIN SMALL LETTER O WITH TILDE
+0x7E	0x203E	# OVERLINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-se.flc
@@ -1,0 +1,158 @@
+#
+#	Name:             SEN_850200_B to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       SEN_850200_B characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the SEN_850200_B code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in SEN_850200_B order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-10
+#   &alias FI
+#   &alias ISO646-FI
+#   &alias ISO646-SE
+#   &alias se
+#   &g0esc x2847 &g1esc x2947 &g2esc x2a47 &g3esc x2b47
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x00A4	# CURRENCY SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
+0x5C	0x00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
+0x5D	0x00C5	# LATIN CAPITAL LETTER A WITH RING ABOVE
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E4	# LATIN SMALL LETTER A WITH DIAERESIS
+0x7C	0x00F6	# LATIN SMALL LETTER O WITH DIAERESIS
+0x7D	0x00E5	# LATIN SMALL LETTER A WITH RING ABOVE
+0x7E	0x203E	# OVERLINE
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-se2.flc
@@ -1,0 +1,156 @@
+#
+#	Name:             SEN_850200_C to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       SEN_850200_C characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the SEN_850200_C code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in SEN_850200_C order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-11
+#   &alias ISO646-SE2
+#   &g0esc x2848 &g1esc x2948 &g2esc x2a48 &g3esc x2b48
+#   &alias se2
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x00A4	# CURRENCY SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x00C9	# LATIN CAPITAL LETTER E WITH ACUTE
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x00C4	# LATIN CAPITAL LETTER A WITH DIAERESIS
+0x5C	0x00D6	# LATIN CAPITAL LETTER O WITH DIAERESIS
+0x5D	0x00C5	# LATIN CAPITAL LETTER A WITH RING ABOVE
+0x5E	0x00DC	# LATIN CAPITAL LETTER U WITH DIAERESIS
+0x5F	0x005F	# LOW LINE
+0x60	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x00E4	# LATIN SMALL LETTER A WITH DIAERESIS
+0x7C	0x00F6	# LATIN SMALL LETTER O WITH DIAERESIS
+0x7D	0x00E5	# LATIN SMALL LETTER A WITH RING ABOVE
+0x7E	0x00FC	# LATIN SMALL LETTER U WITH DIAERESIS
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/646-yu.flc
@@ -1,0 +1,157 @@
+#
+#	Name:             JUS_I.B1.002 to Unicode
+#	Unicode version:  2.0
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             0097-01-24
+#	Authors:          John Cowan <cowan@ccil.org> (conversion)
+#                     Keld Simonsen <Keld.Simonsen@dkuug.dk> (RFC 1345)
+#
+#	General notes:
+#
+#	This table contains data obtained from RFC 1345 on how
+#       JUS_I.B1.002 characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the JUS_I.B1.002 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in JUS_I.B1.002 order
+#
+#	Any comments or problems, contact <cowan@ccil.org>
+#
+#   &rem source: ECMA registry
+#   &alias iso-ir-141
+#   &g0esc x287a &g1esc x297a &g2esc x2a7a &g3esc x2b7a
+#   &alias ISO646-YU
+#   &alias js
+#   &alias yu
+0x00	0x0000	# NULL (NUL)
+0x01	0x0001	# START OF HEADING (SOH)
+0x02	0x0002	# START OF TEXT (STX)
+0x03	0x0003	# END OF TEXT (ETX)
+0x04	0x0004	# END OF TRANSMISSION (EOT)
+0x05	0x0005	# ENQUIRY (ENQ)
+0x06	0x0006	# ACKNOWLEDGE (ACK)
+0x07	0x0007	# BELL (BEL)
+0x08	0x0008	# BACKSPACE (BS)
+0x09	0x0009	# CHARACTER TABULATION (HT)
+0x0A	0x000A	# LINE FEED (LF)
+0x0B	0x000B	# LINE TABULATION (VT)
+0x0C	0x000C	# FORM FEED (FF)
+0x0D	0x000D	# CARRIAGE RETURN (CR)
+0x0E	0x000E	# SHIFT OUT (SO)
+0x0F	0x000F	# SHIFT IN (SI)
+0x10	0x0010	# DATALINK ESCAPE (DLE)
+0x11	0x0011	# DEVICE CONTROL ONE (DC1)
+0x12	0x0012	# DEVICE CONTROL TWO (DC2)
+0x13	0x0013	# DEVICE CONTROL THREE (DC3)
+0x14	0x0014	# DEVICE CONTROL FOUR (DC4)
+0x15	0x0015	# NEGATIVE ACKNOWLEDGE (NAK)
+0x16	0x0016	# SYNCRONOUS IDLE (SYN)
+0x17	0x0017	# END OF TRANSMISSION BLOCK (ETB)
+0x18	0x0018	# CANCEL (CAN)
+0x19	0x0019	# END OF MEDIUM (EM)
+0x1A	0x001A	# SUBSTITUTE (SUB)
+0x1B	0x001B	# ESCAPE (ESC)
+0x1C	0x001C	# FILE SEPARATOR (IS4)
+0x1D	0x001D	# GROUP SEPARATOR (IS3)
+0x1E	0x001E	# RECORD SEPARATOR (IS2)
+0x1F	0x001F	# UNIT SEPARATOR (IS1)
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x017D	# LATIN CAPITAL LETTER Z WITH CARON
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x0160	# LATIN CAPITAL LETTER S WITH CARON
+0x5C	0x0110	# LATIN CAPITAL LETTER D WITH STROKE
+0x5D	0x0106	# LATIN CAPITAL LETTER C WITH ACUTE
+0x5E	0x010C	# LATIN CAPITAL LETTER C WITH CARON
+0x5F	0x005F	# LOW LINE
+0x60	0x017E	# LATIN SMALL LETTER Z WITH CARON
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x0161	# LATIN SMALL LETTER S WITH CARON
+0x7C	0x0111	# LATIN SMALL LETTER D WITH STROKE
+0x7D	0x0107	# LATIN SMALL LETTER C WITH ACUTE
+0x7E	0x010D	# LATIN SMALL LETTER C WITH CARON
+0x7F	0x007F	# DELETE (DEL)
--- /dev/null
+++ b/fonts/8859-2.flc
@@ -1,0 +1,230 @@
+#
+#	Name:             ISO 8859-2 (1987) to Unicode
+#	Unicode version:  1.1
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             16 January 1995
+#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#       ISO 8859-2 (1987) characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO 8859-2 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO 8859-2 order
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+0x20	0x0020	#	SPACE
+0x21	0x0021	#	EXCLAMATION MARK
+0x22	0x0022	#	QUOTATION MARK
+0x23	0x0023	#	NUMBER SIGN
+0x24	0x0024	#	DOLLAR SIGN
+0x25	0x0025	#	PERCENT SIGN
+0x26	0x0026	#	AMPERSAND
+0x27	0x0027	#	APOSTROPHE
+0x28	0x0028	#	LEFT PARENTHESIS
+0x29	0x0029	#	RIGHT PARENTHESIS
+0x2A	0x002A	#	ASTERISK
+0x2B	0x002B	#	PLUS SIGN
+0x2C	0x002C	#	COMMA
+0x2D	0x002D	#	HYPHEN-MINUS
+0x2E	0x002E	#	FULL STOP
+0x2F	0x002F	#	SOLIDUS
+0x30	0x0030	#	DIGIT ZERO
+0x31	0x0031	#	DIGIT ONE
+0x32	0x0032	#	DIGIT TWO
+0x33	0x0033	#	DIGIT THREE
+0x34	0x0034	#	DIGIT FOUR
+0x35	0x0035	#	DIGIT FIVE
+0x36	0x0036	#	DIGIT SIX
+0x37	0x0037	#	DIGIT SEVEN
+0x38	0x0038	#	DIGIT EIGHT
+0x39	0x0039	#	DIGIT NINE
+0x3A	0x003A	#	COLON
+0x3B	0x003B	#	SEMICOLON
+0x3C	0x003C	#	LESS-THAN SIGN
+0x3D	0x003D	#	EQUALS SIGN
+0x3E	0x003E	#	GREATER-THAN SIGN
+0x3F	0x003F	#	QUESTION MARK
+0x40	0x0040	#	COMMERCIAL AT
+0x41	0x0041	#	LATIN CAPITAL LETTER A
+0x42	0x0042	#	LATIN CAPITAL LETTER B
+0x43	0x0043	#	LATIN CAPITAL LETTER C
+0x44	0x0044	#	LATIN CAPITAL LETTER D
+0x45	0x0045	#	LATIN CAPITAL LETTER E
+0x46	0x0046	#	LATIN CAPITAL LETTER F
+0x47	0x0047	#	LATIN CAPITAL LETTER G
+0x48	0x0048	#	LATIN CAPITAL LETTER H
+0x49	0x0049	#	LATIN CAPITAL LETTER I
+0x4A	0x004A	#	LATIN CAPITAL LETTER J
+0x4B	0x004B	#	LATIN CAPITAL LETTER K
+0x4C	0x004C	#	LATIN CAPITAL LETTER L
+0x4D	0x004D	#	LATIN CAPITAL LETTER M
+0x4E	0x004E	#	LATIN CAPITAL LETTER N
+0x4F	0x004F	#	LATIN CAPITAL LETTER O
+0x50	0x0050	#	LATIN CAPITAL LETTER P
+0x51	0x0051	#	LATIN CAPITAL LETTER Q
+0x52	0x0052	#	LATIN CAPITAL LETTER R
+0x53	0x0053	#	LATIN CAPITAL LETTER S
+0x54	0x0054	#	LATIN CAPITAL LETTER T
+0x55	0x0055	#	LATIN CAPITAL LETTER U
+0x56	0x0056	#	LATIN CAPITAL LETTER V
+0x57	0x0057	#	LATIN CAPITAL LETTER W
+0x58	0x0058	#	LATIN CAPITAL LETTER X
+0x59	0x0059	#	LATIN CAPITAL LETTER Y
+0x5A	0x005A	#	LATIN CAPITAL LETTER Z
+0x5B	0x005B	#	LEFT SQUARE BRACKET
+0x5C	0x005C	#	REVERSE SOLIDUS
+0x5D	0x005D	#	RIGHT SQUARE BRACKET
+0x5E	0x005E	#	CIRCUMFLEX ACCENT
+0x5F	0x005F	#	LOW LINE
+0x60	0x0060	#	GRAVE ACCENT
+0x61	0x0061	#	LATIN SMALL LETTER A
+0x62	0x0062	#	LATIN SMALL LETTER B
+0x63	0x0063	#	LATIN SMALL LETTER C
+0x64	0x0064	#	LATIN SMALL LETTER D
+0x65	0x0065	#	LATIN SMALL LETTER E
+0x66	0x0066	#	LATIN SMALL LETTER F
+0x67	0x0067	#	LATIN SMALL LETTER G
+0x68	0x0068	#	LATIN SMALL LETTER H
+0x69	0x0069	#	LATIN SMALL LETTER I
+0x6A	0x006A	#	LATIN SMALL LETTER J
+0x6B	0x006B	#	LATIN SMALL LETTER K
+0x6C	0x006C	#	LATIN SMALL LETTER L
+0x6D	0x006D	#	LATIN SMALL LETTER M
+0x6E	0x006E	#	LATIN SMALL LETTER N
+0x6F	0x006F	#	LATIN SMALL LETTER O
+0x70	0x0070	#	LATIN SMALL LETTER P
+0x71	0x0071	#	LATIN SMALL LETTER Q
+0x72	0x0072	#	LATIN SMALL LETTER R
+0x73	0x0073	#	LATIN SMALL LETTER S
+0x74	0x0074	#	LATIN SMALL LETTER T
+0x75	0x0075	#	LATIN SMALL LETTER U
+0x76	0x0076	#	LATIN SMALL LETTER V
+0x77	0x0077	#	LATIN SMALL LETTER W
+0x78	0x0078	#	LATIN SMALL LETTER X
+0x79	0x0079	#	LATIN SMALL LETTER Y
+0x7A	0x007A	#	LATIN SMALL LETTER Z
+0x7B	0x007B	#	LEFT CURLY BRACKET
+0x7C	0x007C	#	VERTICAL LINE
+0x7D	0x007D	#	RIGHT CURLY BRACKET
+0x7E	0x007E	#	TILDE
+0xA0	0x00A0	#	NO-BREAK SPACE
+0xA1	0x0104	#	LATIN CAPITAL LETTER A WITH OGONEK
+0xA2	0x02D8	#	BREVE
+0xA3	0x0141	#	LATIN CAPITAL LETTER L WITH STROKE
+0xA4	0x00A4	#	CURRENCY SIGN
+0xA5	0x013D	#	LATIN CAPITAL LETTER L WITH CARON
+0xA6	0x015A	#	LATIN CAPITAL LETTER S WITH ACUTE
+0xA7	0x00A7	#	SECTION SIGN
+0xA8	0x00A8	#	DIAERESIS
+0xA9	0x0160	#	LATIN CAPITAL LETTER S WITH CARON
+0xAA	0x015E	#	LATIN CAPITAL LETTER S WITH CEDILLA
+0xAB	0x0164	#	LATIN CAPITAL LETTER T WITH CARON
+0xAC	0x0179	#	LATIN CAPITAL LETTER Z WITH ACUTE
+0xAD	0x00AD	#	SOFT HYPHEN
+0xAE	0x017D	#	LATIN CAPITAL LETTER Z WITH CARON
+0xAF	0x017B	#	LATIN CAPITAL LETTER Z WITH DOT ABOVE
+0xB0	0x00B0	#	DEGREE SIGN
+0xB1	0x0105	#	LATIN SMALL LETTER A WITH OGONEK
+0xB2	0x02DB	#	OGONEK
+0xB3	0x0142	#	LATIN SMALL LETTER L WITH STROKE
+0xB4	0x00B4	#	ACUTE ACCENT
+0xB5	0x013E	#	LATIN SMALL LETTER L WITH CARON
+0xB6	0x015B	#	LATIN SMALL LETTER S WITH ACUTE
+0xB7	0x02C7	#	CARON
+0xB8	0x00B8	#	CEDILLA
+0xB9	0x0161	#	LATIN SMALL LETTER S WITH CARON
+0xBA	0x015F	#	LATIN SMALL LETTER S WITH CEDILLA
+0xBB	0x0165	#	LATIN SMALL LETTER T WITH CARON
+0xBC	0x017A	#	LATIN SMALL LETTER Z WITH ACUTE
+0xBD	0x02DD	#	DOUBLE ACUTE ACCENT
+0xBE	0x017E	#	LATIN SMALL LETTER Z WITH CARON
+0xBF	0x017C	#	LATIN SMALL LETTER Z WITH DOT ABOVE
+0xC0	0x0154	#	LATIN CAPITAL LETTER R WITH ACUTE
+0xC1	0x00C1	#	LATIN CAPITAL LETTER A WITH ACUTE
+0xC2	0x00C2	#	LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3	0x0102	#	LATIN CAPITAL LETTER A WITH BREVE
+0xC4	0x00C4	#	LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5	0x0139	#	LATIN CAPITAL LETTER L WITH ACUTE
+0xC6	0x0106	#	LATIN CAPITAL LETTER C WITH ACUTE
+0xC7	0x00C7	#	LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8	0x010C	#	LATIN CAPITAL LETTER C WITH CARON
+0xC9	0x00C9	#	LATIN CAPITAL LETTER E WITH ACUTE
+0xCA	0x0118	#	LATIN CAPITAL LETTER E WITH OGONEK
+0xCB	0x00CB	#	LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC	0x011A	#	LATIN CAPITAL LETTER E WITH CARON
+0xCD	0x00CD	#	LATIN CAPITAL LETTER I WITH ACUTE
+0xCE	0x00CE	#	LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF	0x010E	#	LATIN CAPITAL LETTER D WITH CARON
+0xD0	0x0110	#	LATIN CAPITAL LETTER D WITH STROKE
+0xD1	0x0143	#	LATIN CAPITAL LETTER N WITH ACUTE
+0xD2	0x0147	#	LATIN CAPITAL LETTER N WITH CARON
+0xD3	0x00D3	#	LATIN CAPITAL LETTER O WITH ACUTE
+0xD4	0x00D4	#	LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5	0x0150	#	LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0xD6	0x00D6	#	LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7	0x00D7	#	MULTIPLICATION SIGN
+0xD8	0x0158	#	LATIN CAPITAL LETTER R WITH CARON
+0xD9	0x016E	#	LATIN CAPITAL LETTER U WITH RING ABOVE
+0xDA	0x00DA	#	LATIN CAPITAL LETTER U WITH ACUTE
+0xDB	0x0170	#	LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0xDC	0x00DC	#	LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD	0x00DD	#	LATIN CAPITAL LETTER Y WITH ACUTE
+0xDE	0x0162	#	LATIN CAPITAL LETTER T WITH CEDILLA
+0xDF	0x00DF	#	LATIN SMALL LETTER SHARP S
+0xE0	0x0155	#	LATIN SMALL LETTER R WITH ACUTE
+0xE1	0x00E1	#	LATIN SMALL LETTER A WITH ACUTE
+0xE2	0x00E2	#	LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3	0x0103	#	LATIN SMALL LETTER A WITH BREVE
+0xE4	0x00E4	#	LATIN SMALL LETTER A WITH DIAERESIS
+0xE5	0x013A	#	LATIN SMALL LETTER L WITH ACUTE
+0xE6	0x0107	#	LATIN SMALL LETTER C WITH ACUTE
+0xE7	0x00E7	#	LATIN SMALL LETTER C WITH CEDILLA
+0xE8	0x010D	#	LATIN SMALL LETTER C WITH CARON
+0xE9	0x00E9	#	LATIN SMALL LETTER E WITH ACUTE
+0xEA	0x0119	#	LATIN SMALL LETTER E WITH OGONEK
+0xEB	0x00EB	#	LATIN SMALL LETTER E WITH DIAERESIS
+0xEC	0x011B	#	LATIN SMALL LETTER E WITH CARON
+0xED	0x00ED	#	LATIN SMALL LETTER I WITH ACUTE
+0xEE	0x00EE	#	LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF	0x010F	#	LATIN SMALL LETTER D WITH CARON
+0xF0	0x0111	#	LATIN SMALL LETTER D WITH STROKE
+0xF1	0x0144	#	LATIN SMALL LETTER N WITH ACUTE
+0xF2	0x0148	#	LATIN SMALL LETTER N WITH CARON
+0xF3	0x00F3	#	LATIN SMALL LETTER O WITH ACUTE
+0xF4	0x00F4	#	LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5	0x0151	#	LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0xF6	0x00F6	#	LATIN SMALL LETTER O WITH DIAERESIS
+0xF7	0x00F7	#	DIVISION SIGN
+0xF8	0x0159	#	LATIN SMALL LETTER R WITH CARON
+0xF9	0x016F	#	LATIN SMALL LETTER U WITH RING ABOVE
+0xFA	0x00FA	#	LATIN SMALL LETTER U WITH ACUTE
+0xFB	0x0171	#	LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0xFC	0x00FC	#	LATIN SMALL LETTER U WITH DIAERESIS
+0xFD	0x00FD	#	LATIN SMALL LETTER Y WITH ACUTE
+0xFE	0x0163	#	LATIN SMALL LETTER T WITH CEDILLA
+0xFF	0x02D9	#	DOT ABOVE
--- /dev/null
+++ b/fonts/8859-3.flc
@@ -1,0 +1,223 @@
+#
+#	Name:             ISO 8859-3 (1988) to Unicode
+#	Unicode version:  1.1
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             16 January 1995
+#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#       ISO 8859-3 (1988) characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO 8859-3 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO 8859-3 order
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+0x20	0x0020	#	SPACE
+0x21	0x0021	#	EXCLAMATION MARK
+0x22	0x0022	#	QUOTATION MARK
+0x23	0x0023	#	NUMBER SIGN
+0x24	0x0024	#	DOLLAR SIGN
+0x25	0x0025	#	PERCENT SIGN
+0x26	0x0026	#	AMPERSAND
+0x27	0x0027	#	APOSTROPHE
+0x28	0x0028	#	LEFT PARENTHESIS
+0x29	0x0029	#	RIGHT PARENTHESIS
+0x2A	0x002A	#	ASTERISK
+0x2B	0x002B	#	PLUS SIGN
+0x2C	0x002C	#	COMMA
+0x2D	0x002D	#	HYPHEN-MINUS
+0x2E	0x002E	#	FULL STOP
+0x2F	0x002F	#	SOLIDUS
+0x30	0x0030	#	DIGIT ZERO
+0x31	0x0031	#	DIGIT ONE
+0x32	0x0032	#	DIGIT TWO
+0x33	0x0033	#	DIGIT THREE
+0x34	0x0034	#	DIGIT FOUR
+0x35	0x0035	#	DIGIT FIVE
+0x36	0x0036	#	DIGIT SIX
+0x37	0x0037	#	DIGIT SEVEN
+0x38	0x0038	#	DIGIT EIGHT
+0x39	0x0039	#	DIGIT NINE
+0x3A	0x003A	#	COLON
+0x3B	0x003B	#	SEMICOLON
+0x3C	0x003C	#	LESS-THAN SIGN
+0x3D	0x003D	#	EQUALS SIGN
+0x3E	0x003E	#	GREATER-THAN SIGN
+0x3F	0x003F	#	QUESTION MARK
+0x40	0x0040	#	COMMERCIAL AT
+0x41	0x0041	#	LATIN CAPITAL LETTER A
+0x42	0x0042	#	LATIN CAPITAL LETTER B
+0x43	0x0043	#	LATIN CAPITAL LETTER C
+0x44	0x0044	#	LATIN CAPITAL LETTER D
+0x45	0x0045	#	LATIN CAPITAL LETTER E
+0x46	0x0046	#	LATIN CAPITAL LETTER F
+0x47	0x0047	#	LATIN CAPITAL LETTER G
+0x48	0x0048	#	LATIN CAPITAL LETTER H
+0x49	0x0049	#	LATIN CAPITAL LETTER I
+0x4A	0x004A	#	LATIN CAPITAL LETTER J
+0x4B	0x004B	#	LATIN CAPITAL LETTER K
+0x4C	0x004C	#	LATIN CAPITAL LETTER L
+0x4D	0x004D	#	LATIN CAPITAL LETTER M
+0x4E	0x004E	#	LATIN CAPITAL LETTER N
+0x4F	0x004F	#	LATIN CAPITAL LETTER O
+0x50	0x0050	#	LATIN CAPITAL LETTER P
+0x51	0x0051	#	LATIN CAPITAL LETTER Q
+0x52	0x0052	#	LATIN CAPITAL LETTER R
+0x53	0x0053	#	LATIN CAPITAL LETTER S
+0x54	0x0054	#	LATIN CAPITAL LETTER T
+0x55	0x0055	#	LATIN CAPITAL LETTER U
+0x56	0x0056	#	LATIN CAPITAL LETTER V
+0x57	0x0057	#	LATIN CAPITAL LETTER W
+0x58	0x0058	#	LATIN CAPITAL LETTER X
+0x59	0x0059	#	LATIN CAPITAL LETTER Y
+0x5A	0x005A	#	LATIN CAPITAL LETTER Z
+0x5B	0x005B	#	LEFT SQUARE BRACKET
+0x5C	0x005C	#	REVERSE SOLIDUS
+0x5D	0x005D	#	RIGHT SQUARE BRACKET
+0x5E	0x005E	#	CIRCUMFLEX ACCENT
+0x5F	0x005F	#	LOW LINE
+0x60	0x0060	#	GRAVE ACCENT
+0x61	0x0061	#	LATIN SMALL LETTER A
+0x62	0x0062	#	LATIN SMALL LETTER B
+0x63	0x0063	#	LATIN SMALL LETTER C
+0x64	0x0064	#	LATIN SMALL LETTER D
+0x65	0x0065	#	LATIN SMALL LETTER E
+0x66	0x0066	#	LATIN SMALL LETTER F
+0x67	0x0067	#	LATIN SMALL LETTER G
+0x68	0x0068	#	LATIN SMALL LETTER H
+0x69	0x0069	#	LATIN SMALL LETTER I
+0x6A	0x006A	#	LATIN SMALL LETTER J
+0x6B	0x006B	#	LATIN SMALL LETTER K
+0x6C	0x006C	#	LATIN SMALL LETTER L
+0x6D	0x006D	#	LATIN SMALL LETTER M
+0x6E	0x006E	#	LATIN SMALL LETTER N
+0x6F	0x006F	#	LATIN SMALL LETTER O
+0x70	0x0070	#	LATIN SMALL LETTER P
+0x71	0x0071	#	LATIN SMALL LETTER Q
+0x72	0x0072	#	LATIN SMALL LETTER R
+0x73	0x0073	#	LATIN SMALL LETTER S
+0x74	0x0074	#	LATIN SMALL LETTER T
+0x75	0x0075	#	LATIN SMALL LETTER U
+0x76	0x0076	#	LATIN SMALL LETTER V
+0x77	0x0077	#	LATIN SMALL LETTER W
+0x78	0x0078	#	LATIN SMALL LETTER X
+0x79	0x0079	#	LATIN SMALL LETTER Y
+0x7A	0x007A	#	LATIN SMALL LETTER Z
+0x7B	0x007B	#	LEFT CURLY BRACKET
+0x7C	0x007C	#	VERTICAL LINE
+0x7D	0x007D	#	RIGHT CURLY BRACKET
+0x7E	0x007E	#	TILDE
+0xA0	0x00A0	#	NO-BREAK SPACE
+0xA1	0x0126	#	LATIN CAPITAL LETTER H WITH STROKE
+0xA2	0x02D8	#	BREVE
+0xA3	0x00A3	#	POUND SIGN
+0xA4	0x00A4	#	CURRENCY SIGN
+0xA6	0x0124	#	LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0xA7	0x00A7	#	SECTION SIGN
+0xA8	0x00A8	#	DIAERESIS
+0xA9	0x0130	#	LATIN CAPITAL LETTER I WITH DOT ABOVE
+0xAA	0x015E	#	LATIN CAPITAL LETTER S WITH CEDILLA
+0xAB	0x011E	#	LATIN CAPITAL LETTER G WITH BREVE
+0xAC	0x0134	#	LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0xAD	0x00AD	#	SOFT HYPHEN
+0xAF	0x017B	#	LATIN CAPITAL LETTER Z WITH DOT ABOVE
+0xB0	0x00B0	#	DEGREE SIGN
+0xB1	0x0127	#	LATIN SMALL LETTER H WITH STROKE
+0xB2	0x00B2	#	SUPERSCRIPT TWO
+0xB3	0x00B3	#	SUPERSCRIPT THREE
+0xB4	0x00B4	#	ACUTE ACCENT
+0xB5	0x00B5	#	MICRO SIGN
+0xB6	0x0125	#	LATIN SMALL LETTER H WITH CIRCUMFLEX
+0xB7	0x00B7	#	MIDDLE DOT
+0xB8	0x00B8	#	CEDILLA
+0xB9	0x0131	#	LATIN SMALL LETTER DOTLESS I
+0xBA	0x015F	#	LATIN SMALL LETTER S WITH CEDILLA
+0xBB	0x011F	#	LATIN SMALL LETTER G WITH BREVE
+0xBC	0x0135	#	LATIN SMALL LETTER J WITH CIRCUMFLEX
+0xBD	0x00BD	#	VULGAR FRACTION ONE HALF
+0xBF	0x017C	#	LATIN SMALL LETTER Z WITH DOT ABOVE
+0xC0	0x00C0	#	LATIN CAPITAL LETTER A WITH GRAVE
+0xC1	0x00C1	#	LATIN CAPITAL LETTER A WITH ACUTE
+0xC2	0x00C2	#	LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC4	0x00C4	#	LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5	0x010A	#	LATIN CAPITAL LETTER C WITH DOT ABOVE
+0xC6	0x0108	#	LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0xC7	0x00C7	#	LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8	0x00C8	#	LATIN CAPITAL LETTER E WITH GRAVE
+0xC9	0x00C9	#	LATIN CAPITAL LETTER E WITH ACUTE
+0xCA	0x00CA	#	LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xCB	0x00CB	#	LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC	0x00CC	#	LATIN CAPITAL LETTER I WITH GRAVE
+0xCD	0x00CD	#	LATIN CAPITAL LETTER I WITH ACUTE
+0xCE	0x00CE	#	LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF	0x00CF	#	LATIN CAPITAL LETTER I WITH DIAERESIS
+0xD1	0x00D1	#	LATIN CAPITAL LETTER N WITH TILDE
+0xD2	0x00D2	#	LATIN CAPITAL LETTER O WITH GRAVE
+0xD3	0x00D3	#	LATIN CAPITAL LETTER O WITH ACUTE
+0xD4	0x00D4	#	LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5	0x0120	#	LATIN CAPITAL LETTER G WITH DOT ABOVE
+0xD6	0x00D6	#	LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7	0x00D7	#	MULTIPLICATION SIGN
+0xD8	0x011C	#	LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+0xD9	0x00D9	#	LATIN CAPITAL LETTER U WITH GRAVE
+0xDA	0x00DA	#	LATIN CAPITAL LETTER U WITH ACUTE
+0xDB	0x00DB	#	LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xDC	0x00DC	#	LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD	0x016C	#	LATIN CAPITAL LETTER U WITH BREVE
+0xDE	0x015C	#	LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+0xDF	0x00DF	#	LATIN SMALL LETTER SHARP S
+0xE0	0x00E0	#	LATIN SMALL LETTER A WITH GRAVE
+0xE1	0x00E1	#	LATIN SMALL LETTER A WITH ACUTE
+0xE2	0x00E2	#	LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE4	0x00E4	#	LATIN SMALL LETTER A WITH DIAERESIS
+0xE5	0x010B	#	LATIN SMALL LETTER C WITH DOT ABOVE
+0xE6	0x0109	#	LATIN SMALL LETTER C WITH CIRCUMFLEX
+0xE7	0x00E7	#	LATIN SMALL LETTER C WITH CEDILLA
+0xE8	0x00E8	#	LATIN SMALL LETTER E WITH GRAVE
+0xE9	0x00E9	#	LATIN SMALL LETTER E WITH ACUTE
+0xEA	0x00EA	#	LATIN SMALL LETTER E WITH CIRCUMFLEX
+0xEB	0x00EB	#	LATIN SMALL LETTER E WITH DIAERESIS
+0xEC	0x00EC	#	LATIN SMALL LETTER I WITH GRAVE
+0xED	0x00ED	#	LATIN SMALL LETTER I WITH ACUTE
+0xEE	0x00EE	#	LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF	0x00EF	#	LATIN SMALL LETTER I WITH DIAERESIS
+0xF1	0x00F1	#	LATIN SMALL LETTER N WITH TILDE
+0xF2	0x00F2	#	LATIN SMALL LETTER O WITH GRAVE
+0xF3	0x00F3	#	LATIN SMALL LETTER O WITH ACUTE
+0xF4	0x00F4	#	LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5	0x0121	#	LATIN SMALL LETTER G WITH DOT ABOVE
+0xF6	0x00F6	#	LATIN SMALL LETTER O WITH DIAERESIS
+0xF7	0x00F7	#	DIVISION SIGN
+0xF8	0x011D	#	LATIN SMALL LETTER G WITH CIRCUMFLEX
+0xF9	0x00F9	#	LATIN SMALL LETTER U WITH GRAVE
+0xFA	0x00FA	#	LATIN SMALL LETTER U WITH ACUTE
+0xFB	0x00FB	#	LATIN SMALL LETTER U WITH CIRCUMFLEX
+0xFC	0x00FC	#	LATIN SMALL LETTER U WITH DIAERESIS
+0xFD	0x016D	#	LATIN SMALL LETTER U WITH BREVE
+0xFE	0x015D	#	LATIN SMALL LETTER S WITH CIRCUMFLEX
+0xFF	0x02D9	#	DOT ABOVE
--- /dev/null
+++ b/fonts/8859-4.flc
@@ -1,0 +1,230 @@
+#
+#	Name:             ISO 8859-4 (1988) to Unicode
+#	Unicode version:  1.1
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             16 January 1995
+#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#       ISO 8859-4 (1988) characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO 8859-4 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO 8859-4 order
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+0x20	0x0020	#	SPACE
+0x21	0x0021	#	EXCLAMATION MARK
+0x22	0x0022	#	QUOTATION MARK
+0x23	0x0023	#	NUMBER SIGN
+0x24	0x0024	#	DOLLAR SIGN
+0x25	0x0025	#	PERCENT SIGN
+0x26	0x0026	#	AMPERSAND
+0x27	0x0027	#	APOSTROPHE
+0x28	0x0028	#	LEFT PARENTHESIS
+0x29	0x0029	#	RIGHT PARENTHESIS
+0x2A	0x002A	#	ASTERISK
+0x2B	0x002B	#	PLUS SIGN
+0x2C	0x002C	#	COMMA
+0x2D	0x002D	#	HYPHEN-MINUS
+0x2E	0x002E	#	FULL STOP
+0x2F	0x002F	#	SOLIDUS
+0x30	0x0030	#	DIGIT ZERO
+0x31	0x0031	#	DIGIT ONE
+0x32	0x0032	#	DIGIT TWO
+0x33	0x0033	#	DIGIT THREE
+0x34	0x0034	#	DIGIT FOUR
+0x35	0x0035	#	DIGIT FIVE
+0x36	0x0036	#	DIGIT SIX
+0x37	0x0037	#	DIGIT SEVEN
+0x38	0x0038	#	DIGIT EIGHT
+0x39	0x0039	#	DIGIT NINE
+0x3A	0x003A	#	COLON
+0x3B	0x003B	#	SEMICOLON
+0x3C	0x003C	#	LESS-THAN SIGN
+0x3D	0x003D	#	EQUALS SIGN
+0x3E	0x003E	#	GREATER-THAN SIGN
+0x3F	0x003F	#	QUESTION MARK
+0x40	0x0040	#	COMMERCIAL AT
+0x41	0x0041	#	LATIN CAPITAL LETTER A
+0x42	0x0042	#	LATIN CAPITAL LETTER B
+0x43	0x0043	#	LATIN CAPITAL LETTER C
+0x44	0x0044	#	LATIN CAPITAL LETTER D
+0x45	0x0045	#	LATIN CAPITAL LETTER E
+0x46	0x0046	#	LATIN CAPITAL LETTER F
+0x47	0x0047	#	LATIN CAPITAL LETTER G
+0x48	0x0048	#	LATIN CAPITAL LETTER H
+0x49	0x0049	#	LATIN CAPITAL LETTER I
+0x4A	0x004A	#	LATIN CAPITAL LETTER J
+0x4B	0x004B	#	LATIN CAPITAL LETTER K
+0x4C	0x004C	#	LATIN CAPITAL LETTER L
+0x4D	0x004D	#	LATIN CAPITAL LETTER M
+0x4E	0x004E	#	LATIN CAPITAL LETTER N
+0x4F	0x004F	#	LATIN CAPITAL LETTER O
+0x50	0x0050	#	LATIN CAPITAL LETTER P
+0x51	0x0051	#	LATIN CAPITAL LETTER Q
+0x52	0x0052	#	LATIN CAPITAL LETTER R
+0x53	0x0053	#	LATIN CAPITAL LETTER S
+0x54	0x0054	#	LATIN CAPITAL LETTER T
+0x55	0x0055	#	LATIN CAPITAL LETTER U
+0x56	0x0056	#	LATIN CAPITAL LETTER V
+0x57	0x0057	#	LATIN CAPITAL LETTER W
+0x58	0x0058	#	LATIN CAPITAL LETTER X
+0x59	0x0059	#	LATIN CAPITAL LETTER Y
+0x5A	0x005A	#	LATIN CAPITAL LETTER Z
+0x5B	0x005B	#	LEFT SQUARE BRACKET
+0x5C	0x005C	#	REVERSE SOLIDUS
+0x5D	0x005D	#	RIGHT SQUARE BRACKET
+0x5E	0x005E	#	CIRCUMFLEX ACCENT
+0x5F	0x005F	#	LOW LINE
+0x60	0x0060	#	GRAVE ACCENT
+0x61	0x0061	#	LATIN SMALL LETTER A
+0x62	0x0062	#	LATIN SMALL LETTER B
+0x63	0x0063	#	LATIN SMALL LETTER C
+0x64	0x0064	#	LATIN SMALL LETTER D
+0x65	0x0065	#	LATIN SMALL LETTER E
+0x66	0x0066	#	LATIN SMALL LETTER F
+0x67	0x0067	#	LATIN SMALL LETTER G
+0x68	0x0068	#	LATIN SMALL LETTER H
+0x69	0x0069	#	LATIN SMALL LETTER I
+0x6A	0x006A	#	LATIN SMALL LETTER J
+0x6B	0x006B	#	LATIN SMALL LETTER K
+0x6C	0x006C	#	LATIN SMALL LETTER L
+0x6D	0x006D	#	LATIN SMALL LETTER M
+0x6E	0x006E	#	LATIN SMALL LETTER N
+0x6F	0x006F	#	LATIN SMALL LETTER O
+0x70	0x0070	#	LATIN SMALL LETTER P
+0x71	0x0071	#	LATIN SMALL LETTER Q
+0x72	0x0072	#	LATIN SMALL LETTER R
+0x73	0x0073	#	LATIN SMALL LETTER S
+0x74	0x0074	#	LATIN SMALL LETTER T
+0x75	0x0075	#	LATIN SMALL LETTER U
+0x76	0x0076	#	LATIN SMALL LETTER V
+0x77	0x0077	#	LATIN SMALL LETTER W
+0x78	0x0078	#	LATIN SMALL LETTER X
+0x79	0x0079	#	LATIN SMALL LETTER Y
+0x7A	0x007A	#	LATIN SMALL LETTER Z
+0x7B	0x007B	#	LEFT CURLY BRACKET
+0x7C	0x007C	#	VERTICAL LINE
+0x7D	0x007D	#	RIGHT CURLY BRACKET
+0x7E	0x007E	#	TILDE
+0xA0	0x00A0	#	NO-BREAK SPACE
+0xA1	0x0104	#	LATIN CAPITAL LETTER A WITH OGONEK
+0xA2	0x0138	#	LATIN SMALL LETTER KRA
+0xA3	0x0156	#	LATIN CAPITAL LETTER R WITH CEDILLA
+0xA4	0x00A4	#	CURRENCY SIGN
+0xA5	0x0128	#	LATIN CAPITAL LETTER I WITH TILDE
+0xA6	0x013B	#	LATIN CAPITAL LETTER L WITH CEDILLA
+0xA7	0x00A7	#	SECTION SIGN
+0xA8	0x00A8	#	DIAERESIS
+0xA9	0x0160	#	LATIN CAPITAL LETTER S WITH CARON
+0xAA	0x0112	#	LATIN CAPITAL LETTER E WITH MACRON
+0xAB	0x0122	#	LATIN CAPITAL LETTER G WITH CEDILLA
+0xAC	0x0166	#	LATIN CAPITAL LETTER T WITH STROKE
+0xAD	0x00AD	#	SOFT HYPHEN
+0xAE	0x017D	#	LATIN CAPITAL LETTER Z WITH CARON
+0xAF	0x00AF	#	MACRON
+0xB0	0x00B0	#	DEGREE SIGN
+0xB1	0x0105	#	LATIN SMALL LETTER A WITH OGONEK
+0xB2	0x02DB	#	OGONEK
+0xB3	0x0157	#	LATIN SMALL LETTER R WITH CEDILLA
+0xB4	0x00B4	#	ACUTE ACCENT
+0xB5	0x0129	#	LATIN SMALL LETTER I WITH TILDE
+0xB6	0x013C	#	LATIN SMALL LETTER L WITH CEDILLA
+0xB7	0x02C7	#	CARON
+0xB8	0x00B8	#	CEDILLA
+0xB9	0x0161	#	LATIN SMALL LETTER S WITH CARON
+0xBA	0x0113	#	LATIN SMALL LETTER E WITH MACRON
+0xBB	0x0123	#	LATIN SMALL LETTER G WITH CEDILLA
+0xBC	0x0167	#	LATIN SMALL LETTER T WITH STROKE
+0xBD	0x014A	#	LATIN CAPITAL LETTER ENG
+0xBE	0x017E	#	LATIN SMALL LETTER Z WITH CARON
+0xBF	0x014B	#	LATIN SMALL LETTER ENG
+0xC0	0x0100	#	LATIN CAPITAL LETTER A WITH MACRON
+0xC1	0x00C1	#	LATIN CAPITAL LETTER A WITH ACUTE
+0xC2	0x00C2	#	LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3	0x00C3	#	LATIN CAPITAL LETTER A WITH TILDE
+0xC4	0x00C4	#	LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5	0x00C5	#	LATIN CAPITAL LETTER A WITH RING ABOVE
+0xC6	0x00C6	#	LATIN CAPITAL LETTER AE
+0xC7	0x012E	#	LATIN CAPITAL LETTER I WITH OGONEK
+0xC8	0x010C	#	LATIN CAPITAL LETTER C WITH CARON
+0xC9	0x00C9	#	LATIN CAPITAL LETTER E WITH ACUTE
+0xCA	0x0118	#	LATIN CAPITAL LETTER E WITH OGONEK
+0xCB	0x00CB	#	LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC	0x0116	#	LATIN CAPITAL LETTER E WITH DOT ABOVE
+0xCD	0x00CD	#	LATIN CAPITAL LETTER I WITH ACUTE
+0xCE	0x00CE	#	LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF	0x012A	#	LATIN CAPITAL LETTER I WITH MACRON
+0xD0	0x0110	#	LATIN CAPITAL LETTER D WITH STROKE
+0xD1	0x0145	#	LATIN CAPITAL LETTER N WITH CEDILLA
+0xD2	0x014C	#	LATIN CAPITAL LETTER O WITH MACRON
+0xD3	0x0136	#	LATIN CAPITAL LETTER K WITH CEDILLA
+0xD4	0x00D4	#	LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5	0x00D5	#	LATIN CAPITAL LETTER O WITH TILDE
+0xD6	0x00D6	#	LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7	0x00D7	#	MULTIPLICATION SIGN
+0xD8	0x00D8	#	LATIN CAPITAL LETTER O WITH STROKE
+0xD9	0x0172	#	LATIN CAPITAL LETTER U WITH OGONEK
+0xDA	0x00DA	#	LATIN CAPITAL LETTER U WITH ACUTE
+0xDB	0x00DB	#	LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xDC	0x00DC	#	LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD	0x0168	#	LATIN CAPITAL LETTER U WITH TILDE
+0xDE	0x016A	#	LATIN CAPITAL LETTER U WITH MACRON
+0xDF	0x00DF	#	LATIN SMALL LETTER SHARP S
+0xE0	0x0101	#	LATIN SMALL LETTER A WITH MACRON
+0xE1	0x00E1	#	LATIN SMALL LETTER A WITH ACUTE
+0xE2	0x00E2	#	LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3	0x00E3	#	LATIN SMALL LETTER A WITH TILDE
+0xE4	0x00E4	#	LATIN SMALL LETTER A WITH DIAERESIS
+0xE5	0x00E5	#	LATIN SMALL LETTER A WITH RING ABOVE
+0xE6	0x00E6	#	LATIN SMALL LETTER AE
+0xE7	0x012F	#	LATIN SMALL LETTER I WITH OGONEK
+0xE8	0x010D	#	LATIN SMALL LETTER C WITH CARON
+0xE9	0x00E9	#	LATIN SMALL LETTER E WITH ACUTE
+0xEA	0x0119	#	LATIN SMALL LETTER E WITH OGONEK
+0xEB	0x00EB	#	LATIN SMALL LETTER E WITH DIAERESIS
+0xEC	0x0117	#	LATIN SMALL LETTER E WITH DOT ABOVE
+0xED	0x00ED	#	LATIN SMALL LETTER I WITH ACUTE
+0xEE	0x00EE	#	LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF	0x012B	#	LATIN SMALL LETTER I WITH MACRON
+0xF0	0x0111	#	LATIN SMALL LETTER D WITH STROKE
+0xF1	0x0146	#	LATIN SMALL LETTER N WITH CEDILLA
+0xF2	0x014D	#	LATIN SMALL LETTER O WITH MACRON
+0xF3	0x0137	#	LATIN SMALL LETTER K WITH CEDILLA
+0xF4	0x00F4	#	LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5	0x00F5	#	LATIN SMALL LETTER O WITH TILDE
+0xF6	0x00F6	#	LATIN SMALL LETTER O WITH DIAERESIS
+0xF7	0x00F7	#	DIVISION SIGN
+0xF8	0x00F8	#	LATIN SMALL LETTER O WITH STROKE
+0xF9	0x0173	#	LATIN SMALL LETTER U WITH OGONEK
+0xFA	0x00FA	#	LATIN SMALL LETTER U WITH ACUTE
+0xFB	0x00FB	#	LATIN SMALL LETTER U WITH CIRCUMFLEX
+0xFC	0x00FC	#	LATIN SMALL LETTER U WITH DIAERESIS
+0xFD	0x0169	#	LATIN SMALL LETTER U WITH TILDE
+0xFE	0x016B	#	LATIN SMALL LETTER U WITH MACRON
+0xFF	0x02D9	#	DOT ABOVE
--- /dev/null
+++ b/fonts/8859-5.flc
@@ -1,0 +1,230 @@
+#
+#	Name:             ISO 8859-5 (1988) to Unicode
+#	Unicode version:  1.1
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             16 January 1995
+#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#       ISO 8859-5 (1988) characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO 8859-5 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO 8859-5 order
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+0x20	0x0020	#	SPACE
+0x21	0x0021	#	EXCLAMATION MARK
+0x22	0x0022	#	QUOTATION MARK
+0x23	0x0023	#	NUMBER SIGN
+0x24	0x0024	#	DOLLAR SIGN
+0x25	0x0025	#	PERCENT SIGN
+0x26	0x0026	#	AMPERSAND
+0x27	0x0027	#	APOSTROPHE
+0x28	0x0028	#	LEFT PARENTHESIS
+0x29	0x0029	#	RIGHT PARENTHESIS
+0x2A	0x002A	#	ASTERISK
+0x2B	0x002B	#	PLUS SIGN
+0x2C	0x002C	#	COMMA
+0x2D	0x002D	#	HYPHEN-MINUS
+0x2E	0x002E	#	FULL STOP
+0x2F	0x002F	#	SOLIDUS
+0x30	0x0030	#	DIGIT ZERO
+0x31	0x0031	#	DIGIT ONE
+0x32	0x0032	#	DIGIT TWO
+0x33	0x0033	#	DIGIT THREE
+0x34	0x0034	#	DIGIT FOUR
+0x35	0x0035	#	DIGIT FIVE
+0x36	0x0036	#	DIGIT SIX
+0x37	0x0037	#	DIGIT SEVEN
+0x38	0x0038	#	DIGIT EIGHT
+0x39	0x0039	#	DIGIT NINE
+0x3A	0x003A	#	COLON
+0x3B	0x003B	#	SEMICOLON
+0x3C	0x003C	#	LESS-THAN SIGN
+0x3D	0x003D	#	EQUALS SIGN
+0x3E	0x003E	#	GREATER-THAN SIGN
+0x3F	0x003F	#	QUESTION MARK
+0x40	0x0040	#	COMMERCIAL AT
+0x41	0x0041	#	LATIN CAPITAL LETTER A
+0x42	0x0042	#	LATIN CAPITAL LETTER B
+0x43	0x0043	#	LATIN CAPITAL LETTER C
+0x44	0x0044	#	LATIN CAPITAL LETTER D
+0x45	0x0045	#	LATIN CAPITAL LETTER E
+0x46	0x0046	#	LATIN CAPITAL LETTER F
+0x47	0x0047	#	LATIN CAPITAL LETTER G
+0x48	0x0048	#	LATIN CAPITAL LETTER H
+0x49	0x0049	#	LATIN CAPITAL LETTER I
+0x4A	0x004A	#	LATIN CAPITAL LETTER J
+0x4B	0x004B	#	LATIN CAPITAL LETTER K
+0x4C	0x004C	#	LATIN CAPITAL LETTER L
+0x4D	0x004D	#	LATIN CAPITAL LETTER M
+0x4E	0x004E	#	LATIN CAPITAL LETTER N
+0x4F	0x004F	#	LATIN CAPITAL LETTER O
+0x50	0x0050	#	LATIN CAPITAL LETTER P
+0x51	0x0051	#	LATIN CAPITAL LETTER Q
+0x52	0x0052	#	LATIN CAPITAL LETTER R
+0x53	0x0053	#	LATIN CAPITAL LETTER S
+0x54	0x0054	#	LATIN CAPITAL LETTER T
+0x55	0x0055	#	LATIN CAPITAL LETTER U
+0x56	0x0056	#	LATIN CAPITAL LETTER V
+0x57	0x0057	#	LATIN CAPITAL LETTER W
+0x58	0x0058	#	LATIN CAPITAL LETTER X
+0x59	0x0059	#	LATIN CAPITAL LETTER Y
+0x5A	0x005A	#	LATIN CAPITAL LETTER Z
+0x5B	0x005B	#	LEFT SQUARE BRACKET
+0x5C	0x005C	#	REVERSE SOLIDUS
+0x5D	0x005D	#	RIGHT SQUARE BRACKET
+0x5E	0x005E	#	CIRCUMFLEX ACCENT
+0x5F	0x005F	#	LOW LINE
+0x60	0x0060	#	GRAVE ACCENT
+0x61	0x0061	#	LATIN SMALL LETTER A
+0x62	0x0062	#	LATIN SMALL LETTER B
+0x63	0x0063	#	LATIN SMALL LETTER C
+0x64	0x0064	#	LATIN SMALL LETTER D
+0x65	0x0065	#	LATIN SMALL LETTER E
+0x66	0x0066	#	LATIN SMALL LETTER F
+0x67	0x0067	#	LATIN SMALL LETTER G
+0x68	0x0068	#	LATIN SMALL LETTER H
+0x69	0x0069	#	LATIN SMALL LETTER I
+0x6A	0x006A	#	LATIN SMALL LETTER J
+0x6B	0x006B	#	LATIN SMALL LETTER K
+0x6C	0x006C	#	LATIN SMALL LETTER L
+0x6D	0x006D	#	LATIN SMALL LETTER M
+0x6E	0x006E	#	LATIN SMALL LETTER N
+0x6F	0x006F	#	LATIN SMALL LETTER O
+0x70	0x0070	#	LATIN SMALL LETTER P
+0x71	0x0071	#	LATIN SMALL LETTER Q
+0x72	0x0072	#	LATIN SMALL LETTER R
+0x73	0x0073	#	LATIN SMALL LETTER S
+0x74	0x0074	#	LATIN SMALL LETTER T
+0x75	0x0075	#	LATIN SMALL LETTER U
+0x76	0x0076	#	LATIN SMALL LETTER V
+0x77	0x0077	#	LATIN SMALL LETTER W
+0x78	0x0078	#	LATIN SMALL LETTER X
+0x79	0x0079	#	LATIN SMALL LETTER Y
+0x7A	0x007A	#	LATIN SMALL LETTER Z
+0x7B	0x007B	#	LEFT CURLY BRACKET
+0x7C	0x007C	#	VERTICAL LINE
+0x7D	0x007D	#	RIGHT CURLY BRACKET
+0x7E	0x007E	#	TILDE
+0xA0	0x00A0	#	NO-BREAK SPACE
+0xA1	0x0401	#	CYRILLIC CAPITAL LETTER IO
+0xA2	0x0402	#	CYRILLIC CAPITAL LETTER DJE
+0xA3	0x0403	#	CYRILLIC CAPITAL LETTER GJE
+0xA4	0x0404	#	CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0xA5	0x0405	#	CYRILLIC CAPITAL LETTER DZE
+0xA6	0x0406	#	CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0xA7	0x0407	#	CYRILLIC CAPITAL LETTER YI
+0xA8	0x0408	#	CYRILLIC CAPITAL LETTER JE
+0xA9	0x0409	#	CYRILLIC CAPITAL LETTER LJE
+0xAA	0x040A	#	CYRILLIC CAPITAL LETTER NJE
+0xAB	0x040B	#	CYRILLIC CAPITAL LETTER TSHE
+0xAC	0x040C	#	CYRILLIC CAPITAL LETTER KJE
+0xAD	0x00AD	#	SOFT HYPHEN
+0xAE	0x040E	#	CYRILLIC CAPITAL LETTER SHORT U
+0xAF	0x040F	#	CYRILLIC CAPITAL LETTER DZHE
+0xB0	0x0410	#	CYRILLIC CAPITAL LETTER A
+0xB1	0x0411	#	CYRILLIC CAPITAL LETTER BE
+0xB2	0x0412	#	CYRILLIC CAPITAL LETTER VE
+0xB3	0x0413	#	CYRILLIC CAPITAL LETTER GHE
+0xB4	0x0414	#	CYRILLIC CAPITAL LETTER DE
+0xB5	0x0415	#	CYRILLIC CAPITAL LETTER IE
+0xB6	0x0416	#	CYRILLIC CAPITAL LETTER ZHE
+0xB7	0x0417	#	CYRILLIC CAPITAL LETTER ZE
+0xB8	0x0418	#	CYRILLIC CAPITAL LETTER I
+0xB9	0x0419	#	CYRILLIC CAPITAL LETTER SHORT I
+0xBA	0x041A	#	CYRILLIC CAPITAL LETTER KA
+0xBB	0x041B	#	CYRILLIC CAPITAL LETTER EL
+0xBC	0x041C	#	CYRILLIC CAPITAL LETTER EM
+0xBD	0x041D	#	CYRILLIC CAPITAL LETTER EN
+0xBE	0x041E	#	CYRILLIC CAPITAL LETTER O
+0xBF	0x041F	#	CYRILLIC CAPITAL LETTER PE
+0xC0	0x0420	#	CYRILLIC CAPITAL LETTER ER
+0xC1	0x0421	#	CYRILLIC CAPITAL LETTER ES
+0xC2	0x0422	#	CYRILLIC CAPITAL LETTER TE
+0xC3	0x0423	#	CYRILLIC CAPITAL LETTER U
+0xC4	0x0424	#	CYRILLIC CAPITAL LETTER EF
+0xC5	0x0425	#	CYRILLIC CAPITAL LETTER HA
+0xC6	0x0426	#	CYRILLIC CAPITAL LETTER TSE
+0xC7	0x0427	#	CYRILLIC CAPITAL LETTER CHE
+0xC8	0x0428	#	CYRILLIC CAPITAL LETTER SHA
+0xC9	0x0429	#	CYRILLIC CAPITAL LETTER SHCHA
+0xCA	0x042A	#	CYRILLIC CAPITAL LETTER HARD SIGN
+0xCB	0x042B	#	CYRILLIC CAPITAL LETTER YERU
+0xCC	0x042C	#	CYRILLIC CAPITAL LETTER SOFT SIGN
+0xCD	0x042D	#	CYRILLIC CAPITAL LETTER E
+0xCE	0x042E	#	CYRILLIC CAPITAL LETTER YU
+0xCF	0x042F	#	CYRILLIC CAPITAL LETTER YA
+0xD0	0x0430	#	CYRILLIC SMALL LETTER A
+0xD1	0x0431	#	CYRILLIC SMALL LETTER BE
+0xD2	0x0432	#	CYRILLIC SMALL LETTER VE
+0xD3	0x0433	#	CYRILLIC SMALL LETTER GHE
+0xD4	0x0434	#	CYRILLIC SMALL LETTER DE
+0xD5	0x0435	#	CYRILLIC SMALL LETTER IE
+0xD6	0x0436	#	CYRILLIC SMALL LETTER ZHE
+0xD7	0x0437	#	CYRILLIC SMALL LETTER ZE
+0xD8	0x0438	#	CYRILLIC SMALL LETTER I
+0xD9	0x0439	#	CYRILLIC SMALL LETTER SHORT I
+0xDA	0x043A	#	CYRILLIC SMALL LETTER KA
+0xDB	0x043B	#	CYRILLIC SMALL LETTER EL
+0xDC	0x043C	#	CYRILLIC SMALL LETTER EM
+0xDD	0x043D	#	CYRILLIC SMALL LETTER EN
+0xDE	0x043E	#	CYRILLIC SMALL LETTER O
+0xDF	0x043F	#	CYRILLIC SMALL LETTER PE
+0xE0	0x0440	#	CYRILLIC SMALL LETTER ER
+0xE1	0x0441	#	CYRILLIC SMALL LETTER ES
+0xE2	0x0442	#	CYRILLIC SMALL LETTER TE
+0xE3	0x0443	#	CYRILLIC SMALL LETTER U
+0xE4	0x0444	#	CYRILLIC SMALL LETTER EF
+0xE5	0x0445	#	CYRILLIC SMALL LETTER HA
+0xE6	0x0446	#	CYRILLIC SMALL LETTER TSE
+0xE7	0x0447	#	CYRILLIC SMALL LETTER CHE
+0xE8	0x0448	#	CYRILLIC SMALL LETTER SHA
+0xE9	0x0449	#	CYRILLIC SMALL LETTER SHCHA
+0xEA	0x044A	#	CYRILLIC SMALL LETTER HARD SIGN
+0xEB	0x044B	#	CYRILLIC SMALL LETTER YERU
+0xEC	0x044C	#	CYRILLIC SMALL LETTER SOFT SIGN
+0xED	0x044D	#	CYRILLIC SMALL LETTER E
+0xEE	0x044E	#	CYRILLIC SMALL LETTER YU
+0xEF	0x044F	#	CYRILLIC SMALL LETTER YA
+0xF0	0x2116	#	NUMERO SIGN
+0xF1	0x0451	#	CYRILLIC SMALL LETTER IO
+0xF2	0x0452	#	CYRILLIC SMALL LETTER DJE
+0xF3	0x0453	#	CYRILLIC SMALL LETTER GJE
+0xF4	0x0454	#	CYRILLIC SMALL LETTER UKRAINIAN IE
+0xF5	0x0455	#	CYRILLIC SMALL LETTER DZE
+0xF6	0x0456	#	CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0xF7	0x0457	#	CYRILLIC SMALL LETTER YI
+0xF8	0x0458	#	CYRILLIC SMALL LETTER JE
+0xF9	0x0459	#	CYRILLIC SMALL LETTER LJE
+0xFA	0x045A	#	CYRILLIC SMALL LETTER NJE
+0xFB	0x045B	#	CYRILLIC SMALL LETTER TSHE
+0xFC	0x045C	#	CYRILLIC SMALL LETTER KJE
+0xFD	0x00A7	#	SECTION SIGN
+0xFE	0x045E	#	CYRILLIC SMALL LETTER SHORT U
+0xFF	0x045F	#	CYRILLIC SMALL LETTER DZHE
--- /dev/null
+++ b/fonts/8859-7.flc
@@ -1,0 +1,224 @@
+#
+#	Name:             ISO 8859-7 (1987) to Unicode
+#	Unicode version:  1.1
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             16 January 1995
+#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#       ISO 8859-7 (1987) characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO 8859-7 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO 8859-7 order
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+0x20	0x0020	#	SPACE
+0x21	0x0021	#	EXCLAMATION MARK
+0x22	0x0022	#	QUOTATION MARK
+0x23	0x0023	#	NUMBER SIGN
+0x24	0x0024	#	DOLLAR SIGN
+0x25	0x0025	#	PERCENT SIGN
+0x26	0x0026	#	AMPERSAND
+0x27	0x0027	#	APOSTROPHE
+0x28	0x0028	#	LEFT PARENTHESIS
+0x29	0x0029	#	RIGHT PARENTHESIS
+0x2A	0x002A	#	ASTERISK
+0x2B	0x002B	#	PLUS SIGN
+0x2C	0x002C	#	COMMA
+0x2D	0x002D	#	HYPHEN-MINUS
+0x2E	0x002E	#	FULL STOP
+0x2F	0x002F	#	SOLIDUS
+0x30	0x0030	#	DIGIT ZERO
+0x31	0x0031	#	DIGIT ONE
+0x32	0x0032	#	DIGIT TWO
+0x33	0x0033	#	DIGIT THREE
+0x34	0x0034	#	DIGIT FOUR
+0x35	0x0035	#	DIGIT FIVE
+0x36	0x0036	#	DIGIT SIX
+0x37	0x0037	#	DIGIT SEVEN
+0x38	0x0038	#	DIGIT EIGHT
+0x39	0x0039	#	DIGIT NINE
+0x3A	0x003A	#	COLON
+0x3B	0x003B	#	SEMICOLON
+0x3C	0x003C	#	LESS-THAN SIGN
+0x3D	0x003D	#	EQUALS SIGN
+0x3E	0x003E	#	GREATER-THAN SIGN
+0x3F	0x003F	#	QUESTION MARK
+0x40	0x0040	#	COMMERCIAL AT
+0x41	0x0041	#	LATIN CAPITAL LETTER A
+0x42	0x0042	#	LATIN CAPITAL LETTER B
+0x43	0x0043	#	LATIN CAPITAL LETTER C
+0x44	0x0044	#	LATIN CAPITAL LETTER D
+0x45	0x0045	#	LATIN CAPITAL LETTER E
+0x46	0x0046	#	LATIN CAPITAL LETTER F
+0x47	0x0047	#	LATIN CAPITAL LETTER G
+0x48	0x0048	#	LATIN CAPITAL LETTER H
+0x49	0x0049	#	LATIN CAPITAL LETTER I
+0x4A	0x004A	#	LATIN CAPITAL LETTER J
+0x4B	0x004B	#	LATIN CAPITAL LETTER K
+0x4C	0x004C	#	LATIN CAPITAL LETTER L
+0x4D	0x004D	#	LATIN CAPITAL LETTER M
+0x4E	0x004E	#	LATIN CAPITAL LETTER N
+0x4F	0x004F	#	LATIN CAPITAL LETTER O
+0x50	0x0050	#	LATIN CAPITAL LETTER P
+0x51	0x0051	#	LATIN CAPITAL LETTER Q
+0x52	0x0052	#	LATIN CAPITAL LETTER R
+0x53	0x0053	#	LATIN CAPITAL LETTER S
+0x54	0x0054	#	LATIN CAPITAL LETTER T
+0x55	0x0055	#	LATIN CAPITAL LETTER U
+0x56	0x0056	#	LATIN CAPITAL LETTER V
+0x57	0x0057	#	LATIN CAPITAL LETTER W
+0x58	0x0058	#	LATIN CAPITAL LETTER X
+0x59	0x0059	#	LATIN CAPITAL LETTER Y
+0x5A	0x005A	#	LATIN CAPITAL LETTER Z
+0x5B	0x005B	#	LEFT SQUARE BRACKET
+0x5C	0x005C	#	REVERSE SOLIDUS
+0x5D	0x005D	#	RIGHT SQUARE BRACKET
+0x5E	0x005E	#	CIRCUMFLEX ACCENT
+0x5F	0x005F	#	LOW LINE
+0x60	0x0060	#	GRAVE ACCENT
+0x61	0x0061	#	LATIN SMALL LETTER A
+0x62	0x0062	#	LATIN SMALL LETTER B
+0x63	0x0063	#	LATIN SMALL LETTER C
+0x64	0x0064	#	LATIN SMALL LETTER D
+0x65	0x0065	#	LATIN SMALL LETTER E
+0x66	0x0066	#	LATIN SMALL LETTER F
+0x67	0x0067	#	LATIN SMALL LETTER G
+0x68	0x0068	#	LATIN SMALL LETTER H
+0x69	0x0069	#	LATIN SMALL LETTER I
+0x6A	0x006A	#	LATIN SMALL LETTER J
+0x6B	0x006B	#	LATIN SMALL LETTER K
+0x6C	0x006C	#	LATIN SMALL LETTER L
+0x6D	0x006D	#	LATIN SMALL LETTER M
+0x6E	0x006E	#	LATIN SMALL LETTER N
+0x6F	0x006F	#	LATIN SMALL LETTER O
+0x70	0x0070	#	LATIN SMALL LETTER P
+0x71	0x0071	#	LATIN SMALL LETTER Q
+0x72	0x0072	#	LATIN SMALL LETTER R
+0x73	0x0073	#	LATIN SMALL LETTER S
+0x74	0x0074	#	LATIN SMALL LETTER T
+0x75	0x0075	#	LATIN SMALL LETTER U
+0x76	0x0076	#	LATIN SMALL LETTER V
+0x77	0x0077	#	LATIN SMALL LETTER W
+0x78	0x0078	#	LATIN SMALL LETTER X
+0x79	0x0079	#	LATIN SMALL LETTER Y
+0x7A	0x007A	#	LATIN SMALL LETTER Z
+0x7B	0x007B	#	LEFT CURLY BRACKET
+0x7C	0x007C	#	VERTICAL LINE
+0x7D	0x007D	#	RIGHT CURLY BRACKET
+0x7E	0x007E	#	TILDE
+0xA0	0x00A0	#	NO-BREAK SPACE
+0xA1	0x02BD	#	MODIFIER LETTER REVERSED COMMA
+0xA2	0x02BC	#	MODIFIER LETTER APOSTROPHE
+0xA3	0x00A3	#	POUND SIGN
+0xA6	0x00A6	#	BROKEN BAR
+0xA7	0x00A7	#	SECTION SIGN
+0xA8	0x00A8	#	DIAERESIS
+0xA9	0x00A9	#	COPYRIGHT SIGN
+0xAB	0x00AB	#	LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xAC	0x00AC	#	NOT SIGN
+0xAD	0x00AD	#	SOFT HYPHEN
+0xAF	0x2015	#	HORIZONTAL BAR
+0xB0	0x00B0	#	DEGREE SIGN
+0xB1	0x00B1	#	PLUS-MINUS SIGN
+0xB2	0x00B2	#	SUPERSCRIPT TWO
+0xB3	0x00B3	#	SUPERSCRIPT THREE
+0xB4	0x0384	#	GREEK TONOS
+0xB5	0x0385	#	GREEK DIALYTIKA TONOS
+0xB6	0x0386	#	GREEK CAPITAL LETTER ALPHA WITH TONOS
+0xB7	0x00B7	#	MIDDLE DOT
+0xB8	0x0388	#	GREEK CAPITAL LETTER EPSILON WITH TONOS
+0xB9	0x0389	#	GREEK CAPITAL LETTER ETA WITH TONOS
+0xBA	0x038A	#	GREEK CAPITAL LETTER IOTA WITH TONOS
+0xBB	0x00BB	#	RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xBC	0x038C	#	GREEK CAPITAL LETTER OMICRON WITH TONOS
+0xBD	0x00BD	#	VULGAR FRACTION ONE HALF
+0xBE	0x038E	#	GREEK CAPITAL LETTER UPSILON WITH TONOS
+0xBF	0x038F	#	GREEK CAPITAL LETTER OMEGA WITH TONOS
+0xC0	0x0390	#	GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0xC1	0x0391	#	GREEK CAPITAL LETTER ALPHA
+0xC2	0x0392	#	GREEK CAPITAL LETTER BETA
+0xC3	0x0393	#	GREEK CAPITAL LETTER GAMMA
+0xC4	0x0394	#	GREEK CAPITAL LETTER DELTA
+0xC5	0x0395	#	GREEK CAPITAL LETTER EPSILON
+0xC6	0x0396	#	GREEK CAPITAL LETTER ZETA
+0xC7	0x0397	#	GREEK CAPITAL LETTER ETA
+0xC8	0x0398	#	GREEK CAPITAL LETTER THETA
+0xC9	0x0399	#	GREEK CAPITAL LETTER IOTA
+0xCA	0x039A	#	GREEK CAPITAL LETTER KAPPA
+0xCB	0x039B	#	GREEK CAPITAL LETTER LAMDA
+0xCC	0x039C	#	GREEK CAPITAL LETTER MU
+0xCD	0x039D	#	GREEK CAPITAL LETTER NU
+0xCE	0x039E	#	GREEK CAPITAL LETTER XI
+0xCF	0x039F	#	GREEK CAPITAL LETTER OMICRON
+0xD0	0x03A0	#	GREEK CAPITAL LETTER PI
+0xD1	0x03A1	#	GREEK CAPITAL LETTER RHO
+0xD3	0x03A3	#	GREEK CAPITAL LETTER SIGMA
+0xD4	0x03A4	#	GREEK CAPITAL LETTER TAU
+0xD5	0x03A5	#	GREEK CAPITAL LETTER UPSILON
+0xD6	0x03A6	#	GREEK CAPITAL LETTER PHI
+0xD7	0x03A7	#	GREEK CAPITAL LETTER CHI
+0xD8	0x03A8	#	GREEK CAPITAL LETTER PSI
+0xD9	0x03A9	#	GREEK CAPITAL LETTER OMEGA
+0xDA	0x03AA	#	GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+0xDB	0x03AB	#	GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+0xDC	0x03AC	#	GREEK SMALL LETTER ALPHA WITH TONOS
+0xDD	0x03AD	#	GREEK SMALL LETTER EPSILON WITH TONOS
+0xDE	0x03AE	#	GREEK SMALL LETTER ETA WITH TONOS
+0xDF	0x03AF	#	GREEK SMALL LETTER IOTA WITH TONOS
+0xE0	0x03B0	#	GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+0xE1	0x03B1	#	GREEK SMALL LETTER ALPHA
+0xE2	0x03B2	#	GREEK SMALL LETTER BETA
+0xE3	0x03B3	#	GREEK SMALL LETTER GAMMA
+0xE4	0x03B4	#	GREEK SMALL LETTER DELTA
+0xE5	0x03B5	#	GREEK SMALL LETTER EPSILON
+0xE6	0x03B6	#	GREEK SMALL LETTER ZETA
+0xE7	0x03B7	#	GREEK SMALL LETTER ETA
+0xE8	0x03B8	#	GREEK SMALL LETTER THETA
+0xE9	0x03B9	#	GREEK SMALL LETTER IOTA
+0xEA	0x03BA	#	GREEK SMALL LETTER KAPPA
+0xEB	0x03BB	#	GREEK SMALL LETTER LAMDA
+0xEC	0x03BC	#	GREEK SMALL LETTER MU
+0xED	0x03BD	#	GREEK SMALL LETTER NU
+0xEE	0x03BE	#	GREEK SMALL LETTER XI
+0xEF	0x03BF	#	GREEK SMALL LETTER OMICRON
+0xF0	0x03C0	#	GREEK SMALL LETTER PI
+0xF1	0x03C1	#	GREEK SMALL LETTER RHO
+0xF2	0x03C2	#	GREEK SMALL LETTER FINAL SIGMA
+0xF3	0x03C3	#	GREEK SMALL LETTER SIGMA
+0xF4	0x03C4	#	GREEK SMALL LETTER TAU
+0xF5	0x03C5	#	GREEK SMALL LETTER UPSILON
+0xF6	0x03C6	#	GREEK SMALL LETTER PHI
+0xF7	0x03C7	#	GREEK SMALL LETTER CHI
+0xF8	0x03C8	#	GREEK SMALL LETTER PSI
+0xF9	0x03C9	#	GREEK SMALL LETTER OMEGA
+0xFA	0x03CA	#	GREEK SMALL LETTER IOTA WITH DIALYTIKA
+0xFB	0x03CB	#	GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+0xFC	0x03CC	#	GREEK SMALL LETTER OMICRON WITH TONOS
+0xFD	0x03CD	#	GREEK SMALL LETTER UPSILON WITH TONOS
+0xFE	0x03CE	#	GREEK SMALL LETTER OMEGA WITH TONOS
--- /dev/null
+++ b/fonts/8859-8.flc
@@ -1,0 +1,192 @@
+#
+#	Name:             ISO 8859-8 (1988) to Unicode
+#	Unicode version:  1.1
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             16 January 1995
+#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#       ISO 8859-8 (1988) characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO 8859-8 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO 8859-8 order
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+0x20	0x0020	#	SPACE
+0x21	0x0021	#	EXCLAMATION MARK
+0x22	0x0022	#	QUOTATION MARK
+0x23	0x0023	#	NUMBER SIGN
+0x24	0x0024	#	DOLLAR SIGN
+0x25	0x0025	#	PERCENT SIGN
+0x26	0x0026	#	AMPERSAND
+0x27	0x0027	#	APOSTROPHE
+0x28	0x0028	#	LEFT PARENTHESIS
+0x29	0x0029	#	RIGHT PARENTHESIS
+0x2A	0x002A	#	ASTERISK
+0x2B	0x002B	#	PLUS SIGN
+0x2C	0x002C	#	COMMA
+0x2D	0x002D	#	HYPHEN-MINUS
+0x2E	0x002E	#	FULL STOP
+0x2F	0x002F	#	SOLIDUS
+0x30	0x0030	#	DIGIT ZERO
+0x31	0x0031	#	DIGIT ONE
+0x32	0x0032	#	DIGIT TWO
+0x33	0x0033	#	DIGIT THREE
+0x34	0x0034	#	DIGIT FOUR
+0x35	0x0035	#	DIGIT FIVE
+0x36	0x0036	#	DIGIT SIX
+0x37	0x0037	#	DIGIT SEVEN
+0x38	0x0038	#	DIGIT EIGHT
+0x39	0x0039	#	DIGIT NINE
+0x3A	0x003A	#	COLON
+0x3B	0x003B	#	SEMICOLON
+0x3C	0x003C	#	LESS-THAN SIGN
+0x3D	0x003D	#	EQUALS SIGN
+0x3E	0x003E	#	GREATER-THAN SIGN
+0x3F	0x003F	#	QUESTION MARK
+0x40	0x0040	#	COMMERCIAL AT
+0x41	0x0041	#	LATIN CAPITAL LETTER A
+0x42	0x0042	#	LATIN CAPITAL LETTER B
+0x43	0x0043	#	LATIN CAPITAL LETTER C
+0x44	0x0044	#	LATIN CAPITAL LETTER D
+0x45	0x0045	#	LATIN CAPITAL LETTER E
+0x46	0x0046	#	LATIN CAPITAL LETTER F
+0x47	0x0047	#	LATIN CAPITAL LETTER G
+0x48	0x0048	#	LATIN CAPITAL LETTER H
+0x49	0x0049	#	LATIN CAPITAL LETTER I
+0x4A	0x004A	#	LATIN CAPITAL LETTER J
+0x4B	0x004B	#	LATIN CAPITAL LETTER K
+0x4C	0x004C	#	LATIN CAPITAL LETTER L
+0x4D	0x004D	#	LATIN CAPITAL LETTER M
+0x4E	0x004E	#	LATIN CAPITAL LETTER N
+0x4F	0x004F	#	LATIN CAPITAL LETTER O
+0x50	0x0050	#	LATIN CAPITAL LETTER P
+0x51	0x0051	#	LATIN CAPITAL LETTER Q
+0x52	0x0052	#	LATIN CAPITAL LETTER R
+0x53	0x0053	#	LATIN CAPITAL LETTER S
+0x54	0x0054	#	LATIN CAPITAL LETTER T
+0x55	0x0055	#	LATIN CAPITAL LETTER U
+0x56	0x0056	#	LATIN CAPITAL LETTER V
+0x57	0x0057	#	LATIN CAPITAL LETTER W
+0x58	0x0058	#	LATIN CAPITAL LETTER X
+0x59	0x0059	#	LATIN CAPITAL LETTER Y
+0x5A	0x005A	#	LATIN CAPITAL LETTER Z
+0x5B	0x005B	#	LEFT SQUARE BRACKET
+0x5C	0x005C	#	REVERSE SOLIDUS
+0x5D	0x005D	#	RIGHT SQUARE BRACKET
+0x5E	0x005E	#	CIRCUMFLEX ACCENT
+0x5F	0x005F	#	LOW LINE
+0x60	0x0060	#	GRAVE ACCENT
+0x61	0x0061	#	LATIN SMALL LETTER A
+0x62	0x0062	#	LATIN SMALL LETTER B
+0x63	0x0063	#	LATIN SMALL LETTER C
+0x64	0x0064	#	LATIN SMALL LETTER D
+0x65	0x0065	#	LATIN SMALL LETTER E
+0x66	0x0066	#	LATIN SMALL LETTER F
+0x67	0x0067	#	LATIN SMALL LETTER G
+0x68	0x0068	#	LATIN SMALL LETTER H
+0x69	0x0069	#	LATIN SMALL LETTER I
+0x6A	0x006A	#	LATIN SMALL LETTER J
+0x6B	0x006B	#	LATIN SMALL LETTER K
+0x6C	0x006C	#	LATIN SMALL LETTER L
+0x6D	0x006D	#	LATIN SMALL LETTER M
+0x6E	0x006E	#	LATIN SMALL LETTER N
+0x6F	0x006F	#	LATIN SMALL LETTER O
+0x70	0x0070	#	LATIN SMALL LETTER P
+0x71	0x0071	#	LATIN SMALL LETTER Q
+0x72	0x0072	#	LATIN SMALL LETTER R
+0x73	0x0073	#	LATIN SMALL LETTER S
+0x74	0x0074	#	LATIN SMALL LETTER T
+0x75	0x0075	#	LATIN SMALL LETTER U
+0x76	0x0076	#	LATIN SMALL LETTER V
+0x77	0x0077	#	LATIN SMALL LETTER W
+0x78	0x0078	#	LATIN SMALL LETTER X
+0x79	0x0079	#	LATIN SMALL LETTER Y
+0x7A	0x007A	#	LATIN SMALL LETTER Z
+0x7B	0x007B	#	LEFT CURLY BRACKET
+0x7C	0x007C	#	VERTICAL LINE
+0x7D	0x007D	#	RIGHT CURLY BRACKET
+0x7E	0x007E	#	TILDE
+0xA0	0x00A0	#	NO-BREAK SPACE
+0xA2	0x00A2	#	CENT SIGN
+0xA3	0x00A3	#	POUND SIGN
+0xA4	0x00A4	#	CURRENCY SIGN
+0xA5	0x00A5	#	YEN SIGN
+0xA6	0x00A6	#	BROKEN BAR
+0xA7	0x00A7	#	SECTION SIGN
+0xA8	0x00A8	#	DIAERESIS
+0xA9	0x00A9	#	COPYRIGHT SIGN
+0xAA	0x00D7	#	MULTIPLICATION SIGN
+0xAB	0x00AB	#	LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xAC	0x00AC	#	NOT SIGN
+0xAD	0x00AD	#	SOFT HYPHEN
+0xAE	0x00AE	#	REGISTERED SIGN
+0xAF	0x203E	#	OVERLINE
+0xB0	0x00B0	#	DEGREE SIGN
+0xB1	0x00B1	#	PLUS-MINUS SIGN
+0xB2	0x00B2	#	SUPERSCRIPT TWO
+0xB3	0x00B3	#	SUPERSCRIPT THREE
+0xB4	0x00B4	#	ACUTE ACCENT
+0xB5	0x00B5	#	MICRO SIGN
+0xB6	0x00B6	#	PILCROW SIGN
+0xB7	0x00B7	#	MIDDLE DOT
+0xB8	0x00B8	#	CEDILLA
+0xB9	0x00B9	#	SUPERSCRIPT ONE
+0xBA	0x00F7	#	DIVISION SIGN
+0xBB	0x00BB	#	RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xBC	0x00BC	#	VULGAR FRACTION ONE QUARTER
+0xBD	0x00BD	#	VULGAR FRACTION ONE HALF
+0xBE	0x00BE	#	VULGAR FRACTION THREE QUARTERS
+0xDF	0x2017	#	DOUBLE LOW LINE
+0xE0	0x05D0	#	HEBREW LETTER ALEF
+0xE1	0x05D1	#	HEBREW LETTER BET
+0xE2	0x05D2	#	HEBREW LETTER GIMEL
+0xE3	0x05D3	#	HEBREW LETTER DALET
+0xE4	0x05D4	#	HEBREW LETTER HE
+0xE5	0x05D5	#	HEBREW LETTER VAV
+0xE6	0x05D6	#	HEBREW LETTER ZAYIN
+0xE7	0x05D7	#	HEBREW LETTER HET
+0xE8	0x05D8	#	HEBREW LETTER TET
+0xE9	0x05D9	#	HEBREW LETTER YOD
+0xEA	0x05DA	#	HEBREW LETTER FINAL KAF
+0xEB	0x05DB	#	HEBREW LETTER KAF
+0xEC	0x05DC	#	HEBREW LETTER LAMED
+0xED	0x05DD	#	HEBREW LETTER FINAL MEM
+0xEE	0x05DE	#	HEBREW LETTER MEM
+0xEF	0x05DF	#	HEBREW LETTER FINAL NUN
+0xF0	0x05E0	#	HEBREW LETTER NUN
+0xF1	0x05E1	#	HEBREW LETTER SAMEKH
+0xF2	0x05E2	#	HEBREW LETTER AYIN
+0xF3	0x05E3	#	HEBREW LETTER FINAL PE
+0xF4	0x05E4	#	HEBREW LETTER PE
+0xF5	0x05E5	#	HEBREW LETTER FINAL TSADI
+0xF6	0x05E6	#	HEBREW LETTER TSADI
+0xF7	0x05E7	#	HEBREW LETTER QOF
+0xF8	0x05E8	#	HEBREW LETTER RESH
+0xF9	0x05E9	#	HEBREW LETTER SHIN
+0xFA	0x05EA	#	HEBREW LETTER TAV
--- /dev/null
+++ b/fonts/8859-9.flc
@@ -1,0 +1,232 @@
+#
+#	Name:             ISO 8859-9 (1989) to Unicode
+#	Unicode version:  1.1
+#	Table version:    0.1
+#	Table format:     Format A
+#	Date:             16 January 1995
+#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#       ISO 8859-9 (1989) characters map into Unicode.
+#
+#	Format:  Three tab-separated columns
+#		 Column #1 is the ISO 8859-9 code (in hex as 0xXX)
+#		 Column #2 is the Unicode (in hex as 0xXXXX)
+#		 Column #3 the Unicode name (follows a comment sign, '#')
+#
+#	The entries are in ISO 8859-9 order
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+0x20	0x0020	#	SPACE
+0x21	0x0021	#	EXCLAMATION MARK
+0x22	0x0022	#	QUOTATION MARK
+0x23	0x0023	#	NUMBER SIGN
+0x24	0x0024	#	DOLLAR SIGN
+0x25	0x0025	#	PERCENT SIGN
+0x26	0x0026	#	AMPERSAND
+0x27	0x0027	#	APOSTROPHE
+0x28	0x0028	#	LEFT PARENTHESIS
+0x29	0x0029	#	RIGHT PARENTHESIS
+0x2A	0x002A	#	ASTERISK
+0x2B	0x002B	#	PLUS SIGN
+0x2C	0x002C	#	COMMA
+0x2D	0x002D	#	HYPHEN-MINUS
+0x2E	0x002E	#	FULL STOP
+0x2F	0x002F	#	SOLIDUS
+0x30	0x0030	#	DIGIT ZERO
+0x31	0x0031	#	DIGIT ONE
+0x32	0x0032	#	DIGIT TWO
+0x33	0x0033	#	DIGIT THREE
+0x34	0x0034	#	DIGIT FOUR
+0x35	0x0035	#	DIGIT FIVE
+0x36	0x0036	#	DIGIT SIX
+0x37	0x0037	#	DIGIT SEVEN
+0x38	0x0038	#	DIGIT EIGHT
+0x39	0x0039	#	DIGIT NINE
+0x3A	0x003A	#	COLON
+0x3B	0x003B	#	SEMICOLON
+0x3C	0x003C	#	LESS-THAN SIGN
+0x3D	0x003D	#	EQUALS SIGN
+0x3E	0x003E	#	GREATER-THAN SIGN
+0x3F	0x003F	#	QUESTION MARK
+0x40	0x0040	#	COMMERCIAL AT
+0x41	0x0041	#	LATIN CAPITAL LETTER A
+0x42	0x0042	#	LATIN CAPITAL LETTER B
+0x43	0x0043	#	LATIN CAPITAL LETTER C
+0x44	0x0044	#	LATIN CAPITAL LETTER D
+0x45	0x0045	#	LATIN CAPITAL LETTER E
+0x46	0x0046	#	LATIN CAPITAL LETTER F
+0x47	0x0047	#	LATIN CAPITAL LETTER G
+0x48	0x0048	#	LATIN CAPITAL LETTER H
+0x49	0x0049	#	LATIN CAPITAL LETTER I
+0x4A	0x004A	#	LATIN CAPITAL LETTER J
+0x4B	0x004B	#	LATIN CAPITAL LETTER K
+0x4C	0x004C	#	LATIN CAPITAL LETTER L
+0x4D	0x004D	#	LATIN CAPITAL LETTER M
+0x4E	0x004E	#	LATIN CAPITAL LETTER N
+0x4F	0x004F	#	LATIN CAPITAL LETTER O
+0x50	0x0050	#	LATIN CAPITAL LETTER P
+0x51	0x0051	#	LATIN CAPITAL LETTER Q
+0x52	0x0052	#	LATIN CAPITAL LETTER R
+0x53	0x0053	#	LATIN CAPITAL LETTER S
+0x54	0x0054	#	LATIN CAPITAL LETTER T
+0x55	0x0055	#	LATIN CAPITAL LETTER U
+0x56	0x0056	#	LATIN CAPITAL LETTER V
+0x57	0x0057	#	LATIN CAPITAL LETTER W
+0x58	0x0058	#	LATIN CAPITAL LETTER X
+0x59	0x0059	#	LATIN CAPITAL LETTER Y
+0x5A	0x005A	#	LATIN CAPITAL LETTER Z
+0x5B	0x005B	#	LEFT SQUARE BRACKET
+0x5C	0x005C	#	REVERSE SOLIDUS
+0x5D	0x005D	#	RIGHT SQUARE BRACKET
+0x5E	0x005E	#	CIRCUMFLEX ACCENT
+0x5F	0x005F	#	LOW LINE
+0x60	0x0060	#	GRAVE ACCENT
+0x61	0x0061	#	LATIN SMALL LETTER A
+0x62	0x0062	#	LATIN SMALL LETTER B
+0x63	0x0063	#	LATIN SMALL LETTER C
+0x64	0x0064	#	LATIN SMALL LETTER D
+0x65	0x0065	#	LATIN SMALL LETTER E
+0x66	0x0066	#	LATIN SMALL LETTER F
+0x67	0x0067	#	LATIN SMALL LETTER G
+0x68	0x0068	#	LATIN SMALL LETTER H
+0x69	0x0069	#	LATIN SMALL LETTER I
+0x6A	0x006A	#	LATIN SMALL LETTER J
+0x6B	0x006B	#	LATIN SMALL LETTER K
+0x6C	0x006C	#	LATIN SMALL LETTER L
+0x6D	0x006D	#	LATIN SMALL LETTER M
+0x6E	0x006E	#	LATIN SMALL LETTER N
+0x6F	0x006F	#	LATIN SMALL LETTER O
+0x70	0x0070	#	LATIN SMALL LETTER P
+0x71	0x0071	#	LATIN SMALL LETTER Q
+0x72	0x0072	#	LATIN SMALL LETTER R
+0x73	0x0073	#	LATIN SMALL LETTER S
+0x74	0x0074	#	LATIN SMALL LETTER T
+0x75	0x0075	#	LATIN SMALL LETTER U
+0x76	0x0076	#	LATIN SMALL LETTER V
+0x77	0x0077	#	LATIN SMALL LETTER W
+0x78	0x0078	#	LATIN SMALL LETTER X
+0x79	0x0079	#	LATIN SMALL LETTER Y
+0x7A	0x007A	#	LATIN SMALL LETTER Z
+0x7B	0x007B	#	LEFT CURLY BRACKET
+0x7C	0x007C	#	VERTICAL LINE
+0x7D	0x007D	#	RIGHT CURLY BRACKET
+0x7E	0x007E	#	TILDE
+0xA0	0x00A0	#	NO-BREAK SPACE
+0xA1	0x00A1	#	INVERTED EXCLAMATION MARK
+0xA2	0x00A2	#	CENT SIGN
+0xA3	0x00A3	#	POUND SIGN
+0xA4	0x00A4	#	CURRENCY SIGN
+0xA5	0x00A5	#	YEN SIGN
+0xA6	0x00A6	#	BROKEN BAR
+0xA7	0x00A7	#	SECTION SIGN
+0xA8	0x00A8	#	DIAERESIS
+0xA9	0x00A9	#	COPYRIGHT SIGN
+0xAA	0x00AA	#	FEMININE ORDINAL INDICATOR
+0xAB	0x00AB	#	LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xAC	0x00AC	#	NOT SIGN
+0xAD	0x00AD	#	SOFT HYPHEN
+0xAE	0x00AE	#	REGISTERED SIGN
+0xAF	0x00AF	#	MACRON
+0xB0	0x00B0	#	DEGREE SIGN
+0xB1	0x00B1	#	PLUS-MINUS SIGN
+0xB2	0x00B2	#	SUPERSCRIPT TWO
+0xB3	0x00B3	#	SUPERSCRIPT THREE
+0xB4	0x00B4	#	ACUTE ACCENT
+0xB5	0x00B5	#	MICRO SIGN
+0xB6	0x00B6	#	PILCROW SIGN
+0xB7	0x00B7	#	MIDDLE DOT
+0xB8	0x00B8	#	CEDILLA
+0xB9	0x00B9	#	SUPERSCRIPT ONE
+0xBA	0x00BA	#	MASCULINE ORDINAL INDICATOR
+0xBB	0x00BB	#	RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xBC	0x00BC	#	VULGAR FRACTION ONE QUARTER
+0xBD	0x00BD	#	VULGAR FRACTION ONE HALF
+0xBE	0x00BE	#	VULGAR FRACTION THREE QUARTERS
+0xBF	0x00BF	#	INVERTED QUESTION MARK
+0xC0	0x00C0	#	LATIN CAPITAL LETTER A WITH GRAVE
+0xC1	0x00C1	#	LATIN CAPITAL LETTER A WITH ACUTE
+0xC2	0x00C2	#	LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3	0x00C3	#	LATIN CAPITAL LETTER A WITH TILDE
+0xC4	0x00C4	#	LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5	0x00C5	#	LATIN CAPITAL LETTER A WITH RING ABOVE
+0xC6	0x00C6	#	LATIN CAPITAL LETTER AE
+0xC7	0x00C7	#	LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8	0x00C8	#	LATIN CAPITAL LETTER E WITH GRAVE
+0xC9	0x00C9	#	LATIN CAPITAL LETTER E WITH ACUTE
+0xCA	0x00CA	#	LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xCB	0x00CB	#	LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC	0x00CC	#	LATIN CAPITAL LETTER I WITH GRAVE
+0xCD	0x00CD	#	LATIN CAPITAL LETTER I WITH ACUTE
+0xCE	0x00CE	#	LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF	0x00CF	#	LATIN CAPITAL LETTER I WITH DIAERESIS
+0xD0	0x011E	#	LATIN CAPITAL LETTER G WITH BREVE
+0xD1	0x00D1	#	LATIN CAPITAL LETTER N WITH TILDE
+0xD2	0x00D2	#	LATIN CAPITAL LETTER O WITH GRAVE
+0xD3	0x00D3	#	LATIN CAPITAL LETTER O WITH ACUTE
+0xD4	0x00D4	#	LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5	0x00D5	#	LATIN CAPITAL LETTER O WITH TILDE
+0xD6	0x00D6	#	LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7	0x00D7	#	MULTIPLICATION SIGN
+0xD8	0x00D8	#	LATIN CAPITAL LETTER O WITH STROKE
+0xD9	0x00D9	#	LATIN CAPITAL LETTER U WITH GRAVE
+0xDA	0x00DA	#	LATIN CAPITAL LETTER U WITH ACUTE
+0xDB	0x00DB	#	LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xDC	0x00DC	#	LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD	0x0130	#	LATIN CAPITAL LETTER I WITH DOT ABOVE
+0xDE	0x015E	#	LATIN CAPITAL LETTER S WITH CEDILLA
+0xDF	0x00DF	#	LATIN SMALL LETTER SHARP S
+0xE0	0x00E0	#	LATIN SMALL LETTER A WITH GRAVE
+0xE1	0x00E1	#	LATIN SMALL LETTER A WITH ACUTE
+0xE2	0x00E2	#	LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3	0x00E3	#	LATIN SMALL LETTER A WITH TILDE
+0xE4	0x00E4	#	LATIN SMALL LETTER A WITH DIAERESIS
+0xE5	0x00E5	#	LATIN SMALL LETTER A WITH RING ABOVE
+0xE6	0x00E6	#	LATIN SMALL LETTER AE
+0xE7	0x00E7	#	LATIN SMALL LETTER C WITH CEDILLA
+0xE8	0x00E8	#	LATIN SMALL LETTER E WITH GRAVE
+0xE9	0x00E9	#	LATIN SMALL LETTER E WITH ACUTE
+0xEA	0x00EA	#	LATIN SMALL LETTER E WITH CIRCUMFLEX
+0xEB	0x00EB	#	LATIN SMALL LETTER E WITH DIAERESIS
+0xEC	0x00EC	#	LATIN SMALL LETTER I WITH GRAVE
+0xED	0x00ED	#	LATIN SMALL LETTER I WITH ACUTE
+0xEE	0x00EE	#	LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF	0x00EF	#	LATIN SMALL LETTER I WITH DIAERESIS
+0xF0	0x011F	#	LATIN SMALL LETTER G WITH BREVE
+0xF1	0x00F1	#	LATIN SMALL LETTER N WITH TILDE
+0xF2	0x00F2	#	LATIN SMALL LETTER O WITH GRAVE
+0xF3	0x00F3	#	LATIN SMALL LETTER O WITH ACUTE
+0xF4	0x00F4	#	LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5	0x00F5	#	LATIN SMALL LETTER O WITH TILDE
+0xF6	0x00F6	#	LATIN SMALL LETTER O WITH DIAERESIS
+0xF7	0x00F7	#	DIVISION SIGN
+0xF8	0x00F8	#	LATIN SMALL LETTER O WITH STROKE
+0xF9	0x00F9	#	LATIN SMALL LETTER U WITH GRAVE
+0xFA	0x00FA	#	LATIN SMALL LETTER U WITH ACUTE
+0xFB	0x00FB	#	LATIN SMALL LETTER U WITH CIRCUMFLEX
+0xFC	0x00FC	#	LATIN SMALL LETTER U WITH DIAERESIS
+0xFD	0x0131	#	LATIN SMALL LETTER DOTLESS I
+0xFE	0x015F	#	LATIN SMALL LETTER S WITH CEDILLA
+0xFF	0x00FF	#	LATIN SMALL LETTER Y WITH DIAERESIS
+
+
--- /dev/null
+++ b/fonts/banner.flf
@@ -1,0 +1,2494 @@
+flf2a$ 8 7 54 0 12 0 64 185
+banner.flf version 2 by Ryan Youck (youck@cs.uregina.ca)
+(From a unix program called banner)
+I am not responsible for use of this font  
+Thanks to Glenn Chappell for his help
+Katakana characters by Vinney Thai <ssfiit@eris.cs.umb.edu>
+Cyrillic characters from "koi8x8" BDF font.
+Date: August 11, 1994
+
+Merged by John Cowan <cowan@ccil.org>
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+ $ $@
+ $ $@
+ $ $@
+ $ $@
+ $ $@
+ $ $@
+ $ $@
+ $ $@@
+ ###$@
+ ###$@
+ ###$@
+  # $@
+    $@
+ ###$@
+ ###$@
+    $@@
+ ### ###$@
+ ### ###$@
+  #   # $@
+ $      $@
+ $      $@
+        $@
+        $@
+        $@@
+   # #  $@
+   # #  $@
+ #######$@
+   # #  $@
+ #######$@
+   # #  $@
+   # #  $@
+        $@@
+  ##### $@
+ #  #  #$@
+ #  #   $@
+  ##### $@
+    #  #$@
+ #  #  #$@
+  ##### $@
+        $@@
+ ###   #$@
+ # #  # $@
+ ### #  $@
+    #   $@
+   # ###$@
+  #  # #$@
+ #   ###$@
+        $@@
+   ##   $@
+  #  #  $@
+   ##   $@
+  ###   $@
+ #   # #$@
+ #    # $@
+  ###  #$@
+        $@@
+ ###$@
+ ###$@
+  # $@
+ #  $@
+    $@
+    $@
+    $@
+    $@@
+   ##$@
+  #  $@
+ #   $@
+ #   $@
+ #   $@
+  #  $@
+   ##$@
+     $@@
+ ##  $@
+   # $@
+    #$@
+    #$@
+    #$@
+   # $@
+ ##  $@
+     $@@
+        $@
+  #   # $@
+   # #  $@
+ #######$@
+   # #  $@
+  #   # $@
+        $@
+        $@@
+      $@
+   #  $@
+   #  $@
+ #####$@
+   #  $@
+   #  $@
+      $@
+      $@@
+    $@
+    $@
+    $@
+    $@
+ ###$@
+ ###$@
+  # $@
+ #  $@@
+      $@
+      $@
+      $@
+ #####$@
+      $@
+      $@
+      $@
+      $@@
+    $@
+    $@
+    $@
+    $@
+ ###$@
+ ###$@
+ ###$@
+    $@@
+       #$@
+      # $@
+     #  $@
+    #   $@
+   #    $@
+  #     $@
+ #      $@
+        $@@
+   ###  $@
+  #   # $@
+ #     #$@
+ #     #$@
+ #     #$@
+  #   # $@
+   ###  $@
+        $@@
+   #  $@
+  ##  $@
+ # #  $@
+   #  $@
+   #  $@
+   #  $@
+ #####$@
+      $@@
+  ##### $@
+ #     #$@
+       #$@
+  ##### $@
+ #      $@
+ #      $@
+ #######$@
+        $@@
+  ##### $@
+ #     #$@
+       #$@
+  ##### $@
+       #$@
+ #     #$@
+  ##### $@
+        $@@
+ #      $@
+ #    # $@
+ #    # $@
+ #    # $@
+ #######$@
+      # $@
+      # $@
+        $@@
+ #######$@
+ #      $@
+ #      $@
+ ###### $@
+       #$@
+ #     #$@
+  ##### $@
+        $@@
+  ##### $@
+ #     #$@
+ #      $@
+ ###### $@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+ #######$@
+ #    # $@
+     #  $@
+    #   $@
+   #    $@
+   #    $@
+   #    $@
+        $@@
+  ##### $@
+ #     #$@
+ #     #$@
+  ##### $@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+  ##### $@
+ #     #$@
+ #     #$@
+  ######$@
+       #$@
+ #     #$@
+  ##### $@
+        $@@
+  # $@
+ ###$@
+  # $@
+    $@
+  # $@
+ ###$@
+  # $@
+    $@@
+    $@
+ ###$@
+ ###$@
+    $@
+ ###$@
+ ###$@
+  # $@
+ #  $@@
+    #$@
+   # $@
+  #  $@
+ #   $@
+  #  $@
+   # $@
+    #$@
+     $@@
+      $@
+      $@
+ #####$@
+      $@
+ #####$@
+      $@
+      $@
+      $@@
+ #   $@
+  #  $@
+   # $@
+    #$@
+   # $@
+  #  $@
+ #   $@
+     $@@
+  ##### $@
+ #     #$@
+       #$@
+    ### $@
+    #   $@
+        $@
+    #   $@
+        $@@
+  ##### $@
+ #     #$@
+ # ### #$@
+ # ### #$@
+ # #### $@
+ #      $@
+  ##### $@
+        $@@
+    #   $@
+   # #  $@
+  #   # $@
+ #     #$@
+ #######$@
+ #     #$@
+ #     #$@
+        $@@
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+        $@@
+  ##### $@
+ #     #$@
+ #      $@
+ #      $@
+ #      $@
+ #     #$@
+  ##### $@
+        $@@
+ ###### $@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+ ###### $@
+        $@@
+ #######$@
+ #      $@
+ #      $@
+ #####  $@
+ #      $@
+ #      $@
+ #######$@
+        $@@
+ #######$@
+ #      $@
+ #      $@
+ #####  $@
+ #      $@
+ #      $@
+ #      $@
+        $@@
+  ##### $@
+ #     #$@
+ #      $@
+ #  ####$@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+ #     #$@
+ #     #$@
+ #     #$@
+ #######$@
+ #     #$@
+ #     #$@
+ #     #$@
+        $@@
+ ###$@
+  # $@
+  # $@
+  # $@
+  # $@
+  # $@
+ ###$@
+    $@@
+       #$@
+       #$@
+       #$@
+       #$@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+ #    #$@
+ #   # $@
+ #  #  $@
+ ###   $@
+ #  #  $@
+ #   # $@
+ #    #$@
+       $@@
+ #      $@
+ #      $@
+ #      $@
+ #      $@
+ #      $@
+ #      $@
+ #######$@
+        $@@
+ #     #$@
+ ##   ##$@
+ # # # #$@
+ #  #  #$@
+ #     #$@
+ #     #$@
+ #     #$@
+        $@@
+ #     #$@
+ ##    #$@
+ # #   #$@
+ #  #  #$@
+ #   # #$@
+ #    ##$@
+ #     #$@
+        $@@
+ #######$@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+ #######$@
+        $@@
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+ #      $@
+ #      $@
+ #      $@
+        $@@
+  ##### $@
+ #     #$@
+ #     #$@
+ #     #$@
+ #   # #$@
+ #    # $@
+  #### #$@
+        $@@
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+ #   #  $@
+ #    # $@
+ #     #$@
+        $@@
+  ##### $@
+ #     #$@
+ #      $@
+  ##### $@
+       #$@
+ #     #$@
+  ##### $@
+        $@@
+ #######$@
+    #   $@
+    #   $@
+    #   $@
+    #   $@
+    #   $@
+    #   $@
+        $@@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+  #   # $@
+   # #  $@
+    #   $@
+        $@@
+ #     #$@
+ #  #  #$@
+ #  #  #$@
+ #  #  #$@
+ #  #  #$@
+ #  #  #$@
+  ## ## $@
+        $@@
+ #     #$@
+  #   # $@
+   # #  $@
+    #   $@
+   # #  $@
+  #   # $@
+ #     #$@
+        $@@
+ #     #$@
+  #   # $@
+   # #  $@
+    #   $@
+    #   $@
+    #   $@
+    #   $@
+        $@@
+ #######$@
+      # $@
+     #  $@
+    #   $@
+   #    $@
+  #     $@
+ #######$@
+        $@@
+ #####$@
+ #    $@
+ #    $@
+ #    $@
+ #    $@
+ #    $@
+ #####$@
+      $@@
+ #      $@
+  #     $@
+   #    $@
+    #   $@
+     #  $@
+      # $@
+       #$@
+        $@@
+ #####$@
+     #$@
+     #$@
+     #$@
+     #$@
+     #$@
+ #####$@
+      $@@
+   #  $@
+  # # $@
+ #   #$@
+      $@
+      $@
+      $@
+      $@
+      $@@
+        $@
+        $@
+        $@
+        $@
+        $@
+        $@
+        $@
+ #######$@@
+ ###$@
+ ###$@
+  # $@
+   #$@
+    $@
+    $@
+    $@
+    $@@
+       $@
+   ##  $@
+  #  # $@
+ #    #$@
+ ######$@
+ #    #$@
+ #    #$@
+       $@@
+       $@
+ ##### $@
+ #    #$@
+ ##### $@
+ #    #$@
+ #    #$@
+ ##### $@
+       $@@
+       $@
+  #### $@
+ #    #$@
+ #     $@
+ #     $@
+ #    #$@
+  #### $@
+       $@@
+       $@
+ ##### $@
+ #    #$@
+ #    #$@
+ #    #$@
+ #    #$@
+ ##### $@
+       $@@
+       $@
+ ######$@
+ #     $@
+ ##### $@
+ #     $@
+ #     $@
+ ######$@
+       $@@
+       $@
+ ######$@
+ #     $@
+ ##### $@
+ #     $@
+ #     $@
+ #     $@
+       $@@
+       $@
+  #### $@
+ #    #$@
+ #     $@
+ #  ###$@
+ #    #$@
+  #### $@
+       $@@
+       $@
+ #    #$@
+ #    #$@
+ ######$@
+ #    #$@
+ #    #$@
+ #    #$@
+       $@@
+  $@
+ #$@
+ #$@
+ #$@
+ #$@
+ #$@
+ #$@
+  $@@
+       $@
+      #$@
+      #$@
+      #$@
+      #$@
+ #    #$@
+  #### $@
+       $@@
+       $@
+ #    #$@
+ #   # $@
+ ####  $@
+ #  #  $@
+ #   # $@
+ #    #$@
+       $@@
+       $@
+ #     $@
+ #     $@
+ #     $@
+ #     $@
+ #     $@
+ ######$@
+       $@@
+       $@
+ #    #$@
+ ##  ##$@
+ # ## #$@
+ #    #$@
+ #    #$@
+ #    #$@
+       $@@
+       $@
+ #    #$@
+ ##   #$@
+ # #  #$@
+ #  # #$@
+ #   ##$@
+ #    #$@
+       $@@
+       $@
+  #### $@
+ #    #$@
+ #    #$@
+ #    #$@
+ #    #$@
+  #### $@
+       $@@
+       $@
+ ##### $@
+ #    #$@
+ #    #$@
+ ##### $@
+ #     $@
+ #     $@
+       $@@
+       $@
+  #### $@
+ #    #$@
+ #    #$@
+ #  # #$@
+ #   # $@
+  ### #$@
+       $@@
+       $@
+ ##### $@
+ #    #$@
+ #    #$@
+ ##### $@
+ #   # $@
+ #    #$@
+       $@@
+       $@
+  #### $@
+ #     $@
+  #### $@
+      #$@
+ #    #$@
+  #### $@
+       $@@
+      $@
+ #####$@
+   #  $@
+   #  $@
+   #  $@
+   #  $@
+   #  $@
+      $@@
+       $@
+ #    #$@
+ #    #$@
+ #    #$@
+ #    #$@
+ #    #$@
+  #### $@
+       $@@
+       $@
+ #    #$@
+ #    #$@
+ #    #$@
+ #    #$@
+  #  # $@
+   ##  $@
+       $@@
+       $@
+ #    #$@
+ #    #$@
+ #    #$@
+ # ## #$@
+ ##  ##$@
+ #    #$@
+       $@@
+       $@
+ #    #$@
+  #  # $@
+   ##  $@
+   ##  $@
+  #  # $@
+ #    #$@
+       $@@
+      $@
+ #   #$@
+  # # $@
+   #  $@
+   #  $@
+   #  $@
+   #  $@
+      $@@
+       $@
+ ######$@
+     # $@
+    #  $@
+   #   $@
+  #    $@
+ ######$@
+       $@@
+   ###$@
+  #   $@
+  #   $@
+ ##   $@
+  #   $@
+  #   $@
+   ###$@
+      $@@
+ #$@
+ #$@
+ #$@
+  $@
+ #$@
+ #$@
+ #$@
+  $@@
+ ###  $@
+    # $@
+    # $@
+    ##$@
+    # $@
+    # $@
+ ###  $@
+      $@@
+  ##    $@
+ #  #  #$@
+     ## $@
+        $@
+        $@
+        $@
+        $@
+        $@@
+ #  #  #$@
+   # #  $@
+  #   # $@
+ #     #$@
+ #######$@
+ #     #$@
+ #     #$@
+        $@@
+ #     #$@
+  ##### $@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+ #     #$@
+        $@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+       $@
+ #    #$@
+  #### $@
+ #    #$@
+ ######$@
+ #    #$@
+ #    #$@
+       $@@
+       $@
+ #    #$@
+  #### $@
+ #    #$@
+ #    #$@
+ #    #$@
+  #### $@
+       $@@
+       $@
+ #    #$@
+       $@
+ #    #$@
+ #    #$@
+ #    #$@
+  #### $@
+       $@@
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+ #      $@@
+160  NO-BREAK SPACE
+         $@
+         $@
+         $@
+         $@
+ ########$@
+    ##   $@
+    ##   $@
+    ##   $@@
+169  COPYRIGHT SIGN
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@@
+176  DEGREE SIGN
+         $@
+         $@
+         $@
+         $@
+ ########$@
+         $@
+         $@
+         $@@
+178  SUPERSCRIPT TWO
+    ##   $@
+    ##   $@
+    ##   $@
+    ##   $@
+ ########$@
+    ##   $@
+    ##   $@
+    ##   $@@
+183  MIDDLE DOT
+ ##   $@
+ ##   $@
+ #####$@
+ ##   $@
+ #####$@
+ ##   $@
+ ##   $@
+ ##   $@@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+ #  #  #$@
+   # #  $@
+  #   # $@
+ #     #$@
+ #######$@
+ #     #$@
+ #     #$@
+        $@@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+ #     #$@
+  ##### $@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+ #     #$@
+        $@
+ #     #$@
+ #     #$@
+ #     #$@
+ #     #$@
+  ##### $@
+        $@@
+223  LATIN SMALL LETTER SHARP S
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+ #     #$@
+ #     #$@
+ ###### $@
+ #      $@@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+       $@
+ #    #$@
+  #### $@
+ #    #$@
+ ######$@
+ #    #$@
+ #    #$@
+       $@@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+       $@
+ #    #$@
+  #### $@
+ #    #$@
+ #    #$@
+ #    #$@
+  #### $@
+       $@@
+247  DIVISION SIGN
+ #### $@
+ #### $@
+ #### $@
+ #### $@
+ #####$@
+ #### $@
+ #### $@
+ #### $@@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+       $@
+ #    #$@
+       $@
+ #    #$@
+ #    #$@
+ #    #$@
+  #### $@
+       $@@
+0x0401  CYRILLIC CAPITAL LETTER IO
+ ########$@
+ ########$@
+ ########$@
+ ########$@
+ ########$@
+ ########$@
+ ########$@
+ ########$@@
+0x0410  CYRILLIC CAPITAL LETTER A
+    ####$@
+   ## ##$@
+  ##  ##$@
+ ##   ##$@
+ #######$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x0411  CYRILLIC CAPITAL LETTER BE
+ #######$@
+ ##     $@
+ ##     $@
+ ###### $@
+ ##   ##$@
+ ##   ##$@
+ ###### $@
+        $@@
+0x0412  CYRILLIC CAPITAL LETTER VE
+ ###### $@
+ ##   ##$@
+ ##   ##$@
+ ###### $@
+ ##   ##$@
+ ##   ##$@
+ ###### $@
+        $@@
+0x0413  CYRILLIC CAPITAL LETTER GHE
+ #######$@
+ ##     $@
+ ##     $@
+ ##     $@
+ ##     $@
+ ##     $@
+ ##     $@
+        $@@
+0x0414  CYRILLIC CAPITAL LETTER DE
+   #### $@
+  ## ## $@
+  ## ## $@
+  ## ## $@
+  ## ## $@
+ #######$@
+ ##   ##$@
+        $@@
+0x0415  CYRILLIC CAPITAL LETTER IE
+ #######$@
+ ##     $@
+ ##     $@
+ ###### $@
+ ##     $@
+ ##     $@
+ #######$@
+        $@@
+0x0416  CYRILLIC CAPITAL LETTER ZHE
+ ## # ##$@
+  # # # $@
+   ###  $@
+   ###  $@
+  # # # $@
+  # # # $@
+ ## # ##$@
+        $@@
+0x0417  CYRILLIC CAPITAL LETTER ZE
+  ##### $@
+ ##   ##$@
+      ##$@
+    ##  $@
+      ##$@
+ ##   ##$@
+  ##### $@
+        $@@
+0x0418  CYRILLIC CAPITAL LETTER I
+ ##   ##$@
+ ##  ###$@
+ ##  ###$@
+ ## # ##$@
+ ###  ##$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x0419  CYRILLIC CAPITAL LETTER SHORT I
+ ## ## #$@
+ ##   ##$@
+ ##  ###$@
+ ## # ##$@
+ ###  ##$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x041A  CYRILLIC CAPITAL LETTER KA
+ ##   ##$@
+ ##  ## $@
+ ## ##  $@
+ #####  $@
+ ##  ## $@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x041B  CYRILLIC CAPITAL LETTER EL
+   #####$@
+  ##  ##$@
+  ##  ##$@
+  ##  ##$@
+  ##  ##$@
+  ##  ##$@
+ ##   ##$@
+        $@@
+0x041C  CYRILLIC CAPITAL LETTER EM
+ ##   ##$@
+ ##   ##$@
+ ### ###$@
+ ## # ##$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x041D  CYRILLIC CAPITAL LETTER EN
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ #######$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x041E  CYRILLIC CAPITAL LETTER O
+  ##### $@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+  ##### $@
+        $@@
+0x041F  CYRILLIC CAPITAL LETTER PE
+ #######$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x0420  CYRILLIC CAPITAL LETTER ER
+ ###### $@
+ ##   ##$@
+ ##   ##$@
+ ###### $@
+ ##     $@
+ ##     $@
+ ##     $@
+        $@@
+0x0421  CYRILLIC CAPITAL LETTER ES
+  ##### $@
+ ##   ##$@
+ ##     $@
+ ##     $@
+ ##     $@
+ ##   ##$@
+  ##### $@
+        $@@
+0x0422  CYRILLIC CAPITAL LETTER TE
+ ###### $@
+   ##   $@
+   ##   $@
+   ##   $@
+   ##   $@
+   ##   $@
+   ##   $@
+        $@@
+0x0423  CYRILLIC CAPITAL LETTER U
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+  ######$@
+      ##$@
+ ##   ##$@
+  ##### $@
+        $@@
+0x0424  CYRILLIC CAPITAL LETTER EF
+    #   $@
+  ##### $@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+  ##### $@
+    #   $@
+        $@@
+0x0425  CYRILLIC CAPITAL LETTER HA
+ ##   ##$@
+  ## ## $@
+   ###  $@
+   ###  $@
+   ###  $@
+  ## ## $@
+ ##   ##$@
+        $@@
+0x0426  CYRILLIC CAPITAL LETTER TSE
+ ##  ## $@
+ ##  ## $@
+ ##  ## $@
+ ##  ## $@
+ ##  ## $@
+ ##  ## $@
+ #######$@
+       #$@@
+0x0427  CYRILLIC CAPITAL LETTER CHE
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+  ######$@
+      ##$@
+      ##$@
+      ##$@
+        $@@
+0x0428  CYRILLIC CAPITAL LETTER SHA
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ #######$@
+        $@@
+0x0429  CYRILLIC CAPITAL LETTER SHCHA
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ #######$@
+       #$@@
+0x042A  CYRILLIC CAPITAL LETTER HARD SIGN
+ ###    $@
+ ###    $@
+  ##    $@
+  ##### $@
+  ##  ##$@
+  ##  ##$@
+  ##### $@
+        $@@
+0x042B  CYRILLIC CAPITAL LETTER YERU
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ####  #$@
+ ##  # #$@
+ ##  # #$@
+ ####  #$@
+        $@@
+0x042C  CYRILLIC CAPITAL LETTER SOFT SIGN
+ ##     $@
+ ##     $@
+ ##     $@
+ ###### $@
+ ##   ##$@
+ ##   ##$@
+ ###### $@
+        $@@
+0x042D  CYRILLIC CAPITAL LETTER E
+  ##### $@
+ ##   ##$@
+      ##$@
+   #####$@
+      ##$@
+ ##   ##$@
+  ##### $@
+        $@@
+0x042E  CYRILLIC CAPITAL LETTER YU
+ ##  ## $@
+ ## # ##$@
+ ## # ##$@
+ #### ##$@
+ ## # ##$@
+ ## # ##$@
+ ##  ## $@
+        $@@
+0x042F  CYRILLIC CAPITAL LETTER YA
+   #####$@
+  ##  ##$@
+  ##  ##$@
+   #####$@
+   ## ##$@
+  ##  ##$@
+ ##   ##$@
+        $@@
+0x0430  CYRILLIC SMALL LETTER A
+        $@
+        $@
+  ####  $@
+     ## $@
+  ##### $@
+ ##  ## $@
+  ######$@
+        $@@
+0x0431  CYRILLIC SMALL LETTER BE
+        $@
+     ## $@
+  ####  $@
+ ##     $@
+ ###### $@
+ ##   ##$@
+  ##### $@
+        $@@
+0x0432  CYRILLIC SMALL LETTER VE
+        $@
+        $@
+ #####  $@
+ ##  ## $@
+ ###### $@
+ ##   ##$@
+ ###### $@
+        $@@
+0x0433  CYRILLIC SMALL LETTER GHE
+        $@
+        $@
+  ##### $@
+      ##$@
+  ##### $@
+ ##     $@
+  ######$@
+        $@@
+0x0434  CYRILLIC SMALL LETTER DE
+        $@
+   #### $@
+      ##$@
+   #####$@
+  ##  ##$@
+ ##   ##$@
+  ##### $@
+        $@@
+0x0435  CYRILLIC SMALL LETTER IE
+        $@
+        $@
+  ##### $@
+ ##   ##$@
+ ###### $@
+ ##     $@
+  ##### $@
+        $@@
+0x0436  CYRILLIC SMALL LETTER ZHE
+        $@
+        $@
+ ## # ##$@
+  # # # $@
+   ###  $@
+  # # # $@
+ ## # ##$@
+        $@@
+0x0437  CYRILLIC SMALL LETTER ZE
+        $@
+        $@
+  ##### $@
+ ##   ##$@
+    ### $@
+ ##   ##$@
+  ##### $@
+        $@@
+0x0438  CYRILLIC SMALL LETTER I
+        $@
+        $@
+ ##   ##$@
+ ##  ###$@
+ ## # ##$@
+ ###  ##$@
+ ##   ##$@
+        $@@
+0x0439  CYRILLIC SMALL LETTER SHORT I
+        $@
+    ##  $@
+ ##   ##$@
+ ##  ###$@
+ ## # ##$@
+ ###  ##$@
+ ##   ##$@
+        $@@
+0x043A  CYRILLIC SMALL LETTER KA
+        $@
+        $@
+ ##   ##$@
+ ##  ## $@
+ #####  $@
+ ##  ## $@
+ ##   ##$@
+        $@@
+0x043B  CYRILLIC SMALL LETTER EL
+        $@
+        $@
+   #####$@
+  ##  ##$@
+  ##  ##$@
+  ##  ##$@
+ ##   ##$@
+        $@@
+0x043C  CYRILLIC SMALL LETTER EM
+        $@
+        $@
+ ##   ##$@
+ ### ###$@
+ ## # ##$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x043D  CYRILLIC SMALL LETTER EN
+        $@
+        $@
+ ##   ##$@
+ ##   ##$@
+ #######$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x043E  CYRILLIC SMALL LETTER O
+        $@
+        $@
+  ##### $@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+  ##### $@
+        $@@
+0x043F  CYRILLIC SMALL LETTER PE
+        $@
+        $@
+ ###### $@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+        $@@
+0x0440  CYRILLIC SMALL LETTER ER
+        $@
+        $@
+ ###### $@
+ ##   ##$@
+ ###### $@
+ ##     $@
+ ##     $@
+        $@@
+0x0441  CYRILLIC SMALL LETTER ES
+        $@
+        $@
+  ##### $@
+ ##     $@
+ ##     $@
+ ##     $@
+  ##### $@
+        $@@
+0x0442  CYRILLIC SMALL LETTER TE
+        $@
+        $@
+ ###### $@
+   ##   $@
+   ##   $@
+   ##   $@
+   ##   $@
+        $@@
+0x0443  CYRILLIC SMALL LETTER U
+        $@
+        $@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+  ######$@
+      ##$@
+  ##### $@@
+0x0444  CYRILLIC SMALL LETTER EF
+        $@
+    #   $@
+  ##### $@
+ ## # ##$@
+ ## # ##$@
+  ##### $@
+    #   $@
+        $@@
+0x0445  CYRILLIC SMALL LETTER HA
+        $@
+        $@
+ ##   ##$@
+  ## ## $@
+   ###  $@
+  ## ## $@
+ ##   ##$@
+        $@@
+0x0446  CYRILLIC SMALL LETTER TSE
+        $@
+        $@
+ ##   ##$@
+ ##   ##$@
+ ##   ##$@
+ ##  ## $@
+  ### ##$@
+       #$@@
+0x0447  CYRILLIC SMALL LETTER CHE
+        $@
+        $@
+ ##   ##$@
+ ##   ##$@
+  ######$@
+      ##$@
+      ##$@
+        $@@
+0x0448  CYRILLIC SMALL LETTER SHA
+        $@
+        $@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ #######$@
+        $@@
+0x0449  CYRILLIC SMALL LETTER SHCHA
+        $@
+        $@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ ## # ##$@
+ #######$@
+       #$@@
+0x044A  CYRILLIC SMALL LETTER HARD SIGN
+        $@
+        $@
+ ###    $@
+  ##    $@
+  ##### $@
+  ##  ##$@
+  ##### $@
+        $@@
+0x044B  CYRILLIC SMALL LETTER YERU
+        $@
+        $@
+ ##   ##$@
+ ##   ##$@
+ ####  #$@
+ ##  # #$@
+ ####  #$@
+        $@@
+0x044C  CYRILLIC SMALL LETTER SOFT SIGN
+        $@
+        $@
+ ##     $@
+ ##     $@
+ ###### $@
+ ##   ##$@
+ ###### $@
+        $@@
+0x044D  CYRILLIC SMALL LETTER E
+        $@
+        $@
+ ###### $@
+      ##$@
+   #####$@
+      ##$@
+ ###### $@
+        $@@
+0x044E  CYRILLIC SMALL LETTER YU
+        $@
+        $@
+ #  ### $@
+ # ## ##$@
+ #### ##$@
+ # ## ##$@
+ #  ### $@
+        $@@
+0x044F  CYRILLIC SMALL LETTER YA
+        $@
+        $@
+   #####$@
+  ##  ##$@
+   #####$@
+  ##  ##$@
+ ##   ##$@
+        $@@
+0x0451  CYRILLIC SMALL LETTER IO
+         $@
+         $@
+ ########$@
+         $@
+ #### ###$@
+   ## ## $@
+   ## ## $@
+   ## ## $@@
+0x2219  BULLET OPERATOR
+   ## ##$@
+   ## ##$@
+   ## ##$@
+   ## ##$@
+ #######$@
+        $@
+        $@
+        $@@
+0x221A  SQUARE ROOT
+    ## $@
+    ## $@
+ ##### $@
+    ## $@
+ ##### $@
+       $@
+       $@
+       $@@
+0x2248  ALMOST EQUAL TO
+       $@
+       $@
+       $@
+       $@
+ ##### $@
+    ## $@
+    ## $@
+    ## $@@
+0x2264  LESS-THAN OR EQUAL TO
+ ##   $@
+ ##   $@
+ ##   $@
+ ##   $@
+ #####$@
+      $@
+      $@
+      $@@
+0x2265  GREATER-THAN OR EQUAL TO
+    ##   $@
+    ##   $@
+    ##   $@
+    ##   $@
+ ########$@
+         $@
+         $@
+         $@@
+0x2320  TOP HALF INTEGRAL
+        $@
+        $@
+ #######$@
+      ##$@
+ #### ##$@
+   ## ##$@
+   ## ##$@
+   ## ##$@@
+0x2321  BOTTOM HALF INTEGRAL
+ ##   $@
+ ##   $@
+ ##   $@
+ ##   $@
+ #####$@
+ ##   $@
+ ##   $@
+ ##   $@@
+0x2500  BOX DRAWINGS LIGHT HORIZONTAL
+   ##  $@
+       $@
+   ##  $@
+  ##   $@
+ ##    $@
+ ##  ##$@
+  #### $@
+       $@@
+0x2502  BOX DRAWINGS LIGHT VERTICAL
+       $@
+       $@
+       $@
+ ######$@
+ ##    $@
+ ##    $@
+       $@
+       $@@
+0x250C  BOX DRAWINGS LIGHT DOWN AND RIGHT
+       $@
+       $@
+       $@
+ ######$@
+     ##$@
+     ##$@
+       $@
+       $@@
+0x2510  BOX DRAWINGS LIGHT DOWN AND LEFT
+ ##    ##$@
+ ##   ## $@
+ ##  ##  $@
+ ## #### $@
+   ##  ##$@
+  ##  ## $@
+ ##  ##  $@
+     ####$@@
+0x2514  BOX DRAWINGS LIGHT UP AND RIGHT
+ ##    ##$@
+ ##   ## $@
+ ##  ##  $@
+ ## ## ##$@
+   ## ###$@
+  ## ####$@
+ ##  ####$@
+       ##$@@
+0x2518  BOX DRAWINGS LIGHT UP AND LEFT
+ ## $@
+ ## $@
+    $@
+ ## $@
+ ## $@
+ ## $@
+ ## $@
+    $@@
+0x251C  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+         $@
+   ##  ##$@
+  ##  ## $@
+ ##  ##  $@
+  ##  ## $@
+   ##  ##$@
+         $@
+         $@@
+0x2524  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+         $@
+ ##  ##  $@
+  ##  ## $@
+   ##  ##$@
+  ##  ## $@
+ ##  ##  $@
+         $@
+         $@@
+0x252C  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+  # #$@
+ # # $@
+  # #$@
+ # # $@
+  # #$@
+ # # $@
+  # #$@
+ # # $@@
+0x2534  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+  # # # #$@
+ # # # # $@
+  # # # #$@
+ # # # # $@
+  # # # #$@
+ # # # # $@
+  # # # #$@
+ # # # # $@@
+0x253C  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ ## ## ##$@
+  ### ###$@
+ ## ## ##$@
+ ### ### $@
+ ## ## ##$@
+  ### ###$@
+ ## ## ##$@
+ ### ### $@@
+0x2550  BOX DRAWINGS DOUBLE HORIZONTAL
+ ## ## $@
+ ## ## $@
+ ## ###$@
+ ##    $@
+ ######$@
+       $@
+       $@
+       $@@
+0x2551  BOX DRAWINGS DOUBLE VERTICAL
+       $@
+       $@
+ ######$@
+ ##    $@
+ ## ###$@
+ ## ## $@
+ ## ## $@
+ ## ## $@@
+0x2552  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+   ## ## $@
+   ## ## $@
+ #### ###$@
+         $@
+ ########$@
+         $@
+         $@
+         $@@
+0x2553  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ #### $@
+ #### $@
+ #####$@
+ ##   $@
+ #####$@
+ #### $@
+ #### $@
+ #### $@@
+0x2554  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+         $@
+         $@
+ ########$@
+         $@
+ ########$@
+         $@
+         $@
+         $@@
+0x2555  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+   #### $@
+   #### $@
+ #######$@
+        $@
+ #######$@
+   #### $@
+   #### $@
+   #### $@@
+0x2556  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    ##   $@
+    ##   $@
+ ########$@
+         $@
+ ########$@
+         $@
+         $@
+         $@@
+0x2557  BOX DRAWINGS DOUBLE DOWN AND LEFT
+   ## ## $@
+   ## ## $@
+   ## ## $@
+   ## ## $@
+ ########$@
+         $@
+         $@
+         $@@
+0x2558  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+         $@
+         $@
+ ########$@
+         $@
+ ########$@
+    ##   $@
+    ##   $@
+    ##   $@@
+0x2559  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+         $@
+         $@
+         $@
+         $@
+ ########$@
+   ## ## $@
+   ## ## $@
+   ## ## $@@
+0x255A  BOX DRAWINGS DOUBLE UP AND RIGHT
+ ## ## $@
+ ## ## $@
+ ## ## $@
+ ## ## $@
+ ######$@
+       $@
+       $@
+       $@@
+0x255B  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ ##   $@
+ ##   $@
+ #####$@
+ ##   $@
+ #####$@
+      $@
+      $@
+      $@@
+0x255C  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+      $@
+      $@
+ #####$@
+ ##   $@
+ #####$@
+ ##   $@
+ ##   $@
+ ##   $@@
+0x255D  BOX DRAWINGS DOUBLE UP AND LEFT
+       $@
+       $@
+       $@
+       $@
+ ######$@
+ ## ## $@
+ ## ## $@
+ ## ## $@@
+0x255E  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+   ## ## $@
+   ## ## $@
+   ## ## $@
+   ## ## $@
+ ########$@
+   ## ## $@
+   ## ## $@
+   ## ## $@@
+0x255F  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    ##   $@
+    ##   $@
+ ########$@
+    ##   $@
+ ########$@
+    ##   $@
+    ##   $@
+    ##   $@@
+0x2560  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    ## $@
+    ## $@
+    ## $@
+    ## $@
+ ##### $@
+       $@
+       $@
+       $@@
+0x2561  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+      $@
+      $@
+      $@
+      $@
+ #####$@
+ ##   $@
+ ##   $@
+ ##   $@@
+0x2562  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+         $@
+         $@
+         $@
+         $@
+ ########$@
+ ########$@
+ ########$@
+ ########$@@
+0x2563  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ ####  $@
+ ####  $@
+ ####  $@
+ ####  $@
+ ####  $@
+ ####  $@
+ ####  $@
+ ####  $@@
+0x2564  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@@
+0x2565  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ ########$@
+ ########$@
+ ########$@
+ ########$@
+         $@
+         $@
+         $@
+         $@@
+0x2566  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+  ###  $@
+ ## ## $@
+ ## ## $@
+  ###  $@
+       $@
+       $@
+       $@
+       $@@
+0x2567  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    $@
+    $@
+    $@
+ ## $@
+ ## $@
+    $@
+    $@
+    $@@
+0x2568  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    $@
+    $@
+    $@
+    $@
+ ## $@
+    $@
+    $@
+    $@@
+0x2569  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+     ####$@
+     ##  $@
+     ##  $@
+     ##  $@
+ ### ##  $@
+  ## ##  $@
+   ####  $@
+    ###  $@@
+0x256A  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ ####  $@
+ ## ## $@
+ ## ## $@
+ ## ## $@
+ ## ## $@
+       $@
+       $@
+       $@@
+0x256B  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ ###  $@
+   ## $@
+  ##  $@
+ ##   $@
+ #### $@
+      $@
+      $@
+      $@@
+0x256C  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+      $@
+      $@
+ #### $@
+ #### $@
+ #### $@
+ #### $@
+      $@
+      $@@
+0x2580  UPPER HALF BLOCK
+ ## $@
+ ## $@
+ ## $@
+ ## $@
+ ## $@
+ ## $@
+ ## $@
+ ## $@@
+0x2584  LOWER HALF BLOCK
+    ## $@
+    ## $@
+    ## $@
+    ## $@
+ ##### $@
+    ## $@
+    ## $@
+    ## $@@
+0x2588  FULL BLOCK
+    ## $@
+    ## $@
+ ##### $@
+    ## $@
+ ##### $@
+    ## $@
+    ## $@
+    ## $@@
+0x258C  LEFT HALF BLOCK
+   ####$@
+   ####$@
+   ####$@
+   ####$@
+ ######$@
+   ####$@
+   ####$@
+   ####$@@
+0x2590  RIGHT HALF BLOCK
+        $@
+        $@
+        $@
+        $@
+ #######$@
+   ## ##$@
+   ## ##$@
+   ## ##$@@
+0x2591  LIGHT SHADE
+       $@
+       $@
+ ##### $@
+    ## $@
+ ##### $@
+    ## $@
+    ## $@
+    ## $@@
+0x2592  MEDIUM SHADE
+   ####$@
+   ####$@
+ ######$@
+     ##$@
+ ######$@
+   ####$@
+   ####$@
+   ####$@@
+0x2593  DARK SHADE
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@
+ ####$@@
+0x25A0  BLACK SQUARE
+   ## ##$@
+   ## ##$@
+ #### ##$@
+      ##$@
+ #######$@
+        $@
+        $@
+        $@@
+0x30A2  A
+ ##########$@
+       ### $@
+      #    $@
+     #     $@
+    #      $@
+   #       $@
+  #        $@
+           $@@
+0x30A4  I
+       ##$@
+     ##  $@
+   ## #  $@
+ ##   #  $@
+      #  $@
+      #  $@
+      #  $@
+         $@@
+0x30A6  U
+     #     $@
+ ##########$@
+ #        #$@
+        ## $@
+      ##   $@
+    ##     $@
+  ##       $@
+           $@@
+0x30A8  E
+           $@
+   ####### $@
+      #    $@
+      #    $@
+      #    $@
+      #    $@
+ ##########$@
+           $@@
+0x30AA  O
+        #  $@
+ ##########$@
+       ##  $@
+     ## #  $@
+   ##   #  $@
+ ##    ##  $@
+        #  $@
+           $@@
+0x30AB  KA
+      #    $@
+ ##########$@
+     #    #$@
+     #    #$@
+    #     #$@
+   #   # # $@
+  #     #  $@
+           $@@
+0x30AD  KI
+ # #    $@
+  #   # $@
+ # # #  $@
+    #   $@
+   # #  $@
+  #   # $@
+       #$@
+        $@@
+0x30AF  KU
+    #      $@
+   ########$@
+  #       #$@
+ #      ## $@
+      ##   $@
+    ##     $@
+  ##       $@
+           $@@
+0x30B1  KE
+    #      $@
+   ########$@
+  #    #   $@
+ #    #    $@
+     #     $@
+    #      $@
+   #       $@
+           $@@
+0x30B3  KO
+           $@
+ ##########$@
+          #$@
+          #$@
+          #$@
+          #$@
+ ######### $@
+           $@@
+0x30B5  SA
+   #    #  $@
+ ##########$@
+   #    #  $@
+        #  $@
+       #   $@
+      #    $@
+    #      $@
+           $@@
+0x30B7  SI (SHI)
+   #       #$@
+ #  #     # $@
+  #      #  $@
+       ##   $@
+     ##     $@
+   ##       $@
+ ##         $@
+            $@@
+0x30B9  SU
+ ########$@
+        #$@
+       # $@
+     ##  $@
+   ## #  $@
+  ##   # $@
+ #      #$@
+         $@@
+0x30BB  SE
+   #       $@
+   #       $@
+ ##########$@
+   #     # $@
+   #       $@
+   #       $@
+    ###### $@
+           $@@
+0x30BD  SO
+ #       #$@
+ #       #$@
+        # $@
+       #  $@
+     ##   $@
+   ##     $@
+ ##       $@
+          $@@
+0x30BF  TA
+    #     $@
+   #######$@
+  #     # $@
+ # #   #  $@
+    ###   $@
+   ##     $@
+ ##       $@
+          $@@
+0x30C1  TI (CHI)
+        ## $@
+  ######   $@
+      #    $@
+ ##########$@
+      #    $@
+      #    $@
+    ##     $@
+           $@@
+0x30C4  TU (TSU)
+ # #     #$@
+ # #     #$@
+        # $@
+       #  $@
+     ##   $@
+   ##     $@
+ ##       $@
+          $@@
+0x30C6  TE
+   ######  $@
+           $@
+ ##########$@
+      #    $@
+      #    $@
+     #     $@
+   ##      $@
+           $@@
+0x30C8  TO
+ #   $@
+ #   $@
+ ##  $@
+ # # $@
+ #  #$@
+ #   $@
+ #   $@
+     $@@
+0x30CA  NA
+      #    $@
+ ##########$@
+      #    $@
+      #    $@
+     #     $@
+    #      $@
+  ##       $@
+           $@@
+0x30CB  NI
+           $@
+           $@
+   ######  $@
+           $@
+           $@
+ ##########$@
+           $@
+           $@@
+0x30CC  NU
+ ##########$@
+          #$@
+    #    # $@
+     # ##  $@
+     ##    $@
+   ##  #   $@
+ ##     #  $@
+           $@@
+0x30CD  NE
+      #    $@
+ ##########$@
+         # $@
+      ###  $@
+   ######  $@
+ ##   #  ##$@
+      #    $@
+           $@@
+0x30CE  NO
+         #$@
+         #$@
+        # $@
+       #  $@
+     ##   $@
+   ##     $@
+ ##       $@
+          $@@
+0x30CF  HA
+          $@
+          $@
+    #  #  $@
+   #    # $@
+  #      #$@
+ #        $@
+          $@
+          $@@
+0x30D2  HI
+ #       $@
+ #   ### $@
+ ####    $@
+ #       $@
+ #       $@
+ #       $@
+  #######$@
+         $@@
+0x30D5  HU (FU)
+ ########$@
+        #$@
+        #$@
+       # $@
+     ##  $@
+   ##    $@
+ ##      $@
+         $@@
+0x30D8  HE
+           $@
+           $@
+   ##      $@
+  #  ##    $@
+ #     ##  $@
+         ##$@
+           $@
+           $@@
+0x30DB  HO
+      #    $@
+ ##########$@
+      #    $@
+   #  # #  $@
+  #   #  # $@
+ #   ##   #$@
+      #    $@
+           $@@
+0x30DE  MA
+           $@
+ ##########$@
+         # $@
+        #  $@
+     # #   $@
+      #    $@
+       #   $@
+           $@@
+0x30DF  MI
+ ####  $@
+     ##$@
+ ###   $@
+    ###$@
+       $@
+ ###   $@
+    ###$@
+       $@@
+0x30E0  MU
+      #    $@
+     #     $@
+    #      $@
+   #       $@
+  #     #  $@
+ ######### $@
+          #$@
+           $@@
+0x30E1  ME
+         #$@
+        # $@
+   #   #  $@
+    # #   $@
+     #    $@
+   ## #   $@
+ ##    #  $@
+          $@@
+0x30E2  MO
+   ######  $@
+     #     $@
+ ##########$@
+     #     $@
+     #     $@
+     #     $@
+      #### $@
+           $@@
+0x30E4  YA
+ #     ##  $@
+  #  ## #  $@
+  ###      $@
+ #  #      $@
+     #     $@
+      #    $@
+       #   $@
+           $@@
+0x30E6  YU
+           $@
+   ######  $@
+        #  $@
+        #  $@
+        #  $@
+ ##########$@
+           $@
+           $@@
+0x30E8  YO
+           $@
+   ######  $@
+       #   $@
+      #    $@
+      #    $@
+ ##########$@
+           $@
+           $@@
+0x30E9  RA
+   ######  $@
+           $@
+ ##########$@
+ #        #$@
+        ## $@
+      ##   $@
+    ##     $@
+           $@@
+0x30EA  RI
+ #   #$@
+ #   #$@
+ #   #$@
+ #   #$@
+    # $@
+   #  $@
+ ##   $@
+      $@@
+0x30EB  RU
+    # #    $@
+    # #    $@
+    # #    $@
+    # #   #$@
+   #  #  # $@
+  #   # #  $@
+ #    ##   $@
+           $@@
+0x30EC  RE
+ #       $@
+ #       $@
+ #       $@
+ #     ##$@
+ #   ##  $@
+ # ##    $@
+ ##      $@
+         $@@
+0x30ED  RO
+          $@
+ #########$@
+ #       #$@
+ #       #$@
+ #       #$@
+ #########$@
+          $@
+          $@@
+0x30EF  WA
+ ##########$@
+ #        #$@
+         # $@
+        #  $@
+       #   $@
+     ##    $@
+   ##      $@
+           $@@
+0x30F0  WI
+      #    $@
+   ####### $@
+    # #    $@
+    # #    $@
+ ##########$@
+      #    $@
+      #    $@
+           $@@
+0x30F1  WE
+ #########$@
+         #$@
+         #$@
+ ######## $@
+        # $@
+        # $@
+ ######## $@
+          $@@
+0x30F2  WO
+ ##########$@
+          #$@
+         # $@
+ ########  $@
+     ##    $@
+   ##      $@
+ ##        $@
+           $@@
+0x30F3  N
+         #$@
+ #       #$@
+  #     # $@
+       #  $@
+     ##   $@
+   ##     $@
+ ##       $@
+          $@@
+-0x0004  KATAMAP
+                                                    @
+a-A i-B u-C e-D o-E ka-F ki-G ku-H ke-I ko-J        @
+sa-K shi-L su-M se-N so-O ta-P chi-Q tsu-R te-S to-T@
+na-U ni-V nu-W ne-X no-Y ha-Z hi-a fu-b he-c ho-d   @
+ma-e mi-f mu-g me-h mo-i ya-j yu-k we-l yo-m        @
+ra-n ri-o ru-p re-q ro-r wa-s wi-t wo-u             @
+n-v                                                 @
+                                                    @@
+-0x0006  MOSCOWMAP
+a-a, b-b, v-v, g-g, d-d, e-e, zh-j, z-z, i-i@
+short i->, k-k, l-l, m-m, n-n, o-o, p-p, r-r@
+s-s, t-t, u-u, f-f, kh-h, ts-q, ch-c, sh-w  @
+shch-x, hard-\, yeru-|, soft-/, reverse e-~ @
+yu-`, ya-y                                  @
+Capitals use Latin capital letters, except: @
+Reverse E-<, Yu-@                           @
+No caps for short i, hard, yeru, soft.      @@
--- /dev/null
+++ b/fonts/big.flf
@@ -1,0 +1,2204 @@
+flf2a$ 8 6 59 15 10 0 24463 153
+Big by Glenn Chappell 4/93 -- based on Standard
+Includes ISO Latin-1
+Greek characters by Bruce Jakeway <pbjakeway@neumann.uwaterloo.ca>
+figlet release 2.2 -- November 1996
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@@
+  _ @
+ | |@
+ | |@
+ | |@
+ |_|@
+ (_)@
+    @
+    @@
+  _ _ @
+ ( | )@
+  V V @
+   $  @
+   $  @
+   $  @
+      @
+      @@
+    _  _   @
+  _| || |_ @
+ |_  __  _|@
+  _| || |_ @
+ |_  __  _|@
+   |_||_|  @
+           @
+           @@
+   _  @
+  | | @
+ / __)@
+ \__ \@
+ (   /@
+  |_| @
+      @
+      @@
+  _   __@
+ (_) / /@
+    / / @
+   / /  @
+  / / _ @
+ /_/ (_)@
+        @
+        @@
+         @
+   ___   @
+  ( _ )  @
+  / _ \/\@
+ | (_>  <@
+  \___/\/@
+         @
+         @@
+  _ @
+ ( )@
+ |/ @
+  $ @
+  $ @
+  $ @
+    @
+    @@
+   __@
+  / /@
+ | | @
+ | | @
+ | | @
+ | | @
+  \_\@
+     @@
+ __  @
+ \ \ @
+  | |@
+  | |@
+  | |@
+  | |@
+ /_/ @
+     @@
+     _    @
+  /\| |/\ @
+  \ ` ' / @
+ |_     _|@
+  / , . \ @
+  \/|_|\/ @
+          @
+          @@
+        @
+    _   @
+  _| |_ @
+ |_   _|@
+   |_|  @
+    $   @
+        @
+        @@
+    @
+    @
+    @
+    @
+  _ @
+ ( )@
+ |/ @
+    @@
+         @
+         @
+  ______ @
+ |______|@
+     $   @
+     $   @
+         @
+         @@
+    @
+    @
+    @
+    @
+  _ @
+ (_)@
+    @
+    @@
+      __@
+     / /@
+    / / @
+   / /  @
+  / /   @
+ /_/    @
+        @
+        @@
+   ___  @
+  / _ \ @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+  __ @
+ /_ |@
+  | |@
+  | |@
+  | |@
+  |_|@
+     @
+     @@
+  ___  @
+ |__ \ @
+   $) |@
+   / / @
+  / /_ @
+ |____|@
+       @
+       @@
+  ____  @
+ |___ \ @
+   __) |@
+  |__ < @
+  ___) |@
+ |____/ @
+        @
+        @@
+  _  _   @
+ | || |  @
+ | || |_ @
+ |__   _|@
+    | |  @
+    |_|  @
+         @
+         @@
+  _____ @
+ | ____|@
+ | |__  @
+ |___ \ @
+  ___) |@
+ |____/ @
+        @
+        @@
+    __  @
+   / /  @
+  / /_  @
+ | '_ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+  ______ @
+ |____  |@
+    $/ / @
+    / /  @
+   / /   @
+  /_/    @
+         @
+         @@
+   ___  @
+  / _ \ @
+ | (_) |@
+  > _ < @
+ | (_) |@
+  \___/ @
+        @
+        @@
+   ___  @
+  / _ \ @
+ | (_) |@
+  \__, |@
+    / / @
+   /_/  @
+        @
+        @@
+    @
+  _ @
+ (_)@
+  $ @
+  _ @
+ (_)@
+    @
+    @@
+    @
+  _ @
+ (_)@
+  $ @
+  _ @
+ ( )@
+ |/ @
+    @@
+    __@
+   / /@
+  / / @
+ < <  @
+  \ \ @
+   \_\@
+      @
+      @@
+         @
+  ______ @
+ |______|@
+  ______ @
+ |______|@
+         @
+         @
+         @@
+ __   @
+ \ \  @
+  \ \ @
+   > >@
+  / / @
+ /_/  @
+      @
+      @@
+  ___  @
+ |__ \ @
+    ) |@
+   / / @
+  |_|  @
+  (_)  @
+       @
+       @@
+          @
+    ____  @
+   / __ \ @
+  / / _` |@
+ | | (_| |@
+  \ \__,_|@
+   \____/ @
+          @@
+           @
+     /\    @
+    /  \   @
+   / /\ \  @
+  / ____ \ @
+ /_/    \_\@
+           @
+           @@
+  ____  @
+ |  _ \ @
+ | |_) |@
+ |  _ < @
+ | |_) |@
+ |____/ @
+        @
+        @@
+   _____ @
+  / ____|@
+ | | $   @
+ | | $   @
+ | |____ @
+  \_____|@
+         @
+         @@
+  _____  @
+ |  __ \ @
+ | |  | |@
+ | |  | |@
+ | |__| |@
+ |_____/ @
+         @
+         @@
+  ______ @
+ |  ____|@
+ | |__   @
+ |  __|  @
+ | |____ @
+ |______|@
+         @
+         @@
+  ______ @
+ |  ____|@
+ | |__   @
+ |  __|  @
+ | |     @
+ |_|     @
+         @
+         @@
+   _____ @
+  / ____|@
+ | |  __ @
+ | | |_ |@
+ | |__| |@
+  \_____|@
+         @
+         @@
+  _    _ @
+ | |  | |@
+ | |__| |@
+ |  __  |@
+ | |  | |@
+ |_|  |_|@
+         @
+         @@
+  _____ @
+ |_   _|@
+   | |  @
+   | |  @
+  _| |_ @
+ |_____|@
+        @
+        @@
+       _ @
+      | |@
+      | |@
+  _   | |@
+ | |__| |@
+  \____/ @
+         @
+         @@
+  _  __@
+ | |/ /@
+ | ' / @
+ |  <  @
+ | . \ @
+ |_|\_\@
+       @
+       @@
+  _      @
+ | |     @
+ | |     @
+ | |     @
+ | |____ @
+ |______|@
+         @
+         @@
+  __  __ @
+ |  \/  |@
+ | \  / |@
+ | |\/| |@
+ | |  | |@
+ |_|  |_|@
+         @
+         @@
+  _   _ @
+ | \ | |@
+ |  \| |@
+ | . ` |@
+ | |\  |@
+ |_| \_|@
+        @
+        @@
+   ____  @
+  / __ \ @
+ | |  | |@
+ | |  | |@
+ | |__| |@
+  \____/ @
+         @
+         @@
+  _____  @
+ |  __ \ @
+ | |__) |@
+ |  ___/ @
+ | |     @
+ |_|     @
+         @
+         @@
+   ____  @
+  / __ \ @
+ | |  | |@
+ | |  | |@
+ | |__| |@
+  \___\_\@
+         @
+         @@
+  _____  @
+ |  __ \ @
+ | |__) |@
+ |  _  / @
+ | | \ \ @
+ |_|  \_\@
+         @
+         @@
+   _____ @
+  / ____|@
+ | (___  @
+  \___ \ @
+  ____) |@
+ |_____/ @
+         @
+         @@
+  _______ @
+ |__   __|@
+    | |   @
+    | |   @
+    | |   @
+    |_|   @
+          @
+          @@
+  _    _ @
+ | |  | |@
+ | |  | |@
+ | |  | |@
+ | |__| |@
+  \____/ @
+         @
+         @@
+ __      __@
+ \ \    / /@
+  \ \  / / @
+   \ \/ /  @
+    \  /   @
+     \/    @
+           @
+           @@
+ __          __@
+ \ \        / /@
+  \ \  /\  / / @
+   \ \/  \/ /  @
+    \  /\  /   @
+     \/  \/    @
+               @
+               @@
+ __   __@
+ \ \ / /@
+  \ V / @
+   > <  @
+  / . \ @
+ /_/ \_\@
+        @
+        @@
+ __     __@
+ \ \   / /@
+  \ \_/ / @
+   \   /  @
+    | |   @
+    |_|   @
+          @
+          @@
+  ______@
+ |___  /@
+   $/ / @
+   / /  @
+  / /__ @
+ /_____|@
+        @
+        @@
+  ___ @
+ |  _|@
+ | |  @
+ | |  @
+ | |  @
+ | |_ @
+ |___|@
+      @@
+ __     @
+ \ \    @
+  \ \   @
+   \ \  @
+    \ \ @
+     \_\@
+        @
+        @@
+  ___ @
+ |_  |@
+   | |@
+   | |@
+   | |@
+  _| |@
+ |___|@
+      @@
+  /\ @
+ |/\|@
+   $ @
+   $ @
+   $ @
+   $ @
+     @
+     @@
+         @
+         @
+         @
+         @
+         @
+     $   @
+  ______ @
+ |______|@@
+  _ @
+ ( )@
+  \|@
+  $ @
+  $ @
+  $ @
+    @
+    @@
+        @
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+  _     @
+ | |    @
+ | |__  @
+ | '_ \ @
+ | |_) |@
+ |_.__/ @
+        @
+        @@
+       @
+       @
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+       @
+       @@
+      _ @
+     | |@
+   __| |@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+       @
+       @
+   ___ @
+  / _ \@
+ |  __/@
+  \___|@
+       @
+       @@
+   __ @
+  / _|@
+ | |_ @
+ |  _|@
+ | |  @
+ |_|  @
+      @
+      @@
+        @
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+   __/ |@
+  |___/ @@
+  _     @
+ | |    @
+ | |__  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @
+        @@
+  _ @
+ (_)@
+  _ @
+ | |@
+ | |@
+ |_|@
+    @
+    @@
+    _ @
+   (_)@
+    _ @
+   | |@
+   | |@
+   | |@
+  _/ |@
+ |__/ @@
+  _    @
+ | |   @
+ | | __@
+ | |/ /@
+ |   < @
+ |_|\_\@
+       @
+       @@
+  _ @
+ | |@
+ | |@
+ | |@
+ | |@
+ |_|@
+    @
+    @@
+            @
+            @
+  _ __ ___  @
+ | '_ ` _ \ @
+ | | | | | |@
+ |_| |_| |_|@
+            @
+            @@
+        @
+        @
+  _ __  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @
+        @@
+        @
+        @
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+        @
+        @
+  _ __  @
+ | '_ \ @
+ | |_) |@
+ | .__/ @
+ | |    @
+ |_|    @@
+        @
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+     | |@
+     |_|@@
+       @
+       @
+  _ __ @
+ | '__|@
+ | |   @
+ |_|   @
+       @
+       @@
+      @
+      @
+  ___ @
+ / __|@
+ \__ \@
+ |___/@
+      @
+      @@
+  _   @
+ | |  @
+ | |_ @
+ | __|@
+ | |_ @
+  \__|@
+      @
+      @@
+        @
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @
+        @@
+        @
+        @
+ __   __@
+ \ \ / /@
+  \ V / @
+   \_/  @
+        @
+        @@
+           @
+           @
+ __      __@
+ \ \ /\ / /@
+  \ V  V / @
+   \_/\_/  @
+           @
+           @@
+       @
+       @
+ __  __@
+ \ \/ /@
+  >  < @
+ /_/\_\@
+       @
+       @@
+        @
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__, |@
+   __/ |@
+  |___/ @@
+      @
+      @
+  ____@
+ |_  /@
+  / / @
+ /___|@
+      @
+      @@
+    __@
+   / /@
+  | | @
+ / /  @
+ \ \  @
+  | | @
+   \_\@
+      @@
+  _ @
+ | |@
+ | |@
+ | |@
+ | |@
+ | |@
+ | |@
+ |_|@@
+ __   @
+ \ \  @
+  | | @
+   \ \@
+   / /@
+  | | @
+ /_/  @
+      @@
+  /\/|@
+ |/\/ @
+   $  @
+   $  @
+   $  @
+   $  @
+      @
+      @@
+   _   _  @
+  (_)_(_) @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @
+          @@
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+  _   _ @
+ (_) (_)@
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+  _   _ @
+ (_) (_)@
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+  _   _ @
+ (_) (_)@
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @
+        @@
+   ___  @
+  / _ \ @
+ | | ) |@
+ | |< < @
+ | | ) |@
+ | ||_/ @
+ |_|    @
+        @@
+160  NO-BREAK SPACE
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@@
+161  INVERTED EXCLAMATION MARK
+  _ @
+ (_)@
+ | |@
+ | |@
+ | |@
+ |_|@
+    @
+    @@
+162  CENT SIGN
+       @
+    _  @
+   | | @
+  / __)@
+ | (__ @
+  \   )@
+   |_| @
+       @@
+163  POUND SIGN
+     ___   @
+    / ,_\  @
+  _| |_    @
+ |__ __|   @
+   | |____ @
+  (_,_____|@
+           @
+           @@
+164  CURRENCY SIGN
+        @
+ /\___/\@
+ \  _  /@
+ | (_) |@
+ / ___ \@
+ \/   \/@
+        @
+        @@
+165  YEN SIGN
+  __   __ @
+  \ \ / / @
+  _\ V /_ @
+ |___ ___|@
+ |___ ___|@
+    |_|   @
+          @
+          @@
+166  BROKEN BAR
+  _ @
+ | |@
+ | |@
+ |_|@
+  _ @
+ | |@
+ | |@
+ |_|@@
+167  SECTION SIGN
+    __ @
+  _/ _)@
+ / \ \ @
+ \ \\ \@
+  \ \_/@
+ (__/  @
+       @
+       @@
+168  DIAERESIS
+  _   _ @
+ (_) (_)@
+  $   $ @
+  $   $ @
+  $   $ @
+  $   $ @
+        @
+        @@
+169  COPYRIGHT SIGN
+    ________   @
+   /  ____  \  @
+  /  / ___|  \ @
+ |  | |       |@
+ |  | |___    |@
+  \  \____|  / @
+   \________/  @
+               @@
+170  FEMININE ORDINAL INDICATOR
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+ |_____|@
+    $   @
+        @
+        @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    ____@
+   / / /@
+  / / / @
+ < < <  @
+  \ \ \ @
+   \_\_\@
+        @
+        @@
+172  NOT SIGN
+         @
+         @
+  ______ @
+ |____  |@
+      |_|@
+     $   @
+         @
+         @@
+173  SOFT HYPHEN
+        @
+        @
+  _____ @
+ |_____|@
+    $   @
+    $   @
+        @
+        @@
+174  REGISTERED SIGN
+    ________   @
+   /  ____  \  @
+  /  |  _ \  \ @
+ |   | |_) |  |@
+ |   |  _ <   |@
+  \  |_| \_\ / @
+   \________/  @
+               @@
+175  MACRON
+  ______ @
+ |______|@
+     $   @
+     $   @
+     $   @
+     $   @
+         @
+         @@
+176  DEGREE SIGN
+   __  @
+  /  \ @
+ | () |@
+  \__/ @
+    $  @
+    $  @
+       @
+       @@
+177  PLUS-MINUS SIGN
+    _   @
+  _| |_ @
+ |_   _|@
+   |_|  @
+  _____ @
+ |_____|@
+        @
+        @@
+178  SUPERSCRIPT TWO
+  ___ @
+ |_  )@
+  / / @
+ /___|@
+   $  @
+   $  @
+      @
+      @@
+179  SUPERSCRIPT THREE
+  ____@
+ |__ /@
+  |_ \@
+ |___/@
+   $  @
+   $  @
+      @
+      @@
+180  ACUTE ACCENT
+  __@
+ /_/@
+  $ @
+  $ @
+  $ @
+  $ @
+    @
+    @@
+181  MICRO SIGN
+        @
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+ | ._,_|@
+ | |    @
+ |_|    @@
+182  PILCROW SIGN
+   ______ @
+  /      |@
+ | (| || |@
+  \__ || |@
+    | || |@
+    |_||_|@
+          @
+          @@
+183  MIDDLE DOT
+    @
+    @
+  _ @
+ (_)@
+  $ @
+  $ @
+    @
+    @@
+184  CEDILLA
+    @
+    @
+    @
+    @
+    @
+  _ @
+ )_)@
+    @@
+185  SUPERSCRIPT ONE
+  _ @
+ / |@
+ | |@
+ |_|@
+  $ @
+  $ @
+    @
+    @@
+186  MASCULINE ORDINAL INDICATOR
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+ |_____|@
+    $   @
+        @
+        @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ____   @
+ \ \ \  @
+  \ \ \ @
+   > > >@
+  / / / @
+ /_/_/  @
+        @
+        @@
+188  VULGAR FRACTION ONE QUARTER
+  _   __   @
+ / | / /   @
+ | |/ / _  @
+ |_/ / | | @
+  / /|_  _|@
+ /_/   |_| @
+           @
+           @@
+189  VULGAR FRACTION ONE HALF
+  _   __  @
+ / | / /  @
+ | |/ /__ @
+ |_/ /_  )@
+  / / / / @
+ /_/ /___|@
+          @
+          @@
+190  VULGAR FRACTION THREE QUARTERS
+  ____  __   @
+ |__ / / /   @
+  |_ \/ / _  @
+ |___/ / | | @
+    / /|_  _|@
+   /_/   |_| @
+             @
+             @@
+191  INVERTED QUESTION MARK
+    _  @
+   (_) @
+   | | @
+  / /  @
+ | (__ @
+  \___|@
+       @
+       @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+    __    @
+    \_\   @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @
+          @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+     __   @
+    /_/   @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @
+          @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    //\   @
+   |/_\|  @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @
+          @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+    /\/|  @
+   |/\/   @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @
+          @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+   _   _  @
+  (_)_(_) @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @
+          @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+     _    @
+    (o)   @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @
+          @@
+198  LATIN CAPITAL LETTER AE
+      _______ @
+     /   ____|@
+    /   |__   @
+   / /|  __|  @
+  / ___ |____ @
+ /_/  |______|@
+              @
+              @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+   _____ @
+  / ____|@
+ | | $   @
+ | | $   @
+ | |____ @
+  \_____|@
+    )_)  @
+         @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+   __   @
+  _\_\_ @
+ | ____|@
+ |  _|  @
+ | |___ @
+ |_____|@
+        @
+        @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+    __  @
+  _/_/_ @
+ | ____|@
+ |  _|  @
+ | |___ @
+ |_____|@
+        @
+        @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+ | ____|@
+ |  _|  @
+ | |___ @
+ |_____|@
+        @
+        @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | ____|@
+ |  _|  @
+ | |___ @
+ |_____|@
+        @
+        @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+  __  @
+  \_\ @
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @
+      @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+   __ @
+  /_/ @
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @
+      @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+  //\ @
+ |/_\|@
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @
+      @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  |_ _| @
+   | |  @
+   | |  @
+  |___| @
+        @
+        @@
+208  LATIN CAPITAL LETTER ETH
+    _____  @
+   |  __ \ @
+  _| |_ | |@
+ |__ __|| |@
+   | |__| |@
+   |_____/ @
+           @
+           @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+   /\/| @
+  |/\/_ @
+ | \ | |@
+ |  \| |@
+ | |\  |@
+ |_| \_|@
+        @
+        @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+   __   @
+   \_\  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+    __  @
+   /_/  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   //\  @
+  |/_\| @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+   /\/| @
+  |/\/  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+215  MULTIPLICATION SIGN
+     @
+     @
+ /\/\@
+ >  <@
+ \/\/@
+   $ @
+     @
+     @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   _____ @
+  / __// @
+ | | // |@
+ | |//| |@
+ | //_| |@
+  //___/ @
+         @
+         @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+   __   @
+  _\_\_ @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+    __  @
+  _/_/_ @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+    __  @
+ __/_/__@
+ \ \ / /@
+  \ V / @
+   | |  @
+   |_|  @
+        @
+        @@
+222  LATIN CAPITAL LETTER THORN
+  _      @
+ | |___  @
+ |  __ \ @
+ | |__) |@
+ |  ___/ @
+ |_|     @
+         @
+         @@
+223  LATIN SMALL LETTER SHARP S
+   ___  @
+  / _ \ @
+ | | ) |@
+ | |< < @
+ | | ) |@
+ | ||_/ @
+ |_|    @
+        @@
+224  LATIN SMALL LETTER A WITH GRAVE
+   __   @
+   \_\  @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+225  LATIN SMALL LETTER A WITH ACUTE
+    __  @
+   /_/  @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+227  LATIN SMALL LETTER A WITH TILDE
+   /\/| @
+  |/\/  @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+    __  @
+   (()) @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @
+        @@
+230  LATIN SMALL LETTER AE
+           @
+           @
+   __ ____ @
+  / _`  _ \@
+ | (_|  __/@
+  \__,____|@
+           @
+           @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+       @
+       @
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+   )_) @
+       @@
+232  LATIN SMALL LETTER E WITH GRAVE
+   __  @
+   \_\ @
+   ___ @
+  / _ \@
+ |  __/@
+  \___|@
+       @
+       @@
+233  LATIN SMALL LETTER E WITH ACUTE
+    __ @
+   /_/ @
+   ___ @
+  / _ \@
+ |  __/@
+  \___|@
+       @
+       @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+   //\ @
+  |/ \|@
+   ___ @
+  / _ \@
+ |  __/@
+  \___|@
+       @
+       @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+   ___  @
+  / _ \ @
+ |  __/ @
+  \___| @
+        @
+        @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ __ @
+ \_\@
+  _ @
+ | |@
+ | |@
+ |_|@
+    @
+    @@
+237  LATIN SMALL LETTER I WITH ACUTE
+  __@
+ /_/@
+  _ @
+ | |@
+ | |@
+ |_|@
+    @
+    @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+  //\ @
+ |/ \|@
+   _  @
+  | | @
+  | | @
+  |_| @
+      @
+      @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+    _   @
+   | |  @
+   | |  @
+   |_|  @
+        @
+        @@
+240  LATIN SMALL LETTER ETH
+  /\/\  @
+  >  <  @
+  \/\ \ @
+  / _` |@
+ | (_) |@
+  \___/ @
+        @
+        @@
+241  LATIN SMALL LETTER N WITH TILDE
+   /\/| @
+  |/\/  @
+  _ __  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @
+        @@
+242  LATIN SMALL LETTER O WITH GRAVE
+   __   @
+   \_\  @
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+243  LATIN SMALL LETTER O WITH ACUTE
+    __  @
+   /_/  @
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+245  LATIN SMALL LETTER O WITH TILDE
+   /\/| @
+  |/\/  @
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @
+        @@
+247  DIVISION SIGN
+     _    @
+    (_)   @
+  _______ @
+ |_______|@
+     _    @
+    (_)   @
+          @
+          @@
+248  LATIN SMALL LETTER O WITH STROKE
+         @
+         @
+   ____  @
+  / _//\ @
+ | (//) |@
+  \//__/ @
+         @
+         @@
+249  LATIN SMALL LETTER U WITH GRAVE
+   __   @
+   \_\  @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @
+        @@
+250  LATIN SMALL LETTER U WITH ACUTE
+    __  @
+   /_/  @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @
+        @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @
+        @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @
+        @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+    __  @
+   /_/  @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__, |@
+   __/ |@
+  |___/ @@
+254  LATIN SMALL LETTER THORN
+  _     @
+ | |    @
+ | |__  @
+ | '_ \ @
+ | |_) |@
+ | .__/ @
+ | |    @
+ |_|    @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__, |@
+   __/ |@
+  |___/ @@
+0x02BC  MODIFIER LETTER APOSTROPHE
+   @
+   @
+ ))@
+   @
+   @
+   @
+   @
+   @@
+0x02BD  MODIFIER LETTER REVERSED COMMA
+   @
+   @
+ ((@
+   @
+   @
+   @
+   @
+   @@
+0x037A  GREEK YPOGEGRAMMENI
+   @
+   @
+   @
+   @
+   @
+   @
+   @
+ ||@@
+0x0387  GREEK ANO TELEIA
+    @
+  $ @
+  _ @
+ (_)@
+    @
+  $ @
+    @
+    @@
+0x0391  GREEK CAPITAL LETTER ALPHA
+   ___  @
+  / _ \ @
+ | |_| |@
+ |  _  |@
+ | | | |@
+ |_| |_|@
+        @
+        @@
+0x0392  GREEK CAPITAL LETTER BETA
+  ____  @
+ |  _ \ @
+ | |_) )@
+ |  _ ( @
+ | |_) )@
+ |____/ @
+        @
+        @@
+0x0393  GREEK CAPITAL LETTER GAMMA
+  _____ @
+ |  ___)@
+ | |$   @
+ | |$   @
+ | |    @
+ |_|    @
+        @
+        @@
+0x0394  GREEK CAPITAL LETTER DELTA
+           @
+     /\    @
+    /  \   @
+   / /\ \  @
+  / /__\ \ @
+ /________\@
+           @
+           @@
+0x0395  GREEK CAPITAL LETTER EPSILON
+  _____ @
+ |  ___)@
+ | |_   @
+ |  _)  @
+ | |___ @
+ |_____)@
+        @
+        @@
+0x0396  GREEK CAPITAL LETTER ZETA
+  ______@
+ (___  /@
+    / / @
+   / /  @
+  / /__ @
+ /_____)@
+        @
+        @@
+0x0397  GREEK CAPITAL LETTER ETA
+  _   _ @
+ | | | |@
+ | |_| |@
+ |  _  |@
+ | | | |@
+ |_| |_|@
+        @
+        @@
+0x0398  GREEK CAPITAL LETTER THETA
+   ____  @
+  / __ \ @
+ | |__| |@
+ |  __  |@
+ | |__| |@
+  \____/ @
+         @
+         @@
+0x0399  GREEK CAPITAL LETTER IOTA
+  ___ @
+ (   )@
+  | | @
+  | | @
+  | | @
+ (___)@
+      @
+      @@
+0x039A  GREEK CAPITAL LETTER KAPPA
+  _   __@
+ | | / /@
+ | |/ / @
+ |   <  @
+ | |\ \ @
+ |_| \_\@
+        @
+        @@
+0x039B  GREEK CAPITAL LETTER LAMDA
+           @
+     /\    @
+    /  \   @
+   / /\ \  @
+  / /  \ \ @
+ /_/    \_\@
+           @
+           @@
+0x039C  GREEK CAPITAL LETTER MU
+  __   __ @
+ |  \ /  |@
+ |   v   |@
+ | |\_/| |@
+ | |   | |@
+ |_|   |_|@
+          @
+          @@
+0x039D  GREEK CAPITAL LETTER NU
+  _   _ @
+ | \ | |@
+ |  \| |@
+ |     |@
+ | |\  |@
+ |_| \_|@
+        @
+        @@
+0x039E  GREEK CAPITAL LETTER XI
+  _____ @
+ (_____)@
+   ___  @
+  (___) @
+  _____ @
+ (_____)@
+        @
+        @@
+0x039F  GREEK CAPITAL LETTER OMICRON
+   ___  @
+  / _ \ @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+0x03A0  GREEK CAPITAL LETTER PI
+  _______ @
+ (   _   )@
+  | | | | @
+  | | | | @
+  | | | | @
+  |_| |_| @
+          @
+          @@
+0x03A1  GREEK CAPITAL LETTER RHO
+  ____  @
+ |  _ \ @
+ | |_) )@
+ |  __/ @
+ | |    @
+ |_|    @
+        @
+        @@
+0x03A3  GREEK CAPITAL LETTER SIGMA
+ ______ @
+ \  ___)@
+  \ \   @
+   > >  @
+  / /__ @
+ /_____)@
+        @
+        @@
+0x03A4  GREEK CAPITAL LETTER TAU
+  _____ @
+ (_   _)@
+   | |  @
+   | |  @
+   | |  @
+   |_|  @
+        @
+        @@
+0x03A5  GREEK CAPITAL LETTER UPSILON
+  __   __ @
+ (_ \ / _)@
+   \ v /  @
+    | |   @
+    | |   @
+    |_|   @
+          @
+          @@
+0x03A6  GREEK CAPITAL LETTER PHI
+     _    @
+   _| |_  @
+  /     \ @
+ ( (| |) )@
+  \_   _/ @
+    |_|   @
+          @
+          @@
+0x03A7  GREEK CAPITAL LETTER CHI
+ __   __@
+ \ \ / /@
+  \ v / @
+   > <  @
+  / ^ \ @
+ /_/ \_\@
+        @
+        @@
+0x03A8  GREEK CAPITAL LETTER PSI
+  _  _  _ @
+ | || || |@
+ | \| |/ |@
+  \_   _/ @
+    | |   @
+    |_|   @
+          @
+          @@
+0x03A9  GREEK CAPITAL LETTER OMEGA
+    ____   @
+   / __ \  @
+  | |  | | @
+  | |  | | @
+  _\ \/ /_ @
+ (___||___)@
+           @
+           @@
+0x03B1  GREEK SMALL LETTER ALPHA
+         @
+         @
+   __  __@
+  /  \/ /@
+ ( ()  < @
+  \__/\_\@
+         @
+         @@
+0x03B2  GREEK SMALL LETTER BETA
+   ___  @
+  / _ \ @
+ | |_) )@
+ |  _ < @
+ | |_) )@
+ |  __/ @
+ | |    @
+ |_|    @@
+0x03B3  GREEK SMALL LETTER GAMMA
+        @
+        @
+  _   _ @
+ ( \ / )@
+  \ v / @
+   | |  @
+   | |  @
+   |_|  @@
+0x03B4  GREEK SMALL LETTER DELTA
+    __  @
+   / _) @
+   \ \  @
+  / _ \ @
+ ( (_) )@
+  \___/ @
+        @
+        @@
+0x03B5  GREEK SMALL LETTER EPSILON
+      @
+      @
+  ___ @
+ / __)@
+ > _) @
+ \___)@
+      @
+      @@
+0x03B6  GREEK SMALL LETTER ZETA
+ _____  @
+ \__  ) @
+   / /  @
+  / /   @
+ | |__  @
+  \__ \ @
+     ) )@
+    (_/ @@
+0x03B7  GREEK SMALL LETTER ETA
+        @
+        @
+  _ __  @
+ | '_ \ @
+ | | | |@
+ |_| | |@
+     | |@
+     |_|@@
+0x03B8  GREEK SMALL LETTER THETA
+   ___  @
+  / _ \ @
+ | |_| |@
+ |  _  |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+0x03B9  GREEK SMALL LETTER IOTA
+     @
+     @
+  _  @
+ | | @
+ | | @
+  \_)@
+     @
+     @@
+0x03BA  GREEK SMALL LETTER KAPPA
+       @
+       @
+  _  __@
+ | |/ /@
+ |   < @
+ |_|\_\@
+       @
+       @@
+0x03BB  GREEK SMALL LETTER LAMDA
+ __     @
+ \ \    @
+  \ \   @
+   > \  @
+  / ^ \ @
+ /_/ \_\@
+        @
+        @@
+0x03BC  GREEK SMALL LETTER MU
+        @
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+ | ._,_|@
+ | |    @
+ |_|    @@
+0x03BD  GREEK SMALL LETTER NU
+       @
+       @
+  _  __@
+ | |/ /@
+ | / / @
+ |__/  @
+       @
+       @@
+0x03BE  GREEK SMALL LETTER XI
+ \=\__  @
+  > __) @
+ ( (_   @
+  > _)  @
+ ( (__  @
+  \__ \ @
+     ) )@
+    (_/ @@
+0x03BF  GREEK SMALL LETTER OMICRON
+        @
+        @
+   ___  @
+  / _ \ @
+ ( (_) )@
+  \___/ @
+        @
+        @@
+0x03C0  GREEK SMALL LETTER PI
+         @
+         @
+  ______ @
+ (  __  )@
+  | || | @
+  |_||_| @
+         @
+         @@
+0x03C1  GREEK SMALL LETTER RHO
+        @
+        @
+   ___  @
+  / _ \ @
+ | |_) )@
+ |  __/ @
+ | |    @
+ |_|    @@
+0x03C2  GREEK SMALL LETTER FINAL SIGMA
+        @
+        @
+   ____ @
+  / ___)@
+ ( (__  @
+  \__ \ @
+    _) )@
+   (__/ @@
+0x03C3  GREEK SMALL LETTER SIGMA
+        @
+        @
+   ____ @
+  /  ._)@
+ ( () ) @
+  \__/  @
+        @
+        @@
+0x03C4  GREEK SMALL LETTER TAU
+      @
+      @
+  ___ @
+ (   )@
+  | | @
+   \_)@
+      @
+      @@
+0x03C5  GREEK SMALL LETTER UPSILON
+        @
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @
+        @@
+0x03C6  GREEK SMALL LETTER PHI
+     _    @
+    | |   @
+   _| |_  @
+  /     \ @
+ ( (| |) )@
+  \_   _/ @
+    | |   @
+    |_|   @@
+0x03C7  GREEK SMALL LETTER CHI
+        @
+        @
+ __   __@
+ \ \ / /@
+  \ v / @
+   > <  @
+  / ^ \ @
+ /_/ \_\@@
+0x03C8  GREEK SMALL LETTER PSI
+          @
+          @
+  _  _  _ @
+ | || || |@
+ | \| |/ |@
+  \_   _/ @
+    | |   @
+    |_|   @@
+0x03C9  GREEK SMALL LETTER OMEGA
+            @
+            @
+   __   __  @
+  / / _ \ \ @
+ | |_/ \_| |@
+  \___^___/ @
+            @
+            @@
+0x03D1  GREEK THETA SYMBOL
+     ___    @
+    / _ \   @
+   ( (_| |_ @
+  _ \ _   _)@
+ | |___| |  @
+  \_____/   @
+            @
+            @@
+0x03D5  GREEK PHI SYMBOL
+          @
+          @
+  _   __  @
+ | | /  \ @
+ | || || )@
+  \_   _/ @
+    | |   @
+    |_|   @@
+0x03D6  GREEK PI SYMBOL
+            @
+            @
+  _________ @
+ (  _____  )@
+ | |_/ \_| |@
+  \___^___/ @
+            @
+            @@
+-0x0005  
+alpha = a, beta = b, gamma = g, delta = d, epsilon = e   @
+zeta = z, eta = h, theta = q, iota = i, lamda = l, mu = m@
+nu = n, xi = x, omicron = o, pi = p, rho = r, sigma = s  @
+phi = f, chi = c, psi = y, omega = w, final sigma = V    @
+     pi symbol = v, theta symbol = J, phi symbol = j     @
+     middle dot = :, ypogegrammeni = _                   @
+     rough breathing = (, smooth breathing = )           @
+     acute accent = ', grave accent = `, dialytika = ^   @@
--- /dev/null
+++ b/fonts/block.flf
@@ -1,0 +1,1691 @@
+flf2a$ 8 6 27 0 10 0 576 96
+Block by Glenn Chappell 4/93 -- straight version of Lean
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+$  $@
+$  $@
+$  $@
+$  $@
+$  $@
+$  $@
+$  $@
+$  $@@
+   $$@
+ _| $@
+ _| $@
+ _| $@
+   $$@
+ _| $@
+   $$@
+     @@
+ _|  _| $@
+ _|  _| $@
+       $$@
+   $$    @
+   $$    @
+   $$    @
+         @
+         @@
+         $$  @
+   _|  _|   $@
+ _|_|_|_|_| $@
+   _|  _|   $@
+ _|_|_|_|_| $@
+   _|  _|   $@
+         $$  @
+             @@
+     $$  @
+   _|   $@
+ _|_|_| $@
+ _|_|   $@
+   _|_| $@
+ _|_|_| $@
+   _|   $@
+     $$  @@
+           $$@
+ _|_|    _| $@
+ _|_|  _|   $@
+     _|     $@
+   _|  _|_| $@
+ _|    _|_| $@
+           $$@
+             @@
+     $$      @
+   _|   $    @
+ _|  _|     $@
+   _|_|  _| $@
+ _|    _|   $@
+   _|_|  _| $@
+           $$@
+             @@
+   _| $@
+ _|   $@
+   $$  @
+ $$    @
+ $$    @
+ $$    @
+       @
+       @@
+   _| $@
+ _|   $@
+ _| $  @
+ _| $  @
+ _| $  @
+ _|   $@
+   _| $@
+     $$@@
+ _|   $@
+   _| $@
+   _| $@
+   _| $@
+   _| $@
+   _| $@
+ _|   $@
+   $$  @@
+           $$@
+ _|  _|  _| $@
+   _|_|_|   $@
+ _|_|_|_|_| $@
+   _|_|_|   $@
+ _|  _|  _| $@
+           $$@
+             @@
+       $$    @
+     _| $    @
+     _|     $@
+ _|_|_|_|_| $@
+     _|     $@
+     _| $    @
+       $$    @
+             @@
+       @
+       @
+       @
+       @
+     $$@
+   _| $@
+ _|   $@
+   $$  @@
+             @
+             @
+           $$@
+ _|_|_|_|_| $@
+           $$@
+             @
+             @
+             @@
+     @
+     @
+     @
+     @
+   $$@
+ _| $@
+   $$@
+     @@
+           $$@
+         _| $@
+       _|   $@
+     _|   $  @
+   _|   $    @
+ _|   $      @
+   $$        @
+             @@
+     $$  @
+   _|   $@
+ _|  _| $@
+ _|  _| $@
+ _|  _| $@
+   _|   $@
+     $$  @
+         @@
+     $$@
+   _| $@
+ _|_| $@
+   _| $@
+   _| $@
+   _| $@
+     $$@
+       @@
+       $$  @
+   _|_|   $@
+ _|    _| $@
+     _|   $@
+   _|     $@
+ _|_|_|_| $@
+         $$@
+           @@
+       $$  @
+ _|_|_|   $@
+       _| $@
+   _|_|   $@
+       _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+       $$  @
+ _|  _| $  @
+ _|  _|   $@
+ _|_|_|_| $@
+     _|   $@
+     _| $  @
+       $$  @
+           @@
+         $$@
+ _|_|_|_| $@
+ _|       $@
+ _|_|_|   $@
+       _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+         $$@
+   _|_|_| $@
+ _|       $@
+ _|_|_|   $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+           $$@
+ _|_|_|_|_| $@
+         _| $@
+       _|   $@
+     _|   $  @
+   _|   $    @
+     $$      @
+             @@
+       $$  @
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+       $$  @
+   _|_|   $@
+ _|    _| $@
+   _|_|_| $@
+       _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+     @
+   $$@
+ _| $@
+   $$@
+   $$@
+ _| $@
+   $$@
+     @@
+       @
+     $$@
+   _| $@
+     $$@
+     $$@
+   _| $@
+ _|   $@
+   $$  @@
+       $$@
+     _| $@
+   _|   $@
+ _|   $  @
+   _|   $@
+     _| $@
+       $$@
+         @@
+             @
+           $$@
+ _|_|_|_|_| $@
+           $$@
+ _|_|_|_|_| $@
+           $$@
+             @
+             @@
+   $$    @
+ _|   $  @
+   _|   $@
+     _| $@
+   _|   $@
+ _|   $  @
+   $$    @
+         @@
+     $$  @
+ _|_|   $@
+     _| $@
+ _|_|   $@
+     $$  @
+ _| $    @
+   $$    @
+         @@
+               $$  @
+     _|_|_|_|_|   $@
+   _|          _| $@
+ _|    _|_|_|  _| $@
+ _|  _|    _|  _| $@
+ _|    _|_|_|_|   $@
+   _|             $@
+     _|_|_|_|_|_| $@@
+       $$  @
+   _|_|   $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|    _| $@
+ _|    _| $@
+         $$@
+           @@
+       $$  @
+ _|_|_|   $@
+ _|    _| $@
+ _|_|_|   $@
+ _|    _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+         $$@
+   _|_|_| $@
+ _|       $@
+ _|   $    @
+ _|       $@
+   _|_|_| $@
+         $$@
+           @@
+       $$  @
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+         $$@
+ _|_|_|_| $@
+ _|       $@
+ _|_|_| $  @
+ _|       $@
+ _|_|_|_| $@
+         $$@
+           @@
+         $$@
+ _|_|_|_| $@
+ _|       $@
+ _|_|_| $  @
+ _|     $  @
+ _| $      @
+   $$      @
+           @@
+         $$@
+   _|_|_| $@
+ _|       $@
+ _|  _|_| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|    _| $@
+ _|    _| $@
+         $$@
+           @@
+       $$@
+ _|_|_| $@
+   _|   $@
+   _| $  @
+   _|   $@
+ _|_|_| $@
+       $$@
+         @@
+         $$@
+       _| $@
+       _| $@
+       _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+         $$@
+ _|    _| $@
+ _|  _|   $@
+ _|_|   $  @
+ _|  _|   $@
+ _|    _| $@
+         $$@
+           @@
+   $$      @
+ _| $      @
+ _| $      @
+ _| $      @
+ _|       $@
+ _|_|_|_| $@
+         $$@
+           @@
+           $$@
+ _|      _| $@
+ _|_|  _|_| $@
+ _|  _|  _| $@
+ _|      _| $@
+ _|      _| $@
+           $$@
+             @@
+           $$@
+ _|      _| $@
+ _|_|    _| $@
+ _|  _|  _| $@
+ _|    _|_| $@
+ _|      _| $@
+           $$@
+             @@
+       $$  @
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+       $$  @
+ _|_|_|   $@
+ _|    _| $@
+ _|_|_|   $@
+ _|     $  @
+ _| $      @
+   $$      @
+           @@
+       $$    @
+   _|_|   $  @
+ _|    _| $  @
+ _|  _|_| $  @
+ _|    _|   $@
+   _|_|  _| $@
+           $$@
+             @@
+       $$  @
+ _|_|_|   $@
+ _|    _| $@
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+         $$@
+           @@
+         $$@
+   _|_|_| $@
+ _|       $@
+   _|_|   $@
+       _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+           $$@
+ _|_|_|_|_| $@
+     _|     $@
+     _| $    @
+     _| $    @
+     _| $    @
+       $$    @
+             @@
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+           $$@
+ _|      _| $@
+ _|      _| $@
+ _|      _| $@
+   _|  _|   $@
+     _|   $  @
+       $$    @
+             @@
+               $$@
+ _|          _| $@
+ _|          _| $@
+ _|    _|    _| $@
+   _|  _|  _|   $@
+     _|  _|   $  @
+           $$    @
+                 @@
+           $$@
+ _|      _| $@
+   _|  _|   $@
+     _|   $  @
+   _|  _|   $@
+ _|      _| $@
+           $$@
+             @@
+           $$@
+ _|      _| $@
+   _|  _|   $@
+     _|   $  @
+     _| $    @
+     _| $    @
+       $$    @
+             @@
+           $$@
+ _|_|_|_|_| $@
+       _|   $@
+     _|   $  @
+   _|       $@
+ _|_|_|_|_| $@
+           $$@
+             @@
+ _|_| $@
+ _|   $@
+ _| $  @
+ _| $  @
+ _| $  @
+ _|   $@
+ _|_| $@
+     $$@@
+   $$        @
+ _|   $      @
+   _|   $    @
+     _|   $  @
+       _|   $@
+         _| $@
+           $$@
+             @@
+ _|_| $@
+   _| $@
+   _| $@
+   _| $@
+   _| $@
+   _| $@
+ _|_| $@
+     $$@@
+   _|   $@
+ _|  _| $@
+       $$@
+   $$    @
+   $$    @
+   $$    @
+         @
+         @@
+             @
+             @
+     $$      @
+     $$      @
+     $$      @
+     $$      @
+           $$@
+ _|_|_|_|_| $@@
+ _|   $@
+   _| $@
+     $$@
+   $$  @
+   $$  @
+   $$  @
+       @
+       @@
+           @
+         $$@
+   _|_|_| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+   $$      @
+ _|     $  @
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+           @
+         $$@
+   _|_|_| $@
+ _|       $@
+ _|       $@
+   _|_|_| $@
+         $$@
+           @@
+         $$@
+       _| $@
+   _|_|_| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+           @
+       $$  @
+   _|_|   $@
+ _|_|_|_| $@
+ _|       $@
+   _|_|_| $@
+         $$@
+           @@
+         $$@
+     _|_| $@
+   _|     $@
+ _|_|_|_| $@
+   _|     $@
+   _| $    @
+     $$    @
+           @@
+           @
+         $$@
+   _|_|_| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+       _| $@
+   _|_|   $@@
+   $$      @
+ _|     $  @
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+         $$@
+           @@
+   $$@
+ _| $@
+   $$@
+ _| $@
+ _| $@
+ _| $@
+   $$@
+     @@
+     $$@
+   _| $@
+     $$@
+   _| $@
+   _| $@
+   _| $@
+   _| $@
+ _|   $@@
+   $$      @
+ _|     $  @
+ _|  _| $  @
+ _|_|   $  @
+ _|  _|   $@
+ _|    _| $@
+         $$@
+           @@
+   $$@
+ _| $@
+ _| $@
+ _| $@
+ _| $@
+ _| $@
+   $$@
+     @@
+                 @
+             $$  @
+ _|_|_|  _|_|   $@
+ _|    _|    _| $@
+ _|    _|    _| $@
+ _|    _|    _| $@
+               $$@
+                 @@
+           @
+       $$  @
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+         $$@
+           @@
+           @
+       $$  @
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+           @
+       $$  @
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+ _|_|_|   $@
+ _|     $  @
+ _| $      @@
+           @
+         $$@
+   _|_|_| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+       _| $@
+       _| $@@
+           @
+         $$@
+ _|  _|_| $@
+ _|_|     $@
+ _|   $    @
+ _| $      @
+   $$      @
+           @@
+           @
+         $$@
+   _|_|_| $@
+ _|_|     $@
+     _|_| $@
+ _|_|_|   $@
+       $$  @
+           @@
+     $$    @
+   _|     $@
+ _|_|_|_|  @
+   _|     $@
+   _|     $@
+     _|_| $@
+         $$@
+           @@
+           @
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+             @
+           $$@
+ _|      _| $@
+ _|      _| $@
+   _|  _|   $@
+     _|   $  @
+       $$    @
+             @@
+                     @
+                   $$@
+ _|      _|      _| $@
+ _|      _|      _| $@
+   _|  _|  _|  _|   $@
+     _|      _|   $  @
+               $$    @
+                     @@
+           @
+         $$@
+ _|    _| $@
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+         $$@
+           @@
+           @
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+       _| $@
+   _|_|   $@@
+           @
+         $$@
+ _|_|_|_| $@
+     _|   $@
+   _|     $@
+ _|_|_|_| $@
+         $$@
+           @@
+     _| $@
+   _|   $@
+   _|   $@
+ _|   $  @
+   _|   $@
+   _|   $@
+     _| $@
+       $$@@
+ _| $@
+ _| $@
+ _| $@
+ _| $@
+ _| $@
+ _| $@
+ _| $@
+ _| $@@
+ _|   $  @
+   _|   $@
+   _|   $@
+     _| $@
+   _|   $@
+   _|   $@
+ _|   $  @
+   $$    @@
+   _|  _| $@
+ _|  _|   $@
+       $$  @
+     $$    @
+     $$    @
+     $$    @
+           @
+           @@
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|    _| $@
+         $$@
+           @@
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+ _|    _| $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+ _|    _| $@
+         $$@
+   _|_|_| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+ _|    _| $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+       $$  @
+   _|_|   $@
+ _|    _| $@
+ _|  _|   $@
+ _|    _| $@
+ _|  _|   $@
+ _|     $  @
+   $$      @@
+160  NO-BREAK SPACE
+ $  $@
+ $  $@
+ $  $@
+ $  $@
+ $  $@
+ $  $@
+ $  $@
+ $  $@@
+161  INVERTED EXCLAMATION MARK
+   $$@
+ _| $@
+   $$@
+ _| $@
+ _| $@
+ _| $@
+   $$@
+     @@
+162  CENT SIGN
+       $$  @
+     _|   $@
+   _|_|_| $@
+ _|  _|   $@
+ _|  _|   $@
+   _|_|_| $@
+     _|   $@
+       $$  @@
+163  POUND SIGN
+         $$    @
+     _|_|   $  @
+   _|    _| $  @
+ _|_|_|     $  @
+   _|         $@
+ _|_|_|    _| $@
+ _|_|  _|_|   $@
+               @@
+164  CURRENCY SIGN
+             $$@
+ _|        _| $@
+   _|_|_|_|   $@
+   _|    _| $  @
+   _|    _| $  @
+   _|_|_|_|   $@
+ _|        _| $@
+             $$@@
+165  YEN SIGN
+           $$@
+ _|      _| $@
+   _|  _|   $@
+ _|_|_|_|_| $@
+     _|     $@
+ _|_|_|_|_| $@
+     _|     $@
+       $$    @@
+166  BROKEN BAR
+ _| $@
+ _| $@
+ _| $@
+   $$@
+   $$@
+ _| $@
+ _| $@
+ _| $@@
+167  SECTION SIGN
+   _|_| $@
+ _|     $@
+   _|   $@
+ _|  _| $@
+   _|   $@
+     _| $@
+ _|_|   $@
+     $$  @@
+168  DIAERESIS
+ _|    _| $@
+         $$@
+ $      $  @
+ $      $  @
+ $      $  @
+ $      $  @
+           @
+           @@
+169  COPYRIGHT SIGN
+     _|_|_|_|   $  @
+   _|        _|   $@
+ _|    _|_|_|  _| $@
+ _|  _|        _| $@
+ _|  _|        _| $@
+ _|    _|_|_|  _| $@
+   _|        _|   $@
+     _|_|_|_|   $  @@
+170  FEMININE ORDINAL INDICATOR
+         $$@
+   _|_|_| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+ _|_|_|_| $@
+           @
+           @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+           $$@
+     _|  _| $@
+   _|  _|   $@
+ _|  _|   $  @
+   _|  _|   $@
+     _|  _| $@
+           $$@
+             @@
+172  NOT SIGN
+             @
+             @
+           $$@
+ _|_|_|_|_| $@
+         _| $@
+           $$@
+             @
+             @@
+173  SOFT HYPHEN
+           @
+           @
+         $$@
+ _|_|_|_| $@
+         $$@
+     $$    @
+           @
+           @@
+174  REGISTERED SIGN
+     _|_|_|_|   $  @
+   _|        _|   $@
+ _|  _|_|_|    _| $@
+ _|  _|    _|  _| $@
+ _|  _|_|_|    _| $@
+ _|  _|    _|  _| $@
+   _|        _|   $@
+     _|_|_|_|   $  @@
+175  MACRON
+ _|_|_|_|_| $@
+           $$@
+     $$      @
+     $$      @
+     $$      @
+     $$      @
+             @
+             @@
+176  DEGREE SIGN
+   _|   $@
+ _|  _| $@
+   _|   $@
+     $$  @
+   $$    @
+   $$    @
+         @
+         @@
+177  PLUS-MINUS SIGN
+       $$    @
+     _| $    @
+     _|     $@
+ _|_|_|_|_| $@
+     _|     $@
+ _|_|_|_|_| $@
+           $$@
+             @@
+178  SUPERSCRIPT TWO
+     $$  @
+ _|_|   $@
+     _| $@
+   _|   $@
+ _|_|_| $@
+       $$@
+         @
+         @@
+179  SUPERSCRIPT THREE
+       $$@
+ _|_|_| $@
+   _|   $@
+     _| $@
+ _|_|   $@
+     $$  @
+         @
+         @@
+180  ACUTE ACCENT
+   _| $@
+ _|   $@
+   $$  @
+ $$    @
+ $$    @
+ $$    @
+       @
+       @@
+181  MICRO SIGN
+           @
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|       $@
+ _| $      @@
+182  PILCROW SIGN
+           $$@
+   _|_|_|_| $@
+ _|_|_|  _| $@
+   _|_|  _| $@
+     _|  _| $@
+     _|  _| $@
+           $$@
+             @@
+183  MIDDLE DOT
+     @
+     @
+   $$@
+ _| $@
+   $$@
+ $$  @
+     @
+     @@
+184  CEDILLA
+       @
+       @
+       @
+       @
+       @
+     $$@
+   _| $@
+ _|_| $@@
+185  SUPERSCRIPT ONE
+     $$@
+   _| $@
+ _|_| $@
+   _| $@
+   _| $@
+     $$@
+       @
+       @@
+186  MASCULINE ORDINAL INDICATOR
+       $$  @
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+         $$@
+ _|_|_|_| $@
+           @
+           @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+       $$    @
+ _|  _|   $  @
+   _|  _|   $@
+     _|  _| $@
+   _|  _|   $@
+ _|  _|   $  @
+       $$    @
+             @@
+188  VULGAR FRACTION ONE QUARTER
+               $$        @
+   _|        _|       $  @
+ _|_|      _|  _|  _| $  @
+   _|    _|    _|  _|   $@
+   _|  _|      _|_|_|_| $@
+     _|            _|   $@
+                     $$  @
+                         @@
+189  VULGAR FRACTION ONE HALF
+               $$      @
+   _|        _|     $  @
+ _|_|      _|  _|_|   $@
+   _|    _|        _| $@
+   _|  _|        _|   $@
+     _|        _|_|_| $@
+                     $$@
+                       @@
+190  VULGAR FRACTION THREE QUARTERS
+               $$        @
+ _|_|_|      _|       $  @
+   _|      _|  _|  _| $  @
+     _|  _|    _|  _|   $@
+ _|_|  _|      _|_|_|_| $@
+     _|            _|   $@
+                     $$  @
+                         @@
+191  INVERTED QUESTION MARK
+       $$@
+     _| $@
+       $$@
+   _|_| $@
+ _|     $@
+   _|_| $@
+       $$@
+         @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+   _|   $  @
+     _| $  @
+   _|_|   $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|    _| $@
+         $$@
+           @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+     _| $  @
+   _|   $  @
+   _|_|   $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|    _| $@
+         $$@
+           @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+   _|_|   $@
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|_|_|_| $@
+ _|    _| $@
+         $$@
+           @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+   _|  _| $@
+ _|  _|   $@
+       $$  @
+   _|_|   $@
+ _|_|_|_| $@
+ _|    _| $@
+         $$@
+           @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|    _| $@
+         $$@
+           @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|    _| $@
+         $$@
+           @@
+198  LATIN CAPITAL LETTER AE
+               $$@
+   _|_|_|_|_|_| $@
+ _|    _|       $@
+ _|_|_|_|_|_| $  @
+ _|    _|       $@
+ _|    _|_|_|_| $@
+               $$@
+                 @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+         $$@
+   _|_|_| $@
+ _|       $@
+ _|   $    @
+ _|       $@
+   _|_|_| $@
+     _|   $@
+   _|_| $  @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+   _|   $  @
+     _|   $@
+ _|_|_|_| $@
+ _|_|_| $  @
+ _|       $@
+ _|_|_|_| $@
+         $$@
+           @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+     _| $  @
+   _|     $@
+ _|_|_|_| $@
+ _|_|_| $  @
+ _|       $@
+ _|_|_|_| $@
+         $$@
+           @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+   _|_|   $@
+ _|    _| $@
+ _|_|_|_| $@
+ _|_|_| $  @
+ _|       $@
+ _|_|_|_| $@
+         $$@
+           @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+ _|    _| $@
+         $$@
+ _|_|_|_| $@
+ _|_|_| $  @
+ _|       $@
+ _|_|_|_| $@
+         $$@
+           @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+ _|   $  @
+   _|   $@
+ _|_|_| $@
+   _|   $@
+   _|   $@
+ _|_|_| $@
+       $$@
+         @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+     _| $@
+   _|   $@
+ _|_|_| $@
+   _|   $@
+   _|   $@
+ _|_|_| $@
+       $$@
+         @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+   _|   $@
+ _|  _| $@
+ _|_|_| $@
+   _|   $@
+   _|   $@
+ _|_|_| $@
+       $$@
+         @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+ _|  _| $@
+       $$@
+ _|_|_| $@
+   _|   $@
+   _|   $@
+ _|_|_| $@
+       $$@
+         @@
+208  LATIN CAPITAL LETTER ETH
+         $$  @
+   _|_|_|   $@
+   _|    _| $@
+ _|_|_|  _| $@
+   _|    _| $@
+   _|_|_|   $@
+         $$  @
+             @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+   _|  _| $@
+ _|  _|   $@
+ _|    _| $@
+ _|_|  _| $@
+ _|  _|_| $@
+ _|    _| $@
+         $$@
+           @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+   _|   $  @
+     _| $  @
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+     _| $  @
+   _|   $  @
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+   _|  _| $@
+ _|  _|   $@
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+215  MULTIPLICATION SIGN
+         @
+       $$@
+ _|  _| $@
+   _|   $@
+ _|  _| $@
+       $$@
+         @
+         @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+           $$@
+   _|_|_|_| $@
+ _|    _|_| $@
+ _|  _|  _| $@
+ _|_|    _| $@
+ _|_|_|_|   $@
+         $$  @
+             @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+   _|   $  @
+     _| $  @
+         $$@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+     _| $  @
+   _|   $  @
+         $$@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+   _|_|   $@
+ _|    _| $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+ _|    _| $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+       _| $  @
+     _|     $@
+ _|      _| $@
+   _|  _|   $@
+     _|   $  @
+     _| $    @
+       $$    @
+             @@
+222  LATIN CAPITAL LETTER THORN
+   $$      @
+ _|     $  @
+ _|_|_|   $@
+ _|    _| $@
+ _|_|_|   $@
+ _|     $  @
+   $$      @
+           @@
+223  LATIN SMALL LETTER SHARP S
+       $$  @
+   _|_|   $@
+ _|    _| $@
+ _|  _|   $@
+ _|    _| $@
+ _|  _|   $@
+ _|     $  @
+   $$      @@
+224  LATIN SMALL LETTER A WITH GRAVE
+   _|   $  @
+     _| $  @
+         $$@
+   _|_|_| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+225  LATIN SMALL LETTER A WITH ACUTE
+       _| $@
+     _|   $@
+         $$@
+   _|_|_| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+     _|   $@
+   _|  _| $@
+         $$@
+   _|_|_| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+227  LATIN SMALL LETTER A WITH TILDE
+   _|  _| $@
+ _|  _|   $@
+         $$@
+   _|_|_| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+ _|    _| $@
+         $$@
+   _|_|_| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+     _|   $@
+   _|  _| $@
+     _|   $@
+   _|_|_| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+230  LATIN SMALL LETTER AE
+                   @
+               $$  @
+   _|_|_|  _|_|   $@
+ _|    _|_|_|_|_| $@
+ _|    _|_|       $@
+   _|_|_|  _|_|_| $@
+                 $$@
+                   @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+           @
+         $$@
+   _|_|_| $@
+ _|       $@
+ _|       $@
+   _|_|_| $@
+     _|   $@
+   _|_| $  @@
+232  LATIN SMALL LETTER E WITH GRAVE
+   _|     $@
+     _| $  @
+   _|_|   $@
+ _|_|_|_| $@
+ _|       $@
+   _|_|_| $@
+         $$@
+           @@
+233  LATIN SMALL LETTER E WITH ACUTE
+       _| $@
+     _|   $@
+   _|_|   $@
+ _|_|_|_| $@
+ _|       $@
+   _|_|_| $@
+         $$@
+           @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+ _|_|_|_| $@
+ _|       $@
+   _|_|_| $@
+         $$@
+           @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|_|_|_| $@
+ _|       $@
+   _|_|_| $@
+         $$@
+           @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ _|   $@
+   _| $@
+     $$@
+   _| $@
+   _| $@
+   _| $@
+     $$@
+       @@
+237  LATIN SMALL LETTER I WITH ACUTE
+   _| $@
+ _|   $@
+   $$  @
+ _| $  @
+ _| $  @
+ _| $  @
+   $$  @
+       @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+   _|   $@
+ _|  _| $@
+       $$@
+   _| $  @
+   _| $  @
+   _| $  @
+     $$  @
+         @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ _|  _| $@
+       $$@
+   _| $  @
+   _| $  @
+   _| $  @
+   _| $  @
+     $$  @
+         @@
+240  LATIN SMALL LETTER ETH
+ _|  _| $  @
+   _|   $  @
+ _|  _|   $@
+   _|_|_| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+241  LATIN SMALL LETTER N WITH TILDE
+   _|  _| $@
+ _|  _|   $@
+       $$  @
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+         $$@
+           @@
+242  LATIN SMALL LETTER O WITH GRAVE
+   _|   $  @
+     _| $  @
+       $$  @
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+243  LATIN SMALL LETTER O WITH ACUTE
+     _| $  @
+   _|   $  @
+       $$  @
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+   _|_|   $@
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+245  LATIN SMALL LETTER O WITH TILDE
+   _|_|_| $@
+ _|  _|   $@
+       $$  @
+   _|_|   $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+ _|    _| $@
+         $$@
+   _|_|   $@
+ _|    _| $@
+ _|    _| $@
+   _|_|   $@
+       $$  @
+           @@
+247  DIVISION SIGN
+       $$    @
+     _| $    @
+           $$@
+ _|_|_|_|_| $@
+           $$@
+     _| $    @
+       $$    @
+             @@
+248  LATIN SMALL LETTER O WITH STROKE
+           @
+         $$@
+   _|_|_| $@
+ _|  _|_| $@
+ _|_|  _| $@
+ _|_|_|   $@
+       $$  @
+           @@
+249  LATIN SMALL LETTER U WITH GRAVE
+ _|   $    @
+   _| $    @
+         $$@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+250  LATIN SMALL LETTER U WITH ACUTE
+       _| $@
+     _|   $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   _|_|   $@
+ _|    _| $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+ _|    _| $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+         $$@
+           @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+     _| $  @
+   _|   $  @
+         $$@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+       _| $@
+   _|_|   $@@
+254  LATIN SMALL LETTER THORN
+   $$      @
+ _|     $  @
+ _|_|_|   $@
+ _|    _| $@
+ _|    _| $@
+ _|_|_|   $@
+ _|     $  @
+ _| $      @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+ _|    _| $@
+         $$@
+ _|    _| $@
+ _|    _| $@
+ _|    _| $@
+   _|_|_| $@
+       _| $@
+   _|_|   $@@
--- /dev/null
+++ b/fonts/bubble.flf
@@ -1,0 +1,1630 @@
+flf2a 4 3 8 15 11 0 10127 242
+Bubble by Glenn Chappell 4/93
+Includes characters 128-255
+Enhanced for Latin-2,3,4 by John Cowan <cowan@ccil.org>
+Latin character sets supported only if your screen font does
+figlet release 2.2 -- November 1996
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+ @
+ @
+ @
+ @@
+   _  @
+  / \ @
+ ( ! )@
+  \_/ @@
+   _  @
+  / \ @
+ ( " )@
+  \_/ @@
+   _  @
+  / \ @
+ ( # )@
+  \_/ @@
+   _  @
+  / \ @
+ ( $ )@
+  \_/ @@
+   _  @
+  / \ @
+ ( % )@
+  \_/ @@
+   _  @
+  / \ @
+ ( & )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ' )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ( )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ) )@
+  \_/ @@
+   _  @
+  / \ @
+ ( * )@
+  \_/ @@
+   _  @
+  / \ @
+ ( + )@
+  \_/ @@
+   _  @
+  / \ @
+ ( , )@
+  \_/ @@
+   _  @
+  / \ @
+ ( - )@
+  \_/ @@
+   _  @
+  / \ @
+ ( . )@
+  \_/ @@
+   _  @
+  / \ @
+ ( / )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 0 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 1 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 2 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 3 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 4 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 5 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 6 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 7 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 8 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( 9 )@
+  \_/ @@
+   _  @
+  / \ @
+ ( : )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ; )@
+  \_/ @@
+   _  @
+  / \ @
+ ( < )@
+  \_/ @@
+   _  @
+  / \ @
+ ( = )@
+  \_/ @@
+   _  @
+  / \ @
+ ( > )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ? )@
+  \_/ @@
+   _  @
+  / \ @
+ ( @ )@
+  \_/ @@
+   _  @
+  / \ @
+ ( A )@
+  \_/ @@
+   _  @
+  / \ @
+ ( B )@
+  \_/ @@
+   _  @
+  / \ @
+ ( C )@
+  \_/ @@
+   _  @
+  / \ @
+ ( D )@
+  \_/ @@
+   _  @
+  / \ @
+ ( E )@
+  \_/ @@
+   _  @
+  / \ @
+ ( F )@
+  \_/ @@
+   _  @
+  / \ @
+ ( G )@
+  \_/ @@
+   _  @
+  / \ @
+ ( H )@
+  \_/ @@
+   _  @
+  / \ @
+ ( I )@
+  \_/ @@
+   _  @
+  / \ @
+ ( J )@
+  \_/ @@
+   _  @
+  / \ @
+ ( K )@
+  \_/ @@
+   _  @
+  / \ @
+ ( L )@
+  \_/ @@
+   _  @
+  / \ @
+ ( M )@
+  \_/ @@
+   _  @
+  / \ @
+ ( N )@
+  \_/ @@
+   _  @
+  / \ @
+ ( O )@
+  \_/ @@
+   _  @
+  / \ @
+ ( P )@
+  \_/ @@
+   _  @
+  / \ @
+ ( Q )@
+  \_/ @@
+   _  @
+  / \ @
+ ( R )@
+  \_/ @@
+   _  @
+  / \ @
+ ( S )@
+  \_/ @@
+   _  @
+  / \ @
+ ( T )@
+  \_/ @@
+   _  @
+  / \ @
+ ( U )@
+  \_/ @@
+   _  @
+  / \ @
+ ( V )@
+  \_/ @@
+   _  @
+  / \ @
+ ( W )@
+  \_/ @@
+   _  @
+  / \ @
+ ( X )@
+  \_/ @@
+   _  @
+  / \ @
+ ( Y )@
+  \_/ @@
+   _  @
+  / \ @
+ ( Z )@
+  \_/ @@
+   _  @
+  / \ @
+ ( [ )@
+  \_/ @@
+   _  @
+  / \ @
+ ( \ )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ] )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ^ )@
+  \_/ @@
+   _  @
+  / \ @
+ ( _ )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ` )@
+  \_/ @@
+   _  @
+  / \ @
+ ( a )@
+  \_/ @@
+   _  @
+  / \ @
+ ( b )@
+  \_/ @@
+   _  @
+  / \ @
+ ( c )@
+  \_/ @@
+   _  @
+  / \ @
+ ( d )@
+  \_/ @@
+   _  @
+  / \ @
+ ( e )@
+  \_/ @@
+   _  @
+  / \ @
+ ( f )@
+  \_/ @@
+   _  @
+  / \ @
+ ( g )@
+  \_/ @@
+   _  @
+  / \ @
+ ( h )@
+  \_/ @@
+   _  @
+  / \ @
+ ( i )@
+  \_/ @@
+   _  @
+  / \ @
+ ( j )@
+  \_/ @@
+   _  @
+  / \ @
+ ( k )@
+  \_/ @@
+   _  @
+  / \ @
+ ( l )@
+  \_/ @@
+   _  @
+  / \ @
+ ( m )@
+  \_/ @@
+   _  @
+  / \ @
+ ( n )@
+  \_/ @@
+   _  @
+  / \ @
+ ( o )@
+  \_/ @@
+   _  @
+  / \ @
+ ( p )@
+  \_/ @@
+   _  @
+  / \ @
+ ( q )@
+  \_/ @@
+   _  @
+  / \ @
+ ( r )@
+  \_/ @@
+   _  @
+  / \ @
+ ( s )@
+  \_/ @@
+   _  @
+  / \ @
+ ( t )@
+  \_/ @@
+   _  @
+  / \ @
+ ( u )@
+  \_/ @@
+   _  @
+  / \ @
+ ( v )@
+  \_/ @@
+   _  @
+  / \ @
+ ( w )@
+  \_/ @@
+   _  @
+  / \ @
+ ( x )@
+  \_/ @@
+   _  @
+  / \ @
+ ( y )@
+  \_/ @@
+   _  @
+  / \ @
+ ( z )@
+  \_/ @@
+   _  @
+  / \ @
+ ( { )@
+  \_/ @@
+   _  @
+  / \ @
+ ( | )@
+  \_/ @@
+   _  @
+  / \ @
+ ( } )@
+  \_/ @@
+   _  @
+  / \ @
+ ( ~ )@
+  \_/ @@
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+128
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+129
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+130
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+131
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+132
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+133
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+134
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+135
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+136
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+137
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+138
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+139
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+140
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+141
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+142
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+143
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+144
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+145
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+146
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+147
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+148
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+149
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+150
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+151
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+152
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+153
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+154
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+155
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+156
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+157
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+158
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+159
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+160  NO-BREAK SPACE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+161  INVERTED EXCLAMATION MARK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+162  CENT SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+163  POUND SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+164  CURRENCY SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+165  YEN SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+166  BROKEN BAR
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+167  SECTION SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+168  DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+169  COPYRIGHT SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+170  FEMININE ORDINAL INDICATOR
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+172  NOT SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+173  SOFT HYPHEN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+174  REGISTERED SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+175  MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+176  DEGREE SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+177  PLUS-MINUS SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+178  SUPERSCRIPT TWO
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+179  SUPERSCRIPT THREE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+180  ACUTE ACCENT
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+181  MICRO SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+182  PILCROW SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+183  MIDDLE DOT
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+184  CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+185  SUPERSCRIPT ONE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+186  MASCULINE ORDINAL INDICATOR
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+188  VULGAR FRACTION ONE QUARTER
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+189  VULGAR FRACTION ONE HALF
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+190  VULGAR FRACTION THREE QUARTERS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+191  INVERTED QUESTION MARK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+198  LATIN CAPITAL LETTER AE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+208  LATIN CAPITAL LETTER ETH
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+215  MULTIPLICATION SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+222  LATIN CAPITAL LETTER THORN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+223  LATIN SMALL LETTER SHARP S
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+224  LATIN SMALL LETTER A WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+225  LATIN SMALL LETTER A WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+227  LATIN SMALL LETTER A WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+230  LATIN SMALL LETTER AE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+232  LATIN SMALL LETTER E WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+233  LATIN SMALL LETTER E WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+236  LATIN SMALL LETTER I WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+237  LATIN SMALL LETTER I WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+240  LATIN SMALL LETTER ETH
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+241  LATIN SMALL LETTER N WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+242  LATIN SMALL LETTER O WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+243  LATIN SMALL LETTER O WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+245  LATIN SMALL LETTER O WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+247  DIVISION SIGN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+248  LATIN SMALL LETTER O WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+249  LATIN SMALL LETTER U WITH GRAVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+250  LATIN SMALL LETTER U WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+254  LATIN SMALL LETTER THORN
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0100  LATIN CAPITAL LETTER A WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0101  LATIN SMALL LETTER A WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0102  LATIN CAPITAL LETTER A WITH BREVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0103  LATIN SMALL LETTER A WITH BREVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0104  LATIN CAPITAL LETTER A WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0105  LATIN SMALL LETTER A WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0106  LATIN CAPITAL LETTER C WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0107  LATIN SMALL LETTER C WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0108  LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0109  LATIN SMALL LETTER C WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x010A  LATIN CAPITAL LETTER C WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x010B  LATIN SMALL LETTER C WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x010C  LATIN CAPITAL LETTER C WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x010D  LATIN SMALL LETTER C WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x010E  LATIN CAPITAL LETTER D WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x010F  LATIN SMALL LETTER D WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0110  LATIN CAPITAL LETTER D WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0111  LATIN SMALL LETTER D WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0112  LATIN CAPITAL LETTER E WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0113  LATIN SMALL LETTER E WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0116  LATIN CAPITAL LETTER E WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0117  LATIN SMALL LETTER E WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0118  LATIN CAPITAL LETTER E WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0119  LATIN SMALL LETTER E WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x011A  LATIN CAPITAL LETTER E WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x011B  LATIN SMALL LETTER E WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x011C  LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x011D  LATIN SMALL LETTER G WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x011E  LATIN CAPITAL LETTER G WITH BREVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x011F  LATIN SMALL LETTER G WITH BREVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0120  LATIN CAPITAL LETTER G WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0121  LATIN SMALL LETTER G WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0122  LATIN CAPITAL LETTER G WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0123  LATIN SMALL LETTER G WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0124  LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0125  LATIN SMALL LETTER H WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0126  LATIN CAPITAL LETTER H WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0127  LATIN SMALL LETTER H WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0128  LATIN CAPITAL LETTER I WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0129  LATIN SMALL LETTER I WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x012A  LATIN CAPITAL LETTER I WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x012B  LATIN SMALL LETTER I WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x012E  LATIN CAPITAL LETTER I WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x012F  LATIN SMALL LETTER I WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0130  LATIN CAPITAL LETTER I WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0131  LATIN SMALL LETTER DOTLESS I
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0134  LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0135  LATIN SMALL LETTER J WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0136  LATIN CAPITAL LETTER K WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0137  LATIN SMALL LETTER K WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0138  LATIN SMALL LETTER KRA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0139  LATIN CAPITAL LETTER L WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x013A  LATIN SMALL LETTER L WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x013B  LATIN CAPITAL LETTER L WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x013C  LATIN SMALL LETTER L WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x013D  LATIN CAPITAL LETTER L WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x013E  LATIN SMALL LETTER L WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0141  LATIN CAPITAL LETTER L WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0142  LATIN SMALL LETTER L WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0143  LATIN CAPITAL LETTER N WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0144  LATIN SMALL LETTER N WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0145  LATIN CAPITAL LETTER N WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0146  LATIN SMALL LETTER N WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0147  LATIN CAPITAL LETTER N WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0148  LATIN SMALL LETTER N WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x014A  LATIN CAPITAL LETTER ENG
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x014B  LATIN SMALL LETTER ENG
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x014C  LATIN CAPITAL LETTER O WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x014D  LATIN SMALL LETTER O WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0150  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0151  LATIN SMALL LETTER O WITH DOUBLE ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0154  LATIN CAPITAL LETTER R WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0155  LATIN SMALL LETTER R WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0156  LATIN CAPITAL LETTER R WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0157  LATIN SMALL LETTER R WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0158  LATIN CAPITAL LETTER R WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0159  LATIN SMALL LETTER R WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x015A  LATIN CAPITAL LETTER S WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x015B  LATIN SMALL LETTER S WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x015C  LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x015D  LATIN SMALL LETTER S WITH CIRCUMFLEX
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x015E  LATIN CAPITAL LETTER S WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x015F  LATIN SMALL LETTER S WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0160  LATIN CAPITAL LETTER S WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0161  LATIN SMALL LETTER S WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0162  LATIN CAPITAL LETTER T WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0163  LATIN SMALL LETTER T WITH CEDILLA
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0164  LATIN CAPITAL LETTER T WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0165  LATIN SMALL LETTER T WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0166  LATIN CAPITAL LETTER T WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0167  LATIN SMALL LETTER T WITH STROKE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0168  LATIN CAPITAL LETTER U WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0169  LATIN SMALL LETTER U WITH TILDE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x016A  LATIN CAPITAL LETTER U WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x016B  LATIN SMALL LETTER U WITH MACRON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x016C  LATIN CAPITAL LETTER U WITH BREVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x016D  LATIN SMALL LETTER U WITH BREVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x016E  LATIN CAPITAL LETTER U WITH RING ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x016F  LATIN SMALL LETTER U WITH RING ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0170  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0171  LATIN SMALL LETTER U WITH DOUBLE ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0172  LATIN CAPITAL LETTER U WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0173  LATIN SMALL LETTER U WITH OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x0179  LATIN CAPITAL LETTER Z WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x017A  LATIN SMALL LETTER Z WITH ACUTE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x017B  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x017C  LATIN SMALL LETTER Z WITH DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x017D  LATIN CAPITAL LETTER Z WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x017E  LATIN SMALL LETTER Z WITH CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x02C7  CARON
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x02D8  BREVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x02D9  DOT ABOVE
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x02DB  OGONEK
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
+0x02DD  DOUBLE ACUTE ACCENT
+   _  @
+  / \ @
+ ( � )@
+  \_/ @@
--- /dev/null
+++ b/fonts/digital.flf
@@ -1,0 +1,1286 @@
+flf2a 3 2 6 1 11 0 16513 242
+Digital by Glenn Chappell 1/94 -- based on Bubble
+Includes characters 128-255
+Enhanced for Latin-2,3,4 by John Cowan <cowan@ccil.org>
+Latin character sets supported only if your screen font does
+figlet release 2.2 -- November 1996
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+ @
+ @
+ @@
+ +-+@
+ |!|@
+ +-+@@
+ +-+@
+ |"|@
+ +-+@@
+ +-+@
+ |#|@
+ +-+@@
+ +-+@
+ |$|@
+ +-+@@
+ +-+@
+ |%|@
+ +-+@@
+ +-+@
+ |&|@
+ +-+@@
+ +-+@
+ |'|@
+ +-+@@
+ +-+@
+ |(|@
+ +-+@@
+ +-+@
+ |)|@
+ +-+@@
+ +-+@
+ |*|@
+ +-+@@
+ +-+@
+ |+|@
+ +-+@@
+ +-+@
+ |,|@
+ +-+@@
+ +-+@
+ |-|@
+ +-+@@
+ +-+@
+ |.|@
+ +-+@@
+ +-+@
+ |/|@
+ +-+@@
+ +-+@
+ |0|@
+ +-+@@
+ +-+@
+ |1|@
+ +-+@@
+ +-+@
+ |2|@
+ +-+@@
+ +-+@
+ |3|@
+ +-+@@
+ +-+@
+ |4|@
+ +-+@@
+ +-+@
+ |5|@
+ +-+@@
+ +-+@
+ |6|@
+ +-+@@
+ +-+@
+ |7|@
+ +-+@@
+ +-+@
+ |8|@
+ +-+@@
+ +-+@
+ |9|@
+ +-+@@
+ +-+@
+ |:|@
+ +-+@@
+ +-+@
+ |;|@
+ +-+@@
+ +-+@
+ |<|@
+ +-+@@
+ +-+@
+ |=|@
+ +-+@@
+ +-+@
+ |>|@
+ +-+@@
+ +-+@
+ |?|@
+ +-+@@
+ +-+@
+ |@|@
+ +-+@@
+ +-+@
+ |A|@
+ +-+@@
+ +-+@
+ |B|@
+ +-+@@
+ +-+@
+ |C|@
+ +-+@@
+ +-+@
+ |D|@
+ +-+@@
+ +-+@
+ |E|@
+ +-+@@
+ +-+@
+ |F|@
+ +-+@@
+ +-+@
+ |G|@
+ +-+@@
+ +-+@
+ |H|@
+ +-+@@
+ +-+@
+ |I|@
+ +-+@@
+ +-+@
+ |J|@
+ +-+@@
+ +-+@
+ |K|@
+ +-+@@
+ +-+@
+ |L|@
+ +-+@@
+ +-+@
+ |M|@
+ +-+@@
+ +-+@
+ |N|@
+ +-+@@
+ +-+@
+ |O|@
+ +-+@@
+ +-+@
+ |P|@
+ +-+@@
+ +-+@
+ |Q|@
+ +-+@@
+ +-+@
+ |R|@
+ +-+@@
+ +-+@
+ |S|@
+ +-+@@
+ +-+@
+ |T|@
+ +-+@@
+ +-+@
+ |U|@
+ +-+@@
+ +-+@
+ |V|@
+ +-+@@
+ +-+@
+ |W|@
+ +-+@@
+ +-+@
+ |X|@
+ +-+@@
+ +-+@
+ |Y|@
+ +-+@@
+ +-+@
+ |Z|@
+ +-+@@
+ +-+@
+ |[|@
+ +-+@@
+ +-+@
+ |\|@
+ +-+@@
+ +-+@
+ |]|@
+ +-+@@
+ +-+@
+ |^|@
+ +-+@@
+ +-+@
+ |_|@
+ +-+@@
+ +-+@
+ |`|@
+ +-+@@
+ +-+@
+ |a|@
+ +-+@@
+ +-+@
+ |b|@
+ +-+@@
+ +-+@
+ |c|@
+ +-+@@
+ +-+@
+ |d|@
+ +-+@@
+ +-+@
+ |e|@
+ +-+@@
+ +-+@
+ |f|@
+ +-+@@
+ +-+@
+ |g|@
+ +-+@@
+ +-+@
+ |h|@
+ +-+@@
+ +-+@
+ |i|@
+ +-+@@
+ +-+@
+ |j|@
+ +-+@@
+ +-+@
+ |k|@
+ +-+@@
+ +-+@
+ |l|@
+ +-+@@
+ +-+@
+ |m|@
+ +-+@@
+ +-+@
+ |n|@
+ +-+@@
+ +-+@
+ |o|@
+ +-+@@
+ +-+@
+ |p|@
+ +-+@@
+ +-+@
+ |q|@
+ +-+@@
+ +-+@
+ |r|@
+ +-+@@
+ +-+@
+ |s|@
+ +-+@@
+ +-+@
+ |t|@
+ +-+@@
+ +-+@
+ |u|@
+ +-+@@
+ +-+@
+ |v|@
+ +-+@@
+ +-+@
+ |w|@
+ +-+@@
+ +-+@
+ |x|@
+ +-+@@
+ +-+@
+ |y|@
+ +-+@@
+ +-+@
+ |z|@
+ +-+@@
+ +-+@
+ |{|@
+ +-+@@
+ +-+@
+ |||@
+ +-+@@
+ +-+@
+ |}|@
+ +-+@@
+ +-+@
+ |~|@
+ +-+@@
+ +-+@
+ |�|@
+ +-+@@
+ +-+@
+ |�|@
+ +-+@@
+ +-+@
+ |�|@
+ +-+@@
+ +-+@
+ |�|@
+ +-+@@
+ +-+@
+ |�|@
+ +-+@@
+ +-+@
+ |�|@
+ +-+@@
+ +-+@
+ |�|@
+ +-+@@
+128
+ +-+@
+ |�|@
+ +-+@@
+129
+ +-+@
+ |�|@
+ +-+@@
+130
+ +-+@
+ |�|@
+ +-+@@
+131
+ +-+@
+ |�|@
+ +-+@@
+132
+ +-+@
+ |�|@
+ +-+@@
+133
+ +-+@
+ |�|@
+ +-+@@
+134
+ +-+@
+ |�|@
+ +-+@@
+135
+ +-+@
+ |�|@
+ +-+@@
+136
+ +-+@
+ |�|@
+ +-+@@
+137
+ +-+@
+ |�|@
+ +-+@@
+138
+ +-+@
+ |�|@
+ +-+@@
+139
+ +-+@
+ |�|@
+ +-+@@
+140
+ +-+@
+ |�|@
+ +-+@@
+141
+ +-+@
+ |�|@
+ +-+@@
+142
+ +-+@
+ |�|@
+ +-+@@
+143
+ +-+@
+ |�|@
+ +-+@@
+144
+ +-+@
+ |�|@
+ +-+@@
+145
+ +-+@
+ |�|@
+ +-+@@
+146
+ +-+@
+ |�|@
+ +-+@@
+147
+ +-+@
+ |�|@
+ +-+@@
+148
+ +-+@
+ |�|@
+ +-+@@
+149
+ +-+@
+ |�|@
+ +-+@@
+150
+ +-+@
+ |�|@
+ +-+@@
+151
+ +-+@
+ |�|@
+ +-+@@
+152
+ +-+@
+ |�|@
+ +-+@@
+153
+ +-+@
+ |�|@
+ +-+@@
+154
+ +-+@
+ |�|@
+ +-+@@
+155
+ +-+@
+ |�|@
+ +-+@@
+156
+ +-+@
+ |�|@
+ +-+@@
+157
+ +-+@
+ |�|@
+ +-+@@
+158
+ +-+@
+ |�|@
+ +-+@@
+159
+ +-+@
+ |�|@
+ +-+@@
+160  NO-BREAK SPACE
+ +-+@
+ |�|@
+ +-+@@
+161  INVERTED EXCLAMATION MARK
+ +-+@
+ |�|@
+ +-+@@
+162  CENT SIGN
+ +-+@
+ |�|@
+ +-+@@
+163  POUND SIGN
+ +-+@
+ |�|@
+ +-+@@
+164  CURRENCY SIGN
+ +-+@
+ |�|@
+ +-+@@
+165  YEN SIGN
+ +-+@
+ |�|@
+ +-+@@
+166  BROKEN BAR
+ +-+@
+ |�|@
+ +-+@@
+167  SECTION SIGN
+ +-+@
+ |�|@
+ +-+@@
+168  DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+169  COPYRIGHT SIGN
+ +-+@
+ |�|@
+ +-+@@
+170  FEMININE ORDINAL INDICATOR
+ +-+@
+ |�|@
+ +-+@@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ +-+@
+ |�|@
+ +-+@@
+172  NOT SIGN
+ +-+@
+ |�|@
+ +-+@@
+173  SOFT HYPHEN
+ +-+@
+ |�|@
+ +-+@@
+174  REGISTERED SIGN
+ +-+@
+ |�|@
+ +-+@@
+175  MACRON
+ +-+@
+ |�|@
+ +-+@@
+176  DEGREE SIGN
+ +-+@
+ |�|@
+ +-+@@
+177  PLUS-MINUS SIGN
+ +-+@
+ |�|@
+ +-+@@
+178  SUPERSCRIPT TWO
+ +-+@
+ |�|@
+ +-+@@
+179  SUPERSCRIPT THREE
+ +-+@
+ |�|@
+ +-+@@
+180  ACUTE ACCENT
+ +-+@
+ |�|@
+ +-+@@
+181  MICRO SIGN
+ +-+@
+ |�|@
+ +-+@@
+182  PILCROW SIGN
+ +-+@
+ |�|@
+ +-+@@
+183  MIDDLE DOT
+ +-+@
+ |�|@
+ +-+@@
+184  CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+185  SUPERSCRIPT ONE
+ +-+@
+ |�|@
+ +-+@@
+186  MASCULINE ORDINAL INDICATOR
+ +-+@
+ |�|@
+ +-+@@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ +-+@
+ |�|@
+ +-+@@
+188  VULGAR FRACTION ONE QUARTER
+ +-+@
+ |�|@
+ +-+@@
+189  VULGAR FRACTION ONE HALF
+ +-+@
+ |�|@
+ +-+@@
+190  VULGAR FRACTION THREE QUARTERS
+ +-+@
+ |�|@
+ +-+@@
+191  INVERTED QUESTION MARK
+ +-+@
+ |�|@
+ +-+@@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+195  LATIN CAPITAL LETTER A WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+ +-+@
+ |�|@
+ +-+@@
+198  LATIN CAPITAL LETTER AE
+ +-+@
+ |�|@
+ +-+@@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+208  LATIN CAPITAL LETTER ETH
+ +-+@
+ |�|@
+ +-+@@
+209  LATIN CAPITAL LETTER N WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+213  LATIN CAPITAL LETTER O WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+215  MULTIPLICATION SIGN
+ +-+@
+ |�|@
+ +-+@@
+216  LATIN CAPITAL LETTER O WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+222  LATIN CAPITAL LETTER THORN
+ +-+@
+ |�|@
+ +-+@@
+223  LATIN SMALL LETTER SHARP S
+ +-+@
+ |�|@
+ +-+@@
+224  LATIN SMALL LETTER A WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+225  LATIN SMALL LETTER A WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+227  LATIN SMALL LETTER A WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+ +-+@
+ |�|@
+ +-+@@
+230  LATIN SMALL LETTER AE
+ +-+@
+ |�|@
+ +-+@@
+231  LATIN SMALL LETTER C WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+232  LATIN SMALL LETTER E WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+233  LATIN SMALL LETTER E WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+236  LATIN SMALL LETTER I WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+237  LATIN SMALL LETTER I WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+240  LATIN SMALL LETTER ETH
+ +-+@
+ |�|@
+ +-+@@
+241  LATIN SMALL LETTER N WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+242  LATIN SMALL LETTER O WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+243  LATIN SMALL LETTER O WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+245  LATIN SMALL LETTER O WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+247  DIVISION SIGN
+ +-+@
+ |�|@
+ +-+@@
+248  LATIN SMALL LETTER O WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+249  LATIN SMALL LETTER U WITH GRAVE
+ +-+@
+ |�|@
+ +-+@@
+250  LATIN SMALL LETTER U WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+253  LATIN SMALL LETTER Y WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+254  LATIN SMALL LETTER THORN
+ +-+@
+ |�|@
+ +-+@@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+ +-+@
+ |�|@
+ +-+@@
+0x0100  LATIN CAPITAL LETTER A WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x0101  LATIN SMALL LETTER A WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x0102  LATIN CAPITAL LETTER A WITH BREVE
+ +-+@
+ |�|@
+ +-+@@
+0x0103  LATIN SMALL LETTER A WITH BREVE
+ +-+@
+ |�|@
+ +-+@@
+0x0104  LATIN CAPITAL LETTER A WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x0105  LATIN SMALL LETTER A WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x0106  LATIN CAPITAL LETTER C WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0107  LATIN SMALL LETTER C WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0108  LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x0109  LATIN SMALL LETTER C WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x010A  LATIN CAPITAL LETTER C WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x010B  LATIN SMALL LETTER C WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x010C  LATIN CAPITAL LETTER C WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x010D  LATIN SMALL LETTER C WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x010E  LATIN CAPITAL LETTER D WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x010F  LATIN SMALL LETTER D WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0110  LATIN CAPITAL LETTER D WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0111  LATIN SMALL LETTER D WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0112  LATIN CAPITAL LETTER E WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x0113  LATIN SMALL LETTER E WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x0116  LATIN CAPITAL LETTER E WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x0117  LATIN SMALL LETTER E WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x0118  LATIN CAPITAL LETTER E WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x0119  LATIN SMALL LETTER E WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x011A  LATIN CAPITAL LETTER E WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x011B  LATIN SMALL LETTER E WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x011C  LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x011D  LATIN SMALL LETTER G WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x011E  LATIN CAPITAL LETTER G WITH BREVE
+ +-+@
+ |�|@
+ +-+@@
+0x011F  LATIN SMALL LETTER G WITH BREVE
+ +-+@
+ |�|@
+ +-+@@
+0x0120  LATIN CAPITAL LETTER G WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x0121  LATIN SMALL LETTER G WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x0122  LATIN CAPITAL LETTER G WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0123  LATIN SMALL LETTER G WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0124  LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x0125  LATIN SMALL LETTER H WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x0126  LATIN CAPITAL LETTER H WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0127  LATIN SMALL LETTER H WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0128  LATIN CAPITAL LETTER I WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+0x0129  LATIN SMALL LETTER I WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+0x012A  LATIN CAPITAL LETTER I WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x012B  LATIN SMALL LETTER I WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x012E  LATIN CAPITAL LETTER I WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x012F  LATIN SMALL LETTER I WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x0130  LATIN CAPITAL LETTER I WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x0131  LATIN SMALL LETTER DOTLESS I
+ +-+@
+ |�|@
+ +-+@@
+0x0134  LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x0135  LATIN SMALL LETTER J WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x0136  LATIN CAPITAL LETTER K WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0137  LATIN SMALL LETTER K WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0138  LATIN SMALL LETTER KRA
+ +-+@
+ |�|@
+ +-+@@
+0x0139  LATIN CAPITAL LETTER L WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x013A  LATIN SMALL LETTER L WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x013B  LATIN CAPITAL LETTER L WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x013C  LATIN SMALL LETTER L WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x013D  LATIN CAPITAL LETTER L WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x013E  LATIN SMALL LETTER L WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0141  LATIN CAPITAL LETTER L WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0142  LATIN SMALL LETTER L WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0143  LATIN CAPITAL LETTER N WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0144  LATIN SMALL LETTER N WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0145  LATIN CAPITAL LETTER N WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0146  LATIN SMALL LETTER N WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0147  LATIN CAPITAL LETTER N WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0148  LATIN SMALL LETTER N WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x014A  LATIN CAPITAL LETTER ENG
+ +-+@
+ |�|@
+ +-+@@
+0x014B  LATIN SMALL LETTER ENG
+ +-+@
+ |�|@
+ +-+@@
+0x014C  LATIN CAPITAL LETTER O WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x014D  LATIN SMALL LETTER O WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x0150  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0151  LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0154  LATIN CAPITAL LETTER R WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0155  LATIN SMALL LETTER R WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0156  LATIN CAPITAL LETTER R WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0157  LATIN SMALL LETTER R WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0158  LATIN CAPITAL LETTER R WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0159  LATIN SMALL LETTER R WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x015A  LATIN CAPITAL LETTER S WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x015B  LATIN SMALL LETTER S WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x015C  LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x015D  LATIN SMALL LETTER S WITH CIRCUMFLEX
+ +-+@
+ |�|@
+ +-+@@
+0x015E  LATIN CAPITAL LETTER S WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x015F  LATIN SMALL LETTER S WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0160  LATIN CAPITAL LETTER S WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0161  LATIN SMALL LETTER S WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0162  LATIN CAPITAL LETTER T WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0163  LATIN SMALL LETTER T WITH CEDILLA
+ +-+@
+ |�|@
+ +-+@@
+0x0164  LATIN CAPITAL LETTER T WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0165  LATIN SMALL LETTER T WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x0166  LATIN CAPITAL LETTER T WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0167  LATIN SMALL LETTER T WITH STROKE
+ +-+@
+ |�|@
+ +-+@@
+0x0168  LATIN CAPITAL LETTER U WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+0x0169  LATIN SMALL LETTER U WITH TILDE
+ +-+@
+ |�|@
+ +-+@@
+0x016A  LATIN CAPITAL LETTER U WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x016B  LATIN SMALL LETTER U WITH MACRON
+ +-+@
+ |�|@
+ +-+@@
+0x016C  LATIN CAPITAL LETTER U WITH BREVE
+ +-+@
+ |�|@
+ +-+@@
+0x016D  LATIN SMALL LETTER U WITH BREVE
+ +-+@
+ |�|@
+ +-+@@
+0x016E  LATIN CAPITAL LETTER U WITH RING ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x016F  LATIN SMALL LETTER U WITH RING ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x0170  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0171  LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x0172  LATIN CAPITAL LETTER U WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x0173  LATIN SMALL LETTER U WITH OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x0179  LATIN CAPITAL LETTER Z WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x017A  LATIN SMALL LETTER Z WITH ACUTE
+ +-+@
+ |�|@
+ +-+@@
+0x017B  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x017C  LATIN SMALL LETTER Z WITH DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x017D  LATIN CAPITAL LETTER Z WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x017E  LATIN SMALL LETTER Z WITH CARON
+ +-+@
+ |�|@
+ +-+@@
+0x02C7  CARON
+ +-+@
+ |�|@
+ +-+@@
+0x02D8  BREVE
+ +-+@
+ |�|@
+ +-+@@
+0x02D9  DOT ABOVE
+ +-+@
+ |�|@
+ +-+@@
+0x02DB  OGONEK
+ +-+@
+ |�|@
+ +-+@@
+0x02DD  DOUBLE ACUTE ACCENT
+ +-+@
+ |�|@
+ +-+@@
--- /dev/null
+++ b/fonts/frango.flc
@@ -1,0 +1,65 @@
+flc2a
+# This file can be used with a Unicode-Greek FIGfont
+# to convert "frangovlakhika" (Greek written in Latin
+# letters) into real Greek.
+#
+# The mapping is the same as that used by the "ntgreek" FIGfont.
+
+t ( \0x02BD
+t ) \0x02BC
+t : \0x0387
+t A \0x0391
+t B \0x0392
+t C \0x03A7
+t D \0x0394
+t E \0x0395
+t F \0x03A6
+t G \0x0393
+t H \0x0397
+t I \0x0399
+t J \0x03D1
+t K \0x039A
+t L \0x039B
+t M \0x039C
+t N \0x039D
+t O \0x039F
+t P \0x03A0
+t Q \0x0398
+t R \0x03A1
+t S \0x03A3
+t T \0x03A4
+t U \0x03A5
+t V \0x03C2 sigma
+t W \0x03A9
+t X \0x039E
+t Y \0x03A8
+t Z \0x0396
+t _ \0x037A
+t a \0x03b1
+t b \0x03b2
+t c \0x03C7
+t d \0x03B4
+t e \0x03B5
+t f \0x03C6
+t g \0x03B3
+t h \0x03B7
+t i \0x03B9
+t j \0x03D5
+t k \0x03BA
+t l \0x03BB
+t m \0x03BC
+t n \0x03BD
+t o \0x03BF
+t p \0x03C0
+t q \0x03B8
+t r \0x03C1
+t s \0x03C3
+t t \0x03C4
+t u \0x03C5
+t v \0x03D6
+t w \0x03C9
+t x \0x03BE
+t y \0x03C8
+t z \0x03B6
+t ' \0x00A8
+t ~ \-5
--- /dev/null
+++ b/fonts/hz.flc
@@ -1,0 +1,4 @@
+flc2a
+# Set HZ input mode (a 7-bit encoding of GB Chinese text)
+# Meaningful only to FIGlet 2.2 beta 4 or better
+h
--- /dev/null
+++ b/fonts/ilhebrew.flc
@@ -1,0 +1,38 @@
+flc2a
+# implements a natural mapping from the Hebrew keyboard
+# to Hebrew letters in the Ivrit font.
+# Note that capital letters remain unchanged.
+
+t t \0x05d0
+t c \0x05d1
+t d \0x05d2
+t s \0x05d3
+t v \0x05d4
+t u \0x05d5
+t z \0x05d6
+t j \0x05d7
+t y \0x05d8
+t h \0x05d9
+t f \0x05db
+t l \0x05da
+t k \0x05dc
+t n \0x05de
+t o \0x05dd
+t b \0x05e0
+t i \0x05df
+t x \0x05e1
+t g \0x05e2
+t p \0x05e3
+t ; \0x05e4
+t m \0x05e6
+t . \0x05e5
+t e \0x05e7
+t r \0x05e8
+t a \0x05e9
+t , \0x05ea
+t ' ,
+t / .
+t ` ;
+t q /
+t w '
+t ~ \-2
--- /dev/null
+++ b/fonts/ivrit.flf
@@ -1,0 +1,900 @@
+flf2a$ 6 5 76 15 14 1 16271 39
+Ivrit (Hebrew) Unicode font assembled by John Cowan <cowan@ccil.org>
+Latin chars from  Standard by G. Chappell & Ian Chai
+Hebrew chars from Jerusalem by Gedaliah Friedenberg <gfrieden@nyx.cs.du.edu>
+        Use "ilhebrew.flc" for Hebrew keyboard mapping
+        Use "ushebrew.flc" for U.S.-style keyboard mapping ("febrew" script)
+        Use "8859-8.flc" for ISO 8859-8 text
+        Or use UTF-8
+WARNING! FIGfonts aren't bidirectional; this is strictly right-to-left 
+        (by default) even for the Latin characters.
+figlet release 2.2 -- November 1996
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@@
+  _ @
+ | |@
+ | |@
+ |_|@
+ (_)@
+    @@
+  _ _ @
+ ( | )@
+  V V @
+   $  @
+   $  @
+      @@
+    _  _   @
+  _| || |_ @
+ |_  ..  _|@
+ |_      _|@
+   |_||_|  @
+           @@
+   _  @
+  | | @
+ / __)@
+ \__ \@
+ (   /@
+  |_| @@
+  _  __@
+ (_)/ /@
+   / / @
+  / /_ @
+ /_/(_)@
+       @@
+   ___   @
+  ( _ )  @
+  / _ \/\@
+ | (_>  <@
+  \___/\/@
+         @@
+  _ @
+ ( )@
+ |/ @
+  $ @
+  $ @
+    @@
+   __@
+  / /@
+ | | @
+ | | @
+ | | @
+  \_\@@
+ __  @
+ \ \ @
+  | |@
+  | |@
+  | |@
+ /_/ @@
+       @
+ __/\__@
+ \    /@
+ /_  _\@
+   \/  @
+       @@
+        @
+    _   @
+  _| |_ @
+ |_   _|@
+   |_|  @
+        @@
+    @
+    @
+    @
+  _ @
+ ( )@
+ |/ @@
+        @
+        @
+  _____ @
+ |_____|@
+    $   @
+        @@
+    @
+    @
+    @
+  _ @
+ (_)@
+    @@
+     __@
+    / /@
+   / / @
+  / /  @
+ /_/   @
+       @@
+   ___  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+  _ @
+ / |@
+ | |@
+ | |@
+ |_|@
+    @@
+  ____  @
+ |___ \ @
+   __) |@
+  / __/ @
+ |_____|@
+        @@
+  _____ @
+ |___ / @
+   |_ \ @
+  ___) |@
+ |____/ @
+        @@
+  _  _   @
+ | || |  @
+ | || |_ @
+ |__   _|@
+    |_|  @
+         @@
+  ____  @
+ | ___| @
+ |___ \ @
+  ___) |@
+ |____/ @
+        @@
+   __   @
+  / /_  @
+ | '_ \ @
+ | (_) |@
+  \___/ @
+        @@
+  _____ @
+ |___  |@
+    / / @
+   / /  @
+  /_/   @
+        @@
+   ___  @
+  ( _ ) @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+   ___  @
+  / _ \ @
+ | (_) |@
+  \__, |@
+    /_/ @
+        @@
+    @
+  _ @
+ (_)@
+  _ @
+ (_)@
+    @@
+    @
+  _ @
+ (_)@
+  _ @
+ ( )@
+ |/ @@
+   __@
+  / /@
+ / / @
+ \ \ @
+  \_\@
+     @@
+        @
+  _____ @
+ |_____|@
+ |_____|@
+    $   @
+        @@
+ __  @
+ \ \ @
+  \ \@
+  / /@
+ /_/ @
+     @@
+  ___ @
+ |__ \@
+   / /@
+  |_| @
+  (_) @
+      @@
+    ____  @
+   / __ \ @
+  / / _` |@
+ | | (_| |@
+  \ \__,_|@
+   \____/ @@
+     _    @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @@
+  ____  @
+ | __ ) @
+ |  _ \ @
+ | |_) |@
+ |____/ @
+        @@
+   ____ @
+  / ___|@
+ | |    @
+ | |___ @
+  \____|@
+        @@
+  ____  @
+ |  _ \ @
+ | | | |@
+ | |_| |@
+ |____/ @
+        @@
+  _____ @
+ | ____|@
+ |  _|  @
+ | |___ @
+ |_____|@
+        @@
+  _____ @
+ |  ___|@
+ | |_   @
+ |  _|  @
+ |_|    @
+        @@
+   ____ @
+  / ___|@
+ | |  _ @
+ | |_| |@
+  \____|@
+        @@
+  _   _ @
+ | | | |@
+ | |_| |@
+ |  _  |@
+ |_| |_|@
+        @@
+  ___ @
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @@
+      _ @
+     | |@
+  _  | |@
+ | |_| |@
+  \___/ @
+        @@
+  _  __@
+ | |/ /@
+ | ' / @
+ | . \ @
+ |_|\_\@
+       @@
+  _     @
+ | |    @
+ | |    @
+ | |___ @
+ |_____|@
+        @@
+  __  __ @
+ |  \/  |@
+ | |\/| |@
+ | |  | |@
+ |_|  |_|@
+         @@
+  _   _ @
+ | \ | |@
+ |  \| |@
+ | |\  |@
+ |_| \_|@
+        @@
+   ___  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+  ____  @
+ |  _ \ @
+ | |_) |@
+ |  __/ @
+ |_|    @
+        @@
+   ___  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \__\_\@
+        @@
+  ____  @
+ |  _ \ @
+ | |_) |@
+ |  _ < @
+ |_| \_\@
+        @@
+  ____  @
+ / ___| @
+ \___ \ @
+  ___) |@
+ |____/ @
+        @@
+  _____ @
+ |_   _|@
+   | |  @
+   | |  @
+   |_|  @
+        @@
+  _   _ @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+ __     __@
+ \ \   / /@
+  \ \ / / @
+   \ V /  @
+    \_/   @
+          @@
+ __        __@
+ \ \      / /@
+  \ \ /\ / / @
+   \ V  V /  @
+    \_/\_/   @
+             @@
+ __  __@
+ \ \/ /@
+  \  / @
+  /  \ @
+ /_/\_\@
+       @@
+ __   __@
+ \ \ / /@
+  \ V / @
+   | |  @
+   |_|  @
+        @@
+  _____@
+ |__  /@
+   / / @
+  / /_ @
+ /____|@
+       @@
+  __ @
+ | _|@
+ | | @
+ | | @
+ | | @
+ |__|@@
+ __    @
+ \ \   @
+  \ \  @
+   \ \ @
+    \_\@
+       @@
+  __ @
+ |_ |@
+  | |@
+  | |@
+  | |@
+ |__|@@
+  /\ @
+ |/\|@
+   $ @
+   $ @
+   $ @
+     @@
+        @
+        @
+        @
+        @
+  _____ @
+ |_____|@@
+  _ @
+ ( )@
+  \|@
+  $ @
+  $ @
+    @@
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+  _     @
+ | |__  @
+ | '_ \ @
+ | |_) |@
+ |_.__/ @
+        @@
+       @
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+       @@
+      _ @
+   __| |@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+       @
+   ___ @
+  / _ \@
+ |  __/@
+  \___|@
+       @@
+   __ @
+  / _|@
+ | |_ @
+ |  _|@
+ |_|  @
+      @@
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+  |___/ @@
+  _     @
+ | |__  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+  _ @
+ (_)@
+ | |@
+ | |@
+ |_|@
+    @@
+    _ @
+   (_)@
+   | |@
+   | |@
+  _/ |@
+ |__/ @@
+  _    @
+ | | __@
+ | |/ /@
+ |   < @
+ |_|\_\@
+       @@
+  _ @
+ | |@
+ | |@
+ | |@
+ |_|@
+    @@
+            @
+  _ __ ___  @
+ | '_ ` _ \ @
+ | | | | | |@
+ |_| |_| |_|@
+            @@
+        @
+  _ __  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+        @
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+        @
+  _ __  @
+ | '_ \ @
+ | |_) |@
+ | .__/ @
+ |_|    @@
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+     |_|@@
+       @
+  _ __ @
+ | '__|@
+ | |   @
+ |_|   @
+       @@
+      @
+  ___ @
+ / __|@
+ \__ \@
+ |___/@
+      @@
+  _   @
+ | |_ @
+ | __|@
+ | |_ @
+  \__|@
+      @@
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+        @
+ __   __@
+ \ \ / /@
+  \ V / @
+   \_/  @
+        @@
+           @
+ __      __@
+ \ \ /\ / /@
+  \ V  V / @
+   \_/\_/  @
+           @@
+       @
+ __  __@
+ \ \/ /@
+  >  < @
+ /_/\_\@
+       @@
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__, |@
+  |___/ @@
+      @
+  ____@
+ |_  /@
+  / / @
+ /___|@
+      @@
+    __@
+   / /@
+  | | @
+ < <  @
+  | | @
+   \_\@@
+  _ @
+ | |@
+ | |@
+ | |@
+ | |@
+ |_|@@
+ __   @
+ \ \  @
+  | | @
+   > >@
+  | | @
+ /_/  @@
+  /\/|@
+ |/\/ @
+   $  @
+   $  @
+   $  @
+      @@
+  _   _ @
+ (_)_(_)@
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+  _   _ @
+ (_)_(_)@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+   ___ @
+  / _ \@
+ | |/ /@
+ | |\ \@
+ | ||_/@
+ |_|   @@
+160  NO-BREAK SPACE
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@@
+173  SOFT HYPHEN
+        @
+        @
+  _____ @
+ |_____|@
+    $   @
+        @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+223  LATIN SMALL LETTER SHARP S
+   ___ @
+  / _ \@
+ | |/ /@
+ | |\ \@
+ | ||_/@
+ |_|   @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+0x05D0  HEBREW LETTER ALEF
+ __   __@
+ \ \ / /@
+ |  V / @
+ | |\ \ @
+ |_| \_\@
+        @@
+0x05D1  HEBREW LETTER BET
+   ______  @
+  |____  | @
+       | | @
+  _____| |_@
+ /________/@
+           @@
+0x05D2  HEBREW LETTER GIMEL
+    ____  @
+   |__  | @
+      | | @
+  ____| | @
+ /____/\_\@
+          @@
+0x05D3  HEBREW LETTER DALET
+  _______ @
+ |____   |@
+      | | @
+      | | @
+      |_| @
+          @@
+0x05D4  HEBREW LETTER HE
+  _______ @
+ |_____  |@
+   _   | |@
+  | |  | |@
+  |_|  |_|@
+          @@
+0x05D5  HEBREW LETTER VAV
+  ___ @
+ |_  |@
+   | |@
+   | |@
+   |_|@
+      @@
+0x05D6  HEBREW LETTER ZAYIN
+ ________ @
+ \__   __\@
+    | |   @
+    | |   @
+    |_|   @
+          @@
+0x05D7  HEBREW LETTER HET
+  _______ @
+ |.  __  |@
+  | |  | |@
+  | |  | |@
+  |_|  |_|@
+          @@
+0x05D8  HEBREW LETTER TET
+  __   ___ @
+ |. | /_  |@
+  | |   | |@
+  | |___| |@
+  |_______|@
+           @@
+0x05D9  HEBREW LETTER YOD
+  ___ @
+ |_  |@
+   |_|@
+    $ @
+    $ @
+      @@
+0x05DA  HEBREW LETTER FINAL KAF
+  _______ @
+ |____  .|@
+      | | @
+      | | @
+      | | @
+      |_| @@
+0x05DB  HEBREW LETTER KAF
+  _____  @
+ |____ \ @
+      | |@
+  ____| |@
+ |_____/ @
+         @@
+0x05DC  HEBREW LETTER LAMED
+ |=|____ @
+ |____  |@
+     / / @
+    / /  @
+   /_/   @
+         @@
+0x05DD  HEBREW LETTER FINAL MEM
+  ________ @
+ |.  ___  |@
+  | |   | |@
+  | |___| |@
+  |_______|@
+           @@
+0x05DE  HEBREW LETTER MEM
+  _______ @
+ |.  __  |@
+  | |  | |@
+  | | _| |@
+  |_||___|@
+          @@
+0x05DF  HEBREW LETTER FINAL NUN
+  ___ @
+ |_  |@
+   | |@
+   | |@
+   | |@
+   |_|@@
+0x05E0  HEBREW LETTER NUN
+   ___ @
+  |_  |@
+    | |@
+  __| |@
+ |____|@
+       @@
+0x05E1  HEBREW LETTER SAMEKH
+  _______ @
+ |.  __  |@
+  | |  | |@
+  | |__/ |@
+  |_____/ @
+          @@
+0x05E2  HEBREW LETTER AYIN
+  __   _ @
+  \ \ | |@
+   \ \| |@
+  __\ ` |@
+ |______|@
+         @@
+0x05E3  HEBREW LETTER FINAL PE
+  ______ @
+ |  __  |@
+ | |_ | |@
+ |___|| |@
+      | |@
+      |_|@@
+0x05E4  HEBREW LETTER PE
+  _______ @
+ |  ___  |@
+  \_\  | |@
+  _____| |@
+ |_______|@
+          @@
+0x05E5  HEBREW LETTER FINAL TSADI
+  __   _ @
+ |. | | |@
+  | | // @
+  | |//  @
+  | |    @
+  |_|    @@
+0x05E6  HEBREW LETTER TSADI
+   __   __.@
+   \ \ / / @
+    \ V /  @
+  ___\  \  @
+ |______|  @
+           @@
+0x05E7  HEBREW LETTER QOF
+  ______ @
+ |____  |@
+   _  | |@
+  | | |_|@
+  | |    @
+  |_|    @@
+0x05E8  HEBREW LETTER RESH
+  ______ @
+ |____  |@
+      | |@
+      | |@
+      |_|@
+         @@
+0x05E9  HEBREW LETTER SHIN
+  _   _   _ @
+ | | | | | |@
+ | | | | | |@
+ | |/ /_/ / @
+ |_______/  @
+            @@
+0x05EA  HEBREW LETTER TAV
+    ______ @
+   |  __  |@
+   | |  | |@
+  _| |  | |@
+ |___|  |_|@
+           @@
+0x2721  STAR OF DAVID
+       @
+ __/\__@
+ \    /@
+ /_  _\@
+   \/  @
+       @@
+-0x0002  
+aleph = t, bet/vet = c, gimel = d, dalet = s, he = v, vav = u, zayin = z  @
+het = j, tet = y, yod = h, kaf/chaf = f, final kaf = l, lamed = k, mem = n@
+final mem = o, nun = b, final nun = i, samekh = x, ayin = g, pe/fe = p,   @
+final pe = ;, tsadi = m, final tsadi = ., qof = e, resh = r, shin/sin = a @
+tav = , comma = ', period = /, semicolon = `, slash = q, apostrophe = w   @
+Star of David = *                                                         @@
+-0x0003  
+aleph = a, bet/vet = b, gimel = g, dalet = d, he = h, vav = v, zayin = z  @
+het = c, tet = t, yod = y, kaf/chaf = k, final kaf = f, lamed = l, mem = m@
+final mem = o, nun = n, final nun = i, samekh = e, ayin = _, pe/fe = p,   @
+final pe = u, tsadi = j, final tsadi = w, qof = q, resh = r, shin/sin = s @
+tav = x                                                                   @
+Star of David = *                                                         @@
--- /dev/null
+++ b/fonts/jis0201.flc
@@ -1,0 +1,202 @@
+#
+#	Name:             JIS X 0201 (1976) to Unicode 1.1 Table
+#	Unicode version:  1.1
+#	Table version:    0.9
+#	Table format:     Format A
+#	Date:             8 March 1994
+#	Authors:          Glenn Adams <glenn@metis.com>
+#                     John H. Jenkins <John_Jenkins@taligent.com>
+#
+#	Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.
+#
+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+#	No claims are made as to fitness for any particular purpose.  No
+#	warranties of any kind are expressed or implied.  The recipient
+#	agrees to determine applicability of information provided.  If this
+#	file has been provided on magnetic media by Unicode, Inc., the sole
+#	remedy for any claim will be exchange of defective media within 90
+#	days of receipt.
+#
+#	Recipient is granted the right to make copies in any form for
+#	internal distribution and to freely use the information supplied
+#	in the creation of products supporting Unicode.  Unicode, Inc.
+#	specifically excludes the right to re-distribute this file directly
+#	to third parties or other organizations whether for profit or not.
+#
+#	General notes:
+#
+#	This table contains the data the Unicode Consortium has on how
+#	single-byte JIS X 0201 characters map into Unicode 1.1
+#	(ISO/IEC 10646:1-1993 UCS-2).
+#
+#	Format:  Three tab-separated columns
+#		Column #1 is the shift JIS code (in hex as 0xXX)
+#		Column #2 is the Unicode (in hex as 0xXXXX)
+#		Column #3 the Unicode (ISO 10646) name (follows a comment sign)
+#
+#	The entries are in JIS order
+#
+#   These mappings are provisional, pending definition of
+#       official mappings by Japanese standards bodies.
+#
+#	Any comments or problems, contact <John_Jenkins@taligent.com>
+#
+#
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x005B	# LEFT SQUARE BRACKET
+0x5C	0x00A5	# YEN SIGN
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x007B	# LEFT CURLY BRACKET
+0x7C	0x007C	# VERTICAL LINE
+0x7D	0x007D	# RIGHT CURLY BRACKET
+0x7E	0x203E	# OVERLINE
+0xA1	0xFF61	# HALFWIDTH IDEOGRAPHIC FULL STOP
+0xA2	0xFF62	# HALFWIDTH LEFT CORNER BRACKET
+0xA3	0xFF63	# HALFWIDTH RIGHT CORNER BRACKET
+0xA4	0xFF64	# HALFWIDTH IDEOGRAPHIC COMMA
+0xA5	0xFF65	# HALFWIDTH KATAKANA MIDDLE DOT
+0xA6	0xFF66	# HALFWIDTH KATAKANA LETTER WO
+0xA7	0xFF67	# HALFWIDTH KATAKANA LETTER SMALL A
+0xA8	0xFF68	# HALFWIDTH KATAKANA LETTER SMALL I
+0xA9	0xFF69	# HALFWIDTH KATAKANA LETTER SMALL U
+0xAA	0xFF6A	# HALFWIDTH KATAKANA LETTER SMALL E
+0xAB	0xFF6B	# HALFWIDTH KATAKANA LETTER SMALL O
+0xAC	0xFF6C	# HALFWIDTH KATAKANA LETTER SMALL YA
+0xAD	0xFF6D	# HALFWIDTH KATAKANA LETTER SMALL YU
+0xAE	0xFF6E	# HALFWIDTH KATAKANA LETTER SMALL YO
+0xAF	0xFF6F	# HALFWIDTH KATAKANA LETTER SMALL TU
+0xB0	0xFF70	# HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+0xB1	0xFF71	# HALFWIDTH KATAKANA LETTER A
+0xB2	0xFF72	# HALFWIDTH KATAKANA LETTER I
+0xB3	0xFF73	# HALFWIDTH KATAKANA LETTER U
+0xB4	0xFF74	# HALFWIDTH KATAKANA LETTER E
+0xB5	0xFF75	# HALFWIDTH KATAKANA LETTER O
+0xB6	0xFF76	# HALFWIDTH KATAKANA LETTER KA
+0xB7	0xFF77	# HALFWIDTH KATAKANA LETTER KI
+0xB8	0xFF78	# HALFWIDTH KATAKANA LETTER KU
+0xB9	0xFF79	# HALFWIDTH KATAKANA LETTER KE
+0xBA	0xFF7A	# HALFWIDTH KATAKANA LETTER KO
+0xBB	0xFF7B	# HALFWIDTH KATAKANA LETTER SA
+0xBC	0xFF7C	# HALFWIDTH KATAKANA LETTER SI
+0xBD	0xFF7D	# HALFWIDTH KATAKANA LETTER SU
+0xBE	0xFF7E	# HALFWIDTH KATAKANA LETTER SE
+0xBF	0xFF7F	# HALFWIDTH KATAKANA LETTER SO
+0xC0	0xFF80	# HALFWIDTH KATAKANA LETTER TA
+0xC1	0xFF81	# HALFWIDTH KATAKANA LETTER TI
+0xC2	0xFF82	# HALFWIDTH KATAKANA LETTER TU
+0xC3	0xFF83	# HALFWIDTH KATAKANA LETTER TE
+0xC4	0xFF84	# HALFWIDTH KATAKANA LETTER TO
+0xC5	0xFF85	# HALFWIDTH KATAKANA LETTER NA
+0xC6	0xFF86	# HALFWIDTH KATAKANA LETTER NI
+0xC7	0xFF87	# HALFWIDTH KATAKANA LETTER NU
+0xC8	0xFF88	# HALFWIDTH KATAKANA LETTER NE
+0xC9	0xFF89	# HALFWIDTH KATAKANA LETTER NO
+0xCA	0xFF8A	# HALFWIDTH KATAKANA LETTER HA
+0xCB	0xFF8B	# HALFWIDTH KATAKANA LETTER HI
+0xCC	0xFF8C	# HALFWIDTH KATAKANA LETTER HU
+0xCD	0xFF8D	# HALFWIDTH KATAKANA LETTER HE
+0xCE	0xFF8E	# HALFWIDTH KATAKANA LETTER HO
+0xCF	0xFF8F	# HALFWIDTH KATAKANA LETTER MA
+0xD0	0xFF90	# HALFWIDTH KATAKANA LETTER MI
+0xD1	0xFF91	# HALFWIDTH KATAKANA LETTER MU
+0xD2	0xFF92	# HALFWIDTH KATAKANA LETTER ME
+0xD3	0xFF93	# HALFWIDTH KATAKANA LETTER MO
+0xD4	0xFF94	# HALFWIDTH KATAKANA LETTER YA
+0xD5	0xFF95	# HALFWIDTH KATAKANA LETTER YU
+0xD6	0xFF96	# HALFWIDTH KATAKANA LETTER YO
+0xD7	0xFF97	# HALFWIDTH KATAKANA LETTER RA
+0xD8	0xFF98	# HALFWIDTH KATAKANA LETTER RI
+0xD9	0xFF99	# HALFWIDTH KATAKANA LETTER RU
+0xDA	0xFF9A	# HALFWIDTH KATAKANA LETTER RE
+0xDB	0xFF9B	# HALFWIDTH KATAKANA LETTER RO
+0xDC	0xFF9C	# HALFWIDTH KATAKANA LETTER WA
+0xDD	0xFF9D	# HALFWIDTH KATAKANA LETTER N
+0xDE	0xFF9E	# HALFWIDTH KATAKANA VOICED SOUND MARK
+0xDF	0xFF9F	# HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
--- /dev/null
+++ b/fonts/koi8r.flc
@@ -1,0 +1,128 @@
+t \0x80 \0x2500
+t \0x81 \0x2502
+t \0x82 \0x250c
+t \0x83 \0x2510
+t \0x84 \0x2514
+t \0x85 \0x2518
+t \0x86 \0x251c
+t \0x87 \0x2524
+t \0x88 \0x252c
+t \0x89 \0x2534
+t \0x8a \0x253c
+t \0x8b \0x2580
+t \0x8c \0x2584
+t \0x8d \0x2588
+t \0x8e \0x258c
+t \0x8f \0x2590
+t \0x90 \0x2591
+t \0x91 \0x2592
+t \0x92 \0x2593
+t \0x93 \0x2320
+t \0x94 \0x25a0
+t \0x95 \0x2219
+t \0x96 \0x221a
+t \0x97 \0x2248
+t \0x98 \0x2264
+t \0x99 \0x2265
+t \0x9a \0x00a0
+t \0x9b \0x2321
+t \0x9c \0x00b0
+t \0x9d \0x00b2
+t \0x9e \0x00b7
+t \0x9f \0x00f7
+t \0xa0 \0x2550
+t \0xa1 \0x2551
+t \0xa2 \0x2552
+t \0xa3 \0x0451
+t \0xa4 \0x2553
+t \0xa5 \0x2554
+t \0xa6 \0x2555
+t \0xa7 \0x2556
+t \0xa8 \0x2557
+t \0xa9 \0x2558
+t \0xaa \0x2559
+t \0xab \0x255a
+t \0xac \0x255b
+t \0xad \0x255c
+t \0xae \0x255d
+t \0xaf \0x255e
+t \0xb0 \0x255f
+t \0xb1 \0x2560
+t \0xb2 \0x2561
+t \0xb3 \0x0401
+t \0xb4 \0x2562
+t \0xb5 \0x2563
+t \0xb6 \0x2564
+t \0xb7 \0x2565
+t \0xb8 \0x2566
+t \0xb9 \0x2567
+t \0xba \0x2568
+t \0xbb \0x2569
+t \0xbc \0x256a
+t \0xbd \0x256b
+t \0xbe \0x256c
+t \0xbf \0x00a9
+t \0xc0 \0x044e
+t \0xc1 \0x0430
+t \0xc2 \0x0431
+t \0xc3 \0x0446
+t \0xc4 \0x0434
+t \0xc5 \0x0435
+t \0xc6 \0x0444
+t \0xc7 \0x0433
+t \0xc8 \0x0445
+t \0xc9 \0x0438
+t \0xca \0x0439
+t \0xcb \0x043a
+t \0xcc \0x043b
+t \0xcd \0x043c
+t \0xce \0x043d
+t \0xcf \0x043e
+t \0xd0 \0x043f
+t \0xd1 \0x044f
+t \0xd2 \0x0440
+t \0xd3 \0x0441
+t \0xd4 \0x0442
+t \0xd5 \0x0443
+t \0xd6 \0x0436
+t \0xd7 \0x0432
+t \0xd8 \0x044c
+t \0xd9 \0x044b
+t \0xda \0x0437
+t \0xdb \0x0448
+t \0xdc \0x044d
+t \0xdd \0x0449
+t \0xde \0x0447
+t \0xdf \0x044a
+t \0xe0 \0x042e
+t \0xe1 \0x0410
+t \0xe2 \0x0411
+t \0xe3 \0x0426
+t \0xe4 \0x0414
+t \0xe5 \0x0415
+t \0xe6 \0x0424
+t \0xe7 \0x0413
+t \0xe8 \0x0425
+t \0xe9 \0x0418
+t \0xea \0x0419
+t \0xeb \0x041a
+t \0xec \0x041b
+t \0xed \0x041c
+t \0xee \0x041d
+t \0xef \0x041e
+t \0xf0 \0x041f
+t \0xf1 \0x042f
+t \0xf2 \0x0420
+t \0xf3 \0x0421
+t \0xf4 \0x0422
+t \0xf5 \0x0423
+t \0xf6 \0x0416
+t \0xf7 \0x0412
+t \0xf8 \0x042c
+t \0xf9 \0x042b
+t \0xfa \0x0417
+t \0xfb \0x0428
+t \0xfc \0x042d
+t \0xfd \0x0429
+t \0xfe \0x0427
+t \0xff \0x042a
--- /dev/null
+++ b/fonts/lean.flf
@@ -1,0 +1,1691 @@
+flf2a$ 8 6 27 0 10 0 576 96
+Lean by Glenn Chappell 4/93 -- based on various .sig's
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+       $  $@
+      $  $ @
+     $  $  @
+    $  $   @
+   $  $    @
+  $  $     @
+ $  $      @
+$  $       @@
+       $$@
+    _/ $ @
+   _/ $  @
+  _/ $   @
+   $$    @
+_/ $     @
+ $$      @
+         @@
+   _/  _/ $@
+  _/  _/ $ @
+       $$  @
+  $$       @
+ $$        @
+$$         @
+           @
+           @@
+            $$ @
+     _/  _/   $@
+  _/_/_/_/_/ $ @
+   _/  _/   $  @
+_/_/_/_/_/ $   @
+ _/  _/   $    @
+      $$       @
+               @@
+         $$ @
+      _/   $@
+   _/_/_/ $ @
+  _/_/   $  @
+   _/_/ $   @
+_/_/_/ $    @
+ _/   $     @
+  $$        @@
+               $$@
+    _/_/    _/ $ @
+   _/_/  _/   $  @
+      _/     $   @
+   _/  _/_/ $    @
+_/    _/_/ $     @
+         $$      @
+                 @@
+        $$    @
+     _/   $   @
+  _/  _/     $@
+   _/_/  _/ $ @
+_/    _/   $  @
+ _/_/  _/ $   @
+        $$    @
+              @@
+       _/ $@
+    _/   $ @
+     $$    @
+  $$       @
+ $$        @
+$$         @
+           @
+           @@
+       _/ $@
+    _/   $ @
+   _/ $    @
+  _/ $     @
+ _/ $      @
+_/   $     @
+ _/ $      @
+  $$       @@
+      _/   $@
+       _/ $ @
+      _/ $  @
+     _/ $   @
+    _/ $    @
+   _/ $     @
+_/   $      @
+ $$         @@
+               $$@
+    _/  _/  _/ $ @
+     _/_/_/   $  @
+  _/_/_/_/_/ $   @
+   _/_/_/   $    @
+_/  _/  _/ $     @
+         $$      @
+                 @@
+         $$  @
+      _/ $   @
+     _/     $@
+_/_/_/_/_/ $ @
+   _/     $  @
+  _/ $       @
+   $$        @
+             @@
+        @
+        @
+        @
+        @
+      $$@
+   _/ $ @
+_/   $  @
+ $$     @@
+             @
+             @
+           $$@
+_/_/_/_/_/ $ @
+         $$  @
+             @
+             @
+             @@
+     @
+     @
+     @
+     @
+   $$@
+_/ $ @
+ $$  @
+     @@
+               $$@
+            _/ $ @
+         _/   $  @
+      _/   $     @
+   _/   $        @
+_/   $           @
+ $$              @
+                 @@
+        $$ @
+     _/   $@
+  _/  _/ $ @
+ _/  _/ $  @
+_/  _/ $   @
+ _/   $    @
+  $$       @
+           @@
+       $$@
+    _/ $ @
+ _/_/ $  @
+  _/ $   @
+ _/ $    @
+_/ $     @
+ $$      @
+         @@
+           $$ @
+      _/_/   $@
+   _/    _/ $ @
+      _/   $  @
+   _/     $   @
+_/_/_/_/ $    @
+       $$     @
+              @@
+           $$ @
+    _/_/_/   $@
+         _/ $ @
+    _/_/   $  @
+       _/ $   @
+_/_/_/   $    @
+     $$       @
+              @@
+         $$@
+  _/  _/ $ @
+ _/  _/   $@
+_/_/_/_/ $ @
+   _/   $  @
+  _/ $     @
+   $$      @
+           @@
+             $$@
+    _/_/_/_/ $ @
+   _/       $  @
+  _/_/_/   $   @
+       _/ $    @
+_/_/_/   $     @
+     $$        @
+               @@
+            $$@
+     _/_/_/ $ @
+  _/       $  @
+ _/_/_/   $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+             $$@
+  _/_/_/_/_/ $ @
+         _/ $  @
+      _/   $   @
+   _/   $      @
+_/   $         @
+ $$            @
+               @@
+          $$ @
+     _/_/   $@
+  _/    _/ $ @
+   _/_/   $  @
+_/    _/ $   @
+ _/_/   $    @
+    $$       @
+             @@
+           $$ @
+      _/_/   $@
+   _/    _/ $ @
+    _/_/_/ $  @
+       _/ $   @
+_/_/_/   $    @
+     $$       @
+              @@
+        @
+      $$@
+   _/ $ @
+    $$  @
+   $$   @
+_/ $    @
+ $$     @
+        @@
+           @
+         $$@
+      _/ $ @
+       $$  @
+      $$   @
+   _/ $    @
+_/   $     @
+ $$        @@
+         $$@
+      _/ $ @
+   _/   $  @
+_/   $     @
+ _/   $    @
+  _/ $     @
+   $$      @
+           @@
+               @
+             $$@
+  _/_/_/_/_/ $ @
+           $$  @
+_/_/_/_/_/ $   @
+         $$    @
+               @
+               @@
+       $$  @
+    _/   $ @
+     _/   $@
+      _/ $ @
+   _/   $  @
+_/   $     @
+ $$        @
+           @@
+         $$ @
+    _/_/   $@
+       _/ $ @
+  _/_/   $  @
+     $$     @
+_/ $        @
+ $$         @
+            @@
+                   $$ @
+        _/_/_/_/_/   $@
+     _/          _/ $ @
+  _/    _/_/_/  _/ $  @
+ _/  _/    _/  _/ $   @
+_/    _/_/_/_/   $    @
+ _/             $     @
+  _/_/_/_/_/_/ $      @@
+           $$ @
+      _/_/   $@
+   _/    _/ $ @
+  _/_/_/_/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+       $$     @
+              @@
+           $$ @
+    _/_/_/   $@
+   _/    _/ $ @
+  _/_/_/   $  @
+ _/    _/ $   @
+_/_/_/   $    @
+     $$       @
+              @@
+            $$@
+     _/_/_/ $ @
+  _/       $  @
+ _/   $       @
+_/       $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+           $$ @
+    _/_/_/   $@
+   _/    _/ $ @
+  _/    _/ $  @
+ _/    _/ $   @
+_/_/_/   $    @
+     $$       @
+              @@
+             $$@
+    _/_/_/_/ $ @
+   _/       $  @
+  _/_/_/ $     @
+ _/       $    @
+_/_/_/_/ $     @
+       $$      @
+               @@
+             $$@
+    _/_/_/_/ $ @
+   _/       $  @
+  _/_/_/ $     @
+ _/     $      @
+_/ $           @
+ $$            @
+               @@
+            $$@
+     _/_/_/ $ @
+  _/       $  @
+ _/  _/_/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+             $$@
+    _/    _/ $ @
+   _/    _/ $  @
+  _/_/_/_/ $   @
+ _/    _/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+           $$@
+    _/_/_/ $ @
+     _/   $  @
+    _/ $     @
+   _/   $    @
+_/_/_/ $     @
+     $$      @
+             @@
+            $$@
+         _/ $ @
+        _/ $  @
+       _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+             $$@
+    _/    _/ $ @
+   _/  _/   $  @
+  _/_/   $     @
+ _/  _/   $    @
+_/    _/ $     @
+       $$      @
+               @@
+       $$  @
+    _/ $   @
+   _/ $    @
+  _/ $     @
+ _/       $@
+_/_/_/_/ $ @
+       $$  @
+           @@
+               $$@
+    _/      _/ $ @
+   _/_/  _/_/ $  @
+  _/  _/  _/ $   @
+ _/      _/ $    @
+_/      _/ $     @
+         $$      @
+                 @@
+               $$@
+    _/      _/ $ @
+   _/_/    _/ $  @
+  _/  _/  _/ $   @
+ _/    _/_/ $    @
+_/      _/ $     @
+         $$      @
+                 @@
+          $$ @
+     _/_/   $@
+  _/    _/ $ @
+ _/    _/ $  @
+_/    _/ $   @
+ _/_/   $    @
+    $$       @
+             @@
+           $$ @
+    _/_/_/   $@
+   _/    _/ $ @
+  _/_/_/   $  @
+ _/     $     @
+_/ $          @
+ $$           @
+              @@
+          $$ @
+     _/_/   $@
+  _/    _/ $ @
+ _/  _/_/ $  @
+_/    _/   $ @
+ _/_/  _/ $  @
+        $$   @
+             @@
+           $$ @
+    _/_/_/   $@
+   _/    _/ $ @
+  _/_/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+       $$     @
+              @@
+             $$@
+      _/_/_/ $ @
+   _/       $  @
+    _/_/   $   @
+       _/ $    @
+_/_/_/   $     @
+     $$        @
+               @@
+           $$@
+_/_/_/_/_/ $ @
+   _/     $  @
+  _/ $       @
+ _/ $        @
+_/ $         @
+ $$          @
+             @@
+            $$@
+   _/    _/ $ @
+  _/    _/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+             $$@
+  _/      _/ $ @
+ _/      _/ $  @
+_/      _/ $   @
+ _/  _/   $    @
+  _/   $       @
+   $$          @
+               @@
+                 $$@
+  _/          _/ $ @
+ _/          _/ $  @
+_/    _/    _/ $   @
+ _/  _/  _/   $    @
+  _/  _/   $       @
+       $$          @
+                   @@
+               $$@
+    _/      _/ $ @
+     _/  _/   $  @
+      _/   $     @
+   _/  _/   $    @
+_/      _/ $     @
+         $$      @
+                 @@
+           $$@
+_/      _/ $ @
+ _/  _/   $  @
+  _/   $     @
+ _/ $        @
+_/ $         @
+ $$          @
+             @@
+               $$@
+    _/_/_/_/_/ $ @
+         _/   $  @
+      _/   $     @
+   _/       $    @
+_/_/_/_/_/ $     @
+         $$      @
+                 @@
+      _/_/ $@
+     _/   $ @
+    _/ $    @
+   _/ $     @
+  _/ $      @
+ _/   $     @
+_/_/ $      @
+   $$       @@
+   $$    @
+_/   $   @
+ _/   $  @
+  _/   $ @
+   _/   $@
+    _/ $ @
+     $$  @
+         @@
+      _/_/ $@
+       _/ $ @
+      _/ $  @
+     _/ $   @
+    _/ $    @
+   _/ $     @
+_/_/ $      @
+   $$       @@
+     _/   $@
+  _/  _/ $ @
+       $$  @
+  $$       @
+ $$        @
+$$         @
+           @
+           @@
+             @
+             @
+             @
+             @
+             @
+      $$     @
+           $$@
+_/_/_/_/_/ $ @@
+   _/   $@
+    _/ $ @
+     $$  @
+  $$     @
+ $$      @
+$$       @
+         @
+         @@
+             @
+           $$@
+    _/_/_/ $ @
+ _/    _/ $  @
+_/    _/ $   @
+ _/_/_/ $    @
+      $$     @
+             @@
+       $$    @
+    _/     $ @
+   _/_/_/   $@
+  _/    _/ $ @
+ _/    _/ $  @
+_/_/_/   $   @
+     $$      @
+             @@
+             @
+           $$@
+    _/_/_/ $ @
+ _/       $  @
+_/       $   @
+ _/_/_/ $    @
+      $$     @
+             @@
+            $$@
+         _/ $ @
+    _/_/_/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+            @
+         $$ @
+    _/_/   $@
+ _/_/_/_/ $ @
+_/       $  @
+ _/_/_/ $   @
+      $$    @
+            @@
+           $$@
+      _/_/ $ @
+   _/     $  @
+_/_/_/_/     @
+ _/     $    @
+_/ $         @
+ $$          @
+             @@
+              @
+            $$@
+     _/_/_/ $ @
+  _/    _/ $  @
+ _/    _/ $   @
+  _/_/_/ $    @
+     _/ $     @
+_/_/   $      @@
+       $$    @
+    _/     $ @
+   _/_/_/   $@
+  _/    _/ $ @
+ _/    _/ $  @
+_/    _/ $   @
+       $$    @
+             @@
+       $$@
+    _/ $ @
+     $$  @
+  _/ $   @
+ _/ $    @
+_/ $     @
+ $$      @
+         @@
+           $$@
+        _/ $ @
+         $$  @
+      _/ $   @
+     _/ $    @
+    _/ $     @
+   _/ $      @
+_/   $       @@
+       $$   @
+    _/     $@
+   _/  _/ $ @
+  _/_/   $  @
+ _/  _/   $ @
+_/    _/ $  @
+       $$   @
+            @@
+       $$@
+    _/ $ @
+   _/ $  @
+  _/ $   @
+ _/ $    @
+_/ $     @
+ $$      @
+         @@
+                   @
+                $$ @
+   _/_/_/  _/_/   $@
+  _/    _/    _/ $ @
+ _/    _/    _/ $  @
+_/    _/    _/ $   @
+             $$    @
+                   @@
+             @
+          $$ @
+   _/_/_/   $@
+  _/    _/ $ @
+ _/    _/ $  @
+_/    _/ $   @
+       $$    @
+             @@
+            @
+         $$ @
+    _/_/   $@
+ _/    _/ $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+               @
+            $$ @
+     _/_/_/   $@
+    _/    _/ $ @
+   _/    _/ $  @
+  _/_/_/   $   @
+ _/     $      @
+_/ $           @@
+             @
+           $$@
+    _/_/_/ $ @
+ _/    _/ $  @
+_/    _/ $   @
+ _/_/_/ $    @
+    _/ $     @
+   _/ $      @@
+              @
+            $$@
+   _/  _/_/ $ @
+  _/_/     $  @
+ _/   $       @
+_/ $          @
+ $$           @
+              @@
+              @
+            $$@
+     _/_/_/ $ @
+  _/_/     $  @
+     _/_/ $   @
+_/_/_/   $    @
+     $$       @
+              @@
+      $$   @
+   _/     $@
+_/_/_/_/   @
+ _/     $  @
+_/     $   @
+ _/_/ $    @
+    $$     @
+           @@
+             @
+           $$@
+  _/    _/ $ @
+ _/    _/ $  @
+_/    _/ $   @
+ _/_/_/ $    @
+      $$     @
+             @@
+              @
+            $$@
+ _/      _/ $ @
+_/      _/ $  @
+ _/  _/   $   @
+  _/   $      @
+   $$         @
+              @@
+                      @
+                    $$@
+ _/      _/      _/ $ @
+_/      _/      _/ $  @
+ _/  _/  _/  _/   $   @
+  _/      _/   $      @
+           $$         @
+                      @@
+              @
+            $$@
+   _/    _/ $ @
+    _/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+       $$     @
+              @@
+              @
+            $$@
+   _/    _/ $ @
+  _/    _/ $  @
+ _/    _/ $   @
+  _/_/_/ $    @
+     _/ $     @
+_/_/   $      @@
+              @
+            $$@
+   _/_/_/_/ $ @
+      _/   $  @
+   _/     $   @
+_/_/_/_/ $    @
+       $$     @
+              @@
+       _/ $@
+    _/   $ @
+   _/   $  @
+_/   $     @
+ _/   $    @
+_/   $     @
+ _/ $      @
+  $$       @@
+       _/ $@
+      _/ $ @
+     _/ $  @
+    _/ $   @
+   _/ $    @
+  _/ $     @
+ _/ $      @
+_/ $       @@
+      _/   $ @
+       _/   $@
+      _/   $ @
+       _/ $  @
+    _/   $   @
+   _/   $    @
+_/   $       @
+ $$          @@
+   _/  _/ $@
+_/  _/   $ @
+     $$    @
+  $$       @
+ $$        @
+$$         @
+           @
+           @@
+     _/    _/ $@
+            $$ @
+     _/_/   $  @
+  _/    _/ $   @
+ _/_/_/_/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+    _/    _/ $@
+           $$ @
+    _/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+    _/    _/ $@
+           $$ @
+  _/    _/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+    _/    _/ $@
+           $$ @
+    _/_/_/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+    _/    _/ $@
+           $$ @
+    _/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+    _/    _/ $@
+           $$ @
+  _/    _/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+            $$ @
+       _/_/   $@
+    _/    _/ $ @
+   _/  _/   $  @
+  _/    _/ $   @
+ _/  _/   $    @
+_/     $       @
+ $$            @@
+160  NO-BREAK SPACE
+       $  $@
+      $  $ @
+     $  $  @
+    $  $   @
+   $  $    @
+  $  $     @
+ $  $      @
+$  $       @@
+161  INVERTED EXCLAMATION MARK
+       $$@
+    _/ $ @
+     $$  @
+  _/ $   @
+ _/ $    @
+_/ $     @
+ $$      @
+         @@
+162  CENT SIGN
+          $$ @
+       _/   $@
+    _/_/_/ $ @
+ _/  _/   $  @
+_/  _/   $   @
+ _/_/_/ $    @
+  _/   $     @
+   $$        @@
+163  POUND SIGN
+              $$ @
+         _/_/   $@
+      _/    _/ $ @
+   _/_/_/     $  @
+    _/         $ @
+ _/_/_/    _/ $  @
+_/_/  _/_/   $   @
+                 @@
+164  CURRENCY SIGN
+                  $$@
+     _/        _/ $ @
+      _/_/_/_/   $  @
+     _/    _/ $     @
+    _/    _/ $      @
+   _/_/_/_/   $     @
+_/        _/ $      @
+           $$       @@
+165  YEN SIGN
+               $$@
+    _/      _/ $ @
+     _/  _/   $  @
+  _/_/_/_/_/ $   @
+     _/     $    @
+_/_/_/_/_/ $     @
+   _/     $      @
+    $$           @@
+166  BROKEN BAR
+       _/ $@
+      _/ $ @
+     _/ $  @
+      $$   @
+     $$    @
+  _/ $     @
+ _/ $      @
+_/ $       @@
+167  SECTION SIGN
+        _/_/ $@
+     _/     $ @
+      _/   $  @
+   _/  _/ $   @
+    _/   $    @
+     _/ $     @
+_/_/   $      @
+   $$         @@
+168  DIAERESIS
+     _/    _/ $@
+            $$ @
+   $      $    @
+  $      $     @
+ $      $      @
+$      $       @
+               @
+               @@
+169  COPYRIGHT SIGN
+         _/_/_/_/   $ @
+      _/        _/   $@
+   _/    _/_/_/  _/ $ @
+  _/  _/        _/ $  @
+ _/  _/        _/ $   @
+_/    _/_/_/  _/ $    @
+ _/        _/   $     @
+  _/_/_/_/   $        @@
+170  FEMININE ORDINAL INDICATOR
+             $$@
+      _/_/_/ $ @
+   _/    _/ $  @
+    _/_/_/ $   @
+         $$    @
+_/_/_/_/ $     @
+               @
+               @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+             $$@
+      _/  _/ $ @
+   _/  _/   $  @
+_/  _/   $     @
+ _/  _/   $    @
+  _/  _/ $     @
+       $$      @
+               @@
+172  NOT SIGN
+             @
+             @
+           $$@
+_/_/_/_/_/ $ @
+       _/ $  @
+        $$   @
+             @
+             @@
+173  SOFT HYPHEN
+           @
+           @
+         $$@
+_/_/_/_/ $ @
+       $$  @
+  $$       @
+           @
+           @@
+174  REGISTERED SIGN
+         _/_/_/_/   $ @
+      _/        _/   $@
+   _/  _/_/_/    _/ $ @
+  _/  _/    _/  _/ $  @
+ _/  _/_/_/    _/ $   @
+_/  _/    _/  _/ $    @
+ _/        _/   $     @
+  _/_/_/_/   $        @@
+175  MACRON
+ _/_/_/_/_/ $@
+          $$ @
+   $$        @
+  $$         @
+ $$          @
+$$           @
+             @
+             @@
+176  DEGREE SIGN
+     _/   $@
+  _/  _/ $ @
+   _/   $  @
+    $$     @
+ $$        @
+$$         @
+           @
+           @@
+177  PLUS-MINUS SIGN
+           $$  @
+        _/ $   @
+       _/     $@
+  _/_/_/_/_/ $ @
+     _/     $  @
+_/_/_/_/_/ $   @
+         $$    @
+               @@
+178  SUPERSCRIPT TWO
+        $$ @
+   _/_/   $@
+      _/ $ @
+   _/   $  @
+_/_/_/ $   @
+     $$    @
+           @
+           @@
+179  SUPERSCRIPT THREE
+          $$@
+   _/_/_/ $ @
+    _/   $  @
+     _/ $   @
+_/_/   $    @
+   $$       @
+            @
+            @@
+180  ACUTE ACCENT
+       _/ $@
+    _/   $ @
+     $$    @
+  $$       @
+ $$        @
+$$         @
+           @
+           @@
+181  MICRO SIGN
+                @
+              $$@
+     _/    _/ $ @
+    _/    _/ $  @
+   _/    _/ $   @
+  _/_/_/_/ $    @
+ _/       $     @
+_/ $            @@
+182  PILCROW SIGN
+            $$@
+   _/_/_/_/ $ @
+_/_/_/  _/ $  @
+ _/_/  _/ $   @
+  _/  _/ $    @
+ _/  _/ $     @
+      $$      @
+              @@
+183  MIDDLE DOT
+       @
+       @
+     $$@
+  _/ $ @
+   $$  @
+$$     @
+       @
+       @@
+184  CEDILLA
+        @
+        @
+        @
+        @
+        @
+      $$@
+   _/ $ @
+_/_/ $  @@
+185  SUPERSCRIPT ONE
+      $$@
+   _/ $ @
+_/_/ $  @
+ _/ $   @
+_/ $    @
+ $$     @
+        @
+        @@
+186  MASCULINE ORDINAL INDICATOR
+           $$ @
+      _/_/   $@
+   _/    _/ $ @
+    _/_/   $  @
+         $$   @
+_/_/_/_/ $    @
+              @
+              @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+           $$  @
+    _/  _/   $ @
+     _/  _/   $@
+      _/  _/ $ @
+   _/  _/   $  @
+_/  _/   $     @
+     $$        @
+               @@
+188  VULGAR FRACTION ONE QUARTER
+                $$     @
+   _/        _/       $@
+_/_/      _/  _/  _/ $ @
+ _/    _/    _/  _/   $@
+_/  _/      _/_/_/_/ $ @
+ _/            _/   $  @
+                $$     @
+                       @@
+189  VULGAR FRACTION ONE HALF
+                $$    @
+   _/        _/     $ @
+_/_/      _/  _/_/   $@
+ _/    _/        _/ $ @
+_/  _/        _/   $  @
+ _/        _/_/_/ $   @
+                $$    @
+                      @@
+190  VULGAR FRACTION THREE QUARTERS
+                  $$     @
+   _/_/_/      _/       $@
+    _/      _/  _/  _/ $ @
+     _/  _/    _/  _/   $@
+_/_/  _/      _/_/_/_/ $ @
+   _/            _/   $  @
+                  $$     @
+                         @@
+191  INVERTED QUESTION MARK
+          $$@
+       _/ $ @
+        $$  @
+   _/_/ $   @
+_/     $    @
+ _/_/ $     @
+    $$      @
+            @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+       _/   $@
+        _/ $ @
+     _/_/   $@
+  _/    _/ $ @
+ _/_/_/_/ $  @
+_/    _/ $   @
+       $$    @
+             @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+         _/ $@
+      _/   $ @
+     _/_/   $@
+  _/    _/ $ @
+ _/_/_/_/ $  @
+_/    _/ $   @
+       $$    @
+             @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+       _/_/   $@
+    _/    _/ $ @
+           $$  @
+    _/_/   $   @
+ _/_/_/_/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+       _/  _/ $@
+    _/  _/   $ @
+         $$    @
+    _/_/   $   @
+ _/_/_/_/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+     _/    _/ $@
+            $$ @
+     _/_/   $  @
+  _/    _/ $   @
+ _/_/_/_/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+       _/_/   $@
+    _/    _/ $ @
+     _/_/   $  @
+  _/    _/ $   @
+ _/_/_/_/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+198  LATIN CAPITAL LETTER AE
+                   $$@
+      _/_/_/_/_/_/ $ @
+   _/    _/       $  @
+  _/_/_/_/_/_/ $     @
+ _/    _/       $    @
+_/    _/_/_/_/ $     @
+             $$      @
+                     @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+             $$@
+      _/_/_/ $ @
+   _/       $  @
+  _/   $       @
+ _/       $    @
+  _/_/_/ $     @
+   _/   $      @
+_/_/ $         @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+       _/   $ @
+        _/   $@
+   _/_/_/_/ $ @
+  _/_/_/ $    @
+ _/       $   @
+_/_/_/_/ $    @
+       $$     @
+              @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+         _/ $ @
+      _/     $@
+   _/_/_/_/ $ @
+  _/_/_/ $    @
+ _/       $   @
+_/_/_/_/ $    @
+       $$     @
+              @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+       _/_/   $@
+    _/    _/ $ @
+   _/_/_/_/ $  @
+  _/_/_/ $     @
+ _/       $    @
+_/_/_/_/ $     @
+       $$      @
+               @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+     _/    _/ $@
+            $$ @
+   _/_/_/_/ $  @
+  _/_/_/ $     @
+ _/       $    @
+_/_/_/_/ $     @
+       $$      @
+               @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+     _/   $ @
+      _/   $@
+   _/_/_/ $ @
+    _/   $  @
+   _/   $   @
+_/_/_/ $    @
+     $$     @
+            @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+         _/ $@
+      _/   $ @
+   _/_/_/ $  @
+    _/   $   @
+   _/   $    @
+_/_/_/ $     @
+     $$      @
+             @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+       _/   $@
+    _/  _/ $ @
+   _/_/_/ $  @
+    _/   $   @
+   _/   $    @
+_/_/_/ $     @
+     $$      @
+             @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+     _/  _/ $@
+          $$ @
+   _/_/_/ $  @
+    _/   $   @
+   _/   $    @
+_/_/_/ $     @
+     $$      @
+             @@
+208  LATIN CAPITAL LETTER ETH
+           $$ @
+    _/_/_/   $@
+   _/    _/ $ @
+_/_/_/  _/ $  @
+ _/    _/ $   @
+_/_/_/   $    @
+     $$       @
+              @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+       _/  _/ $@
+    _/  _/   $ @
+   _/    _/ $  @
+  _/_/  _/ $   @
+ _/  _/_/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+      _/   $@
+       _/ $ @
+    _/_/   $@
+ _/    _/ $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+        _/ $@
+     _/   $ @
+    _/_/   $@
+ _/    _/ $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+      _/_/   $@
+   _/    _/ $ @
+    _/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+      _/  _/ $@
+   _/  _/   $ @
+    _/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+    _/    _/ $@
+           $$ @
+    _/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+215  MULTIPLICATION SIGN
+           @
+         $$@
+  _/  _/ $ @
+   _/   $  @
+_/  _/ $   @
+     $$    @
+           @
+           @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+               $$@
+      _/_/_/_/ $ @
+   _/    _/_/ $  @
+  _/  _/  _/ $   @
+ _/_/    _/ $    @
+_/_/_/_/   $     @
+       $$        @
+                 @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+      _/   $@
+       _/ $ @
+          $$@
+ _/    _/ $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+        _/ $@
+     _/   $ @
+          $$@
+ _/    _/ $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+      _/_/   $@
+   _/    _/ $ @
+          $$  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+    _/    _/ $@
+           $$ @
+  _/    _/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+        _/ $ @
+     _/     $@
+_/      _/ $ @
+ _/  _/   $  @
+  _/   $     @
+ _/ $        @
+  $$         @
+             @@
+222  LATIN CAPITAL LETTER THORN
+       $$    @
+    _/     $ @
+   _/_/_/   $@
+  _/    _/ $ @
+ _/_/_/   $  @
+_/     $     @
+ $$          @
+             @@
+223  LATIN SMALL LETTER SHARP S
+            $$ @
+       _/_/   $@
+    _/    _/ $ @
+   _/  _/   $  @
+  _/    _/ $   @
+ _/  _/   $    @
+_/     $       @
+ $$            @@
+224  LATIN SMALL LETTER A WITH GRAVE
+      _/   $@
+       _/ $ @
+          $$@
+   _/_/_/ $ @
+_/    _/ $  @
+ _/_/_/ $   @
+      $$    @
+            @@
+225  LATIN SMALL LETTER A WITH ACUTE
+          _/ $@
+       _/   $ @
+          $$  @
+   _/_/_/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+        _/   $@
+     _/  _/ $ @
+          $$  @
+   _/_/_/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+227  LATIN SMALL LETTER A WITH TILDE
+      _/  _/ $@
+   _/  _/   $ @
+          $$  @
+   _/_/_/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+    _/    _/ $@
+           $$ @
+    _/_/_/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+        _/   $@
+     _/  _/ $ @
+      _/   $  @
+   _/_/_/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+230  LATIN SMALL LETTER AE
+                    @
+                 $$ @
+    _/_/_/  _/_/   $@
+ _/    _/_/_/_/_/ $ @
+_/    _/_/       $  @
+ _/_/_/  _/_/_/ $   @
+              $$    @
+                    @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+              @
+            $$@
+     _/_/_/ $ @
+  _/       $  @
+ _/       $   @
+  _/_/_/ $    @
+   _/   $     @
+_/_/ $        @@
+232  LATIN SMALL LETTER E WITH GRAVE
+      _/     $@
+       _/ $   @
+    _/_/   $  @
+ _/_/_/_/ $   @
+_/       $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+233  LATIN SMALL LETTER E WITH ACUTE
+          _/ $@
+       _/   $ @
+    _/_/   $  @
+ _/_/_/_/ $   @
+_/       $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+      _/_/   $@
+   _/    _/ $ @
+    _/_/   $  @
+ _/_/_/_/ $   @
+_/       $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+    _/    _/ $@
+           $$ @
+    _/_/   $  @
+ _/_/_/_/ $   @
+_/       $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+236  LATIN SMALL LETTER I WITH GRAVE
+   _/   $@
+    _/ $ @
+     $$  @
+  _/ $   @
+ _/ $    @
+_/ $     @
+ $$      @
+         @@
+237  LATIN SMALL LETTER I WITH ACUTE
+       _/ $@
+    _/   $ @
+     $$    @
+  _/ $     @
+ _/ $      @
+_/ $       @
+ $$        @
+           @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+     _/   $@
+  _/  _/ $ @
+       $$  @
+  _/ $     @
+ _/ $      @
+_/ $       @
+ $$        @
+           @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+   _/  _/ $@
+        $$ @
+   _/ $    @
+  _/ $     @
+ _/ $      @
+_/ $       @
+ $$        @
+           @@
+240  LATIN SMALL LETTER ETH
+    _/  _/ $@
+     _/   $ @
+  _/  _/   $@
+   _/_/_/ $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+241  LATIN SMALL LETTER N WITH TILDE
+       _/  _/ $@
+    _/  _/   $ @
+         $$    @
+  _/_/_/   $   @
+ _/    _/ $    @
+_/    _/ $     @
+       $$      @
+               @@
+242  LATIN SMALL LETTER O WITH GRAVE
+      _/   $@
+       _/ $ @
+        $$  @
+   _/_/   $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+243  LATIN SMALL LETTER O WITH ACUTE
+        _/ $@
+     _/   $ @
+        $$  @
+   _/_/   $ @
+_/    _/ $  @
+ _/_/   $   @
+    $$      @
+            @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+      _/_/   $@
+   _/    _/ $ @
+          $$  @
+   _/_/   $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+245  LATIN SMALL LETTER O WITH TILDE
+      _/_/_/ $@
+   _/  _/   $ @
+        $$    @
+   _/_/   $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+    _/    _/ $@
+           $$ @
+    _/_/   $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/   $     @
+    $$        @
+              @@
+247  DIVISION SIGN
+         $$  @
+      _/ $   @
+           $$@
+_/_/_/_/_/ $ @
+         $$  @
+  _/ $       @
+   $$        @
+             @@
+248  LATIN SMALL LETTER O WITH STROKE
+              @
+            $$@
+     _/_/_/ $ @
+  _/  _/_/ $  @
+ _/_/  _/ $   @
+_/_/_/   $    @
+     $$       @
+              @@
+249  LATIN SMALL LETTER U WITH GRAVE
+    _/   $  @
+     _/ $   @
+          $$@
+ _/    _/ $ @
+_/    _/ $  @
+ _/_/_/ $   @
+      $$    @
+            @@
+250  LATIN SMALL LETTER U WITH ACUTE
+          _/ $@
+       _/   $ @
+          $$  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+      _/_/   $@
+   _/    _/ $ @
+          $$  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+    _/    _/ $@
+           $$ @
+  _/    _/ $  @
+ _/    _/ $   @
+_/    _/ $    @
+ _/_/_/ $     @
+      $$      @
+              @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+         _/ $@
+      _/   $ @
+           $$@
+  _/    _/ $ @
+ _/    _/ $  @
+  _/_/_/ $   @
+     _/ $    @
+_/_/   $     @@
+254  LATIN SMALL LETTER THORN
+         $$    @
+      _/     $ @
+     _/_/_/   $@
+    _/    _/ $ @
+   _/    _/ $  @
+  _/_/_/   $   @
+ _/     $      @
+_/ $           @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+     _/    _/ $@
+            $$ @
+   _/    _/ $  @
+  _/    _/ $   @
+ _/    _/ $    @
+  _/_/_/ $     @
+     _/ $      @
+_/_/   $       @@
--- /dev/null
+++ b/fonts/mini.flf
@@ -1,0 +1,899 @@
+flf2a$ 4 3 10 0 10 0 1920 96
+Mini by Glenn Chappell 4/93
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+$$@
+$$@
+$$@
+$$@@
+   @
+ |$@
+ o$@
+   @@
+    @
+ ||$@
+    @
+    @@
+       @
+ -|-|-$@
+ -|-|-$@
+       @@
+   _$@
+ (|$ @
+ _|)$@
+     @@
+    @
+ O/$@
+ /O$@
+    @@
+     @
+ ()$ @
+ (_X$@
+     @@
+   @
+ /$@
+   @
+   @@
+    @
+  /$@
+ |$ @
+  \$@@
+    @
+ \$ @
+  |$@
+ /$ @@
+     @
+ \|/$@
+ /|\$@
+     @@
+     @
+ _|_$@
+  |$ @
+     @@
+   @
+   @
+ o$@
+ /$@@
+    @
+ __$@
+    @
+    @@
+   @
+   @
+ o$@
+   @@
+    @
+  /$@
+ /$ @
+    @@
+  _$ @
+ / \$@
+ \_/$@
+     @@
+    @
+ /|$@
+  |$@
+    @@
+ _$ @
+  )$@
+ /_$@
+    @@
+ _$ @
+ _)$@
+ _)$@
+    @@
+      @
+ |_|_$@
+   |$ @
+      @@
+  _$ @
+ |_$ @
+  _)$@
+     @@
+  _$ @
+ |_$ @
+ |_)$@
+     @@
+ __$@
+  /$@
+ /$ @
+    @@
+  _$ @
+ (_)$@
+ (_)$@
+     @@
+  _$ @
+ (_|$@
+   |$@
+     @@
+   @
+ o$@
+ o$@
+   @@
+   @
+ o$@
+ o$@
+ /$@@
+   @
+ /$@
+ \$@
+   @@
+    @
+ --$@
+ --$@
+    @@
+   @
+ \$@
+ /$@
+   @@
+ _$ @
+  )$@
+ o$ @
+    @@
+   __$ @
+  /  \$@
+ | (|/$@
+  \__$ @@
+      @
+  /\$ @
+ /--\$@
+      @@
+  _$ @
+ |_)$@
+ |_)$@
+     @@
+  _$@
+ /$ @
+ \_$@
+    @@
+  _$ @
+ | \$@
+ |_/$@
+     @@
+  _$@
+ |_$@
+ |_$@
+    @@
+  _$@
+ |_$@
+ |$ @
+    @@
+  __$@
+ /__$@
+ \_|$@
+     @@
+     @
+ |_|$@
+ | |$@
+     @@
+ ___$@
+  |$ @
+ _|_$@
+     @@
+     @
+   |$@
+ \_|$@
+     @@
+    @
+ |/$@
+ |\$@
+    @@
+    @
+ |$ @
+ |_$@
+    @@
+      @
+ |\/|$@
+ |  |$@
+      @@
+      @
+ |\ |$@
+ | \|$@
+      @@
+  _$ @
+ / \$@
+ \_/$@
+     @@
+  _$ @
+ |_)$@
+ |$  @
+     @@
+  _$ @
+ / \$@
+ \_X$@
+     @@
+  _$ @
+ |_)$@
+ | \$@
+     @@
+  __$@
+ (_$ @
+ __)$@
+     @@
+ ___$@
+  |$ @
+  |$ @
+     @@
+     @
+ | |$@
+ |_|$@
+     @@
+      @
+ \  /$@
+  \/$ @
+      @@
+        @
+ \    /$@
+  \/\/$ @
+        @@
+    @
+ \/$@
+ /\$@
+    @@
+     @
+ \_/$@
+  |$ @
+     @@
+ __$@
+  /$@
+ /_$@
+    @@
+  _$@
+ |$ @
+ |_$@
+    @@
+    @
+ \$ @
+  \$@
+    @@
+ _$ @
+  |$@
+ _|$@
+    @@
+ /\$@
+    @
+    @
+    @@
+    @
+    @
+    @
+ __$@@
+   @
+ \$@
+   @
+   @@
+     @
+  _.$@
+ (_|$@
+     @@
+     @
+ |_$ @
+ |_)$@
+     @@
+    @
+  _$@
+ (_$@
+    @@
+     @
+  _|$@
+ (_|$@
+     @@
+     @
+  _$ @
+ (/_$@
+     @@
+   _$@
+ _|_$@
+  |$ @
+     @@
+     @
+  _$ @
+ (_|$@
+  _|$@@
+     @
+ |_$ @
+ | |$@
+     @@
+   @
+ o$@
+ |$@
+   @@
+    @
+  o$@
+  |$@
+ _|$@@
+    @
+ |$ @
+ |<$@
+    @@
+   @
+ |$@
+ |$@
+   @@
+       @
+ ._ _$ @
+ | | |$@
+       @@
+     @
+ ._$ @
+ | |$@
+     @@
+     @
+  _$ @
+ (_)$@
+     @@
+     @
+ ._$ @
+ |_)$@
+ |$  @@
+     @
+  _.$@
+ (_|$@
+   |$@@
+    @
+ ._$@
+ |$ @
+    @@
+    @
+  _$@
+ _>$@
+    @@
+     @
+ _|_$@
+  |_$@
+     @@
+     @
+     @
+ |_|$@
+     @@
+    @
+    @
+ \/$@
+    @@
+      @
+      @
+ \/\/$@
+      @@
+    @
+    @
+ ><$@
+    @@
+    @
+    @
+ \/$@
+ /$ @@
+    @
+ _$ @
+ /_$@
+    @@
+  ,-$@
+ _|$ @
+  |$ @
+  `-$@@
+ |$@
+ |$@
+ |$@
+ |$@@
+ -.$ @
+  |_$@
+  |$ @
+ -'$ @@
+ /\/$@
+     @
+     @
+     @@
+ o  o$@
+  /\$ @
+ /--\$@
+      @@
+ o_o$@
+ / \$@
+ \_/$@
+     @@
+ o o$@
+ | |$@
+ |_|$@
+     @@
+ o o$@
+  _.$@
+ (_|$@
+     @@
+ o o$@
+  _$ @
+ (_)$@
+     @@
+ o o$@
+     @
+ |_|$@
+     @@
+  _$ @
+ | )$@
+ | )$@
+ |$  @@
+160  NO-BREAK SPACE
+ $$@
+ $$@
+ $$@
+ $$@@
+161  INVERTED EXCLAMATION MARK
+   @
+ o$@
+ |$@
+   @@
+162  CENT SIGN
+     @
+  |_$@
+ (__$@
+  |$ @@
+163  POUND SIGN
+    _$  @
+  _/_`$ @
+   |___$@
+        @@
+164  CURRENCY SIGN
+     @
+ `o'$@
+ ' `$@
+     @@
+165  YEN SIGN
+       @
+ _\_/_$@
+ --|--$@
+       @@
+166  BROKEN BAR
+ |$@
+ |$@
+ |$@
+ |$@@
+167  SECTION SIGN
+  _$@
+ ($ @
+ ()$@
+ _)$@@
+168  DIAERESIS
+ o o$@
+     @
+     @
+     @@
+169  COPYRIGHT SIGN
+  _$ @
+ |C|$@
+ `-'$@
+     @@
+170  FEMININE ORDINAL INDICATOR
+  _.$@
+ (_|$@
+ ---$@
+     @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    @
+ //$@
+ \\$@
+    @@
+172  NOT SIGN
+     @
+ __$ @
+   |$@
+     @@
+173  SOFT HYPHEN
+   @
+ _$@
+   @
+   @@
+174  REGISTERED SIGN
+  _$ @
+ |R|$@
+ `-'$@
+     @@
+175  MACRON
+ __$@
+    @
+    @
+    @@
+176  DEGREE SIGN
+ O$@
+   @
+   @
+   @@
+177  PLUS-MINUS SIGN
+     @
+ _|_$@
+ _|_$@
+     @@
+178  SUPERSCRIPT TWO
+ 2$@
+   @
+   @
+   @@
+179  SUPERSCRIPT THREE
+ 3$@
+   @
+   @
+   @@
+180  ACUTE ACCENT
+ /$@
+   @
+   @
+   @@
+181  MICRO SIGN
+     @
+     @
+ |_|$@
+ |$  @@
+182  PILCROW SIGN
+  __$ @
+ (| |$@
+  | |$@
+      @@
+183  MIDDLE DOT
+   @
+ o$@
+   @
+   @@
+184  CEDILLA
+   @
+   @
+   @
+ S$@@
+185  SUPERSCRIPT ONE
+ 1$@
+   @
+   @
+   @@
+186  MASCULINE ORDINAL INDICATOR
+  _$ @
+ (_)$@
+ ---$@
+     @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    @
+ \\$@
+ //$@
+    @@
+188  VULGAR FRACTION ONE QUARTER
+    @
+ 1/$@
+ /4$@
+    @@
+189  VULGAR FRACTION ONE HALF
+    @
+ 1/$@
+ /2$@
+    @@
+190  VULGAR FRACTION THREE QUARTERS
+    @
+ 3/$@
+ /4$@
+    @@
+191  INVERTED QUESTION MARK
+    @
+  o$@
+ (_$@
+    @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+   \$ @
+  /\$ @
+ /--\$@
+      @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+  /$  @
+  /\$ @
+ /--\$@
+      @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+  /\$ @
+  /\$ @
+ /--\$@
+      @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+  /\/$@
+  /\$ @
+ /--\$@
+      @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+ o  o$@
+  /\$ @
+ /--\$@
+      @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+   O$  @
+  / \$ @
+ /---\$@
+       @@
+198  LATIN CAPITAL LETTER AE
+    _$@
+  /|_$@
+ /-|_$@
+      @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+  _$@
+ /$ @
+ \_$@
+  S$@@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+ \_$@
+ |_$@
+ |_$@
+    @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+  _/$@
+ |_$ @
+ |_$ @
+     @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+  /\$@
+ |_$ @
+ |_$ @
+     @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+ o_o$@
+ |_$ @
+ |_$ @
+     @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+ \__$@
+  |$ @
+ _|_$@
+     @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+ __/$@
+  |$ @
+ _|_$@
+     @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+  /\$@
+ ___$@
+ _|_$@
+     @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+ o_o$@
+  |$ @
+ _|_$@
+     @@
+208  LATIN CAPITAL LETTER ETH
+   _$ @
+ _|_\$@
+  |_/$@
+      @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+  /\/$@
+ |\ |$@
+ | \|$@
+      @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+  \$ @
+ / \$@
+ \_/$@
+     @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+  /$ @
+ / \$@
+ \_/$@
+     @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+  /\$@
+ / \$@
+ \_/$@
+     @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+ /\/$@
+ / \$@
+ \_/$@
+     @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+ o_o$@
+ / \$@
+ \_/$@
+     @@
+215  MULTIPLICATION SIGN
+   @
+   @
+ X$@
+   @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+  __$ @
+ / /\$@
+ \/_/$@
+      @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+  \$ @
+ | |$@
+ |_|$@
+     @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+  /$ @
+ | |$@
+ |_|$@
+     @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+  /\$@
+ | |$@
+ |_|$@
+     @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+ o o$@
+ | |$@
+ |_|$@
+     @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+  /$ @
+ \_/$@
+  |$ @
+     @@
+222  LATIN CAPITAL LETTER THORN
+ |_$ @
+ |_)$@
+ |$  @
+     @@
+223  LATIN SMALL LETTER SHARP S
+  _$ @
+ | )$@
+ | )$@
+ |$  @@
+224  LATIN SMALL LETTER A WITH GRAVE
+  \$ @
+  _.$@
+ (_|$@
+     @@
+225  LATIN SMALL LETTER A WITH ACUTE
+  /$ @
+  _.$@
+ (_|$@
+     @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+  /\$@
+  _.$@
+ (_|$@
+     @@
+227  LATIN SMALL LETTER A WITH TILDE
+ /\/$@
+  _.$@
+ (_|$@
+     @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+ o o$@
+  _.$@
+ (_|$@
+     @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+  O$ @
+  _.$@
+ (_|$@
+     @@
+230  LATIN SMALL LETTER AE
+       @
+  ___$ @
+ (_|/_$@
+       @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+    @
+  _$@
+ (_$@
+  S$@@
+232  LATIN SMALL LETTER E WITH GRAVE
+  \$ @
+  _$ @
+ (/_$@
+     @@
+233  LATIN SMALL LETTER E WITH ACUTE
+  /$ @
+  _$ @
+ (/_$@
+     @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+  /\$@
+  _$ @
+ (/_$@
+     @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ o o$@
+  _$ @
+ (/_$@
+     @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ \$@
+   @
+ |$@
+   @@
+237  LATIN SMALL LETTER I WITH ACUTE
+ /$@
+   @
+ |$@
+   @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+ /\$@
+    @
+ |$ @
+    @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ o o$@
+     @
+  |$ @
+     @@
+240  LATIN SMALL LETTER ETH
+ X$  @
+  \$ @
+ (_|$@
+     @@
+241  LATIN SMALL LETTER N WITH TILDE
+ /\/$@
+ ._$ @
+ | |$@
+     @@
+242  LATIN SMALL LETTER O WITH GRAVE
+  \$ @
+  _$ @
+ (_)$@
+     @@
+243  LATIN SMALL LETTER O WITH ACUTE
+  /$ @
+  _$ @
+ (_)$@
+     @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+  /\$@
+  _$ @
+ (_)$@
+     @@
+245  LATIN SMALL LETTER O WITH TILDE
+ /\/$@
+  _$ @
+ (_)$@
+     @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+ o o$@
+  _$ @
+ (_)$@
+     @@
+247  DIVISION SIGN
+  o$ @
+ ---$@
+  o$ @
+     @@
+248  LATIN SMALL LETTER O WITH STROKE
+     @
+  _$ @
+ (/)$@
+     @@
+249  LATIN SMALL LETTER U WITH GRAVE
+  \$ @
+     @
+ |_|$@
+     @@
+250  LATIN SMALL LETTER U WITH ACUTE
+  /$ @
+     @
+ |_|$@
+     @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+  /\$@
+     @
+ |_|$@
+     @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+ o o$@
+     @
+ |_|$@
+     @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+  /$@
+    @
+ \/$@
+ /$ @@
+254  LATIN SMALL LETTER THORN
+     @
+ |_$ @
+ |_)$@
+ |$  @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+ oo$@
+    @
+ \/$@
+ /$ @@
--- /dev/null
+++ b/fonts/mnemonic.flf
@@ -1,0 +1,3702 @@
+flf2a$ 1 1 12 -1 5 0 0 1797
+mnemonic - a FIGfont by John Cowan <cowan@@ccil.org>
+This font uses the mnemonics of RFC1345
+(http://ds.internic.net/rfc/rfc1345.txt) to implement a really large character
+set rather crudely, but reversibly.  Two-letter mnemonics
+are prefixed by &; larger mnemonics are prefixed by &_ and followed by _.
+&SP@@
+!@@
+"@@
+&Nb@@
+&DO@@
+%@@
+&@@
+'@@
+(@@
+)@@
+*@@
++@@
+,@@
+-@@
+.@@
+/@@
+0@@
+1@@
+2@@
+3@@
+4@@
+5@@
+6@@
+7@@
+8@@
+9@@
+:@@
+;@@
+<@@
+=@@
+>@@
+?@@
+&At@@
+A@@
+B@@
+C@@
+D@@
+E@@
+F@@
+G@@
+H@@
+I@@
+J@@
+K@@
+L@@
+M@@
+N@@
+O@@
+P@@
+Q@@
+R@@
+S@@
+T@@
+U@@
+V@@
+W@@
+X@@
+Y@@
+Z@@
+&<(@@
+&//@@
+&)>@@
+&'>@@
+_@@
+&'!@@
+a@@
+b@@
+c@@
+d@@
+e@@
+f@@
+g@@
+h@@
+i@@
+j@@
+k@@
+l@@
+m@@
+n@@
+o@@
+p@@
+q@@
+r@@
+s@@
+t@@
+u@@
+v@@
+w@@
+x@@
+y@@
+z@@
+&(!@@
+&!!@@
+&!)@@
+&'?@@
+&A:@@
+&O:@@
+&U:@@
+&a:@@
+&o:@@
+&u:@@
+&ss@@
+0x0001    START OF HEADING (SOH)
+&SH@@
+0x0002    START OF TEXT (STX)
+&SX@@
+0x0003    END OF TEXT (ETX)
+&EX@@
+0x0004    END OF TRANSMISSION (EOT)
+&ET@@
+0x0005    ENQUIRY (ENQ)
+&EQ@@
+0x0006    ACKNOWLEDGE (ACK)
+&AK@@
+0x0007    BELL (BEL)
+&BL@@
+0x0008    BACKSPACE (BS)
+&BS@@
+0x0009    CHARACTER TABULATION (HT)
+&HT@@
+0x000a    LINE FEED (LF)
+&LF@@
+0x000b    LINE TABULATION (VT)
+&VT@@
+0x000c    FORM FEED (FF)
+&FF@@
+0x000d    CARRIAGE RETURN (CR)
+&CR@@
+0x000e    SHIFT OUT (SO)
+&SO@@
+0x000f    SHIFT IN (SI)
+&SI@@
+0x0010    DATALINK ESCAPE (DLE)
+&DL@@
+0x0011    DEVICE CONTROL ONE (DC1)
+&D1@@
+0x0012    DEVICE CONTROL TWO (DC2)
+&D2@@
+0x0013    DEVICE CONTROL THREE (DC3)
+&D3@@
+0x0014    DEVICE CONTROL FOUR (DC4)
+&D4@@
+0x0015    NEGATIVE ACKNOWLEDGE (NAK)
+&NK@@
+0x0016    SYNCRONOUS IDLE (SYN)
+&SY@@
+0x0017    END OF TRANSMISSION BLOCK (ETB)
+&EB@@
+0x0018    CANCEL (CAN)
+&CN@@
+0x0019    END OF MEDIUM (EM)
+&EM@@
+0x001a    SUBSTITUTE (SUB)
+&SB@@
+0x001b    ESCAPE (ESC)
+&EC@@
+0x001c    FILE SEPARATOR (IS4)
+&FS@@
+0x001d    GROUP SEPARATOR (IS3)
+&GS@@
+0x001e    RECORD SEPARATOR (IS2)
+&RS@@
+0x001f    UNIT SEPARATOR (IS1)
+&US@@
+0x007f    DELETE (DEL)
+&DT@@
+0x0080    PADDING CHARACTER (PAD)
+&PA@@
+0x0081    HIGH OCTET PRESET (HOP)
+&HO@@
+0x0082    BREAK PERMITTED HERE (BPH)
+&BH@@
+0x0083    NO BREAK HERE (NBH)
+&NH@@
+0x0084    INDEX (IND)
+&IN@@
+0x0085    NEXT LINE (NEL)
+&NL@@
+0x0086    START OF SELECTED AREA (SSA)
+&SA@@
+0x0087    END OF SELECTED AREA (ESA)
+&ES@@
+0x0088    CHARACTER TABULATION SET (HTS)
+&HS@@
+0x0089    CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+&HJ@@
+0x008a    LINE TABULATION SET (VTS)
+&VS@@
+0x008b    PARTIAL LINE FORWARD (PLD)
+&PD@@
+0x008c    PARTIAL LINE BACKWARD (PLU)
+&PU@@
+0x008d    REVERSE LINE FEED (RI)
+&RI@@
+0x008e    SINGLE-SHIFT TWO (SS2)
+&S2@@
+0x008f    SINGLE-SHIFT THREE (SS3)
+&S3@@
+0x0090    DEVICE CONTROL STRING (DCS)
+&DC@@
+0x0091    PRIVATE USE ONE (PU1)
+&P1@@
+0x0092    PRIVATE USE TWO (PU2)
+&P2@@
+0x0093    SET TRANSMIT STATE (STS)
+&TS@@
+0x0094    CANCEL CHARACTER (CCH)
+&CC@@
+0x0095    MESSAGE WAITING (MW)
+&MW@@
+0x0096    START OF GUARDED AREA (SPA)
+&SG@@
+0x0097    END OF GUARDED AREA (EPA)
+&EG@@
+0x0098    START OF STRING (SOS)
+&SS@@
+0x0099    SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+&GC@@
+0x009a    SINGLE CHARACTER INTRODUCER (SCI)
+&SC@@
+0x009b    CONTROL SEQUENCE INTRODUCER (CSI)
+&CI@@
+0x009c    STRING TERMINATOR (ST)
+&ST@@
+0x009d    OPERATING SYSTEM COMMAND (OSC)
+&OC@@
+0x009e    PRIVACY MESSAGE (PM)
+&PM@@
+0x009f    APPLICATION PROGRAM COMMAND (APC)
+&AC@@
+0x00a0    NO-BREAK SPACE
+&NS@@
+0x00a1    INVERTED EXCLAMATION MARK
+&!I@@
+0x00a2    CENT SIGN
+&Ct@@
+0x00a3    POUND SIGN
+&Pd@@
+0x00a4    CURRENCY SIGN
+&Cu@@
+0x00a5    YEN SIGN
+&Ye@@
+0x00a6    BROKEN BAR
+&BB@@
+0x00a7    SECTION SIGN
+&SE@@
+0x00a8    DIAERESIS
+&':@@
+0x00a9    COPYRIGHT SIGN
+&Co@@
+0x00aa    FEMININE ORDINAL INDICATOR
+&-a@@
+0x00ab    LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+&<<@@
+0x00ac    NOT SIGN
+&NO@@
+0x00ad    SOFT HYPHEN
+&--@@
+0x00ae    REGISTERED SIGN
+&Rg@@
+0x00af    MACRON
+&'m@@
+0x00b0    DEGREE SIGN
+&DG@@
+0x00b1    PLUS-MINUS SIGN
+&+-@@
+0x00b2    SUPERSCRIPT TWO
+&2S@@
+0x00b3    SUPERSCRIPT THREE
+&3S@@
+0x00b4    ACUTE ACCENT
+&''@@
+0x00b5    MICRO SIGN
+&My@@
+0x00b6    PILCROW SIGN
+&PI@@
+0x00b7    MIDDLE DOT
+&.M@@
+0x00b8    CEDILLA
+&',@@
+0x00b9    SUPERSCRIPT ONE
+&1S@@
+0x00ba    MASCULINE ORDINAL INDICATOR
+&-o@@
+0x00bb    RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+&>>@@
+0x00bc    VULGAR FRACTION ONE QUARTER
+&14@@
+0x00bd    VULGAR FRACTION ONE HALF
+&12@@
+0x00be    VULGAR FRACTION THREE QUARTERS
+&34@@
+0x00bf    INVERTED QUESTION MARK
+&?I@@
+0x00c0    LATIN CAPITAL LETTER A WITH GRAVE
+&A!@@
+0x00c1    LATIN CAPITAL LETTER A WITH ACUTE
+&A'@@
+0x00c2    LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+&A>@@
+0x00c3    LATIN CAPITAL LETTER A WITH TILDE
+&A?@@
+0x00c4    LATIN CAPITAL LETTER A WITH DIAERESIS
+&A:@@
+0x00c5    LATIN CAPITAL LETTER A WITH RING ABOVE
+&AA@@
+0x00c6    LATIN CAPITAL LETTER AE
+&AE@@
+0x00c7    LATIN CAPITAL LETTER C WITH CEDILLA
+&C,@@
+0x00c8    LATIN CAPITAL LETTER E WITH GRAVE
+&E!@@
+0x00c9    LATIN CAPITAL LETTER E WITH ACUTE
+&E'@@
+0x00ca    LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+&E>@@
+0x00cb    LATIN CAPITAL LETTER E WITH DIAERESIS
+&E:@@
+0x00cc    LATIN CAPITAL LETTER I WITH GRAVE
+&I!@@
+0x00cd    LATIN CAPITAL LETTER I WITH ACUTE
+&I'@@
+0x00ce    LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+&I>@@
+0x00cf    LATIN CAPITAL LETTER I WITH DIAERESIS
+&I:@@
+0x00d0    LATIN CAPITAL LETTER ETH (Icelandic)
+&D-@@
+0x00d1    LATIN CAPITAL LETTER N WITH TILDE
+&N?@@
+0x00d2    LATIN CAPITAL LETTER O WITH GRAVE
+&O!@@
+0x00d3    LATIN CAPITAL LETTER O WITH ACUTE
+&O'@@
+0x00d4    LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+&O>@@
+0x00d5    LATIN CAPITAL LETTER O WITH TILDE
+&O?@@
+0x00d6    LATIN CAPITAL LETTER O WITH DIAERESIS
+&O:@@
+0x00d7    MULTIPLICATION SIGN
+&*X@@
+0x00d8    LATIN CAPITAL LETTER O WITH STROKE
+&O/@@
+0x00d9    LATIN CAPITAL LETTER U WITH GRAVE
+&U!@@
+0x00da    LATIN CAPITAL LETTER U WITH ACUTE
+&U'@@
+0x00db    LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+&U>@@
+0x00dc    LATIN CAPITAL LETTER U WITH DIAERESIS
+&U:@@
+0x00dd    LATIN CAPITAL LETTER Y WITH ACUTE
+&Y'@@
+0x00de    LATIN CAPITAL LETTER THORN (Icelandic)
+&TH@@
+0x00df    LATIN SMALL LETTER SHARP S (German)
+&ss@@
+0x00e0    LATIN SMALL LETTER A WITH GRAVE
+&a!@@
+0x00e1    LATIN SMALL LETTER A WITH ACUTE
+&a'@@
+0x00e2    LATIN SMALL LETTER A WITH CIRCUMFLEX
+&a>@@
+0x00e3    LATIN SMALL LETTER A WITH TILDE
+&a?@@
+0x00e4    LATIN SMALL LETTER A WITH DIAERESIS
+&a:@@
+0x00e5    LATIN SMALL LETTER A WITH RING ABOVE
+&aa@@
+0x00e6    LATIN SMALL LETTER AE
+&ae@@
+0x00e7    LATIN SMALL LETTER C WITH CEDILLA
+&c,@@
+0x00e8    LATIN SMALL LETTER E WITH GRAVE
+&e!@@
+0x00e9    LATIN SMALL LETTER E WITH ACUTE
+&e'@@
+0x00ea    LATIN SMALL LETTER E WITH CIRCUMFLEX
+&e>@@
+0x00eb    LATIN SMALL LETTER E WITH DIAERESIS
+&e:@@
+0x00ec    LATIN SMALL LETTER I WITH GRAVE
+&i!@@
+0x00ed    LATIN SMALL LETTER I WITH ACUTE
+&i'@@
+0x00ee    LATIN SMALL LETTER I WITH CIRCUMFLEX
+&i>@@
+0x00ef    LATIN SMALL LETTER I WITH DIAERESIS
+&i:@@
+0x00f0    LATIN SMALL LETTER ETH (Icelandic)
+&d-@@
+0x00f1    LATIN SMALL LETTER N WITH TILDE
+&n?@@
+0x00f2    LATIN SMALL LETTER O WITH GRAVE
+&o!@@
+0x00f3    LATIN SMALL LETTER O WITH ACUTE
+&o'@@
+0x00f4    LATIN SMALL LETTER O WITH CIRCUMFLEX
+&o>@@
+0x00f5    LATIN SMALL LETTER O WITH TILDE
+&o?@@
+0x00f6    LATIN SMALL LETTER O WITH DIAERESIS
+&o:@@
+0x00f7    DIVISION SIGN
+&-:@@
+0x00f8    LATIN SMALL LETTER O WITH STROKE
+&o/@@
+0x00f9    LATIN SMALL LETTER U WITH GRAVE
+&u!@@
+0x00fa    LATIN SMALL LETTER U WITH ACUTE
+&u'@@
+0x00fb    LATIN SMALL LETTER U WITH CIRCUMFLEX
+&u>@@
+0x00fc    LATIN SMALL LETTER U WITH DIAERESIS
+&u:@@
+0x00fd    LATIN SMALL LETTER Y WITH ACUTE
+&y'@@
+0x00fe    LATIN SMALL LETTER THORN (Icelandic)
+&th@@
+0x00ff    LATIN SMALL LETTER Y WITH DIAERESIS
+&y:@@
+0x0100    LATIN CAPITAL LETTER A WITH MACRON
+&A-@@
+0x0101    LATIN SMALL LETTER A WITH MACRON
+&a-@@
+0x0102    LATIN CAPITAL LETTER A WITH BREVE
+&A(@@
+0x0103    LATIN SMALL LETTER A WITH BREVE
+&a(@@
+0x0104    LATIN CAPITAL LETTER A WITH OGONEK
+&A;@@
+0x0105    LATIN SMALL LETTER A WITH OGONEK
+&a;@@
+0x0106    LATIN CAPITAL LETTER C WITH ACUTE
+&C'@@
+0x0107    LATIN SMALL LETTER C WITH ACUTE
+&c'@@
+0x0108    LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+&C>@@
+0x0109    LATIN SMALL LETTER C WITH CIRCUMFLEX
+&c>@@
+0x010a    LATIN CAPITAL LETTER C WITH DOT ABOVE
+&C.@@
+0x010b    LATIN SMALL LETTER C WITH DOT ABOVE
+&c.@@
+0x010c    LATIN CAPITAL LETTER C WITH CARON
+&C<@@
+0x010d    LATIN SMALL LETTER C WITH CARON
+&c<@@
+0x010e    LATIN CAPITAL LETTER D WITH CARON
+&D<@@
+0x010f    LATIN SMALL LETTER D WITH CARON
+&d<@@
+0x0110    LATIN CAPITAL LETTER D WITH STROKE
+&D/@@
+0x0111    LATIN SMALL LETTER D WITH STROKE
+&d/@@
+0x0112    LATIN CAPITAL LETTER E WITH MACRON
+&E-@@
+0x0113    LATIN SMALL LETTER E WITH MACRON
+&e-@@
+0x0114    LATIN CAPITAL LETTER E WITH BREVE
+&E(@@
+0x0115    LATIN SMALL LETTER E WITH BREVE
+&e(@@
+0x0116    LATIN CAPITAL LETTER E WITH DOT ABOVE
+&E.@@
+0x0117    LATIN SMALL LETTER E WITH DOT ABOVE
+&e.@@
+0x0118    LATIN CAPITAL LETTER E WITH OGONEK
+&E;@@
+0x0119    LATIN SMALL LETTER E WITH OGONEK
+&e;@@
+0x011a    LATIN CAPITAL LETTER E WITH CARON
+&E<@@
+0x011b    LATIN SMALL LETTER E WITH CARON
+&e<@@
+0x011c    LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+&G>@@
+0x011d    LATIN SMALL LETTER G WITH CIRCUMFLEX
+&g>@@
+0x011e    LATIN CAPITAL LETTER G WITH BREVE
+&G(@@
+0x011f    LATIN SMALL LETTER G WITH BREVE
+&g(@@
+0x0120    LATIN CAPITAL LETTER G WITH DOT ABOVE
+&G.@@
+0x0121    LATIN SMALL LETTER G WITH DOT ABOVE
+&g.@@
+0x0122    LATIN CAPITAL LETTER G WITH CEDILLA
+&G,@@
+0x0123    LATIN SMALL LETTER G WITH CEDILLA
+&g,@@
+0x0124    LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+&H>@@
+0x0125    LATIN SMALL LETTER H WITH CIRCUMFLEX
+&h>@@
+0x0126    LATIN CAPITAL LETTER H WITH STROKE
+&H/@@
+0x0127    LATIN SMALL LETTER H WITH STROKE
+&h/@@
+0x0128    LATIN CAPITAL LETTER I WITH TILDE
+&I?@@
+0x0129    LATIN SMALL LETTER I WITH TILDE
+&i?@@
+0x012a    LATIN CAPITAL LETTER I WITH MACRON
+&I-@@
+0x012b    LATIN SMALL LETTER I WITH MACRON
+&i-@@
+0x012c    LATIN CAPITAL LETTER I WITH BREVE
+&I(@@
+0x012d    LATIN SMALL LETTER I WITH BREVE
+&i(@@
+0x012e    LATIN CAPITAL LETTER I WITH OGONEK
+&I;@@
+0x012f    LATIN SMALL LETTER I WITH OGONEK
+&i;@@
+0x0130    LATIN CAPITAL LETTER I WITH DOT ABOVE
+&I.@@
+0x0131    LATIN SMALL LETTER I DOTLESS
+&i.@@
+0x0132    LATIN CAPITAL LIGATURE IJ
+&IJ@@
+0x0133    LATIN SMALL LIGATURE IJ
+&ij@@
+0x0134    LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+&J>@@
+0x0135    LATIN SMALL LETTER J WITH CIRCUMFLEX
+&j>@@
+0x0136    LATIN CAPITAL LETTER K WITH CEDILLA
+&K,@@
+0x0137    LATIN SMALL LETTER K WITH CEDILLA
+&k,@@
+0x0138    LATIN SMALL LETTER KRA (Greenlandic)
+&kk@@
+0x0139    LATIN CAPITAL LETTER L WITH ACUTE
+&L'@@
+0x013a    LATIN SMALL LETTER L WITH ACUTE
+&l'@@
+0x013b    LATIN CAPITAL LETTER L WITH CEDILLA
+&L,@@
+0x013c    LATIN SMALL LETTER L WITH CEDILLA
+&l,@@
+0x013d    LATIN CAPITAL LETTER L WITH CARON
+&L<@@
+0x013e    LATIN SMALL LETTER L WITH CARON
+&l<@@
+0x013f    LATIN CAPITAL LETTER L WITH MIDDLE DOT
+&L.@@
+0x0140    LATIN SMALL LETTER L WITH MIDDLE DOT
+&l.@@
+0x0141    LATIN CAPITAL LETTER L WITH STROKE
+&L/@@
+0x0142    LATIN SMALL LETTER L WITH STROKE
+&l/@@
+0x0143    LATIN CAPITAL LETTER N WITH ACUTE
+&N'@@
+0x0144    LATIN SMALL LETTER N WITH ACUTE
+&n'@@
+0x0145    LATIN CAPITAL LETTER N WITH CEDILLA
+&N,@@
+0x0146    LATIN SMALL LETTER N WITH CEDILLA
+&n,@@
+0x0147    LATIN CAPITAL LETTER N WITH CARON
+&N<@@
+0x0148    LATIN SMALL LETTER N WITH CARON
+&n<@@
+0x0149    LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+&'n@@
+0x014a    LATIN CAPITAL LETTER ENG (Lappish)
+&NG@@
+0x014b    LATIN SMALL LETTER ENG (Lappish)
+&ng@@
+0x014c    LATIN CAPITAL LETTER O WITH MACRON
+&O-@@
+0x014d    LATIN SMALL LETTER O WITH MACRON
+&o-@@
+0x014e    LATIN CAPITAL LETTER O WITH BREVE
+&O(@@
+0x014f    LATIN SMALL LETTER O WITH BREVE
+&o(@@
+0x0150    LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+&O"@@
+0x0151    LATIN SMALL LETTER O WITH DOUBLE ACUTE
+&o"@@
+0x0152    LATIN CAPITAL LIGATURE OE
+&OE@@
+0x0153    LATIN SMALL LIGATURE OE
+&oe@@
+0x0154    LATIN CAPITAL LETTER R WITH ACUTE
+&R'@@
+0x0155    LATIN SMALL LETTER R WITH ACUTE
+&r'@@
+0x0156    LATIN CAPITAL LETTER R WITH CEDILLA
+&R,@@
+0x0157    LATIN SMALL LETTER R WITH CEDILLA
+&r,@@
+0x0158    LATIN CAPITAL LETTER R WITH CARON
+&R<@@
+0x0159    LATIN SMALL LETTER R WITH CARON
+&r<@@
+0x015a    LATIN CAPITAL LETTER S WITH ACUTE
+&S'@@
+0x015b    LATIN SMALL LETTER S WITH ACUTE
+&s'@@
+0x015c    LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+&S>@@
+0x015d    LATIN SMALL LETTER S WITH CIRCUMFLEX
+&s>@@
+0x015e    LATIN CAPITAL LETTER S WITH CEDILLA
+&S,@@
+0x015f    LATIN SMALL LETTER S WITH CEDILLA
+&s,@@
+0x0160    LATIN CAPITAL LETTER S WITH CARON
+&S<@@
+0x0161    LATIN SMALL LETTER S WITH CARON
+&s<@@
+0x0162    LATIN CAPITAL LETTER T WITH CEDILLA
+&T,@@
+0x0163    LATIN SMALL LETTER T WITH CEDILLA
+&t,@@
+0x0164    LATIN CAPITAL LETTER T WITH CARON
+&T<@@
+0x0165    LATIN SMALL LETTER T WITH CARON
+&t<@@
+0x0166    LATIN CAPITAL LETTER T WITH STROKE
+&T/@@
+0x0167    LATIN SMALL LETTER T WITH STROKE
+&t/@@
+0x0168    LATIN CAPITAL LETTER U WITH TILDE
+&U?@@
+0x0169    LATIN SMALL LETTER U WITH TILDE
+&u?@@
+0x016a    LATIN CAPITAL LETTER U WITH MACRON
+&U-@@
+0x016b    LATIN SMALL LETTER U WITH MACRON
+&u-@@
+0x016c    LATIN CAPITAL LETTER U WITH BREVE
+&U(@@
+0x016d    LATIN SMALL LETTER U WITH BREVE
+&u(@@
+0x016e    LATIN CAPITAL LETTER U WITH RING ABOVE
+&U0@@
+0x016f    LATIN SMALL LETTER U WITH RING ABOVE
+&u0@@
+0x0170    LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+&U"@@
+0x0171    LATIN SMALL LETTER U WITH DOUBLE ACUTE
+&u"@@
+0x0172    LATIN CAPITAL LETTER U WITH OGONEK
+&U;@@
+0x0173    LATIN SMALL LETTER U WITH OGONEK
+&u;@@
+0x0174    LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+&W>@@
+0x0175    LATIN SMALL LETTER W WITH CIRCUMFLEX
+&w>@@
+0x0176    LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+&Y>@@
+0x0177    LATIN SMALL LETTER Y WITH CIRCUMFLEX
+&y>@@
+0x0178    LATIN CAPITAL LETTER Y WITH DIAERESIS
+&Y:@@
+0x0179    LATIN CAPITAL LETTER Z WITH ACUTE
+&Z'@@
+0x017a    LATIN SMALL LETTER Z WITH ACUTE
+&z'@@
+0x017b    LATIN CAPITAL LETTER Z WITH DOT ABOVE
+&Z.@@
+0x017c    LATIN SMALL LETTER Z WITH DOT ABOVE
+&z.@@
+0x017d    LATIN CAPITAL LETTER Z WITH CARON
+&Z<@@
+0x017e    LATIN SMALL LETTER Z WITH CARON
+&z<@@
+0x01a0    LATIN CAPITAL LETTER O WITH HORN
+&O9@@
+0x01a1    LATIN SMALL LETTER O WITH HORN
+&o9@@
+0x01a2    LATIN CAPITAL LETTER OI
+&OI@@
+0x01a3    LATIN SMALL LETTER OI
+&oi@@
+0x01a6    LATIN LETTER YR
+&yr@@
+0x01af    LATIN CAPITAL LETTER U WITH HORN
+&U9@@
+0x01b0    LATIN SMALL LETTER U WITH HORN
+&u9@@
+0x01b5    LATIN CAPITAL LETTER Z WITH STROKE
+&Z/@@
+0x01b6    LATIN SMALL LETTER Z WITH STROKE
+&z/@@
+0x01b7    LATIN CAPITAL LETTER EZH
+&ED@@
+0x01cd    LATIN CAPITAL LETTER A WITH CARON
+&A<@@
+0x01ce    LATIN SMALL LETTER A WITH CARON
+&a<@@
+0x01cf    LATIN CAPITAL LETTER I WITH CARON
+&I<@@
+0x01d0    LATIN SMALL LETTER I WITH CARON
+&i<@@
+0x01d1    LATIN CAPITAL LETTER O WITH CARON
+&O<@@
+0x01d2    LATIN SMALL LETTER O WITH CARON
+&o<@@
+0x01d3    LATIN CAPITAL LETTER U WITH CARON
+&U<@@
+0x01d4    LATIN SMALL LETTER U WITH CARON
+&u<@@
+0x01d5    LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+&_U:-_@@
+0x01d6    LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+&_u:-_@@
+0x01d7    LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+&_U:'_@@
+0x01d8    LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+&_u:'_@@
+0x01d9    LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+&_U:<_@@
+0x01da    LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+&_u:<_@@
+0x01db    LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+&_U:!_@@
+0x01dc    LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+&_u:!_@@
+0x01de    LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+&A1@@
+0x01df    LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+&a1@@
+0x01e0    LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+&A7@@
+0x01e1    LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+&a7@@
+0x01e2    LATIN CAPITAL LETTER AE WITH MACRON
+&A3@@
+0x01e3    LATIN SMALL LETTER AE WITH MACRON
+&a3@@
+0x01e4    LATIN CAPITAL LETTER G WITH STROKE
+&G/@@
+0x01e5    LATIN SMALL LETTER G WITH STROKE
+&g/@@
+0x01e6    LATIN CAPITAL LETTER G WITH CARON
+&G<@@
+0x01e7    LATIN SMALL LETTER G WITH CARON
+&g<@@
+0x01e8    LATIN CAPITAL LETTER K WITH CARON
+&K<@@
+0x01e9    LATIN SMALL LETTER K WITH CARON
+&k<@@
+0x01ea    LATIN CAPITAL LETTER O WITH OGONEK
+&O;@@
+0x01eb    LATIN SMALL LETTER O WITH OGONEK
+&o;@@
+0x01ec    LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+&O1@@
+0x01ed    LATIN SMALL LETTER O WITH OGONEK AND MACRON
+&o1@@
+0x01ee    LATIN CAPITAL LETTER EZH WITH CARON
+&EZ@@
+0x01ef    LATIN SMALL LETTER EZH WITH CARON
+&ez@@
+0x01f0    LATIN SMALL LETTER J WITH CARON
+&j<@@
+0x01f4    LATIN CAPITAL LETTER G WITH ACUTE
+&G'@@
+0x01f5    LATIN SMALL LETTER G WITH ACUTE
+&g'@@
+0x01fa    LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+&_AA'_@@
+0x01fb    LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+&_aa'_@@
+0x01fc    LATIN CAPITAL LETTER AE WITH ACUTE
+&_AE'_@@
+0x01fd    LATIN SMALL LETTER AE WITH ACUTE
+&_ae'_@@
+0x01fe    LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+&_O/'_@@
+0x01ff    LATIN SMALL LETTER O WITH STROKE AND ACUTE
+&_o/'_@@
+0x02bf    MODIFIER LETTER LEFT HALF RING
+&;S@@
+0x02c7    CARON
+&'<@@
+0x02d8    BREVE
+&'(@@
+0x02d9    DOT ABOVE
+&'.@@
+0x02da    RING ABOVE
+&'0@@
+0x02db    OGONEK
+&';@@
+0x02dd    DOUBLE ACUTE ACCENT
+&'"@@
+0x0386    GREEK CAPITAL LETTER ALPHA WITH ACUTE
+&A%@@
+0x0388    GREEK CAPITAL LETTER EPSILON WITH ACUTE
+&E%@@
+0x0389    GREEK CAPITAL LETTER ETA WITH ACUTE
+&Y%@@
+0x038a    GREEK CAPITAL LETTER IOTA WITH ACUTE
+&I%@@
+0x038c    GREEK CAPITAL LETTER OMICRON WITH ACUTE
+&O%@@
+0x038e    GREEK CAPITAL LETTER UPSILON WITH ACUTE
+&U%@@
+0x038f    GREEK CAPITAL LETTER OMEGA WITH ACUTE
+&W%@@
+0x0390    GREEK SMALL LETTER IOTA WITH ACUTE AND DIAERESIS
+&i3@@
+0x0391    GREEK CAPITAL LETTER ALPHA
+&A*@@
+0x0392    GREEK CAPITAL LETTER BETA
+&B*@@
+0x0393    GREEK CAPITAL LETTER GAMMA
+&G*@@
+0x0394    GREEK CAPITAL LETTER DELTA
+&D*@@
+0x0395    GREEK CAPITAL LETTER EPSILON
+&E*@@
+0x0396    GREEK CAPITAL LETTER ZETA
+&Z*@@
+0x0397    GREEK CAPITAL LETTER ETA
+&Y*@@
+0x0398    GREEK CAPITAL LETTER THETA
+&H*@@
+0x0399    GREEK CAPITAL LETTER IOTA
+&I*@@
+0x039a    GREEK CAPITAL LETTER KAPPA
+&K*@@
+0x039b    GREEK CAPITAL LETTER LAMDA
+&L*@@
+0x039c    GREEK CAPITAL LETTER MU
+&M*@@
+0x039d    GREEK CAPITAL LETTER NU
+&N*@@
+0x039e    GREEK CAPITAL LETTER XI
+&C*@@
+0x039f    GREEK CAPITAL LETTER OMICRON
+&O*@@
+0x03a0    GREEK CAPITAL LETTER PI
+&P*@@
+0x03a1    GREEK CAPITAL LETTER RHO
+&R*@@
+0x03a3    GREEK CAPITAL LETTER SIGMA
+&S*@@
+0x03a4    GREEK CAPITAL LETTER TAU
+&T*@@
+0x03a5    GREEK CAPITAL LETTER UPSILON
+&U*@@
+0x03a6    GREEK CAPITAL LETTER PHI
+&F*@@
+0x03a7    GREEK CAPITAL LETTER CHI
+&X*@@
+0x03a8    GREEK CAPITAL LETTER PSI
+&Q*@@
+0x03a9    GREEK CAPITAL LETTER OMEGA
+&W*@@
+0x03aa    GREEK CAPITAL LETTER IOTA WITH DIAERESIS
+&J*@@
+0x03ab    GREEK CAPITAL LETTER UPSILON WITH DIAERESIS
+&V*@@
+0x03ac    GREEK SMALL LETTER ALPHA WITH ACUTE
+&a%@@
+0x03ad    GREEK SMALL LETTER EPSILON WITH ACUTE
+&e%@@
+0x03ae    GREEK SMALL LETTER ETA WITH ACUTE
+&y%@@
+0x03af    GREEK SMALL LETTER IOTA WITH ACUTE
+&i%@@
+0x03b0    GREEK SMALL LETTER UPSILON WITH ACUTE AND DIAERESIS
+&u3@@
+0x03b1    GREEK SMALL LETTER ALPHA
+&a*@@
+0x03b2    GREEK SMALL LETTER BETA
+&b*@@
+0x03b3    GREEK SMALL LETTER GAMMA
+&g*@@
+0x03b4    GREEK SMALL LETTER DELTA
+&d*@@
+0x03b5    GREEK SMALL LETTER EPSILON
+&e*@@
+0x03b6    GREEK SMALL LETTER ZETA
+&z*@@
+0x03b7    GREEK SMALL LETTER ETA
+&y*@@
+0x03b8    GREEK SMALL LETTER THETA
+&h*@@
+0x03b9    GREEK SMALL LETTER IOTA
+&i*@@
+0x03ba    GREEK SMALL LETTER KAPPA
+&k*@@
+0x03bb    GREEK SMALL LETTER LAMDA
+&l*@@
+0x03bc    GREEK SMALL LETTER MU
+&m*@@
+0x03bd    GREEK SMALL LETTER NU
+&n*@@
+0x03be    GREEK SMALL LETTER XI
+&c*@@
+0x03bf    GREEK SMALL LETTER OMICRON
+&o*@@
+0x03c0    GREEK SMALL LETTER PI
+&p*@@
+0x03c1    GREEK SMALL LETTER RHO
+&r*@@
+0x03c2    GREEK SMALL LETTER FINAL SIGMA
+&*s@@
+0x03c3    GREEK SMALL LETTER SIGMA
+&s*@@
+0x03c4    GREEK SMALL LETTER TAU
+&t*@@
+0x03c5    GREEK SMALL LETTER UPSILON
+&u*@@
+0x03c6    GREEK SMALL LETTER PHI
+&f*@@
+0x03c7    GREEK SMALL LETTER CHI
+&x*@@
+0x03c8    GREEK SMALL LETTER PSI
+&q*@@
+0x03c9    GREEK SMALL LETTER OMEGA
+&w*@@
+0x03ca    GREEK SMALL LETTER IOTA WITH DIAERESIS
+&j*@@
+0x03cb    GREEK SMALL LETTER UPSILON WITH DIAERESIS
+&v*@@
+0x03cc    GREEK SMALL LETTER OMICRON WITH ACUTE
+&o%@@
+0x03cd    GREEK SMALL LETTER UPSILON WITH ACUTE
+&u%@@
+0x03ce    GREEK SMALL LETTER OMEGA WITH ACUTE
+&w%@@
+0x03d8    GREEK NUMERAL SIGN
+&'G@@
+0x03d9    GREEK LOWER NUMERAL SIGN
+&,G@@
+0x03da    GREEK CAPITAL LETTER STIGMA
+&T3@@
+0x03db    GREEK SMALL LETTER STIGMA
+&t3@@
+0x03dc    GREEK CAPITAL LETTER DIGAMMA
+&M3@@
+0x03dd    GREEK SMALL LETTER DIGAMMA
+&m3@@
+0x03de    GREEK CAPITAL LETTER KOPPA
+&K3@@
+0x03df    GREEK SMALL LETTER KOPPA
+&k3@@
+0x03e0    GREEK CAPITAL LETTER SAMPI
+&P3@@
+0x03e1    GREEK SMALL LETTER SAMPI
+&p3@@
+0x03f4    ACUTE ACCENT AND DIAERESIS (Tonos and Dialytika)
+&'%@@
+0x03f5    GREEK IOTA BELOW
+&j3@@
+0x0401    CYRILLIC CAPITAL LETTER IO
+&IO@@
+0x0402    CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
+&D%@@
+0x0403    CYRILLIC CAPITAL LETTER GJE (Macedonian)
+&G%@@
+0x0404    CYRILLIC CAPITAL LETTER UKRAINIAN IE
+&IE@@
+0x0405    CYRILLIC CAPITAL LETTER DZE (Macedonian)
+&DS@@
+0x0406    CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+&II@@
+0x0407    CYRILLIC CAPITAL LETTER YI (Ukrainian)
+&YI@@
+0x0408    CYRILLIC CAPITAL LETTER JE
+&J%@@
+0x0409    CYRILLIC CAPITAL LETTER LJE
+&LJ@@
+0x040a    CYRILLIC CAPITAL LETTER NJE
+&NJ@@
+0x040b    CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
+&Ts@@
+0x040c    CYRILLIC CAPITAL LETTER KJE (Macedonian)
+&KJ@@
+0x040e    CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+&V%@@
+0x040f    CYRILLIC CAPITAL LETTER DZHE
+&DZ@@
+0x0410    CYRILLIC CAPITAL LETTER A
+&A=@@
+0x0411    CYRILLIC CAPITAL LETTER BE
+&B=@@
+0x0412    CYRILLIC CAPITAL LETTER VE
+&V=@@
+0x0413    CYRILLIC CAPITAL LETTER GHE
+&G=@@
+0x0414    CYRILLIC CAPITAL LETTER DE
+&D=@@
+0x0415    CYRILLIC CAPITAL LETTER IE
+&E=@@
+0x0416    CYRILLIC CAPITAL LETTER ZHE
+&Z%@@
+0x0417    CYRILLIC CAPITAL LETTER ZE
+&Z=@@
+0x0418    CYRILLIC CAPITAL LETTER I
+&I=@@
+0x0419    CYRILLIC CAPITAL LETTER SHORT I
+&J=@@
+0x041a    CYRILLIC CAPITAL LETTER KA
+&K=@@
+0x041b    CYRILLIC CAPITAL LETTER EL
+&L=@@
+0x041c    CYRILLIC CAPITAL LETTER EM
+&M=@@
+0x041d    CYRILLIC CAPITAL LETTER EN
+&N=@@
+0x041e    CYRILLIC CAPITAL LETTER O
+&O=@@
+0x041f    CYRILLIC CAPITAL LETTER PE
+&P=@@
+0x0420    CYRILLIC CAPITAL LETTER ER
+&R=@@
+0x0421    CYRILLIC CAPITAL LETTER ES
+&S=@@
+0x0422    CYRILLIC CAPITAL LETTER TE
+&T=@@
+0x0423    CYRILLIC CAPITAL LETTER U
+&U=@@
+0x0424    CYRILLIC CAPITAL LETTER EF
+&F=@@
+0x0425    CYRILLIC CAPITAL LETTER HA
+&H=@@
+0x0426    CYRILLIC CAPITAL LETTER TSE
+&C=@@
+0x0427    CYRILLIC CAPITAL LETTER CHE
+&C%@@
+0x0428    CYRILLIC CAPITAL LETTER SHA
+&S%@@
+0x0429    CYRILLIC CAPITAL LETTER SHCHA
+&Sc@@
+0x042a    CYRILLIC CAPITAL LETTER HARD SIGN
+&="@@
+0x042b    CYRILLIC CAPITAL LETTER YERU
+&Y=@@
+0x042c    CYRILLIC CAPITAL LETTER SOFT SIGN
+&%"@@
+0x042d    CYRILLIC CAPITAL LETTER E
+&JE@@
+0x042e    CYRILLIC CAPITAL LETTER YU
+&JU@@
+0x042f    CYRILLIC CAPITAL LETTER YA
+&JA@@
+0x0430    CYRILLIC SMALL LETTER A
+&a=@@
+0x0431    CYRILLIC SMALL LETTER BE
+&b=@@
+0x0432    CYRILLIC SMALL LETTER VE
+&v=@@
+0x0433    CYRILLIC SMALL LETTER GHE
+&g=@@
+0x0434    CYRILLIC SMALL LETTER DE
+&d=@@
+0x0435    CYRILLIC SMALL LETTER IE
+&e=@@
+0x0436    CYRILLIC SMALL LETTER ZHE
+&z%@@
+0x0437    CYRILLIC SMALL LETTER ZE
+&z=@@
+0x0438    CYRILLIC SMALL LETTER I
+&i=@@
+0x0439    CYRILLIC SMALL LETTER SHORT I
+&j=@@
+0x043a    CYRILLIC SMALL LETTER KA
+&k=@@
+0x043b    CYRILLIC SMALL LETTER EL
+&l=@@
+0x043c    CYRILLIC SMALL LETTER EM
+&m=@@
+0x043d    CYRILLIC SMALL LETTER EN
+&n=@@
+0x043e    CYRILLIC SMALL LETTER O
+&o=@@
+0x043f    CYRILLIC SMALL LETTER PE
+&p=@@
+0x0440    CYRILLIC SMALL LETTER ER
+&r=@@
+0x0441    CYRILLIC SMALL LETTER ES
+&s=@@
+0x0442    CYRILLIC SMALL LETTER TE
+&t=@@
+0x0443    CYRILLIC SMALL LETTER U
+&u=@@
+0x0444    CYRILLIC SMALL LETTER EF
+&f=@@
+0x0445    CYRILLIC SMALL LETTER HA
+&h=@@
+0x0446    CYRILLIC SMALL LETTER TSE
+&c=@@
+0x0447    CYRILLIC SMALL LETTER CHE
+&c%@@
+0x0448    CYRILLIC SMALL LETTER SHA
+&s%@@
+0x0449    CYRILLIC SMALL LETTER SHCHA
+&sc@@
+0x044a    CYRILLIC SMALL LETTER HARD SIGN
+&='@@
+0x044b    CYRILLIC SMALL LETTER YERU
+&y=@@
+0x044c    CYRILLIC SMALL LETTER SOFT SIGN
+&%'@@
+0x044d    CYRILLIC SMALL LETTER E
+&je@@
+0x044e    CYRILLIC SMALL LETTER YU
+&ju@@
+0x044f    CYRILLIC SMALL LETTER YA
+&ja@@
+0x0451    CYRILLIC SMALL LETTER IO
+&io@@
+0x0452    CYRILLIC SMALL LETTER DJE (Serbocroatian)
+&d%@@
+0x0453    CYRILLIC SMALL LETTER GJE (Macedonian)
+&g%@@
+0x0454    CYRILLIC SMALL LETTER UKRAINIAN IE
+&ie@@
+0x0455    CYRILLIC SMALL LETTER DZE (Macedonian)
+&ds@@
+0x0456    CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+&ii@@
+0x0457    CYRILLIC SMALL LETTER YI (Ukrainian)
+&yi@@
+0x0458    CYRILLIC SMALL LETTER JE
+&j%@@
+0x0459    CYRILLIC SMALL LETTER LJE
+&lj@@
+0x045a    CYRILLIC SMALL LETTER NJE
+&nj@@
+0x045b    CYRILLIC SMALL LETTER TSHE (Serbocroatian)
+&ts@@
+0x045c    CYRILLIC SMALL LETTER KJE (Macedonian)
+&kj@@
+0x045e    CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+&v%@@
+0x045f    CYRILLIC SMALL LETTER DZHE
+&dz@@
+0x0462    CYRILLIC CAPITAL LETTER YAT
+&Y3@@
+0x0463    CYRILLIC SMALL LETTER YAT
+&y3@@
+0x046a    CYRILLIC CAPITAL LETTER BIG YUS
+&O3@@
+0x046b    CYRILLIC SMALL LETTER BIG YUS
+&o3@@
+0x0472    CYRILLIC CAPITAL LETTER FITA
+&F3@@
+0x0473    CYRILLIC SMALL LETTER FITA
+&f3@@
+0x0474    CYRILLIC CAPITAL LETTER IZHITSA
+&V3@@
+0x0475    CYRILLIC SMALL LETTER IZHITSA
+&v3@@
+0x0480    CYRILLIC CAPITAL LETTER KOPPA
+&C3@@
+0x0481    CYRILLIC SMALL LETTER KOPPA
+&c3@@
+0x0490    CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+&G3@@
+0x0491    CYRILLIC SMALL LETTER GHE WITH UPTURN
+&g3@@
+0x05d0    HEBREW LETTER ALEF
+&A+@@
+0x05d1    HEBREW LETTER BET
+&B+@@
+0x05d2    HEBREW LETTER GIMEL
+&G+@@
+0x05d3    HEBREW LETTER DALET
+&D+@@
+0x05d4    HEBREW LETTER HE
+&H+@@
+0x05d5    HEBREW LETTER VAV
+&W+@@
+0x05d6    HEBREW LETTER ZAYIN
+&Z+@@
+0x05d7    HEBREW LETTER HET
+&X+@@
+0x05d8    HEBREW LETTER TET
+&Tj@@
+0x05d9    HEBREW LETTER YOD
+&J+@@
+0x05da    HEBREW LETTER FINAL KAF
+&K%@@
+0x05db    HEBREW LETTER KAF
+&K+@@
+0x05dc    HEBREW LETTER LAMED
+&L+@@
+0x05dd    HEBREW LETTER FINAL MEM
+&M%@@
+0x05de    HEBREW LETTER MEM
+&M+@@
+0x05df    HEBREW LETTER FINAL NUN
+&N%@@
+0x05e0    HEBREW LETTER NUN
+&N+@@
+0x05e1    HEBREW LETTER SAMEKH
+&S+@@
+0x05e2    HEBREW LETTER AYIN
+&E+@@
+0x05e3    HEBREW LETTER FINAL PE
+&P%@@
+0x05e4    HEBREW LETTER PE
+&P+@@
+0x05e5    HEBREW LETTER FINAL TSADI
+&Zj@@
+0x05e6    HEBREW LETTER TSADI
+&ZJ@@
+0x05e7    HEBREW LETTER QOF
+&Q+@@
+0x05e8    HEBREW LETTER RESH
+&R+@@
+0x05e9    HEBREW LETTER SHIN
+&Sh@@
+0x05ea    HEBREW LETTER TAV
+&T+@@
+0x060c    ARABIC COMMA
+&,+@@
+0x061b    ARABIC SEMICOLON
+&;+@@
+0x061f    ARABIC QUESTION MARK
+&?+@@
+0x0621    ARABIC LETTER HAMZA
+&H'@@
+0x0622    ARABIC LETTER ALEF WITH MADDA ABOVE
+&aM@@
+0x0623    ARABIC LETTER ALEF WITH HAMZA ABOVE
+&aH@@
+0x0624    ARABIC LETTER WAW WITH HAMZA ABOVE
+&wH@@
+0x0625    ARABIC LETTER ALEF WITH HAMZA BELOW
+&ah@@
+0x0626    ARABIC LETTER YEH WITH HAMZA ABOVE
+&yH@@
+0x0627    ARABIC LETTER ALEF
+&a+@@
+0x0628    ARABIC LETTER BEH
+&b+@@
+0x0629    ARABIC LETTER TEH MARBUTA
+&tm@@
+0x062a    ARABIC LETTER TEH
+&t+@@
+0x062b    ARABIC LETTER THEH
+&tk@@
+0x062c    ARABIC LETTER JEEM
+&g+@@
+0x062d    ARABIC LETTER HAH
+&hk@@
+0x062e    ARABIC LETTER KHAH
+&x+@@
+0x062f    ARABIC LETTER DAL
+&d+@@
+0x0630    ARABIC LETTER THAL
+&dk@@
+0x0631    ARABIC LETTER REH
+&r+@@
+0x0632    ARABIC LETTER ZAIN
+&z+@@
+0x0633    ARABIC LETTER SEEN
+&s+@@
+0x0634    ARABIC LETTER SHEEN
+&sn@@
+0x0635    ARABIC LETTER SAD
+&c+@@
+0x0636    ARABIC LETTER DAD
+&dd@@
+0x0637    ARABIC LETTER TAH
+&tj@@
+0x0638    ARABIC LETTER ZAH
+&zH@@
+0x0639    ARABIC LETTER AIN
+&e+@@
+0x063a    ARABIC LETTER GHAIN
+&i+@@
+0x0640    ARABIC TATWEEL
+&++@@
+0x0641    ARABIC LETTER FEH
+&f+@@
+0x0642    ARABIC LETTER QAF
+&q+@@
+0x0643    ARABIC LETTER KAF
+&k+@@
+0x0644    ARABIC LETTER LAM
+&l+@@
+0x0645    ARABIC LETTER MEEM
+&m+@@
+0x0646    ARABIC LETTER NOON
+&n+@@
+0x0647    ARABIC LETTER HEH
+&h+@@
+0x0648    ARABIC LETTER WAW
+&w+@@
+0x0649    ARABIC LETTER ALEF MAKSURA
+&j+@@
+0x064a    ARABIC LETTER YEH
+&y+@@
+0x064b    ARABIC FATHATAN
+&:+@@
+0x064c    ARABIC DAMMATAN
+&"+@@
+0x064d    ARABIC KASRATAN
+&=+@@
+0x064e    ARABIC FATHA
+&/+@@
+0x064f    ARABIC DAMMA
+&'+@@
+0x0650    ARABIC KASRA
+&1+@@
+0x0651    ARABIC SHADDA
+&3+@@
+0x0652    ARABIC SUKUN
+&0+@@
+0x0670    SUPERSCRIPT ARABIC LETTER ALEF
+&aS@@
+0x067e    ARABIC LETTER PEH
+&p+@@
+0x06a4    ARABIC LETTER VEH
+&v+@@
+0x06af    ARABIC LETTER GAF
+&gf@@
+0x06f0    EASTERN ARABIC-INDIC DIGIT ZERO
+&0a@@
+0x06f1    EASTERN ARABIC-INDIC DIGIT ONE
+&1a@@
+0x06f2    EASTERN ARABIC-INDIC DIGIT TWO
+&2a@@
+0x06f3    EASTERN ARABIC-INDIC DIGIT THREE
+&3a@@
+0x06f4    EASTERN ARABIC-INDIC DIGIT FOUR
+&4a@@
+0x06f5    EASTERN ARABIC-INDIC DIGIT FIVE
+&5a@@
+0x06f6    EASTERN ARABIC-INDIC DIGIT SIX
+&6a@@
+0x06f7    EASTERN ARABIC-INDIC DIGIT SEVEN
+&7a@@
+0x06f8    EASTERN ARABIC-INDIC DIGIT EIGHT
+&8a@@
+0x06f9    EASTERN ARABIC-INDIC DIGIT NINE
+&9a@@
+0x1e00    LATIN CAPITAL LETTER A WITH RING BELOW
+&_A-0_@@
+0x1e01    LATIN SMALL LETTER A WITH RING BELOW
+&_a-0_@@
+0x1e02    LATIN CAPITAL LETTER B WITH DOT ABOVE
+&B.@@
+0x1e03    LATIN SMALL LETTER B WITH DOT ABOVE
+&b.@@
+0x1e04    LATIN CAPITAL LETTER B WITH DOT BELOW
+&_B-._@@
+0x1e05    LATIN SMALL LETTER B WITH DOT BELOW
+&_b-._@@
+0x1e06    LATIN CAPITAL LETTER B WITH LINE BELOW
+&B_@@
+0x1e07    LATIN SMALL LETTER B WITH LINE BELOW
+&b_@@
+0x1e08    LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+&_C,'_@@
+0x1e09    LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+&_c,'_@@
+0x1e0a    LATIN CAPITAL LETTER D WITH DOT ABOVE
+&D.@@
+0x1e0b    LATIN SMALL LETTER D WITH DOT ABOVE
+&d.@@
+0x1e0c    LATIN CAPITAL LETTER D WITH DOT BELOW
+&_D-._@@
+0x1e0d    LATIN SMALL LETTER D WITH DOT BELOW
+&_d-._@@
+0x1e0e    LATIN CAPITAL LETTER D WITH LINE BELOW
+&D_@@
+0x1e0f    LATIN SMALL LETTER D WITH LINE BELOW
+&d_@@
+0x1e10    LATIN CAPITAL LETTER D WITH CEDILLA
+&D,@@
+0x1e11    LATIN SMALL LETTER D WITH CEDILLA
+&d,@@
+0x1e12    LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+&_D->_@@
+0x1e13    LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+&_d->_@@
+0x1e14    LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+&_E-!_@@
+0x1e15    LATIN SMALL LETTER E WITH MACRON AND GRAVE
+&_e-!_@@
+0x1e16    LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+&_E-'_@@
+0x1e17    LATIN SMALL LETTER E WITH MACRON AND ACUTE
+&_e-'_@@
+0x1e18    LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+&_E->_@@
+0x1e19    LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+&_e->_@@
+0x1e1a    LATIN CAPITAL LETTER E WITH TILDE BELOW
+&_E-?_@@
+0x1e1b    LATIN SMALL LETTER E WITH TILDE BELOW
+&_e-?_@@
+0x1e1c    LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+&_E,(_@@
+0x1e1d    LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+&_e,(_@@
+0x1e1e    LATIN CAPITAL LETTER F WITH DOT ABOVE
+&F.@@
+0x1e1f    LATIN SMALL LETTER F WITH DOT ABOVE
+&f.@@
+0x1e20    LATIN CAPITAL LETTER G WITH MACRON
+&G-@@
+0x1e21    LATIN SMALL LETTER G WITH MACRON
+&g-@@
+0x1e22    LATIN CAPITAL LETTER H WITH DOT ABOVE
+&H.@@
+0x1e23    LATIN SMALL LETTER H WITH DOT ABOVE
+&h.@@
+0x1e24    LATIN CAPITAL LETTER H WITH DOT BELOW
+&_H-._@@
+0x1e25    LATIN SMALL LETTER H WITH DOT BELOW
+&_h-._@@
+0x1e26    LATIN CAPITAL LETTER H WITH DIAERESIS
+&H:@@
+0x1e27    LATIN SMALL LETTER H WITH DIAERESIS
+&h:@@
+0x1e28    LATIN CAPITAL LETTER H WITH CEDILLA
+&H,@@
+0x1e29    LATIN SMALL LETTER H WITH CEDILLA
+&h,@@
+0x1e2a    LATIN CAPITAL LETTER H WITH BREVE BELOW
+&_H-(_@@
+0x1e2b    LATIN SMALL LETTER H WITH BREVE BELOW
+&_h-(_@@
+0x1e2c    LATIN CAPITAL LETTER I WITH TILDE BELOW
+&_I-?_@@
+0x1e2d    LATIN SMALL LETTER I WITH TILDE BELOW
+&_i-?_@@
+0x1e2e    LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+&_I:'_@@
+0x1e2f    LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+&_i:'_@@
+0x1e30    LATIN CAPITAL LETTER K WITH ACUTE
+&K'@@
+0x1e31    LATIN SMALL LETTER K WITH ACUTE
+&k'@@
+0x1e32    LATIN CAPITAL LETTER K WITH DOT BELOW
+&_K-._@@
+0x1e33    LATIN SMALL LETTER K WITH DOT BELOW
+&_k-._@@
+0x1e34    LATIN CAPITAL LETTER K WITH LINE BELOW
+&K_@@
+0x1e35    LATIN SMALL LETTER K WITH LINE BELOW
+&k_@@
+0x1e36    LATIN CAPITAL LETTER L WITH DOT BELOW
+&_L-._@@
+0x1e37    LATIN SMALL LETTER L WITH DOT BELOW
+&_l-._@@
+0x1e38    LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+&_L--._@@
+0x1e39    LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+&_l--._@@
+0x1e3a    LATIN CAPITAL LETTER L WITH LINE BELOW
+&L_@@
+0x1e3b    LATIN SMALL LETTER L WITH LINE BELOW
+&l_@@
+0x1e3c    LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+&_L->_@@
+0x1e3d    LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+&_l->_@@
+0x1e3e    LATIN CAPITAL LETTER M WITH ACUTE
+&M'@@
+0x1e3f    LATIN SMALL LETTER M WITH ACUTE
+&m'@@
+0x1e40    LATIN CAPITAL LETTER M WITH DOT ABOVE
+&M.@@
+0x1e41    LATIN SMALL LETTER M WITH DOT ABOVE
+&m.@@
+0x1e42    LATIN CAPITAL LETTER M WITH DOT BELOW
+&_M-._@@
+0x1e43    LATIN SMALL LETTER M WITH DOT BELOW
+&_m-._@@
+0x1e44    LATIN CAPITAL LETTER N WITH DOT ABOVE
+&N.@@
+0x1e45    LATIN SMALL LETTER N WITH DOT ABOVE
+&n.@@
+0x1e46    LATIN CAPITAL LETTER N WITH DOT BELOW
+&_N-._@@
+0x1e47    LATIN SMALL LETTER N WITH DOT BELOW
+&_n-._@@
+0x1e48    LATIN CAPITAL LETTER N WITH LINE BELOW
+&N_@@
+0x1e49    LATIN SMALL LETTER N WITH LINE BELOW
+&n_@@
+0x1e4a    LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+&_N->_@@
+0x1e4b    LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+&_N->_@@
+0x1e4c    LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+&_O?'_@@
+0x1e4d    LATIN SMALL LETTER O WITH TILDE AND ACUTE
+&_o?'_@@
+0x1e4e    LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+&_O?:_@@
+0x1e4f    LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+&_o?:_@@
+0x1e50    LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+&_O-!_@@
+0x1e51    LATIN SMALL LETTER O WITH MACRON AND GRAVE
+&_o-!_@@
+0x1e52    LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+&_O-'_@@
+0x1e53    LATIN SMALL LETTER O WITH MACRON AND ACUTE
+&_o-'_@@
+0x1e54    LATIN CAPITAL LETTER P WITH ACUTE
+&P'@@
+0x1e55    LATIN SMALL LETTER P WITH ACUTE
+&p'@@
+0x1e56    LATIN CAPITAL LETTER P WITH DOT ABOVE
+&P.@@
+0x1e57    LATIN SMALL LETTER P WITH DOT ABOVE
+&p.@@
+0x1e58    LATIN CAPITAL LETTER R WITH DOT ABOVE
+&R.@@
+0x1e59    LATIN SMALL LETTER R WITH DOT ABOVE
+&r.@@
+0x1e5a    LATIN CAPITAL LETTER R WITH DOT BELOW
+&_R-._@@
+0x1e5b    LATIN SMALL LETTER R WITH DOT BELOW
+&_r-._@@
+0x1e5c    LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+&_R--._@@
+0x1e5d    LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+&_r--._@@
+0x1e5e    LATIN CAPITAL LETTER R WITH LINE BELOW
+&R_@@
+0x1e5f    LATIN SMALL LETTER R WITH LINE BELOW
+&r_@@
+0x1e60    LATIN CAPITAL LETTER S WITH DOT ABOVE
+&S.@@
+0x1e61    LATIN SMALL LETTER S WITH DOT ABOVE
+&s.@@
+0x1e62    LATIN CAPITAL LETTER S WITH DOT BELOW
+&_S-._@@
+0x1e63    LATIN SMALL LETTER S WITH DOT BELOW
+&_s-._@@
+0x1e64    LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+&_S'._@@
+0x1e65    LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+&_s'._@@
+0x1e66    LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+&_S<._@@
+0x1e67    LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+&_s<._@@
+0x1e68    LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+&_S.-._@@
+0x1e69    LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+&_S.-._@@
+0x1e6a    LATIN CAPITAL LETTER T WITH DOT ABOVE
+&T.@@
+0x1e6b    LATIN SMALL LETTER T WITH DOT ABOVE
+&t.@@
+0x1e6c    LATIN CAPITAL LETTER T WITH DOT BELOW
+&_T-._@@
+0x1e6d    LATIN SMALL LETTER T WITH DOT BELOW
+&_t-._@@
+0x1e6e    LATIN CAPITAL LETTER T WITH LINE BELOW
+&T_@@
+0x1e6f    LATIN SMALL LETTER T WITH LINE BELOW
+&t_@@
+0x1e70    LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+&_T->_@@
+0x1e71    LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+&_t->_@@
+0x1e72    LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+&_U--:_@@
+0x1e73    LATIN SMALL LETTER U WITH DIAERESIS BELOW
+&_u--:_@@
+0x1e74    LATIN CAPITAL LETTER U WITH TILDE BELOW
+&_U-?_@@
+0x1e75    LATIN SMALL LETTER U WITH TILDE BELOW
+&_u-?_@@
+0x1e76    LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+&_U->_@@
+0x1e77    LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+&_u->_@@
+0x1e78    LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+&_U?'_@@
+0x1e79    LATIN SMALL LETTER U WITH TILDE AND ACUTE
+&_u?'_@@
+0x1e7a    LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+&_U-:_@@
+0x1e7b    LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+&_u-:_@@
+0x1e7c    LATIN CAPITAL LETTER V WITH TILDE
+&V?@@
+0x1e7d    LATIN SMALL LETTER V WITH TILDE
+&v?@@
+0x1e7e    LATIN CAPITAL LETTER V WITH DOT BELOW
+&_V-._@@
+0x1e7f    LATIN SMALL LETTER V WITH DOT BELOW
+&_v-._@@
+0x1e80    LATIN CAPITAL LETTER W WITH GRAVE
+&W!@@
+0x1e81    LATIN SMALL LETTER W WITH GRAVE
+&w!@@
+0x1e82    LATIN CAPITAL LETTER W WITH ACUTE
+&W'@@
+0x1e83    LATIN SMALL LETTER W WITH ACUTE
+&w'@@
+0x1e84    LATIN CAPITAL LETTER W WITH DIAERESIS
+&W:@@
+0x1e85    LATIN SMALL LETTER W WITH DIAERESIS
+&w:@@
+0x1e86    LATIN CAPITAL LETTER W WITH DOT ABOVE
+&W.@@
+0x1e87    LATIN SMALL LETTER W WITH DOT ABOVE
+&w.@@
+0x1e88    LATIN CAPITAL LETTER W WITH DOT BELOW
+&_W-._@@
+0x1e89    LATIN SMALL LETTER W WITH DOT BELOW
+&_w-._@@
+0x1e8a    LATIN CAPITAL LETTER X WITH DOT ABOVE
+&X.@@
+0x1e8b    LATIN SMALL LETTER X WITH DOT ABOVE
+&x.@@
+0x1e8c    LATIN CAPITAL LETTER X WITH DIAERESIS
+&X:@@
+0x1e8d    LATIN SMALL LETTER X WITH DIAERESIS
+&x:@@
+0x1e8e    LATIN CAPITAL LETTER Y WITH DOT ABOVE
+&Y.@@
+0x1e8f    LATIN SMALL LETTER Y WITH DOT ABOVE
+&y.@@
+0x1e90    LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+&Z>@@
+0x1e91    LATIN SMALL LETTER Z WITH CIRCUMFLEX
+&z>@@
+0x1e92    LATIN CAPITAL LETTER Z WITH DOT BELOW
+&_Z-._@@
+0x1e93    LATIN SMALL LETTER Z WITH DOT BELOW
+&_z-._@@
+0x1e94    LATIN CAPITAL LETTER Z WITH LINE BELOW
+&Z_@@
+0x1e95    LATIN SMALL LETTER Z WITH LINE BELOW
+&z_@@
+0x1e96    LATIN SMALL LETTER H WITH LINE BELOW
+&h_@@
+0x1e97    LATIN SMALL LETTER T WITH DIAERESIS
+&t:@@
+0x1e98    LATIN SMALL LETTER W WITH RING ABOVE
+&w0@@
+0x1e99    LATIN SMALL LETTER Y WITH RING ABOVE
+&y0@@
+0x1ea0    LATIN CAPITAL LETTER A WITH DOT BELOW
+&_A-._@@
+0x1ea1    LATIN SMALL LETTER A WITH DOT BELOW
+&_a-._@@
+0x1ea2    LATIN CAPITAL LETTER A WITH HOOK ABOVE
+&A2@@
+0x1ea3    LATIN SMALL LETTER A WITH HOOK ABOVE
+&a2@@
+0x1ea4    LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+&_A>'_@@
+0x1ea5    LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+&_a>'_@@
+0x1ea6    LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+&_A>!_@@
+0x1ea7    LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+&_a>!_@@
+0x1ea8    LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+&_A>2_@@
+0x1ea9    LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+&_a>2_@@
+0x1eaa    LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+&_A>?_@@
+0x1eab    LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+&_a>?_@@
+0x1eac    LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+&_A>-._@@
+0x1ead    LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+&_a>-._@@
+0x1eae    LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+&_A('_@@
+0x1eaf    LATIN SMALL LETTER A WITH BREVE AND ACUTE
+&_a('_@@
+0x1eb0    LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+&_A(!_@@
+0x1eb1    LATIN SMALL LETTER A WITH BREVE AND GRAVE
+&_a(!_@@
+0x1eb2    LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+&_A(2_@@
+0x1eb3    LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+&_a(2_@@
+0x1eb4    LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+&_A(?_@@
+0x1eb5    LATIN SMALL LETTER A WITH BREVE AND TILDE
+&_a(?_@@
+0x1eb6    LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+&_A(-._@@
+0x1eb7    LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+&_a(-._@@
+0x1eb8    LATIN CAPITAL LETTER E WITH DOT BELOW
+&_E-._@@
+0x1eb9    LATIN SMALL LETTER E WITH DOT BELOW
+&_e-._@@
+0x1eba    LATIN CAPITAL LETTER E WITH HOOK ABOVE
+&E2@@
+0x1ebb    LATIN SMALL LETTER E WITH HOOK ABOVE
+&e2@@
+0x1ebc    LATIN CAPITAL LETTER E WITH TILDE
+&E?@@
+0x1ebd    LATIN SMALL LETTER E WITH TILDE
+&e?@@
+0x1ebe    LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+&_E>'_@@
+0x1ebf    LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+&_e>'_@@
+0x1ec0    LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+&_E>!_@@
+0x1ec1    LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+&_e>!_@@
+0x1ec2    LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+&_E>2_@@
+0x1ec3    LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+&_e>2_@@
+0x1ec4    LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+&_E>?_@@
+0x1ec5    LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+&_e>?_@@
+0x1ec6    LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+&_E>-._@@
+0x1ec7    LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+&_e>-._@@
+0x1ec8    LATIN CAPITAL LETTER I WITH HOOK ABOVE
+&I2@@
+0x1ec9    LATIN SMALL LETTER I WITH HOOK ABOVE
+&i2@@
+0x1eca    LATIN CAPITAL LETTER I WITH DOT BELOW
+&_I-._@@
+0x1ecb    LATIN SMALL LETTER I WITH DOT BELOW
+&_i-._@@
+0x1ecc    LATIN CAPITAL LETTER O WITH DOT BELOW
+&_O-._@@
+0x1ecd    LATIN SMALL LETTER O WITH DOT BELOW
+&_o-._@@
+0x1ece    LATIN CAPITAL LETTER O WITH HOOK ABOVE
+&O2@@
+0x1ecf    LATIN SMALL LETTER O WITH HOOK ABOVE
+&o2@@
+0x1ed0    LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+&_O>'_@@
+0x1ed1    LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+&_o>'_@@
+0x1ed2    LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+&_O>!_@@
+0x1ed3    LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+&_o>!_@@
+0x1ed4    LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+&_O>2_@@
+0x1ed5    LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+&_o>2_@@
+0x1ed6    LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+&_O>?_@@
+0x1ed7    LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+&_o>?_@@
+0x1ed8    LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+&_O>-._@@
+0x1ed9    LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+&_o>-._@@
+0x1eda    LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+&_O9'_@@
+0x1edb    LATIN SMALL LETTER O WITH HORN AND ACUTE
+&_o9'_@@
+0x1edc    LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+&_O9!_@@
+0x1edd    LATIN SMALL LETTER O WITH HORN AND GRAVE
+&_o9!_@@
+0x1ede    LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+&_O92_@@
+0x1edf    LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+&_o92_@@
+0x1ee0    LATIN CAPITAL LETTER O WITH HORN AND TILDE
+&_O9?_@@
+0x1ee1    LATIN SMALL LETTER O WITH HORN AND TILDE
+&_o9?_@@
+0x1ee2    LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+&_O9-._@@
+0x1ee3    LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+&_o9-._@@
+0x1ee4    LATIN CAPITAL LETTER U WITH DOT BELOW
+&_U-._@@
+0x1ee5    LATIN SMALL LETTER U WITH DOT BELOW
+&_u-._@@
+0x1ee6    LATIN CAPITAL LETTER U WITH HOOK ABOVE
+&U2@@
+0x1ee7    LATIN SMALL LETTER U WITH HOOK ABOVE
+&u2@@
+0x1ee8    LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+&_U9'_@@
+0x1ee9    LATIN SMALL LETTER U WITH HORN AND ACUTE
+&_u9'_@@
+0x1eea    LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+&_U9!_@@
+0x1eeb    LATIN SMALL LETTER U WITH HORN AND GRAVE
+&_u9!_@@
+0x1eec    LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+&_U92_@@
+0x1eed    LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+&_u92_@@
+0x1eee    LATIN CAPITAL LETTER U WITH HORN AND TILDE
+&_U9?_@@
+0x1eef    LATIN SMALL LETTER U WITH HORN AND TILDE
+&_u9?_@@
+0x1ef0    LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+&_U9-._@@
+0x1ef1    LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+&_u9-._@@
+0x1ef2    LATIN CAPITAL LETTER Y WITH GRAVE
+&Y!@@
+0x1ef3    LATIN SMALL LETTER Y WITH GRAVE
+&y!@@
+0x1ef4    LATIN CAPITAL LETTER Y WITH DOT BELOW
+&_Y-._@@
+0x1ef5    LATIN SMALL LETTER Y WITH DOT BELOW
+&_y-._@@
+0x1ef6    LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+&Y2@@
+0x1ef7    LATIN SMALL LETTER Y WITH HOOK ABOVE
+&y2@@
+0x1ef8    LATIN CAPITAL LETTER Y WITH TILDE
+&Y?@@
+0x1ef9    LATIN SMALL LETTER Y WITH TILDE
+&y?@@
+0x1f00    GREEK DASIA AND ACUTE ACCENT
+&;'@@
+0x1f01    GREEK PSILI AND ACUTE ACCENT
+&,'@@
+0x1f02    GREEK DASIA AND VARIA
+&;!@@
+0x1f03    GREEK PSILI AND VARIA
+&,!@@
+0x1f04    GREEK DASIA AND PERISPOMENI
+&?;@@
+0x1f05    GREEK PSILI AND PERISPOMENI
+&?,@@
+0x1f06    GREEK DIAERESIS AND VARIA
+&!:@@
+0x1f07    GREEK DIAERESIS AND PERISPOMENI
+&?:@@
+0x2002    EN SPACE
+&1N@@
+0x2003    EM SPACE
+&1M@@
+0x2004    THREE-PER-EM SPACE
+&3M@@
+0x2005    FOUR-PER-EM SPACE
+&4M@@
+0x2006    SIX-PER-EM SPACE
+&6M@@
+0x2009    THIN SPACE
+&1T@@
+0x200a    HAIR SPACE
+&1H@@
+0x2010    HYPHEN
+&-1@@
+0x2013    EN DASH
+&-N@@
+0x2014    EM DASH
+&-M@@
+0x2015    HORIZONTAL BAR
+&-3@@
+0x2016    DOUBLE VERTICAL LINE
+&!2@@
+0x2017    DOUBLE LOW LINE
+&=2@@
+0x2018    LEFT SINGLE QUOTATION MARK
+&'6@@
+0x2019    RIGHT SINGLE QUOTATION MARK
+&'9@@
+0x201a    SINGLE LOW-9 QUOTATION MARK
+&.9@@
+0x201b    SINGLE HIGH-REVERSED-9 QUOTATION MARK
+&9'@@
+0x201c    LEFT DOUBLE QUOTATION MARK
+&"6@@
+0x201d    RIGHT DOUBLE QUOTATION MARK
+&"9@@
+0x201e    DOUBLE LOW-9 QUOTATION MARK
+&:9@@
+0x201f    DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+&9"@@
+0x2020    DAGGER
+&/-@@
+0x2021    DOUBLE DAGGER
+&/=@@
+0x2025    TWO DOT LEADER
+&..@@
+0x2030    PER MILLE SIGN
+&%0@@
+0x2032    PRIME
+&1'@@
+0x2033    DOUBLE PRIME
+&2'@@
+0x2034    TRIPLE PRIME
+&3'@@
+0x2035    REVERSED PRIME
+&1"@@
+0x2036    REVERSED DOUBLE PRIME
+&2"@@
+0x2037    REVERSED TRIPLE PRIME
+&3"@@
+0x2038    CARET
+&Ca@@
+0x2039    SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+&<1@@
+0x203a    SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+&>1@@
+0x203b    REFERENCE MARK
+&:X@@
+0x203c    DOUBLE EXCLAMATION MARK
+&_!*2_@@
+0x203e    OVERLINE
+&'-@@
+0x2044    FRACTION SLASH
+&/f@@
+0x2070    SUPERSCRIPT DIGIT ZERO
+&0S@@
+0x2074    SUPERSCRIPT DIGIT FOUR
+&4S@@
+0x2075    SUPERSCRIPT DIGIT FIVE
+&5S@@
+0x2076    SUPERSCRIPT DIGIT SIX
+&6S@@
+0x2077    SUPERSCRIPT DIGIT SEVEN
+&7S@@
+0x2078    SUPERSCRIPT DIGIT EIGHT
+&8S@@
+0x2079    SUPERSCRIPT DIGIT NINE
+&9S@@
+0x207a    SUPERSCRIPT PLUS SIGN
+&+S@@
+0x207b    SUPERSCRIPT MINUS
+&-S@@
+0x207c    SUPERSCRIPT EQUALS SIGN
+&=S@@
+0x207d    SUPERSCRIPT LEFT PARENTHESIS
+&(S@@
+0x207e    SUPERSCRIPT RIGHT PARENTHESIS
+&)S@@
+0x207f    SUPERSCRIPT LATIN SMALL LETTER N
+&nS@@
+0x2080    SUBSCRIPT DIGIT ZERO
+&0s@@
+0x2081    SUBSCRIPT DIGIT ONE
+&1s@@
+0x2082    SUBSCRIPT DIGIT TWO
+&2s@@
+0x2083    SUBSCRIPT DIGIT THREE
+&3s@@
+0x2084    SUBSCRIPT DIGIT FOUR
+&4s@@
+0x2085    SUBSCRIPT DIGIT FIVE
+&5s@@
+0x2086    SUBSCRIPT DIGIT SIX
+&6s@@
+0x2087    SUBSCRIPT DIGIT SEVEN
+&7s@@
+0x2088    SUBSCRIPT DIGIT EIGHT
+&8s@@
+0x2089    SUBSCRIPT DIGIT NINE
+&9s@@
+0x208a    SUBSCRIPT PLUS SIGN
+&+s@@
+0x208b    SUBSCRIPT MINUS
+&-s@@
+0x208c    SUBSCRIPT EQUALS SIGN
+&=s@@
+0x208d    SUBSCRIPT LEFT PARENTHESIS
+&(s@@
+0x208e    SUBSCRIPT RIGHT PARENTHESIS
+&)s@@
+0x20a4    LIRA SIGN
+&Li@@
+0x20a7    PESETA SIGN
+&Pt@@
+0x20a9    WON SIGN
+&W=@@
+0x2103    DEGREE CENTIGRADE
+&oC@@
+0x2105    CARE OF
+&co@@
+0x2109    DEGREE FAHRENHEIT
+&oF@@
+0x2116    NUMERO SIGN
+&N0@@
+0x2117    SOUND RECORDING COPYRIGHT
+&PO@@
+0x211e    PRESCRIPTION TAKE
+&Rx@@
+0x2120    SERVICE MARK
+&SM@@
+0x2122    TRADE MARK SIGN
+&TM@@
+0x2126    OHM SIGN
+&Om@@
+0x212b    ANGSTROEM SIGN
+&AO@@
+0x2153    VULGAR FRACTION ONE THIRD
+&13@@
+0x2154    VULGAR FRACTION TWO THIRDS
+&23@@
+0x2155    VULGAR FRACTION ONE FIFTH
+&15@@
+0x2156    VULGAR FRACTION TWO FIFTHS
+&25@@
+0x2157    VULGAR FRACTION THREE FIFTHS
+&35@@
+0x2158    VULGAR FRACTION FOUR FIFTHS
+&45@@
+0x2159    VULGAR FRACTION ONE SIXTH
+&16@@
+0x215a    VULGAR FRACTION FIVE SIXTHS
+&56@@
+0x215b    VULGAR FRACTION ONE EIGHTH
+&18@@
+0x215c    VULGAR FRACTION THREE EIGHTHS
+&38@@
+0x215d    VULGAR FRACTION FIVE EIGHTHS
+&58@@
+0x215e    VULGAR FRACTION SEVEN EIGHTHS
+&78@@
+0x2160    ROMAN NUMERAL ONE
+&1R@@
+0x2161    ROMAN NUMERAL TWO
+&2R@@
+0x2162    ROMAN NUMERAL THREE
+&3R@@
+0x2163    ROMAN NUMERAL FOUR
+&4R@@
+0x2164    ROMAN NUMERAL FIVE
+&5R@@
+0x2165    ROMAN NUMERAL SIX
+&6R@@
+0x2166    ROMAN NUMERAL SEVEN
+&7R@@
+0x2167    ROMAN NUMERAL EIGHT
+&8R@@
+0x2168    ROMAN NUMERAL NINE
+&9R@@
+0x2169    ROMAN NUMERAL TEN
+&aR@@
+0x216a    ROMAN NUMERAL ELEVEN
+&bR@@
+0x216b    ROMAN NUMERAL TWELVE
+&cR@@
+0x216c    ROMAN NUMERAL FIFTY
+&_50R_@@
+0x216d    ROMAN NUMERAL ONE HUNDRED
+&_100R_@@
+0x216e    ROMAN NUMERAL FIVE HUNDRED
+&_500R_@@
+0x216f    ROMAN NUMERAL ONE THOUSAND
+&_1000R_@@
+0x2170    SMALL ROMAN NUMERAL ONE
+&1r@@
+0x2171    SMALL ROMAN NUMERAL TWO
+&2r@@
+0x2172    SMALL ROMAN NUMERAL THREE
+&3r@@
+0x2173    SMALL ROMAN NUMERAL FOUR
+&4r@@
+0x2174    SMALL ROMAN NUMERAL FIVE
+&5r@@
+0x2175    SMALL ROMAN NUMERAL SIX
+&6r@@
+0x2176    SMALL ROMAN NUMERAL SEVEN
+&7r@@
+0x2177    SMALL ROMAN NUMERAL EIGHT
+&8r@@
+0x2178    SMALL ROMAN NUMERAL NINE
+&9r@@
+0x2179    SMALL ROMAN NUMERAL TEN
+&ar@@
+0x217a    SMALL ROMAN NUMERAL ELEVEN
+&br@@
+0x217b    SMALL ROMAN NUMERAL TWELVE
+&cr@@
+0x217c    SMALL ROMAN NUMERAL FIFTY
+&_50r_@@
+0x217d    SMALL ROMAN NUMERAL ONE HUNDRED
+&_100r_@@
+0x217e    SMALL ROMAN NUMERAL FIVE HUNDRED
+&_500r_@@
+0x217f    SMALL ROMAN NUMERAL ONE THOUSAND
+&_1000r_@@
+0x2180    ROMAN NUMERAL ONE THOUSAND C D
+&_1000RCD_@@
+0x2181    ROMAN NUMERAL FIVE THOUSAND
+&_5000R_@@
+0x2182    ROMAN NUMERAL TEN THOUSAND
+&_10000R_@@
+0x2190    LEFTWARDS ARROW
+&<-@@
+0x2191    UPWARDS ARROW
+&-!@@
+0x2192    RIGHTWARDS ARROW
+&->@@
+0x2193    DOWNWARDS ARROW
+&-v@@
+0x2194    LEFT RIGHT ARROW
+&<>@@
+0x2195    UP DOWN ARROW
+&UD@@
+0x2196    NORTH WEST ARROW
+&_<!!_@@
+0x2197    NORTH EAST ARROW
+&_//>_@@
+0x2198    SOUTH EAST ARROW
+&_!!>_@@
+0x2199    SOUTH WEST ARROW
+&_<//_@@
+0x21d0    LEFTWARDS DOUBLE ARROW
+&<=@@
+0x21d2    RIGHTWARDS DOUBLE ARROW
+&=>@@
+0x21d4    LEFT RIGHT DOUBLE ARROW
+&==@@
+0x2200    FOR ALL
+&FA@@
+0x2202    PARTIAL DIFFERENTIAL
+&dP@@
+0x2203    THERE EXISTS
+&TE@@
+0x2205    EMPTY SET
+&/0@@
+0x2206    INCREMENT
+&DE@@
+0x2207    NABLA
+&NB@@
+0x2208    ELEMENT OF
+&(-@@
+0x220b    CONTAINS AS MEMBER
+&-)@@
+0x220f    N-ARY PRODUCT
+&*P@@
+0x2211    N-ARY SUMMATION
+&+Z@@
+0x2212    MINUS SIGN
+&-2@@
+0x2213    MINUS-OR-PLUS SIGN
+&-+@@
+0x2217    ASTERISK OPERATOR
+&*-@@
+0x2218    RING OPERATOR
+&Ob@@
+0x2219    BULLET OPERATOR
+&Sb@@
+0x221a    SQUARE ROOT
+&RT@@
+0x221d    PROPORTIONAL TO
+&0(@@
+0x221e    INFINITY
+&00@@
+0x221f    RIGHT ANGLE
+&-L@@
+0x2220    ANGLE
+&-V@@
+0x2225    PARALLEL TO
+&PP@@
+0x2227    LOGICAL AND
+&AN@@
+0x2228    LOGICAL OR
+&OR@@
+0x2229    INTERSECTION
+&(U@@
+0x222a    UNION
+&)U@@
+0x222b    INTEGRAL
+&In@@
+0x222c    DOUBLE INTEGRAL
+&DI@@
+0x222e    CONTOUR INTEGRAL
+&Io@@
+0x2234    THEREFORE
+&.:@@
+0x2235    BECAUSE
+&:.@@
+0x2236    RATIO
+&:R@@
+0x2237    PROPORTION
+&::@@
+0x223c    TILDE OPERATOR
+&?1@@
+0x223e    INVERTED LAZY S
+&CG@@
+0x2243    ASYMPTOTICALLY EQUAL TO
+&?-@@
+0x2245    APPROXIMATELY EQUAL TO
+&?=@@
+0x2248    ALMOST EQUAL TO
+&?2@@
+0x224c    ALL EQUAL TO
+&=?@@
+0x2253    IMAGE OF OR APPROXIMATELY EQUAL TO
+&HI@@
+0x2260    NOT EQUAL TO
+&!=@@
+0x2261    IDENTICAL TO
+&=3@@
+0x2264    LESS-THAN OR EQUAL TO
+&=<@@
+0x2265    GREATER-THAN OR EQUAL TO
+&>=@@
+0x226a    MUCH LESS-THAN
+&<*@@
+0x226b    MUCH GREATER-THAN
+&*>@@
+0x226e    NOT LESS-THAN
+&!<@@
+0x226f    NOT GREATER-THAN
+&!>@@
+0x2282    SUBSET OF
+&(C@@
+0x2283    SUPERSET OF
+&)C@@
+0x2286    SUBSET OF OR EQUAL TO
+&(_@@
+0x2287    SUPERSET OF OR EQUAL TO
+&)_@@
+0x2299    CIRCLED DOT OPERATOR
+&0.@@
+0x229a    CIRCLED RING OPERATOR
+&02@@
+0x22a5    UP TACK
+&-T@@
+0x22c5    DOT OPERATOR
+&.P@@
+0x22ee    VERTICAL ELLIPSIS
+&:3@@
+0x22ef    MIDLINE HORIZONTAL ELLIPSIS
+&.3@@
+0x2302    HOUSE
+&Eh@@
+0x2308    LEFT CEILING
+&<7@@
+0x2309    RIGHT CEILING
+&>7@@
+0x230a    LEFT FLOOR
+&7<@@
+0x230b    RIGHT FLOOR
+&7>@@
+0x2310    REVERSED NOT SIGN
+&NI@@
+0x2312    ARC
+&(A@@
+0x2315    TELEPHONE RECORDER
+&TR@@
+0x2320    TOP HALF INTEGRAL
+&Iu@@
+0x2321    BOTTOM HALF INTEGRAL
+&Il@@
+0x2329    LEFT-POINTING ANGLE BRACKET
+&</@@
+0x232a    RIGHT-POINTING ANGLE BRACKET
+&/>@@
+0x2423    OPEN BOX
+&Vs@@
+0x2440    OCR HOOK
+&1h@@
+0x2441    OCR CHAIR
+&3h@@
+0x2442    OCR FORK
+&2h@@
+0x2443    OCR INVERTED FORK
+&4h@@
+0x2446    OCR BRANCH BANK IDENTIFICATION
+&1j@@
+0x2447    OCR AMOUNT OF CHECK
+&2j@@
+0x2448    OCR DASH
+&3j@@
+0x2449    OCR CUSTOMER ACCOUNT NUMBER
+&4j@@
+0x2460    CIRCLED DIGIT ONE
+&_1-o_@@
+0x2461    CIRCLED DIGIT TWO
+&_2-o_@@
+0x2462    CIRCLED DIGIT THREE
+&_3-o_@@
+0x2463    CIRCLED DIGIT FOUR
+&_4-o_@@
+0x2464    CIRCLED DIGIT FIVE
+&_5-o_@@
+0x2465    CIRCLED DIGIT SIX
+&_6-o_@@
+0x2466    CIRCLED DIGIT SEVEN
+&_7-o_@@
+0x2467    CIRCLED DIGIT EIGHT
+&_8-o_@@
+0x2468    CIRCLED DIGIT NINE
+&_9-o_@@
+0x2469    CIRCLED NUMBER TEN
+&_10-o_@@
+0x246a    CIRCLED NUMBER ELEVEN
+&_11-o_@@
+0x246b    CIRCLED NUMBER TWELVE
+&_12-o_@@
+0x246c    CIRCLED NUMBER THIRTEEN
+&_13-o_@@
+0x246d    CIRCLED NUMBER FOURTEEN
+&_14-o_@@
+0x246e    CIRCLED NUMBER FIFTEEN
+&_15-o_@@
+0x246f    CIRCLED NUMBER SIXTEEN
+&_16-o_@@
+0x2470    CIRCLED NUMBER SEVENTEEN
+&_17-o_@@
+0x2471    CIRCLED NUMBER EIGHTEEN
+&_18-o_@@
+0x2472    CIRCLED NUMBER NINETEEN
+&_19-o_@@
+0x2473    CIRCLED NUMBER TWENTY
+&_20-o_@@
+0x2474    PARENTHESIZED DIGIT ONE
+&_(1)_@@
+0x2475    PARENTHESIZED DIGIT TWO
+&_(2)_@@
+0x2476    PARENTHESIZED DIGIT THREE
+&_(3)_@@
+0x2477    PARENTHESIZED DIGIT FOUR
+&_(4)_@@
+0x2478    PARENTHESIZED DIGIT FIVE
+&_(5)_@@
+0x2479    PARENTHESIZED DIGIT SIX
+&_(6)_@@
+0x247a    PARENTHESIZED DIGIT SEVEN
+&_(7)_@@
+0x247b    PARENTHESIZED DIGIT EIGHT
+&_(8)_@@
+0x247c    PARENTHESIZED DIGIT NINE
+&_(9)_@@
+0x247d    PARENTHESIZED NUMBER TEN
+&_(10)_@@
+0x247e    PARENTHESIZED NUMBER ELEVEN
+&_(11)_@@
+0x247f    PARENTHESIZED NUMBER TWELVE
+&_(12)_@@
+0x2480    PARENTHESIZED NUMBER THIRTEEN
+&_(13)_@@
+0x2481    PARENTHESIZED NUMBER FOURTEEN
+&_(14)_@@
+0x2482    PARENTHESIZED NUMBER FIFTEEN
+&_(15)_@@
+0x2483    PARENTHESIZED NUMBER SIXTEEN
+&_(16)_@@
+0x2484    PARENTHESIZED NUMBER SEVENTEEN
+&_(17)_@@
+0x2485    PARENTHESIZED NUMBER EIGHTEEN
+&_(18)_@@
+0x2486    PARENTHESIZED NUMBER NINETEEN
+&_(19)_@@
+0x2487    PARENTHESIZED NUMBER TWENTY
+&_(20)_@@
+0x2488    DIGIT ONE FULL STOP
+&1.@@
+0x2489    DIGIT TWO FULL STOP
+&2.@@
+0x248a    DIGIT THREE FULL STOP
+&3.@@
+0x248b    DIGIT FOUR FULL STOP
+&4.@@
+0x248c    DIGIT FIVE FULL STOP
+&5.@@
+0x248d    DIGIT SIX FULL STOP
+&6.@@
+0x248e    DIGIT SEVEN FULL STOP
+&7.@@
+0x248f    DIGIT EIGHT FULL STOP
+&8.@@
+0x2490    DIGIT NINE FULL STOP
+&9.@@
+0x2491    NUMBER TEN FULL STOP
+&_10._@@
+0x2492    NUMBER ELEVEN FULL STOP
+&_11._@@
+0x2493    NUMBER TWELVE FULL STOP
+&_12._@@
+0x2494    NUMBER THIRTEEN FULL STOP
+&_13._@@
+0x2495    NUMBER FOURTEEN FULL STOP
+&_14._@@
+0x2496    NUMBER FIFTEEN FULL STOP
+&_15._@@
+0x2497    NUMBER SIXTEEN FULL STOP
+&_16._@@
+0x2498    NUMBER SEVENTEEN FULL STOP
+&_17._@@
+0x2499    NUMBER EIGHTEEN FULL STOP
+&_18._@@
+0x249a    NUMBER NINETEEN FULL STOP
+&_19._@@
+0x249b    NUMBER TWENTY FULL STOP
+&_20._@@
+0x249c    PARENTHESIZED LATIN SMALL LETTER A
+&_(a)_@@
+0x249d    PARENTHESIZED LATIN SMALL LETTER B
+&_(b)_@@
+0x249e    PARENTHESIZED LATIN SMALL LETTER C
+&_(c)_@@
+0x249f    PARENTHESIZED LATIN SMALL LETTER D
+&_(d)_@@
+0x24a0    PARENTHESIZED LATIN SMALL LETTER E
+&_(e)_@@
+0x24a1    PARENTHESIZED LATIN SMALL LETTER F
+&_(f)_@@
+0x24a2    PARENTHESIZED LATIN SMALL LETTER G
+&_(g)_@@
+0x24a3    PARENTHESIZED LATIN SMALL LETTER H
+&_(h)_@@
+0x24a4    PARENTHESIZED LATIN SMALL LETTER I
+&_(i)_@@
+0x24a5    PARENTHESIZED LATIN SMALL LETTER J
+&_(j)_@@
+0x24a6    PARENTHESIZED LATIN SMALL LETTER K
+&_(k)_@@
+0x24a7    PARENTHESIZED LATIN SMALL LETTER L
+&_(l)_@@
+0x24a8    PARENTHESIZED LATIN SMALL LETTER M
+&_(m)_@@
+0x24a9    PARENTHESIZED LATIN SMALL LETTER N
+&_(n)_@@
+0x24aa    PARENTHESIZED LATIN SMALL LETTER O
+&_(o)_@@
+0x24ab    PARENTHESIZED LATIN SMALL LETTER P
+&_(p)_@@
+0x24ac    PARENTHESIZED LATIN SMALL LETTER Q
+&_(q)_@@
+0x24ad    PARENTHESIZED LATIN SMALL LETTER R
+&_(r)_@@
+0x24ae    PARENTHESIZED LATIN SMALL LETTER S
+&_(s)_@@
+0x24af    PARENTHESIZED LATIN SMALL LETTER T
+&_(t)_@@
+0x24b0    PARENTHESIZED LATIN SMALL LETTER U
+&_(u)_@@
+0x24b1    PARENTHESIZED LATIN SMALL LETTER V
+&_(v)_@@
+0x24b2    PARENTHESIZED LATIN SMALL LETTER W
+&_(w)_@@
+0x24b3    PARENTHESIZED LATIN SMALL LETTER X
+&_(x)_@@
+0x24b4    PARENTHESIZED LATIN SMALL LETTER Y
+&_(y)_@@
+0x24b5    PARENTHESIZED LATIN SMALL LETTER Z
+&_(z)_@@
+0x24b6    CIRCLED LATIN CAPITAL LETTER A
+&_A-o_@@
+0x24b7    CIRCLED LATIN CAPITAL LETTER B
+&_B-o_@@
+0x24b8    CIRCLED LATIN CAPITAL LETTER C
+&_C-o_@@
+0x24b9    CIRCLED LATIN CAPITAL LETTER D
+&_D-o_@@
+0x24ba    CIRCLED LATIN CAPITAL LETTER E
+&_E-o_@@
+0x24bb    CIRCLED LATIN CAPITAL LETTER F
+&_F-o_@@
+0x24bc    CIRCLED LATIN CAPITAL LETTER G
+&_G-o_@@
+0x24bd    CIRCLED LATIN CAPITAL LETTER H
+&_H-o_@@
+0x24be    CIRCLED LATIN CAPITAL LETTER I
+&_I-o_@@
+0x24bf    CIRCLED LATIN CAPITAL LETTER J
+&_J-o_@@
+0x24c0    CIRCLED LATIN CAPITAL LETTER K
+&_K-o_@@
+0x24c1    CIRCLED LATIN CAPITAL LETTER L
+&_L-o_@@
+0x24c2    CIRCLED LATIN CAPITAL LETTER M
+&_M-o_@@
+0x24c3    CIRCLED LATIN CAPITAL LETTER N
+&_N-o_@@
+0x24c4    CIRCLED LATIN CAPITAL LETTER O
+&_O-o_@@
+0x24c5    CIRCLED LATIN CAPITAL LETTER P
+&_P-o_@@
+0x24c6    CIRCLED LATIN CAPITAL LETTER Q
+&_Q-o_@@
+0x24c7    CIRCLED LATIN CAPITAL LETTER R
+&_R-o_@@
+0x24c8    CIRCLED LATIN CAPITAL LETTER S
+&_S-o_@@
+0x24c9    CIRCLED LATIN CAPITAL LETTER T
+&_T-o_@@
+0x24ca    CIRCLED LATIN CAPITAL LETTER U
+&_U-o_@@
+0x24cb    CIRCLED LATIN CAPITAL LETTER V
+&_V-o_@@
+0x24cc    CIRCLED LATIN CAPITAL LETTER W
+&_W-o_@@
+0x24cd    CIRCLED LATIN CAPITAL LETTER X
+&_X-o_@@
+0x24ce    CIRCLED LATIN CAPITAL LETTER Y
+&_Y-o_@@
+0x24cf    CIRCLED LATIN CAPITAL LETTER Z
+&_Z-o_@@
+0x24d0    CIRCLED LATIN SMALL LETTER A
+&_a-o_@@
+0x24d1    CIRCLED LATIN SMALL LETTER B
+&_b-o_@@
+0x24d2    CIRCLED LATIN SMALL LETTER C
+&_c-o_@@
+0x24d3    CIRCLED LATIN SMALL LETTER D
+&_d-o_@@
+0x24d4    CIRCLED LATIN SMALL LETTER E
+&_e-o_@@
+0x24d5    CIRCLED LATIN SMALL LETTER F
+&_f-o_@@
+0x24d6    CIRCLED LATIN SMALL LETTER G
+&_g-o_@@
+0x24d7    CIRCLED LATIN SMALL LETTER H
+&_h-o_@@
+0x24d8    CIRCLED LATIN SMALL LETTER I
+&_i-o_@@
+0x24d9    CIRCLED LATIN SMALL LETTER J
+&_j-o_@@
+0x24da    CIRCLED LATIN SMALL LETTER K
+&_k-o_@@
+0x24db    CIRCLED LATIN SMALL LETTER L
+&_l-o_@@
+0x24dc    CIRCLED LATIN SMALL LETTER M
+&_m-o_@@
+0x24dd    CIRCLED LATIN SMALL LETTER N
+&_n-o_@@
+0x24de    CIRCLED LATIN SMALL LETTER O
+&_o-o_@@
+0x24df    CIRCLED LATIN SMALL LETTER P
+&_p-o_@@
+0x24e0    CIRCLED LATIN SMALL LETTER Q
+&_q-o_@@
+0x24e1    CIRCLED LATIN SMALL LETTER R
+&_r-o_@@
+0x24e2    CIRCLED LATIN SMALL LETTER S
+&_s-o_@@
+0x24e3    CIRCLED LATIN SMALL LETTER T
+&_t-o_@@
+0x24e4    CIRCLED LATIN SMALL LETTER U
+&_u-o_@@
+0x24e5    CIRCLED LATIN SMALL LETTER V
+&_v-o_@@
+0x24e6    CIRCLED LATIN SMALL LETTER W
+&_w-o_@@
+0x24e7    CIRCLED LATIN SMALL LETTER X
+&_x-o_@@
+0x24e8    CIRCLED LATIN SMALL LETTER Y
+&_y-o_@@
+0x24e9    CIRCLED LATIN SMALL LETTER Z
+&_z-o_@@
+0x24ea    CIRCLED DIGIT ZERO
+&_0-o_@@
+0x2500    BOX DRAWINGS LIGHT HORIZONTAL
+&hh@@
+0x2501    BOX DRAWINGS HEAVY HORIZONTAL
+&HH@@
+0x2502    BOX DRAWINGS LIGHT VERTICAL
+&vv@@
+0x2503    BOX DRAWINGS HEAVY VERTICAL
+&VV@@
+0x2504    BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+&3-@@
+0x2505    BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+&3_@@
+0x2506    BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+&3!@@
+0x2507    BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+&3/@@
+0x2508    BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+&4-@@
+0x2509    BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+&4_@@
+0x250a    BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+&4!@@
+0x250b    BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+&4/@@
+0x250c    BOX DRAWINGS LIGHT DOWN AND RIGHT
+&dr@@
+0x250d    BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+&dR@@
+0x250e    BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+&Dr@@
+0x250f    BOX DRAWINGS HEAVY DOWN AND RIGHT
+&DR@@
+0x2510    BOX DRAWINGS LIGHT DOWN AND LEFT
+&dl@@
+0x2511    BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+&dL@@
+0x2512    BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+&Dl@@
+0x2513    BOX DRAWINGS HEAVY DOWN AND LEFT
+&LD@@
+0x2514    BOX DRAWINGS LIGHT UP AND RIGHT
+&ur@@
+0x2515    BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+&uR@@
+0x2516    BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+&Ur@@
+0x2517    BOX DRAWINGS HEAVY UP AND RIGHT
+&UR@@
+0x2518    BOX DRAWINGS LIGHT UP AND LEFT
+&ul@@
+0x2519    BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+&uL@@
+0x251a    BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+&Ul@@
+0x251b    BOX DRAWINGS HEAVY UP AND LEFT
+&UL@@
+0x251c    BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+&vr@@
+0x251d    BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+&vR@@
+0x251e    BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+&_Udr_@@
+0x251f    BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+&_uDr_@@
+0x2520    BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+&Vr@@
+0x2521    BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+&_UdR_@@
+0x2522    BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+&_uDR_@@
+0x2523    BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+&VR@@
+0x2524    BOX DRAWINGS LIGHT VERTICAL AND LEFT
+&vl@@
+0x2525    BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+&vL@@
+0x2526    BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+&_Udl_@@
+0x2527    BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+&_uDl_@@
+0x2528    BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+&Vl@@
+0x2529    BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+&_UdL_@@
+0x252a    BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+&_uDL_@@
+0x252b    BOX DRAWINGS HEAVY VERTICAL AND LEFT
+&VL@@
+0x252c    BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+&dh@@
+0x252d    BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+&_dLr_@@
+0x252e    BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+&_dlR_@@
+0x252f    BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+&dH@@
+0x2530    BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+&Dh@@
+0x2531    BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+&_DLr_@@
+0x2532    BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+&_DlR_@@
+0x2533    BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+&DH@@
+0x2534    BOX DRAWINGS LIGHT UP AND HORIZONTAL
+&uh@@
+0x2535    BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+&_uLr_@@
+0x2536    BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+&_ulR_@@
+0x2537    BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+&uH@@
+0x2538    BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+&Uh@@
+0x2539    BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+&_ULr_@@
+0x253a    BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+&_UlR_@@
+0x253b    BOX DRAWINGS HEAVY UP AND HORIZONTAL
+&UH@@
+0x253c    BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+&vh@@
+0x253d    BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+&_vLr_@@
+0x253e    BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+&_vlR_@@
+0x253f    BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+&vH@@
+0x2540    BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+&_Udh_@@
+0x2541    BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+&_uDh_@@
+0x2542    BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+&Vh@@
+0x2543    BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+&_UdLr_@@
+0x2544    BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+&_UdlR_@@
+0x2545    BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+&_uDLr_@@
+0x2546    BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+&_uDlR_@@
+0x2547    BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+&_UdH_@@
+0x2548    BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+&_uDH_@@
+0x2549    BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+&_VLr_@@
+0x254a    BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+&_VlR_@@
+0x254b    BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+&VH@@
+0x2571    BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+&FD@@
+0x2572    BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+&BD@@
+0x2580    UPPER HALF BLOCK
+&TB@@
+0x2584    LOWER HALF BLOCK
+&LB@@
+0x2588    FULL BLOCK
+&FB@@
+0x258c    LEFT HALF BLOCK
+&lB@@
+0x2590    RIGHT HALF BLOCK
+&RB@@
+0x2591    LIGHT SHADE
+&.S@@
+0x2592    MEDIUM SHADE
+&:S@@
+0x2593    DARK SHADE
+&?S@@
+0x25a0    BLACK SQUARE
+&fS@@
+0x25a1    WHITE SQUARE
+&OS@@
+0x25a2    WHITE SQUARE WITH ROUNDED CORNERS
+&RO@@
+0x25a3    WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+&Rr@@
+0x25a4    SQUARE WITH HORIZONTAL FILL
+&RF@@
+0x25a5    SQUARE WITH VERTICAL FILL
+&RY@@
+0x25a6    SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+&RH@@
+0x25a7    SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+&RZ@@
+0x25a8    SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+&RK@@
+0x25a9    SQUARE WITH DIAGONAL CROSSHATCH FILL
+&RX@@
+0x25aa    BLACK SMALL SQUARE
+&sB@@
+0x25ac    BLACK RECTANGLE
+&SR@@
+0x25ad    WHITE RECTANGLE
+&Or@@
+0x25b2    BLACK UP-POINTING TRIANGLE
+&UT@@
+0x25b3    WHITE UP-POINTING TRIANGLE
+&uT@@
+0x25b6    BLACK RIGHT-POINTING TRIANGLE
+&PR@@
+0x25b7    WHITE RIGHT-POINTING TRIANGLE
+&Tr@@
+0x25bc    BLACK DOWN-POINTING TRIANGLE
+&Dt@@
+0x25bd    WHITE DOWN-POINTING TRIANGLE
+&dT@@
+0x25c0    BLACK LEFT-POINTING TRIANGLE
+&PL@@
+0x25c1    WHITE LEFT-POINTING TRIANGLE
+&Tl@@
+0x25c6    BLACK DIAMOND
+&Db@@
+0x25c7    WHITE DIAMOND
+&Dw@@
+0x25ca    LOZENGE
+&LZ@@
+0x25cb    WHITE CIRCLE
+&0m@@
+0x25ce    BULLSEYE
+&0o@@
+0x25cf    BLACK CIRCLE
+&0M@@
+0x25d0    CIRCLE WITH LEFT HALF BLACK
+&0L@@
+0x25d1    CIRCLE WITH RIGHT HALF BLACK
+&0R@@
+0x25d8    INVERSE BULLET
+&Sn@@
+0x25d9    INVERSE WHITE CIRCLE
+&Ic@@
+0x25e2    BLACK LOWER RIGHT TRIANGLE
+&Fd@@
+0x25e3    BLACK LOWER LEFT TRIANGLE
+&Bd@@
+0x2605    BLACK STAR
+&*2@@
+0x2606    WHITE STAR
+&*1@@
+0x260e    BLACK TELEPHONE
+&_TEL_@@
+0x260f    WHITE TELEPHONE
+&_tel_@@
+0x261c    WHITE LEFT POINTING INDEX
+&<H@@
+0x261e    WHITE RIGHT POINTING INDEX
+&>H@@
+0x263a    WHITE SMILING FACE
+&0u@@
+0x263b    BLACK SMILING FACE
+&0U@@
+0x263c    WHITE SUN WITH RAYS
+&SU@@
+0x2640    FEMALE SIGN
+&Fm@@
+0x2642    MALE SIGN
+&Ml@@
+0x2660    BLACK SPADE SUIT
+&cS@@
+0x2661    WHITE HEART SUIT
+&cH@@
+0x2662    WHITE DIAMOND SUIT
+&cD@@
+0x2663    BLACK CLUB SUIT
+&cC@@
+0x2664    WHITE SPADE SUIT
+&_cS-_@@
+0x2665    BLACK HEART SUIT
+&_cH-_@@
+0x2666    BLACK DIAMOND SUIT
+&_cD-_@@
+0x2667    WHITE CLUB SUIT
+&_cC-_@@
+0x2669    QUARTER NOTE
+&Md@@
+0x266a    EIGHTH NOTE
+&M8@@
+0x266b    BARRED EIGHTH NOTES
+&M2@@
+0x266c    BARRED SIXTEENTH NOTES
+&_M16_@@
+0x266d    MUSIC FLAT SIGN
+&Mb@@
+0x266e    MUSIC NATURAL SIGN
+&Mx@@
+0x266f    MUSIC SHARP SIGN
+&MX@@
+0x2713    CHECK MARK
+&OK@@
+0x2717    BALLOT X
+&XX@@
+0x2720    MALTESE CROSS
+&-X@@
+0x3000    IDEOGRAPHIC SPACE
+&IS@@
+0x3001    IDEOGRAPHIC COMMA
+&,_@@
+0x3002    IDEOGRAPHIC PERIOD
+&._@@
+0x3003    DITTO MARK
+&+"@@
+0x3004    IDEOGRAPHIC DITTO MARK
+&+_@@
+0x3005    IDEOGRAPHIC ITERATION MARK
+&*_@@
+0x3006    IDEOGRAPHIC CLOSING MARK
+&;_@@
+0x3007    IDEOGRAPHIC NUMBER ZERO
+&0_@@
+0x300a    LEFT DOUBLE ANGLE BRACKET
+&<+@@
+0x300b    RIGHT DOUBLE ANGLE BRACKET
+&>+@@
+0x300c    LEFT CORNER BRACKET
+&<'@@
+0x300d    RIGHT CORNER BRACKET
+&>'@@
+0x300e    LEFT WHITE CORNER BRACKET
+&<"@@
+0x300f    RIGHT WHITE CORNER BRACKET
+&>"@@
+0x3010    LEFT BLACK LENTICULAR BRACKET
+&("@@
+0x3011    RIGHT BLACK LENTICULAR BRACKET
+&)"@@
+0x3012    POSTAL MARK
+&=T@@
+0x3013    GETA MARK
+&=_@@
+0x3014    LEFT TORTOISE SHELL BRACKET
+&('@@
+0x3015    RIGHT TORTOISE SHELL BRACKET
+&)'@@
+0x3016    LEFT WHITE LENTICULAR BRACKET
+&(I@@
+0x3017    RIGHT WHITE LENTICULAR BRACKET
+&)I@@
+0x301c    WAVE DASH
+&-?@@
+0x3020    POSTAL MARK FACE
+&_=T:)_@@
+0x3041    HIRAGANA LETTER SMALL A
+&A5@@
+0x3042    HIRAGANA LETTER A
+&a5@@
+0x3043    HIRAGANA LETTER SMALL I
+&I5@@
+0x3044    HIRAGANA LETTER I
+&i5@@
+0x3045    HIRAGANA LETTER SMALL U
+&U5@@
+0x3046    HIRAGANA LETTER U
+&u5@@
+0x3047    HIRAGANA LETTER SMALL E
+&E5@@
+0x3048    HIRAGANA LETTER E
+&e5@@
+0x3049    HIRAGANA LETTER SMALL O
+&O5@@
+0x304a    HIRAGANA LETTER O
+&o5@@
+0x304b    HIRAGANA LETTER KA
+&ka@@
+0x304c    HIRAGANA LETTER GA
+&ga@@
+0x304d    HIRAGANA LETTER KI
+&ki@@
+0x304e    HIRAGANA LETTER GI
+&gi@@
+0x304f    HIRAGANA LETTER KU
+&ku@@
+0x3050    HIRAGANA LETTER GU
+&gu@@
+0x3051    HIRAGANA LETTER KE
+&ke@@
+0x3052    HIRAGANA LETTER GE
+&ge@@
+0x3053    HIRAGANA LETTER KO
+&ko@@
+0x3054    HIRAGANA LETTER GO
+&go@@
+0x3055    HIRAGANA LETTER SA
+&sa@@
+0x3056    HIRAGANA LETTER ZA
+&za@@
+0x3057    HIRAGANA LETTER SI
+&si@@
+0x3058    HIRAGANA LETTER ZI
+&zi@@
+0x3059    HIRAGANA LETTER SU
+&su@@
+0x305a    HIRAGANA LETTER ZU
+&zu@@
+0x305b    HIRAGANA LETTER SE
+&se@@
+0x305c    HIRAGANA LETTER ZE
+&ze@@
+0x305d    HIRAGANA LETTER SO
+&so@@
+0x305e    HIRAGANA LETTER ZO
+&zo@@
+0x305f    HIRAGANA LETTER TA
+&ta@@
+0x3060    HIRAGANA LETTER DA
+&da@@
+0x3061    HIRAGANA LETTER TI
+&ti@@
+0x3062    HIRAGANA LETTER DI
+&di@@
+0x3063    HIRAGANA LETTER SMALL TU
+&tU@@
+0x3064    HIRAGANA LETTER TU
+&tu@@
+0x3065    HIRAGANA LETTER DU
+&du@@
+0x3066    HIRAGANA LETTER TE
+&te@@
+0x3067    HIRAGANA LETTER DE
+&de@@
+0x3068    HIRAGANA LETTER TO
+&to@@
+0x3069    HIRAGANA LETTER DO
+&do@@
+0x306a    HIRAGANA LETTER NA
+&na@@
+0x306b    HIRAGANA LETTER NI
+&ni@@
+0x306c    HIRAGANA LETTER NU
+&nu@@
+0x306d    HIRAGANA LETTER NE
+&ne@@
+0x306e    HIRAGANA LETTER NO
+&no@@
+0x306f    HIRAGANA LETTER HA
+&ha@@
+0x3070    HIRAGANA LETTER BA
+&ba@@
+0x3071    HIRAGANA LETTER PA
+&pa@@
+0x3072    HIRAGANA LETTER HI
+&hi@@
+0x3073    HIRAGANA LETTER BI
+&bi@@
+0x3074    HIRAGANA LETTER PI
+&pi@@
+0x3075    HIRAGANA LETTER HU
+&hu@@
+0x3076    HIRAGANA LETTER BU
+&bu@@
+0x3077    HIRAGANA LETTER PU
+&pu@@
+0x3078    HIRAGANA LETTER HE
+&he@@
+0x3079    HIRAGANA LETTER BE
+&be@@
+0x307a    HIRAGANA LETTER PE
+&pe@@
+0x307b    HIRAGANA LETTER HO
+&ho@@
+0x307c    HIRAGANA LETTER BO
+&bo@@
+0x307d    HIRAGANA LETTER PO
+&po@@
+0x307e    HIRAGANA LETTER MA
+&ma@@
+0x307f    HIRAGANA LETTER MI
+&mi@@
+0x3080    HIRAGANA LETTER MU
+&mu@@
+0x3081    HIRAGANA LETTER ME
+&me@@
+0x3082    HIRAGANA LETTER MO
+&mo@@
+0x3083    HIRAGANA LETTER SMALL YA
+&yA@@
+0x3084    HIRAGANA LETTER YA
+&ya@@
+0x3085    HIRAGANA LETTER SMALL YU
+&yU@@
+0x3086    HIRAGANA LETTER YU
+&yu@@
+0x3087    HIRAGANA LETTER SMALL YO
+&yO@@
+0x3088    HIRAGANA LETTER YO
+&yo@@
+0x3089    HIRAGANA LETTER RA
+&ra@@
+0x308a    HIRAGANA LETTER RI
+&ri@@
+0x308b    HIRAGANA LETTER RU
+&ru@@
+0x308c    HIRAGANA LETTER RE
+&re@@
+0x308d    HIRAGANA LETTER RO
+&ro@@
+0x308e    HIRAGANA LETTER SMALL WA
+&wA@@
+0x308f    HIRAGANA LETTER WA
+&wa@@
+0x3090    HIRAGANA LETTER WI
+&wi@@
+0x3091    HIRAGANA LETTER WE
+&we@@
+0x3092    HIRAGANA LETTER WO
+&wo@@
+0x3093    HIRAGANA LETTER N
+&n5@@
+0x3094    HIRAGANA LETTER VU
+&vu@@
+0x309b    KATAKANA-HIRAGANA VOICED SOUND MARK
+&"5@@
+0x309c    KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+&05@@
+0x309d    HIRAGANA ITERATION MARK
+&*5@@
+0x309e    HIRAGANA VOICED ITERATION MARK
+&+5@@
+0x30a1    KATAKANA LETTER SMALL A
+&a6@@
+0x30a2    KATAKANA LETTER A
+&A6@@
+0x30a3    KATAKANA LETTER SMALL I
+&i6@@
+0x30a4    KATAKANA LETTER I
+&I6@@
+0x30a5    KATAKANA LETTER SMALL U
+&u6@@
+0x30a6    KATAKANA LETTER U
+&U6@@
+0x30a7    KATAKANA LETTER SMALL E
+&e6@@
+0x30a8    KATAKANA LETTER E
+&E6@@
+0x30a9    KATAKANA LETTER SMALL O
+&o6@@
+0x30aa    KATAKANA LETTER O
+&O6@@
+0x30ab    KATAKANA LETTER KA
+&Ka@@
+0x30ac    KATAKANA LETTER GA
+&Ga@@
+0x30ad    KATAKANA LETTER KI
+&Ki@@
+0x30ae    KATAKANA LETTER GI
+&Gi@@
+0x30af    KATAKANA LETTER KU
+&Ku@@
+0x30b0    KATAKANA LETTER GU
+&Gu@@
+0x30b1    KATAKANA LETTER KE
+&Ke@@
+0x30b2    KATAKANA LETTER GE
+&Ge@@
+0x30b3    KATAKANA LETTER KO
+&Ko@@
+0x30b4    KATAKANA LETTER GO
+&Go@@
+0x30b5    KATAKANA LETTER SA
+&Sa@@
+0x30b6    KATAKANA LETTER ZA
+&Za@@
+0x30b7    KATAKANA LETTER SI
+&Si@@
+0x30b8    KATAKANA LETTER ZI
+&Zi@@
+0x30b9    KATAKANA LETTER SU
+&Su@@
+0x30ba    KATAKANA LETTER ZU
+&Zu@@
+0x30bb    KATAKANA LETTER SE
+&Se@@
+0x30bc    KATAKANA LETTER ZE
+&Ze@@
+0x30bd    KATAKANA LETTER SO
+&So@@
+0x30be    KATAKANA LETTER ZO
+&Zo@@
+0x30bf    KATAKANA LETTER TA
+&Ta@@
+0x30c0    KATAKANA LETTER DA
+&Da@@
+0x30c1    KATAKANA LETTER TI
+&Ti@@
+0x30c2    KATAKANA LETTER DI
+&Di@@
+0x30c3    KATAKANA LETTER SMALL TU
+&TU@@
+0x30c4    KATAKANA LETTER TU
+&Tu@@
+0x30c5    KATAKANA LETTER DU
+&Du@@
+0x30c6    KATAKANA LETTER TE
+&Te@@
+0x30c7    KATAKANA LETTER DE
+&De@@
+0x30c8    KATAKANA LETTER TO
+&To@@
+0x30c9    KATAKANA LETTER DO
+&Do@@
+0x30ca    KATAKANA LETTER NA
+&Na@@
+0x30cb    KATAKANA LETTER NI
+&Ni@@
+0x30cc    KATAKANA LETTER NU
+&Nu@@
+0x30cd    KATAKANA LETTER NE
+&Ne@@
+0x30ce    KATAKANA LETTER NO
+&No@@
+0x30cf    KATAKANA LETTER HA
+&Ha@@
+0x30d0    KATAKANA LETTER BA
+&Ba@@
+0x30d1    KATAKANA LETTER PA
+&Pa@@
+0x30d2    KATAKANA LETTER HI
+&Hi@@
+0x30d3    KATAKANA LETTER BI
+&Bi@@
+0x30d4    KATAKANA LETTER PI
+&Pi@@
+0x30d5    KATAKANA LETTER HU
+&Hu@@
+0x30d6    KATAKANA LETTER BU
+&Bu@@
+0x30d7    KATAKANA LETTER PU
+&Pu@@
+0x30d8    KATAKANA LETTER HE
+&He@@
+0x30d9    KATAKANA LETTER BE
+&Be@@
+0x30da    KATAKANA LETTER PE
+&Pe@@
+0x30db    KATAKANA LETTER HO
+&Ho@@
+0x30dc    KATAKANA LETTER BO
+&Bo@@
+0x30dd    KATAKANA LETTER PO
+&Po@@
+0x30de    KATAKANA LETTER MA
+&Ma@@
+0x30df    KATAKANA LETTER MI
+&Mi@@
+0x30e0    KATAKANA LETTER MU
+&Mu@@
+0x30e1    KATAKANA LETTER ME
+&Me@@
+0x30e2    KATAKANA LETTER MO
+&Mo@@
+0x30e3    KATAKANA LETTER SMALL YA
+&YA@@
+0x30e4    KATAKANA LETTER YA
+&Ya@@
+0x30e5    KATAKANA LETTER SMALL YU
+&YU@@
+0x30e6    KATAKANA LETTER YU
+&Yu@@
+0x30e7    KATAKANA LETTER SMALL YO
+&YO@@
+0x30e8    KATAKANA LETTER YO
+&Yo@@
+0x30e9    KATAKANA LETTER RA
+&Ra@@
+0x30ea    KATAKANA LETTER RI
+&Ri@@
+0x30eb    KATAKANA LETTER RU
+&Ru@@
+0x30ec    KATAKANA LETTER RE
+&Re@@
+0x30ed    KATAKANA LETTER RO
+&Ro@@
+0x30ee    KATAKANA LETTER SMALL WA
+&WA@@
+0x30ef    KATAKANA LETTER WA
+&Wa@@
+0x30f0    KATAKANA LETTER WI
+&Wi@@
+0x30f1    KATAKANA LETTER WE
+&We@@
+0x30f2    KATAKANA LETTER WO
+&Wo@@
+0x30f3    KATAKANA LETTER N
+&N6@@
+0x30f4    KATAKANA LETTER VU
+&Vu@@
+0x30f5    KATAKANA LETTER SMALL KA
+&KA@@
+0x30f6    KATAKANA LETTER SMALL KE
+&KE@@
+0x30f7    KATAKANA LETTER VA
+&Va@@
+0x30f8    KATAKANA LETTER VI
+&Vi@@
+0x30f9    KATAKANA LETTER VE
+&Ve@@
+0x30fa    KATAKANA LETTER VO
+&Vo@@
+0x30fb    KATAKANA MIDDLE DOT
+&.6@@
+0x30fc    KATAKANA-HIRAGANA PROLONGED SOUND MARK
+&-6@@
+0x30fd    KATAKANA ITERATION MARK
+&*6@@
+0x30fe    KATAKANA VOICED ITERATION MARK
+&+6@@
+0x3105    BOPOMOFO LETTER B
+&b4@@
+0x3106    BOPOMOFO LETTER P
+&p4@@
+0x3107    BOPOMOFO LETTER M
+&m4@@
+0x3108    BOPOMOFO LETTER F
+&f4@@
+0x3109    BOPOMOFO LETTER D
+&d4@@
+0x310a    BOPOMOFO LETTER T
+&t4@@
+0x310b    BOPOMOFO LETTER N
+&n4@@
+0x310c    BOPOMOFO LETTER L
+&l4@@
+0x310d    BOPOMOFO LETTER G
+&g4@@
+0x310e    BOPOMOFO LETTER K
+&k4@@
+0x310f    BOPOMOFO LETTER H
+&h4@@
+0x3110    BOPOMOFO LETTER J
+&j4@@
+0x3111    BOPOMOFO LETTER Q
+&q4@@
+0x3112    BOPOMOFO LETTER X
+&x4@@
+0x3113    BOPOMOFO LETTER ZH
+&zh@@
+0x3114    BOPOMOFO LETTER CH
+&ch@@
+0x3115    BOPOMOFO LETTER SH
+&sh@@
+0x3116    BOPOMOFO LETTER R
+&r4@@
+0x3117    BOPOMOFO LETTER Z
+&z4@@
+0x3118    BOPOMOFO LETTER C
+&c4@@
+0x3119    BOPOMOFO LETTER S
+&s4@@
+0x311a    BOPOMOFO LETTER A
+&a4@@
+0x311b    BOPOMOFO LETTER O
+&o4@@
+0x311c    BOPOMOFO LETTER E
+&e4@@
+0x311d    BOPOMOFO LETTER EH
+&_eh4_@@
+0x311e    BOPOMOFO LETTER AI
+&ai@@
+0x311f    BOPOMOFO LETTER EI
+&ei@@
+0x3120    BOPOMOFO LETTER AU
+&au@@
+0x3121    BOPOMOFO LETTER OU
+&ou@@
+0x3122    BOPOMOFO LETTER AN
+&an@@
+0x3123    BOPOMOFO LETTER EN
+&en@@
+0x3124    BOPOMOFO LETTER ANG
+&aN@@
+0x3125    BOPOMOFO LETTER ENG
+&eN@@
+0x3126    BOPOMOFO LETTER ER
+&er@@
+0x3127    BOPOMOFO LETTER I
+&i4@@
+0x3128    BOPOMOFO LETTER U
+&u4@@
+0x3129    BOPOMOFO LETTER IU
+&iu@@
+0x312a    BOPOMOFO LETTER V
+&v4@@
+0x312b    BOPOMOFO LETTER NG
+&nG@@
+0x312c    BOPOMOFO LETTER GN
+&gn@@
+0x321c    PARENTHESIZED HANGUL JU
+&_(JU)_@@
+0x3220    PARENTHESIZED IDEOGRAPH ONE
+&1c@@
+0x3221    PARENTHESIZED IDEOGRAPH TWO
+&2c@@
+0x3222    PARENTHESIZED IDEOGRAPH THREE
+&3c@@
+0x3223    PARENTHESIZED IDEOGRAPH FOUR
+&4c@@
+0x3224    PARENTHESIZED IDEOGRAPH FIVE
+&5c@@
+0x3225    PARENTHESIZED IDEOGRAPH SIX
+&6c@@
+0x3226    PARENTHESIZED IDEOGRAPH SEVEN
+&7c@@
+0x3227    PARENTHESIZED IDEOGRAPH EIGHT
+&8c@@
+0x3228    PARENTHESIZED IDEOGRAPH NINE
+&9c@@
+0x3229    PARENTHESIZED IDEOGRAPH TEN
+&_10c_@@
+0x327f    KOREAN STANDARD SYMBOL
+&_KSC_@@
+0xe001    JOIN THIS LINE WITH NEXT LINE (Mnemonic)
+&/c@@
+0xe002    Unit space A (ISO-IR-8-1 064)
+&UA@@
+0xe003    Unit space B (ISO-IR-8-1 096)
+&UB@@
+0xe004    NON-SPACING UMLAUT (ISO-IR-38 201) (character part)
+&"3@@
+0xe005    NON-SPACING DIAERESIS WITH ACCENT (ISO-IR-70 192) (character part)
+&"1@@
+0xe006    NON-SPACING GRAVE ACCENT (ISO-IR-103 193) (character part)
+&"!@@
+0xe007    NON-SPACING ACUTE ACCENT (ISO-IR-103 194) (character part)
+&"'@@
+0xe008    NON-SPACING CIRCUMFLEX ACCENT (ISO-IR-103 195) (character part)
+&">@@
+0xe009    NON-SPACING TILDE (ISO-IR-103 196) (character part)
+&"?@@
+0xe00a    NON-SPACING MACRON (ISO-IR-103 197) (character part)
+&"-@@
+0xe00b    NON-SPACING BREVE (ISO-IR-103 198) (character part)
+&"(@@
+0xe00c    NON-SPACING DOT ABOVE (ISO-IR-103 199) (character part)
+&".@@
+0xe00d    NON-SPACING DIAERESIS (ISO-IR-103 200) (character part)
+&":@@
+0xe00e    NON-SPACING RING ABOVE (ISO-IR-103 202) (character part)
+&"0@@
+0xe00f    NON-SPACING DOUBLE ACCUTE (ISO-IR-103 204) (character part)
+&""@@
+0xe010    NON-SPACING CARON (ISO-IR-103 206) (character part)
+&"<@@
+0xe011    NON-SPACING CEDILLA (ISO-IR-103 203) (character part)
+&",@@
+0xe012    NON-SPACING OGONEK (ISO-IR-103 206) (character part)
+&";@@
+0xe013    NON-SPACING LOW LINE (ISO-IR-103 204) (character part)
+&"_@@
+0xe014    NON-SPACING DOUBLE LOW LINE (ISO-IR-38 217) (character part)
+&"=@@
+0xe015    NON-SPACING LONG SOLIDUS (ISO-IR-128 201) (character part)
+&"/@@
+0xe016    GREEK NON-SPACING IOTA BELOW (ISO-IR-55 39) (character part)
+&"i@@
+0xe017    GREEK NON-SPACING DASIA PNEUMATA (ISO-IR-55 38) (character part)
+&"d@@
+0xe018    GREEK NON-SPACING PSILI PNEUMATA (ISO-IR-55 37) (character part)
+&"p@@
+0xe019    GREEK DASIA PNEUMATA (ISO-IR-18 92)
+&;;@@
+0xe01a    GREEK PSILI PNEUMATA (ISO-IR-18 124)
+&,,@@
+0xe01b    GREEK SMALL LETTER MIDDLE BETA (ISO-IR-18 99)
+&b3@@
+0xe01c    CIRCLE (ISO-IR-83 0294)
+&Ci@@
+0xe01d    FUNCTION SIGN (ISO-IR-143 221)
+&f(@@
+0xe01e    LATIN SMALL LETTER EZH (ISO-IR-158 142)
+&ed@@
+0xe01f    ANTE MERIDIAM SIGN (ISO-IR-149 0267)
+&am@@
+0xe020    POST MERIDIAM SIGN (ISO-IR-149 0268)
+&pm@@
+0xe021    TEL COMPATIBILITY SIGN (ISO-IR-149 0269)
+&_Tel_@@
+0xe022    ARABIC LETTER ALEF FINAL FORM COMPATIBILITY (IBM868 144)
+&_a+:_@@
+0xe023    DUTCH GUILDER SIGN (IBM437 159)
+&Fl@@
+0xe024    GAMMA FUNCTION SIGN (ISO-10646-1DIS 032/032/037/122)
+&GF@@
+0xe025    RIGHTWARDS VECTOR ABOVE (ISO-10646-1DIS 032/032/038/046)
+&>V@@
+0xe026    GREEK VARIA (ISO-10646-1DIS 032/032/042/164)
+&!*@@
+0xe027    GREEK PERISPOMENI (ISO-10646-1DIS 032/032/042/165)
+&?*@@
+0xe028    LATIN CAPITAL LETTER J WITH CARON (lowercase: 000/000/001/240)
+&J<@@
+0xfb00    LATIN SMALL LIGATURE FF
+&ff@@
+0xfb01    LATIN SMALL LIGATURE FI
+&fi@@
+0xfb02    LATIN SMALL LIGATURE FL
+&fl@@
+0xfb03    LATIN SMALL LIGATURE FFI
+&_ffi_@@
+0xfb04    LATIN SMALL LIGATURE FFL
+&_ffl_@@
+0xfb05    LATIN SMALL LIGATURE FT
+&ft@@
+0xfb06    LATIN SMALL LIGATURE ST
+&st@@
+0xfe7d    ARABIC SHADDA MEDIAL FORM
+&_3+;_@@
+0xfe82    ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+&_aM._@@
+0xfe84    ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+&_aH._@@
+0xfe8d    ARABIC LETTER ALEF ISOLATED FORM
+&_a+-_@@
+0xfe8e    ARABIC LETTER ALEF FINAL FORM
+&_a+._@@
+0xfe8f    ARABIC LETTER BEH ISOLATED FORM
+&_b+-_@@
+0xfe90    ARABIC LETTER BEH INITIAL FORM
+&_b+,_@@
+0xfe91    ARABIC LETTER BEH MEDIAL FORM
+&_b+;_@@
+0xfe92    ARABIC LETTER BEH FINAL FORM
+&_b+._@@
+0xfe93    ARABIC LETTER TEH MARBUTA ISOLATED FORM
+&_tm-_@@
+0xfe94    ARABIC LETTER TEH MARBUTA FINAL FORM
+&_tm._@@
+0xfe95    ARABIC LETTER TEH ISOLATED FORM
+&_t+-_@@
+0xfe96    ARABIC LETTER TEH INITIAL FORM
+&_t+,_@@
+0xfe97    ARABIC LETTER TEH MEDIAL FORM
+&_t+;_@@
+0xfe98    ARABIC LETTER TEH FINAL FORM
+&_t+._@@
+0xfe99    ARABIC LETTER THEH ISOLATED FORM
+&_tk-_@@
+0xfe9a    ARABIC LETTER THEH INITIAL FORM
+&_tk,_@@
+0xfe9b    ARABIC LETTER THEH MEDIAL FORM
+&_tk;_@@
+0xfe9c    ARABIC LETTER THEH FINAL FORM
+&_tk._@@
+0xfe9d    ARABIC LETTER JEEM ISOLATED FORM
+&_g+-_@@
+0xfe9e    ARABIC LETTER JEEM INITIAL FORM
+&_g+,_@@
+0xfe9f    ARABIC LETTER JEEM MEDIAL FORM
+&_g+;_@@
+0xfea0    ARABIC LETTER JEEM FINAL FORM
+&_g+._@@
+0xfea1    ARABIC LETTER HAH ISOLATED FORM
+&_hk-_@@
+0xfea2    ARABIC LETTER HAH INITIAL FORM
+&_hk,_@@
+0xfea3    ARABIC LETTER HAH MEDIAL FORM
+&_hk;_@@
+0xfea4    ARABIC LETTER HAH FINAL FORM
+&_hk._@@
+0xfea5    ARABIC LETTER KHAH ISOLATED FORM
+&_x+-_@@
+0xfea6    ARABIC LETTER KHAH INITIAL FORM
+&_x+,_@@
+0xfea7    ARABIC LETTER KHAH MEDIAL FORM
+&_x+;_@@
+0xfea8    ARABIC LETTER KHAH FINAL FORM
+&_x+._@@
+0xfea9    ARABIC LETTER DAL ISOLATED FORM
+&_d+-_@@
+0xfeaa    ARABIC LETTER DAL FINAL FORM
+&_d+._@@
+0xfeab    ARABIC LETTER THAL ISOLATED FORM
+&_dk-_@@
+0xfeac    ARABIC LETTER THAL FINAL FORM
+&_dk._@@
+0xfead    ARABIC LETTER REH ISOLATED FORM
+&_r+-_@@
+0xfeae    ARABIC LETTER REH FINAL FORM
+&_r+._@@
+0xfeaf    ARABIC LETTER ZAIN ISOLATED FORM
+&_z+-_@@
+0xfeb0    ARABIC LETTER ZAIN FINAL FORM
+&_z+._@@
+0xfeb1    ARABIC LETTER SEEN ISOLATED FORM
+&_s+-_@@
+0xfeb2    ARABIC LETTER SEEN INITIAL FORM
+&_s+,_@@
+0xfeb3    ARABIC LETTER SEEN MEDIAL FORM
+&_s+;_@@
+0xfeb4    ARABIC LETTER SEEN FINAL FORM
+&_s+._@@
+0xfeb5    ARABIC LETTER SHEEN ISOLATED FORM
+&_sn-_@@
+0xfeb6    ARABIC LETTER SHEEN INITIAL FORM
+&_sn,_@@
+0xfeb7    ARABIC LETTER SHEEN MEDIAL FORM
+&_sn;_@@
+0xfeb8    ARABIC LETTER SHEEN FINAL FORM
+&_sn._@@
+0xfeb9    ARABIC LETTER SAD ISOLATED FORM
+&_c+-_@@
+0xfeba    ARABIC LETTER SAD INITIAL FORM
+&_c+,_@@
+0xfebb    ARABIC LETTER SAD MEDIAL FORM
+&_c+;_@@
+0xfebc    ARABIC LETTER SAD FINAL FORM
+&_c+._@@
+0xfebd    ARABIC LETTER DAD ISOLATED FORM
+&_dd-_@@
+0xfebe    ARABIC LETTER DAD INITIAL FORM
+&_dd,_@@
+0xfebf    ARABIC LETTER DAD MEDIAL FORM
+&_dd;_@@
+0xfec0    ARABIC LETTER DAD FINAL FORM
+&_dd._@@
+0xfec1    ARABIC LETTER TAH ISOLATED FORM
+&_tj-_@@
+0xfec2    ARABIC LETTER TAH INITIAL FORM
+&_tj,_@@
+0xfec3    ARABIC LETTER TAH MEDIAL FORM
+&_tj;_@@
+0xfec4    ARABIC LETTER TAH FINAL FORM
+&_tj._@@
+0xfec5    ARABIC LETTER ZAH ISOLATED FORM
+&_zH-_@@
+0xfec6    ARABIC LETTER ZAH INITIAL FORM
+&_zH,_@@
+0xfec7    ARABIC LETTER ZAH MEDIAL FORM
+&_zH;_@@
+0xfec8    ARABIC LETTER ZAH FINAL FORM
+&_zH._@@
+0xfec9    ARABIC LETTER AIN ISOLATED FORM
+&_e+-_@@
+0xfeca    ARABIC LETTER AIN INITIAL FORM
+&_e+,_@@
+0xfecb    ARABIC LETTER AIN MEDIAL FORM
+&_e+;_@@
+0xfecc    ARABIC LETTER AIN FINAL FORM
+&_e+._@@
+0xfecd    ARABIC LETTER GHAIN ISOLATED FORM
+&_i+-_@@
+0xfece    ARABIC LETTER GHAIN INITIAL FORM
+&_i+,_@@
+0xfecf    ARABIC LETTER GHAIN MEDIAL FORM
+&_i+;_@@
+0xfed0    ARABIC LETTER GHAIN FINAL FORM
+&_i+._@@
+0xfed1    ARABIC LETTER FEH ISOLATED FORM
+&_f+-_@@
+0xfed2    ARABIC LETTER FEH INITIAL FORM
+&_f+,_@@
+0xfed3    ARABIC LETTER FEH MEDIAL FORM
+&_f+;_@@
+0xfed4    ARABIC LETTER FEH FINAL FORM
+&_f+._@@
+0xfed5    ARABIC LETTER QAF ISOLATED FORM
+&_q+-_@@
+0xfed6    ARABIC LETTER QAF INITIAL FORM
+&_q+,_@@
+0xfed7    ARABIC LETTER QAF MEDIAL FORM
+&_q+;_@@
+0xfed8    ARABIC LETTER QAF FINAL FORM
+&_q+._@@
+0xfed9    ARABIC LETTER KAF ISOLATED FORM
+&_k+-_@@
+0xfeda    ARABIC LETTER KAF INITIAL FORM
+&_k+,_@@
+0xfedb    ARABIC LETTER KAF MEDIAL FORM
+&_k+;_@@
+0xfedc    ARABIC LETTER KAF FINAL FORM
+&_k+._@@
+0xfedd    ARABIC LETTER LAM ISOLATED FORM
+&_l+-_@@
+0xfede    ARABIC LETTER LAM INITIAL FORM
+&_l+,_@@
+0xfedf    ARABIC LETTER LAM MEDIAL FORM
+&_l+;_@@
+0xfee0    ARABIC LETTER LAM FINAL FORM
+&_l+._@@
+0xfee1    ARABIC LETTER MEEM ISOLATED FORM
+&_m+-_@@
+0xfee2    ARABIC LETTER MEEM INITIAL FORM
+&_m+,_@@
+0xfee3    ARABIC LETTER MEEM MEDIAL FORM
+&_m+;_@@
+0xfee4    ARABIC LETTER MEEM FINAL FORM
+&_m+._@@
+0xfee5    ARABIC LETTER NOON ISOLATED FORM
+&_n+-_@@
+0xfee6    ARABIC LETTER NOON INITIAL FORM
+&_n+,_@@
+0xfee7    ARABIC LETTER NOON MEDIAL FORM
+&_n+;_@@
+0xfee8    ARABIC LETTER NOON FINAL FORM
+&_n+._@@
+0xfee9    ARABIC LETTER HEH ISOLATED FORM
+&_h+-_@@
+0xfeea    ARABIC LETTER HEH INITIAL FORM
+&_h+,_@@
+0xfeeb    ARABIC LETTER HEH MEDIAL FORM
+&_h+;_@@
+0xfeec    ARABIC LETTER HEH FINAL FORM
+&_h+._@@
+0xfeed    ARABIC LETTER WAW ISOLATED FORM
+&_w+-_@@
+0xfeee    ARABIC LETTER WAW FINAL FORM
+&_w+._@@
+0xfeef    ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+&_j+-_@@
+0xfef0    ARABIC LETTER ALEF MAKSURA FINAL FORM
+&_j+._@@
+0xfef1    ARABIC LETTER YEH ISOLATED FORM
+&_y+-_@@
+0xfef2    ARABIC LETTER YEH INITIAL FORM
+&_y+,_@@
+0xfef3    ARABIC LETTER YEH MEDIAL FORM
+&_y+;_@@
+0xfef4    ARABIC LETTER YEH FINAL FORM
+&_y+._@@
+0xfef5    ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+&_lM-_@@
+0xfef6    ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+&_lM._@@
+0xfef7    ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+&_lH-_@@
+0xfef8    ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+&_lH._@@
+0xfef9    ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+&_lh-_@@
+0xfefa    ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+&_lh._@@
+0xfefb    ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+&_la-_@@
+0xfefc    ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+&_la._@@
--- /dev/null
+++ b/fonts/moscow.flc
@@ -1,0 +1,68 @@
+flc2a
+# This controlfile maps the U.S. keyboard to Cyrillic
+# in the style of the "moscow" font, but is meant for use
+# with a FIGlet Unicode font with Cyrillic codes, such as "banner"
+#
+# "moscow" is an upper-case-only font, so for full compatibility
+# use the "upper" controlfile as well and avoid "@" and "<".
+t / \0x044c
+t \0x5c \0x044a
+t | \0x044b
+t ~ \0x044d
+t < \0x042d
+t ` \0x0443
+t @ \0x042e
+t > \0x0439
+t A \0x0410
+t a \0x0430
+t B \0x0411
+t b \0x0431
+t C \0x0427
+t c \0x0447
+t D \0x0414
+t d \0x0434
+t E \0x0415
+t e \0x0435
+t F \0x0424
+t f \0x0444
+t G \0x0413
+t g \0x0433
+t H \0x0425
+t h \0x0445
+t I \0x0418
+t i \0x0438
+t J \0x0416
+t j \0x0436
+t K \0x041a
+t k \0x043a
+t L \0x041b
+t l \0x043b
+t M \0x041c
+t m \0x043c
+t N \0x041d
+t n \0x043d
+t O \0x041e
+t o \0x043e
+t P \0x041f
+t p \0x043f
+t Q \0x0426
+t q \0x0446
+t R \0x0420
+t r \0x0440
+t S \0x0421
+t s \0x0441
+t T \0x0422
+t t \0x0442
+t U \0x0423
+t u \0x0443
+t V \0x0412
+t v \0x0432
+t W \0x0428
+t w \0x0448
+t X \0x0429
+t x \0x0449
+t Y \0x042f
+t y \0x044f
+t Z \0x0417
+t z \0x0437
+t = \-6
--- /dev/null
+++ b/fonts/script.flf
@@ -1,0 +1,1493 @@
+flf2a$ 7 5 16 0 10 0 3904 96
+Script by Glenn Chappell 4/93
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+$$@
+$$@
+$$@
+$$@
+$$@
+$$@
+$$@@
+  @
+ |@
+ |@
+ |@
+ o@
+  @
+  @@
+ oo@
+ ||@
+ $$@
+ $$@
+ $$@
+   @
+   @@
+         @
+   |  |  @
+ --+--+--@
+ --+--+--@
+   |  |  @
+         @
+         @@
+      @
+  |_|_@
+ (|_| @
+ _|_|)@
+  | | @
+      @
+      @@
+     @
+ () /@
+   / @
+  /  @
+ / ()@
+     @
+     @@
+      @
+  ()  @
+  /\  @
+ /  \/@
+ \__/\@
+      @
+      @@
+ o@
+ /@
+ $@
+ $@
+ $@
+  @
+  @@
+   @
+  /@
+ | @
+ | @
+ | @
+  \@
+   @@
+   @
+ \ @
+  |@
+  |@
+  |@
+ / @
+   @@
+      @
+      @
+  \|/ @
+ --*--@
+  /|\ @
+      @
+      @@
+      @
+      @
+   |  @
+ --+--@
+   |  @
+      @
+      @@
+  @
+  @
+  @
+  @
+ o@
+ /@
+  @@
+      @
+      @
+      @
+ -----@
+   $  @
+      @
+      @@
+  @
+  @
+  @
+  @
+ o@
+  @
+  @@
+     @
+    /@
+   / @
+  /  @
+ /   @
+     @
+     @@
+   __  @
+  /  \ @
+ |    |@
+ |    |@
+  \__/ @
+       @
+       @@
+  ,@
+ /|@
+  |@
+  |@
+  |@
+   @
+   @@
+  __ @
+ /  )@
+  $/ @
+  /  @
+ /___@
+     @
+     @@
+  ___ @
+ /   \@
+  $__/@
+  $  \@
+ \___/@
+      @
+      @@
+      @
+ |  | @
+ |__|_@
+    | @
+    | @
+      @
+      @@
+  ____@
+ |    @
+ |___ @
+  $  \@
+ \___/@
+      @
+      @@
+   __ @
+  /$  @
+ | __ @
+ |/  \@
+  \__/@
+      @
+      @@
+ _____@
+  $  /@
+  $ / @
+  $/  @
+  /   @
+      @
+      @@
+  __ @
+ /  \@
+ \__/@
+ /  \@
+ \__/@
+     @
+     @@
+  __ @
+ /  |@
+ \_/|@
+    |@
+    |@
+     @
+     @@
+  @
+ o@
+ $@
+ $@
+ o@
+  @
+  @@
+  @
+ o@
+ $@
+ $@
+ o@
+ /@
+  @@
+   @
+  /@
+ / @
+ \ @
+  \@
+   @
+   @@
+      @
+      @
+ -----@
+ -----@
+      @
+      @
+      @@
+   @
+ \ @
+  \@
+  /@
+ / @
+   @
+   @@
+  __ @
+ /  \@
+  $_/@
+  |  @
+  o  @
+     @
+     @@
+         @
+   ____  @
+  / __,\ @
+ | /  | |@
+ | \_/|/ @
+  \____/ @
+         @@
+   ___,  @
+  /   |  @
+ |    |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+  , __ @
+ /|/  \@
+  | __/@
+  |   \@
+  |(__/@
+       @
+       @@
+   ___$@
+  / (_)@
+ |   $ @
+ |   $ @
+  \___/@
+       @
+       @@
+  $____  @
+  (|   \ @
+   |    |@
+ $_|    |@
+ (/\___/ @
+         @
+         @@
+  ___$@
+ / (_)@
+ \__$ @
+ /  $ @
+ \___/@
+      @
+      @@
+ $______@
+ (_) |$ @
+    _|_$@
+   / | |@
+  (_/   @
+        @
+        @@
+       @
+   () |@
+   /\/|@
+  /   |@
+ /(__/ @
+       @
+       @@
+  ,     @
+ /|   | @
+  |___| @
+  |   |\@
+  |   |/@
+        @
+        @@
+    _ @
+   | |@
+   | |@
+ _ |/ @
+ \_/\/@
+      @
+      @@
+      @
+  /\  @
+ |  | @
+ |  | @
+  \_|/@
+   /| @
+   \| @@
+  ,     @
+ /|   / @
+  |__/  @
+  | \$  @
+  |  \_/@
+        @
+        @@
+   $_$  @
+ \_|_)  @
+   |$   @
+ $_|$   @
+ (/\___/@
+        @
+        @@
+  ,__ __   @
+ /|  |  |  @
+  |  |  |  @
+  |  |  |  @
+  |  |  |_/@
+           @
+           @@
+  , _    @
+ /|/ \   @
+  |   |  @
+  |   |  @
+  |   |_/@
+         @
+         @@
+   __  @
+  /\_\/@
+ |    |@
+ |    |@
+  \__/ @
+       @
+       @@
+  , __ @
+ /|/  \@
+  |___/@
+  |   $@
+  |   $@
+       @
+       @@
+   __    @
+  /  \   @
+ | __ |  @
+ |/  \|  @
+  \__/\_/@
+         @
+         @@
+  , __  @
+ /|/  \ @
+  |___/ @
+  | \$  @
+  |  \_/@
+        @
+        @@
+      @
+   () @
+   /\ @
+  /  \@
+ /(__/@
+      @
+      @@
+ $______@
+ (_) |  @
+   $ |  @
+  $_ |  @
+  (_/   @
+        @
+        @@
+ $_        @
+ (_|    |  @
+   |    |  @
+   |    |  @
+    \__/\_/@
+           @
+           @@
+ $_       @
+ (_|   |_/@
+   |   |  @
+   |   |  @
+    \_/   @
+          @
+          @@
+ $_           @
+ (_|   |   |_/@
+   |   |   |  @
+   |   |   |  @
+    \_/ \_/   @
+              @
+              @@
+ $_      @
+ (_\  /  @
+   $\/   @
+   $/\   @
+  _/  \_/@
+         @
+         @@
+ $_      @
+ (_|   | @
+   |   | @
+   |   | @
+    \_/|/@
+      /| @
+      \| @@
+ $__  @
+ (_ \ @
+   $/ @
+   /  @
+  /__/@
+   /| @
+   \| @@
+  _@
+ | @
+ | @
+ | @
+ | @
+ |_@
+   @@
+     @
+ \   @
+  \  @
+   \ @
+    \@
+     @
+     @@
+ _ @
+  |@
+  |@
+  |@
+  |@
+ _|@
+   @@
+ /\@
+  $@
+  $@
+  $@
+  $@
+   @
+   @@
+      @
+      @
+      @
+      @
+   $  @
+   $  @
+ _____@@
+ o@
+ \@
+ $@
+ $@
+ $@
+  @
+  @@
+       @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+ $_$  @
+ | |  @
+ | |  @
+ |/ \_@
+  \_/ @
+      @
+      @@
+      @
+      @
+  __  @
+ /$   @
+ \___/@
+      @
+      @@
+       @
+    |  @
+  __|  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+     @
+     @
+  _  @
+ |/  @
+ |__/@
+     @
+     @@
+ $_$ @
+ | | @
+ | | @
+ |/  @
+ |__/@
+ |\  @
+ |/  @@
+      @
+      @
+  __, @
+ /  | @
+ \_/|/@
+   /| @
+   \| @@
+ $_$    @
+ | |    @
+ | |    @
+ |/ \   @
+ |   |_/@
+        @
+        @@
+    @
+ o  @
+    @
+ |  @
+ |_/@
+    @
+    @@
+    @
+  o @
+    @
+  | @
+  |/@
+ /| @
+ \| @@
+ $_$  @
+ | |  @
+ | |  @
+ |/_) @
+ | \_/@
+      @
+      @@
+ $_$ @
+ | | @
+ | | @
+ |/  @
+ |__/@
+     @
+     @@
+            @
+            @
+  _  _  _   @
+ / |/ |/ |  @
+ $ |  |  |_/@
+            @
+            @@
+         @
+         @
+  _  _   @
+ / |/ |  @
+ $ |  |_/@
+         @
+         @@
+      @
+      @
+  __  @
+ /  \_@
+ \__/ @
+      @
+      @@
+       @
+       @
+    _  @
+  |/ \_@
+  |__/ @
+ /|    @
+ \|    @@
+       @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+    |\ @
+    |/ @@
+       @
+       @
+  ,_   @
+ /  |  @
+ $  |_/@
+       @
+       @@
+     @
+     @
+  ,  @
+ / \_@
+ $\/ @
+     @
+     @@
+     @
+     @
+ _|_ @
+  |  @
+  |_/@
+     @
+     @@
+        @
+        @
+        @
+ |   |  @
+ $\_/|_/@
+        @
+        @@
+      @
+      @
+      @
+ |  |_@
+ $\/  @
+      @
+      @@
+         @
+         @
+         @
+ |  |  |_@
+ $\/ \/  @
+         @
+         @@
+      @
+      @
+      @
+ /\/  @
+ $/\_/@
+      @
+      @@
+       @
+       @
+       @
+ |   | @
+ $\_/|/@
+    /| @
+    \| @@
+      @
+      @
+  __  @
+ / / _@
+ $/_/ @
+   /| @
+   \| @@
+    @
+   /@
+  | @
+ <  @
+  | @
+   \@
+    @@
+ |@
+ |@
+ |@
+ |@
+ |@
+ |@
+ |@@
+    @
+ \  @
+  | @
+   >@
+  | @
+ /  @
+    @@
+ /\/@
+  $ @
+  $ @
+  $ @
+  $ @
+    @
+    @@
+  o   o  @
+   ___,  @
+  /   |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+  o  o @
+   __  @
+  /\_\/@
+ |    |@
+  \__/ @
+       @
+       @@
+    o  o   @
+ $_        @
+ (_|    |  @
+   |    |  @
+    \__/\_/@
+           @
+           @@
+ o  o  @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+ o  o @
+      @
+  __  @
+ /  \_@
+ \__/ @
+      @
+      @@
+ o   o  @
+        @
+        @
+ |   |  @
+ $\_/|_/@
+        @
+        @@
+   _ @
+  / \@
+ |  /@
+ |  \@
+ | _/@
+ |   @
+     @@
+160  NO-BREAK SPACE
+ $$@
+ $$@
+ $$@
+ $$@
+ $$@
+ $$@
+ $$@@
+161  INVERTED EXCLAMATION MARK
+  @
+ o@
+ |@
+ |@
+ |@
+  @
+  @@
+162  CENT SIGN
+      @
+      @
+  _|_ @
+ / |  @
+ \_|_/@
+   |  @
+      @@
+163  POUND SIGN
+     _  @
+    / \ @
+ __|__  @
+  _| $  @
+ (/ \__/@
+        @
+        @@
+164  CURRENCY SIGN
+      @
+ \ _ /@
+  / \ @
+  \_/ @
+ /   \@
+      @
+      @@
+165  YEN SIGN
+      @
+ \   /@
+ _\_/_@
+ __|__@
+   |  @
+      @
+      @@
+166  BROKEN BAR
+ |@
+ |@
+ |@
+  @
+ |@
+ |@
+ |@@
+167  SECTION SIGN
+  _@
+ ( @
+ /\@
+ \/@
+ _)@
+   @
+   @@
+168  DIAERESIS
+ o  o@
+ $  $@
+ $  $@
+ $  $@
+ $  $@
+     @
+     @@
+169  COPYRIGHT SIGN
+    ____   @
+   / __ \  @
+  / / () \ @
+ | |      |@
+  \ \__/ / @
+   \____/  @
+           @@
+170  FEMININE ORDINAL INDICATOR
+  __, @
+ /  | @
+ \_/|_@
+ ---- @
+   $  @
+      @
+      @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    @
+  //@
+ // @
+ \\ @
+  \\@
+    @
+    @@
+172  NOT SIGN
+     @
+ ___ @
+    |@
+   $ @
+   $ @
+     @
+     @@
+173  SOFT HYPHEN
+     @
+     @
+     @
+ ----@
+   $ @
+     @
+     @@
+174  REGISTERED SIGN
+    ____   @
+   /, _ \  @
+  //|/ \ \ @
+ |  |__/  |@
+  \ | \_// @
+   \____/  @
+           @@
+175  MACRON
+ _____@
+   $  @
+   $  @
+   $  @
+   $  @
+      @
+      @@
+176  DEGREE SIGN
+  _ @
+ / \@
+ \_/@
+    @
+  $ @
+    @
+    @@
+177  PLUS-MINUS SIGN
+      @
+      @
+   |  @
+ --+--@
+ __|__@
+      @
+      @@
+178  SUPERSCRIPT TWO
+ _ @
+  )@
+ /_@
+   @
+  $@
+   @
+   @@
+179  SUPERSCRIPT THREE
+ ___@
+  _/@
+ __)@
+    @
+  $ @
+    @
+    @@
+180  ACUTE ACCENT
+ /@
+ $@
+ $@
+ $@
+ $@
+  @
+  @@
+181  MICRO SIGN
+        @
+        @
+        @
+ |   |  @
+ |\_/|_/@
+ |      @
+ |      @@
+182  PILCROW SIGN
+  ____ @
+ / |  |@
+ \_|  |@
+   |  |@
+   |  |@
+       @
+       @@
+183  MIDDLE DOT
+    @
+    @
+ $O$@
+  $ @
+  $ @
+    @
+    @@
+184  CEDILLA
+   @
+   @
+   @
+   @
+ $ @
+ _)@
+   @@
+185  SUPERSCRIPT ONE
+  ,@
+ /|@
+  |@
+   @
+  $@
+   @
+   @@
+186  MASCULINE ORDINAL INDICATOR
+  __  @
+ /  \_@
+ \__/ @
+ ---- @
+   $  @
+      @
+      @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    @
+ \\ @
+  \\@
+  //@
+ // @
+    @
+    @@
+188  VULGAR FRACTION ONE QUARTER
+  ,    @
+ /| /  @
+  |/   @
+  /|_|_@
+ /   | @
+       @
+       @@
+189  VULGAR FRACTION ONE HALF
+  ,   @
+ /| / @
+  |/_ @
+  /  )@
+ /  /_@
+      @
+      @@
+190  VULGAR FRACTION THREE QUARTERS
+ ___    @
+  _/ /  @
+ __)/   @
+   /|_|_@
+  /   | @
+        @
+        @@
+191  INVERTED QUESTION MARK
+     @
+   o @
+  _| @
+ /$  @
+ \__/@
+     @
+     @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+    \    @
+   ___,  @
+  /   |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+    /    @
+   ___,  @
+  /   |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    /\   @
+   ___,  @
+  /   |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+   /\/   @
+   ___,  @
+  /   |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+  o   o  @
+   ___,  @
+  /   |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+    _    @
+   (_),  @
+  /   |  @
+ |    |  @
+  \__/\_/@
+         @
+         @@
+198  LATIN CAPITAL LETTER AE
+   ___,___$@
+  /   | (_)@
+ |    |__  @
+ |    |    @
+  \__/\___/@
+           @
+           @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+   ___$@
+  / (_)@
+ |   $ @
+ |   $ @
+  \___/@
+   _)  @
+       @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+   \   @
+  ___$ @
+ / (_) @
+ >--$  @
+ \____/@
+       @
+       @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+   /   @
+  ___$ @
+ / (_) @
+ >--$  @
+ \____/@
+       @
+       @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+  /\   @
+  ___$ @
+ / (_) @
+ >--$  @
+ \____/@
+       @
+       @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+ o   o @
+  ___$ @
+ / (_) @
+ >--$  @
+ \____/@
+       @
+       @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+    \  @
+   $_$ @
+   | | @
+ _ |/  @
+ \_/\_/@
+       @
+       @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+    /  @
+   $_$ @
+   | | @
+ _ |/  @
+ \_/\_/@
+       @
+       @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+   /\  @
+   $_$ @
+   | | @
+ _ |/  @
+ \_/\_/@
+       @
+       @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+  o  o @
+   $_$ @
+   | | @
+ _ |/  @
+ \_/\_/@
+       @
+       @@
+208  LATIN CAPITAL LETTER ETH
+  $____  @
+  (|   \ @
+ __|__  |@
+ $_|    |@
+ (/\___/ @
+         @
+         @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+   /\/   @
+  , _    @
+ /|/ \   @
+  |   |  @
+  |   |_/@
+         @
+         @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+   \   @
+   __  @
+  /\_\/@
+ |    |@
+  \__/ @
+       @
+       @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+    /  @
+   __  @
+  /\_\/@
+ |    |@
+  \__/ @
+       @
+       @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   /\  @
+   __  @
+  /\_\/@
+ |    |@
+  \__/ @
+       @
+       @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+   /\/ @
+   __  @
+  /\_\/@
+ |    |@
+  \__/ @
+       @
+       @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+  o  o @
+   __  @
+  /\_\/@
+ |    |@
+  \__/ @
+       @
+       @@
+215  MULTIPLICATION SIGN
+     @
+     @
+ $\/$@
+ $/\$@
+ $  $@
+     @
+     @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   __ /@
+  /\_//@
+ |  / |@
+ | /  |@
+  /__/ @
+ /     @
+       @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+     \     @
+ $_        @
+ (_|    |  @
+   |    |  @
+    \__/\_/@
+           @
+           @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+      /    @
+ $_        @
+ (_|    |  @
+   |    |  @
+    \__/\_/@
+           @
+           @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+     /\    @
+ $_        @
+ (_|    |  @
+   |    |  @
+    \__/\_/@
+           @
+           @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+    o  o   @
+ $_        @
+ (_|    |  @
+   |    |  @
+    \__/\_/@
+           @
+           @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+     /   @
+ $_      @
+ (_|   | @
+   |   | @
+    \_/|/@
+      /| @
+      \| @@
+222  LATIN CAPITAL LETTER THORN
+  ,    @
+  | __ @
+ /|/  \@
+  |___/@
+  |   $@
+       @
+       @@
+223  LATIN SMALL LETTER SHARP S
+   _ @
+  / \@
+ |  /@
+ |  \@
+ | _/@
+ |   @
+     @@
+224  LATIN SMALL LETTER A WITH GRAVE
+   \   @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+225  LATIN SMALL LETTER A WITH ACUTE
+   /   @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+  /\   @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+227  LATIN SMALL LETTER A WITH TILDE
+  /\/  @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+ o  o  @
+       @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+       @
+  ()   @
+  __,  @
+ /  |  @
+ \_/|_/@
+       @
+       @@
+230  LATIN SMALL LETTER AE
+        @
+        @
+  __,_  @
+ /  |/  @
+ \_/|__/@
+        @
+        @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+      @
+      @
+  __  @
+ /    @
+ \___/@
+  _)  @
+      @@
+232  LATIN SMALL LETTER E WITH GRAVE
+  \  @
+     @
+  _  @
+ |/  @
+ |__/@
+     @
+     @@
+233  LATIN SMALL LETTER E WITH ACUTE
+  /  @
+     @
+  _  @
+ |/  @
+ |__/@
+     @
+     @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+ /\  @
+     @
+  _  @
+ |/  @
+ |__/@
+     @
+     @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ o o @
+     @
+  _  @
+ |/  @
+ |__/@
+     @
+     @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ \  @
+    @
+    @
+ |  @
+ |_/@
+    @
+    @@
+237  LATIN SMALL LETTER I WITH ACUTE
+ /  @
+    @
+    @
+ |  @
+ |_/@
+    @
+    @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+ /\ @
+    @
+    @
+ |  @
+ |_/@
+    @
+    @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ o o @
+     @
+     @
+ |   @
+ |__/@
+     @
+     @@
+240  LATIN SMALL LETTER ETH
+     @
+   \/@
+  _'|@
+ /  |@
+ \_/ @
+     @
+     @@
+241  LATIN SMALL LETTER N WITH TILDE
+   /\/   @
+         @
+  _  _   @
+ / |/ |  @
+ $ |  |_/@
+         @
+         @@
+242  LATIN SMALL LETTER O WITH GRAVE
+  \   @
+      @
+  __  @
+ /  \_@
+ \__/ @
+      @
+      @@
+243  LATIN SMALL LETTER O WITH ACUTE
+   /  @
+      @
+  __  @
+ /  \_@
+ \__/ @
+      @
+      @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+  /\  @
+      @
+  __  @
+ /  \_@
+ \__/ @
+      @
+      @@
+245  LATIN SMALL LETTER O WITH TILDE
+  /\/ @
+      @
+  __  @
+ /  \_@
+ \__/ @
+      @
+      @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+ o  o @
+      @
+  __  @
+ /  \_@
+ \__/ @
+      @
+      @@
+247  DIVISION SIGN
+      @
+      @
+   O  @
+ -----@
+   O  @
+      @
+      @@
+248  LATIN SMALL LETTER O WITH STROKE
+      @
+      @
+  __/ @
+ / /\_@
+ \/_/ @
+ /    @
+      @@
+249  LATIN SMALL LETTER U WITH GRAVE
+   \    @
+        @
+        @
+ |   |  @
+ $\_/|_/@
+        @
+        @@
+250  LATIN SMALL LETTER U WITH ACUTE
+   /    @
+        @
+        @
+ |   |  @
+ $\_/|_/@
+        @
+        @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   /\   @
+        @
+        @
+ |   |  @
+ $\_/|_/@
+        @
+        @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+ o   o  @
+        @
+        @
+ |   |  @
+ $\_/|_/@
+        @
+        @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+   /   @
+       @
+       @
+ |   | @
+ $\_/|/@
+    /| @
+    \| @@
+254  LATIN SMALL LETTER THORN
+   _   @
+  | |  @
+  | |  @
+  |/ \_@
+  |__/ @
+ /|    @
+ \|    @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+ o   o @
+       @
+       @
+ |   | @
+ $\_/|/@
+    /| @
+    \| @@
--- /dev/null
+++ b/fonts/shadow.flf
@@ -1,0 +1,1097 @@
+flf2a$ 5 4 16 0 10 0 4992 96
+Shadow by Glenn Chappell 6/93 -- based on Standard & SmShadow
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+ $$@
+ $$@
+ $$@
+ $$@
+ $$@@
+ $|$@
+ $|$@
+ _|$@
+ _)$@
+    @@
+ $| )$@
+ V V$ @
+  $$  @
+  $$  @
+      @@
+   $|  |$  @
+ _  |_ |_|$@
+ _  |_ |_|$@
+   _| _|$  @
+           @@
+   $|$ @
+ $ __)$@
+ \__ \$@
+ (   /$@
+   _|$ @@
+ _)  /$@
+   $/$ @
+  $/$  @
+ _/ _)$@
+       @@
+ $ _ )$  @
+  $_ \ \$@
+ $( `  <$@
+ \___/\/$@
+         @@
+ $)$@
+ /$ @
+ $$ @
+ $$ @
+    @@
+  $/$@
+ $|$ @
+ $|$ @
+ $|$ @
+ \_\$@@
+ \ \$ @
+   $|$@
+   $|$@
+   $|$@
+  _/$ @@
+   $\$  @
+ \    /$@
+ $_  _\$@
+   \/$  @
+        @@
+        @
+   $|$  @
+ _   _|$@
+   _|$  @
+        @@
+    @
+    @
+    @
+ $)$@
+ /$ @@
+        @
+        @
+ _____|$@
+   $$   @
+        @@
+    @
+    @
+    @
+ _)$@
+    @@
+    $/$@
+   $/$ @
+  $/$  @
+ _/$   @
+       @@
+  $_ \$ @
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+ _ |$@
+  $|$@
+  $|$@
+  _|$@
+     @@
+ ___ \$ @
+    ) |$@
+  $__/$ @
+ _____|$@
+        @@
+ ___ /$ @
+   _ \$ @
+    ) |$@
+ ____/$ @
+        @@
+ $|  |$  @
+ $|  |$  @
+ ___ __|$@
+    _|$  @
+         @@
+ $___|$ @
+ $__ \$ @
+    ) |$@
+ ____/$ @
+        @@
+  $/$   @
+ $ _ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+ ___  |$@
+    $/$ @
+   $/$  @
+  _/$   @
+        @@
+ $ _ )$ @
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+  $_ \$ @
+ $(   |$@
+ \__  |$@
+   __/$ @
+        @@
+    @
+ _)$@
+ $$ @
+ _)$@
+    @@
+    @
+ _)$@
+ $$ @
+ $)$@
+ /$ @@
+   $/$@
+  $/$ @
+ \ \$ @
+  \_\$@
+      @@
+        @
+ _____|$@
+ _____|$@
+        @
+        @@
+ \ \$ @
+  \ \$@
+   $/$@
+  _/$ @
+      @@
+ __ \$@
+   $/$@
+  _|$ @
+  _)$ @
+      @@
+   $__ \$ @
+  $/ _` |$@
+ $| (   |$@
+ \ \__,_|$@
+  \____/$ @@
+    $\$   @
+   $_ \$  @
+  $___ \$ @
+ _/    _\$@
+          @@
+ $__ )$ @
+ $__ \$ @
+ $|   |$@
+ ____/$ @
+        @@
+  $___|$@
+ $|$    @
+ $|$    @
+ \____|$@
+        @@
+ $__ \$ @
+ $|   |$@
+ $|   |$@
+ ____/$ @
+        @@
+ $____|$@
+ $__|$  @
+ $|$    @
+ _____|$@
+        @@
+ $____|$@
+ $|$    @
+ $__|$  @
+ _|$    @
+        @@
+  $___|$@
+ $|$    @
+ $|   |$@
+ \____|$@
+        @@
+ $|   |$@
+ $|   |$@
+ $___ |$@
+ _|  _|$@
+        @@
+ _ _|$@
+  $|$ @
+  $|$ @
+ ___|$@
+      @@
+     $|$@
+     $|$@
+ $\   |$@
+ \___/$ @
+        @@
+ $|  /$@
+ $' /$ @
+ $. \$ @
+ _|\_\$@
+       @@
+ $|$    @
+ $|$    @
+ $|$    @
+ _____|$@
+        @@
+ $ \  |$@
+ $|\/ |$@
+ $|   |$@
+ _|  _|$@
+        @@
+ $ \  |$@
+ $  \ |$@
+ $|\  |$@
+ _| \_|$@
+        @@
+  $_ \$ @
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+ $ _ \$ @
+ $|   |$@
+ $___/$ @
+ _|$    @
+        @@
+  $_ \$ @
+ $|   |$@
+ $|   |$@
+ \__\_\$@
+        @@
+ $ _ \$ @
+ $|   |$@
+ $__ <$ @
+ _| \_\$@
+        @@
+  $___|$ @
+ \___ \$ @
+      $|$@
+ _____/$ @
+         @@
+ __ __|$@
+   $|$  @
+   $|$  @
+   _|$  @
+        @@
+ $|   |$@
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+ \ \     /$@
+  \ \   /$ @
+   \ \ /$  @
+    \_/$   @
+           @@
+ \ \        /$@
+  \ \  \   /$ @
+   \ \  \ /$  @
+    \_/\_/$   @
+              @@
+ \ \  /$@
+  \  /$ @
+   $ \$ @
+  _/\_\$@
+        @@
+ \ \   /$@
+  \   /$ @
+    $|$  @
+    _|$  @
+         @@
+ __  /$@
+   $/$ @
+  $/$  @
+ ____|$@
+       @@
+ $_|$@
+ $|$ @
+ $|$ @
+ $|$ @
+ __|$@@
+ \ \$   @
+  \ \$  @
+   \ \$ @
+    \_\$@
+        @@
+ _ |$@
+  $|$@
+  $|$@
+  $|$@
+ __|$@@
+ /\\$@
+  $$ @
+  $$ @
+  $$ @
+     @@
+        @
+        @
+        @
+   $$   @
+ _____|$@@
+ $)$@
+ \|$@
+ $$ @
+ $$ @
+    @@
+        @
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+ $|$    @
+ $__ \$ @
+ $|   |$@
+ _.__/$ @
+        @@
+       @
+  $__|$@
+ $($   @
+ \___|$@
+       @@
+     $|$@
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+       @
+  $_ \$@
+ $ __/$@
+ \___|$@
+       @@
+  $_|$@
+ $|$  @
+ $__|$@
+ _|$  @
+      @@
+        @
+  $_` |$@
+ $(   |$@
+ \__, |$@
+ |___/$ @@
+ $|$    @
+ $__ \$ @
+ $| | |$@
+ _| |_|$@
+        @@
+ _)$@
+ $|$@
+ $|$@
+ _|$@
+    @@
+    _)$@
+    $|$@
+    $|$@
+    $|$@
+ ___/$ @@
+ $|$   @
+ $|  /$@
+ $  <$ @
+ _|\_\$@
+       @@
+ $|$@
+ $|$@
+ $|$@
+ _|$@
+    @@
+            @
+ $__ `__ \$ @
+ $|   |   |$@
+ _|  _|  _|$@
+            @@
+        @
+ $__ \$ @
+ $|   |$@
+ _|  _|$@
+        @@
+        @
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+        @
+ $__ \$ @
+ $|   |$@
+ $.__/$ @
+ _|$    @@
+        @
+  $_` |$@
+ $(   |$@
+ \__, |$@
+     _|$@@
+       @
+ $ __|$@
+ $|$   @
+ _|$   @
+       @@
+       @
+  $__|$@
+ \__ \$@
+ ____/$@
+       @@
+ $|$  @
+ $__|$@
+ $|$  @
+ \__|$@
+      @@
+        @
+ $|   |$@
+ $|   |$@
+ \__,_|$@
+        @@
+         @
+ \ \   /$@
+  \ \ /$ @
+   \_/$  @
+         @@
+            @
+ \ \  \   /$@
+  \ \  \ /$ @
+   \_/\_/$  @
+            @@
+        @
+ \ \  /$@
+  `  <$ @
+  _/\_\$@
+        @@
+        @
+ $|   |$@
+ $|   |$@
+ \__, |$@
+ ____/$ @@
+      @
+ _  /$@
+  $/$ @
+ ___|$@
+      @@
+    $/$@
+   $|$ @
+ < <$  @
+   $|$ @
+   \_\$@@
+ $|$@
+ $|$@
+ $|$@
+ $|$@
+ _|$@@
+ \ \$  @
+   $|$ @
+   ` >$@
+   $|$ @
+  _/$  @@
+ / _/$@
+  $$  @
+  $$  @
+  $$  @
+      @@
+  _) \ _)$@
+   $_ \$  @
+  $___ \$ @
+ _/    _\$@
+          @@
+ _)  _)$@
+  $_ \$ @
+ $|   |$@
+ \___/$ @
+        @@
+ _)  _)$@
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+ _)  _)$@
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+ _)  _)$@
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+ _)  _)$@
+ $|   |$@
+ $|   |$@
+ \__,_|$@
+        @@
+  $_ \$@
+ $|  /$@
+ $|\ \$@
+ $|__/$@
+ _|$   @@
+160  NO-BREAK SPACE
+ $ $@
+ $ $@
+ $ $@
+ $ $@
+ $ $@@
+161  INVERTED EXCLAMATION MARK
+ _)$@
+ $|$@
+ $|$@
+ _|$@
+    @@
+162  CENT SIGN
+   $|$ @
+  $__)$@
+ $($   @
+ \   )$@
+   _|$ @@
+163  POUND SIGN
+    $,_\$ @
+ _  |_$   @
+   $|$    @
+  _,____|$@
+          @@
+164  CURRENCY SIGN
+ \  _  /$@
+  $(   |$@
+  $___ \$@
+ \/    /$@
+         @@
+165  YEN SIGN
+ \ \ /$ @
+ __ __|$@
+ __ __|$@
+   _|$  @
+        @@
+166  BROKEN BAR
+ $|$@
+ _|$@
+    @
+ $|$@
+ _|$@@
+167  SECTION SIGN
+    $_)$@
+  $\ \$ @
+ \ \\ \$@
+  \ \_/$@
+ (__/$  @@
+168  DIAERESIS
+ _)  _)$@
+ $    $ @
+ $    $ @
+ $    $ @
+        @@
+169  COPYRIGHT SIGN
+   $    \$  @
+  $  __| \$ @
+ $  (     |$@
+ \ \___| /$ @
+  \_____/$  @@
+170  FEMININE ORDINAL INDICATOR
+  $_` |$@
+ \__,_|$@
+ _____|$@
+   $$   @
+        @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+   $/ /$@
+  $/ /$ @
+ \ \ \$ @
+  \_\_\$@
+        @@
+172  NOT SIGN
+         @
+ _____ |$@
+      _|$@
+    $$   @
+         @@
+173  SOFT HYPHEN
+        @
+        @
+ _____|$@
+   $$   @
+        @@
+174  REGISTERED SIGN
+   $    \$  @
+  $  _ \ \$ @
+ $     /  |$@
+ \  _|_\ /$ @
+  \_____/$  @@
+175  MACRON
+ _____|$@
+   $$   @
+   $$   @
+   $$   @
+        @@
+176  DEGREE SIGN
+  $ \$ @
+ $(  |$@
+ \__/$ @
+   $$  @
+       @@
+177  PLUS-MINUS SIGN
+   $|$  @
+ _   _|$@
+   _|$  @
+ _____|$@
+        @@
+178  SUPERSCRIPT TWO
+ _  )$@
+  $/$ @
+ ___|$@
+  $$  @
+      @@
+179  SUPERSCRIPT THREE
+ __ /$@
+  _ \$@
+ ___/$@
+  $$  @
+      @@
+180  ACUTE ACCENT
+ _/$@
+ $$ @
+ $$ @
+ $$ @
+    @@
+181  MICRO SIGN
+        @
+ $|   |$@
+ $|   |$@
+ $._,_|$@
+ _|$    @@
+182  PILCROW SIGN
+  $    |$@
+ $(  | |$@
+ \__ | |$@
+    _|_|$@
+         @@
+183  MIDDLE DOT
+    @
+ _)$@
+ $$ @
+ $$ @
+    @@
+184  CEDILLA
+    @
+    @
+    @
+ $$ @
+ _)$@@
+185  SUPERSCRIPT ONE
+ _ |$@
+  $|$@
+  _|$@
+  $$ @
+     @@
+186  MASCULINE ORDINAL INDICATOR
+  $_ \$@
+ \___/$@
+ ____|$@
+   $$  @
+       @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ \ \ \$ @
+  \ \ \$@
+   $/ /$@
+  _/_/$ @
+        @@
+188  VULGAR FRACTION ONE QUARTER
+ _ |   /$    @
+  $|  / | |$ @
+  _| / __ _|$@
+   _/    _|$ @
+             @@
+189  VULGAR FRACTION ONE HALF
+ _ |   /$   @
+  $|  /_  )$@
+  _| /   /$ @
+   _/  ___|$@
+            @@
+190  VULGAR FRACTION THREE QUARTERS
+ __ /   /$    @
+  _ \  / | |$ @
+ ___/ / __ _|$@
+    _/    _|$ @
+              @@
+191  INVERTED QUESTION MARK
+   _)$ @
+   $|$ @
+  $/$  @
+ \___|$@
+       @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+  \_\$  @
+   $\$  @
+  $_ \$ @
+ _/  _\$@
+        @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+   _/$  @
+   $\$  @
+  $_ \$ @
+ _/  _\$@
+        @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+   /\\$ @
+   $\$  @
+  $_ \$ @
+ _/  _\$@
+        @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+  / _/$ @
+   $\$  @
+  $_ \$ @
+ _/  _\$@
+        @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+  _) \ _)$@
+   $_ \$  @
+  $___ \$ @
+ _/    _\$@
+          @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+    ( )$  @
+   $_ \$  @
+  $___ \$ @
+ _/    _\$@
+          @@
+198  LATIN CAPITAL LETTER AE
+    $ ____|$@
+   $/ __|$  @
+  $__ |$    @
+ _/  _____|$@
+            @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+  $___|$@
+ $|$    @
+ $|$    @
+ \____|$@
+    _)$ @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+  \_\$  @
+ $____|$@
+ $ _|$  @
+ _____|$@
+        @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+   _/$  @
+ $____|$@
+ $ _|$  @
+ _____|$@
+        @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+   /\\$ @
+ $____|$@
+ $ _|_$ @
+ _____|$@
+        @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+ _)  _)$@
+ $____|$@
+ $ _|$  @
+ _____|$@
+        @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+ \_\$ @
+ _ _|$@
+ | |$ @
+ ___|$@
+      @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+  _/$ @
+ _ _|$@
+  $|$ @
+ ___|$@
+      @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ /\\$ @
+ _ _|$@
+  $|$ @
+ ___|$@
+      @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+ _)  _)$@
+  _ _|$ @
+   $|$  @
+  ___|$ @
+        @@
+208  LATIN CAPITAL LETTER ETH
+    __ \$ @
+    |   |$@
+ __ __| |$@
+   ____/$ @
+          @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+  / _/$@
+ $ \ |$@
+ $.  |$@
+ _|\_|$@
+       @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+  \_\$  @
+  $_ \$ @
+ $|   |$@
+ \___/$ @
+        @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+   _/$  @
+  $_ \$ @
+ $|   |$@
+ \___/$ @
+        @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   /\\$ @
+  $_ \$ @
+ $|   |$@
+ \___/$ @
+        @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+  / _/$ @
+  $_ \$ @
+ $|   |$@
+ \___/$ @
+        @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+ _)  _)$@
+  $_ \$ @
+ $|   |$@
+ \___/$ @
+        @@
+215  MULTIPLICATION SIGN
+      @
+  \ \$@
+ ,  '$@
+ \/\/$@
+      @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+  $_ /$ @
+ $| / |$@
+ $ /  |$@
+ _/__/$ @
+        @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+  \_\$  @
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+   _/$  @
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+   /\\$ @
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+ _)  _)$@
+ $|   |$@
+ $|   |$@
+ \___/$ @
+        @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+    _/$ @
+ \ \  /$@
+  \  /$ @
+   _|$  @
+        @@
+222  LATIN CAPITAL LETTER THORN
+ $|$    @
+ $ __ \$@
+ $ ___/$@
+ _|$    @
+        @@
+223  LATIN SMALL LETTER SHARP S
+  $_ \$@
+ $|  /$@
+ $|\ \$@
+ $|__/$@
+ _|$   @@
+224  LATIN SMALL LETTER A WITH GRAVE
+  \_\$  @
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+225  LATIN SMALL LETTER A WITH ACUTE
+   _/_$ @
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+   /\\$ @
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+227  LATIN SMALL LETTER A WITH TILDE
+  / _/$ @
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+ _)  _)$@
+  $_` |$@
+ $(   |$@
+ \__,_|$@
+        @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+   ( )$ @
+  $_ '|$@
+ $(   |$@
+ \__,_|$@
+        @@
+230  LATIN SMALL LETTER AE
+           @
+  $_`  _ \$@
+ $(    __/$@
+ \__,____|$@
+           @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+       @
+  $__|$@
+ $($   @
+ \___|$@
+   _)$ @@
+232  LATIN SMALL LETTER E WITH GRAVE
+  \_\$ @
+  $_ \$@
+ $ __/$@
+ \___|$@
+       @@
+233  LATIN SMALL LETTER E WITH ACUTE
+   _/$ @
+  $_ \$@
+ $ __/$@
+ \___|$@
+       @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+  /\\$ @
+  $_ \$@
+ $ __/$@
+ \___|$@
+       @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ _)  _)$@
+  $_ \$ @
+ $ __/$ @
+ \___|$ @
+        @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ \_\$@
+  $|$@
+  $|$@
+  _|$@
+     @@
+237  LATIN SMALL LETTER I WITH ACUTE
+ _/$@
+ $|$@
+ $|$@
+ _|$@
+    @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+ /\\$@
+ $|$ @
+ $|$ @
+ _|$ @
+     @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ _)  _)$@
+   $|$  @
+   $|$  @
+   _|$  @
+        @@
+240  LATIN SMALL LETTER ETH
+   `  <$ @
+   \/\ |$@
+  $__` |$@
+ \____/$ @
+         @@
+241  LATIN SMALL LETTER N WITH TILDE
+  / _/$ @
+ $'_ \$ @
+ $|   |$@
+ _|  _|$@
+        @@
+242  LATIN SMALL LETTER O WITH GRAVE
+  \_\$  @
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+243  LATIN SMALL LETTER O WITH ACUTE
+   _/$  @
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+   /\\$ @
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+245  LATIN SMALL LETTER O WITH TILDE
+  / _/$ @
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+ _)  _)$@
+  $_ \$ @
+ $(   |$@
+ \___/$ @
+        @@
+247  DIVISION SIGN
+        @
+   _)$  @
+ _____|$@
+   _)$  @
+        @@
+248  LATIN SMALL LETTER O WITH STROKE
+         @
+  $_ /\$ @
+ $( /  |$@
+ \_/__/$ @
+         @@
+249  LATIN SMALL LETTER U WITH GRAVE
+  \_\$  @
+ $|   |$@
+ $|   |$@
+ \__,_|$@
+        @@
+250  LATIN SMALL LETTER U WITH ACUTE
+   _/$  @
+ $|   |$@
+ $|   |$@
+ \__,_|$@
+        @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   /\\$ @
+ $|   |$@
+ $|   |$@
+ \__,_|$@
+        @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+ _)  _)$@
+ $|   |$@
+ $|   |$@
+ \__,_|$@
+        @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+   _/$  @
+ $|   |$@
+ $|   |$@
+ \__, |$@
+ ____/$ @@
+254  LATIN SMALL LETTER THORN
+ $|$    @
+ $__ \$ @
+ $|   |$@
+ $.__/$ @
+ _|$    @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+ _)  _)$@
+ $|   |$@
+ $|   |$@
+ \__, |$@
+ ____/$ @@
--- /dev/null
+++ b/fonts/slant.flf
@@ -1,0 +1,1295 @@
+flf2a$ 6 5 16 15 10 0 18319 96
+Slant by Glenn Chappell 3/93 -- based on Standard
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+     $$@
+    $$ @
+   $$  @
+  $$   @
+ $$    @
+$$     @@
+    __@
+   / /@
+  / / @
+ /_/  @
+(_)   @
+      @@
+ _ _ @
+( | )@
+|/|/ @
+ $   @
+$    @
+     @@
+     __ __ @
+  __/ // /_@
+ /_  _  __/@
+/_  _  __/ @
+ /_//_/    @
+           @@
+     __@
+   _/ /@
+  / __/@
+ (_  ) @
+/  _/  @
+/_/    @@
+   _   __@
+  (_)_/_/@
+   _/_/  @
+ _/_/_   @
+/_/ (_)  @
+         @@
+   ___   @
+  ( _ )  @
+ / __ \/|@
+/ /_/  < @
+\____/\/ @
+         @@
+  _ @
+ ( )@
+ |/ @
+ $  @
+$   @
+    @@
+     __@
+   _/_/@
+  / /  @
+ / /   @
+/ /    @
+|_|    @@
+     _ @
+    | |@
+    / /@
+   / / @
+ _/_/  @
+/_/    @@
+       @
+  __/|_@
+ |    /@
+/_ __| @
+ |/    @
+       @@
+       @
+    __ @
+ __/ /_@
+/_  __/@
+ /_/   @
+       @@
+   @
+   @
+   @
+ _ @
+( )@
+|/ @@
+       @
+       @
+ ______@
+/_____/@
+  $    @
+       @@
+   @
+   @
+   @
+ _ @
+(_)@
+   @@
+       __@
+     _/_/@
+   _/_/  @
+ _/_/    @
+/_/      @
+         @@
+   ____ @
+  / __ \@
+ / / / /@
+/ /_/ / @
+\____/  @
+        @@
+   ___@
+  <  /@
+  / / @
+ / /  @
+/_/   @
+      @@
+   ___ @
+  |__ \@
+  __/ /@
+ / __/ @
+/____/ @
+       @@
+   _____@
+  |__  /@
+   /_ < @
+ ___/ / @
+/____/  @
+        @@
+   __ __@
+  / // /@
+ / // /_@
+/__  __/@
+  /_/   @
+        @@
+    ______@
+   / ____/@
+  /___ \  @
+ ____/ /  @
+/_____/   @
+          @@
+   _____@
+  / ___/@
+ / __ \ @
+/ /_/ / @
+\____/  @
+        @@
+ _____@
+/__  /@
+  / / @
+ / /  @
+/_/   @
+      @@
+   ____ @
+  ( __ )@
+ / __  |@
+/ /_/ / @
+\____/  @
+        @@
+   ____ @
+  / __ \@
+ / /_/ /@
+ \__, / @
+/____/  @
+        @@
+     @
+   _ @
+  (_)@
+ _   @
+(_)  @
+     @@
+     @
+   _ @
+  (_)@
+ _   @
+( )  @
+|/   @@
+  __@
+ / /@
+/ / @
+\ \ @
+ \_\@
+    @@
+       @
+  _____@
+ /____/@
+/____/ @
+  $    @
+       @@
+__  @
+\ \ @
+ \ \@
+ / /@
+/_/ @
+    @@
+  ___ @
+ /__ \@
+  / _/@
+ /_/  @
+(_)   @
+      @@
+   ______ @
+  / ____ \@
+ / / __ `/@
+/ / /_/ / @
+\ \__,_/  @
+ \____/   @@
+    ___ @
+   /   |@
+  / /| |@
+ / ___ |@
+/_/  |_|@
+        @@
+    ____ @
+   / __ )@
+  / __  |@
+ / /_/ / @
+/_____/  @
+         @@
+   ______@
+  / ____/@
+ / /     @
+/ /___   @
+\____/   @
+         @@
+    ____ @
+   / __ \@
+  / / / /@
+ / /_/ / @
+/_____/  @
+         @@
+    ______@
+   / ____/@
+  / __/   @
+ / /___   @
+/_____/   @
+          @@
+    ______@
+   / ____/@
+  / /_    @
+ / __/    @
+/_/       @
+          @@
+   ______@
+  / ____/@
+ / / __  @
+/ /_/ /  @
+\____/   @
+         @@
+    __  __@
+   / / / /@
+  / /_/ / @
+ / __  /  @
+/_/ /_/   @
+          @@
+    ____@
+   /  _/@
+   / /  @
+ _/ /   @
+/___/   @
+        @@
+       __@
+      / /@
+ __  / / @
+/ /_/ /  @
+\____/   @
+         @@
+    __ __@
+   / //_/@
+  / ,<   @
+ / /| |  @
+/_/ |_|  @
+         @@
+    __ @
+   / / @
+  / /  @
+ / /___@
+/_____/@
+       @@
+    __  ___@
+   /  |/  /@
+  / /|_/ / @
+ / /  / /  @
+/_/  /_/   @
+           @@
+    _   __@
+   / | / /@
+  /  |/ / @
+ / /|  /  @
+/_/ |_/   @
+          @@
+   ____ @
+  / __ \@
+ / / / /@
+/ /_/ / @
+\____/  @
+        @@
+    ____ @
+   / __ \@
+  / /_/ /@
+ / ____/ @
+/_/      @
+         @@
+   ____ @
+  / __ \@
+ / / / /@
+/ /_/ / @
+\___\_\ @
+        @@
+    ____ @
+   / __ \@
+  / /_/ /@
+ / _, _/ @
+/_/ |_|  @
+         @@
+   _____@
+  / ___/@
+  \__ \ @
+ ___/ / @
+/____/  @
+        @@
+  ______@
+ /_  __/@
+  / /   @
+ / /    @
+/_/     @
+        @@
+   __  __@
+  / / / /@
+ / / / / @
+/ /_/ /  @
+\____/   @
+         @@
+ _    __@
+| |  / /@
+| | / / @
+| |/ /  @
+|___/   @
+        @@
+ _       __@
+| |     / /@
+| | /| / / @
+| |/ |/ /  @
+|__/|__/   @
+           @@
+   _  __@
+  | |/ /@
+  |   / @
+ /   |  @
+/_/|_|  @
+        @@
+__  __@
+\ \/ /@
+ \  / @
+ / /  @
+/_/   @
+      @@
+ _____@
+/__  /@
+  / / @
+ / /__@
+/____/@
+      @@
+     ___@
+    / _/@
+   / /  @
+  / /   @
+ / /    @
+/__/    @@
+__    @
+\ \   @
+ \ \  @
+  \ \ @
+   \_\@
+      @@
+     ___@
+    /  /@
+    / / @
+   / /  @
+ _/ /   @
+/__/    @@
+  //|@
+ |/||@
+  $  @
+ $   @
+$    @
+     @@
+       @
+       @
+       @
+       @
+ ______@
+/_____/@@
+  _ @
+ ( )@
+  V @
+ $  @
+$   @
+    @@
+        @
+  ____ _@
+ / __ `/@
+/ /_/ / @
+\__,_/  @
+        @@
+    __  @
+   / /_ @
+  / __ \@
+ / /_/ /@
+/_.___/ @
+        @@
+       @
+  _____@
+ / ___/@
+/ /__  @
+\___/  @
+       @@
+       __@
+  ____/ /@
+ / __  / @
+/ /_/ /  @
+\__,_/   @
+         @@
+      @
+  ___ @
+ / _ \@
+/  __/@
+\___/ @
+      @@
+    ____@
+   / __/@
+  / /_  @
+ / __/  @
+/_/     @
+        @@
+         @
+   ____ _@
+  / __ `/@
+ / /_/ / @
+ \__, /  @
+/____/   @@
+    __  @
+   / /_ @
+  / __ \@
+ / / / /@
+/_/ /_/ @
+        @@
+    _ @
+   (_)@
+  / / @
+ / /  @
+/_/   @
+      @@
+       _ @
+      (_)@
+     / / @
+    / /  @
+ __/ /   @
+/___/    @@
+    __  @
+   / /__@
+  / //_/@
+ / ,<   @
+/_/|_|  @
+        @@
+    __@
+   / /@
+  / / @
+ / /  @
+/_/   @
+      @@
+            @
+   ____ ___ @
+  / __ `__ \@
+ / / / / / /@
+/_/ /_/ /_/ @
+            @@
+        @
+   ____ @
+  / __ \@
+ / / / /@
+/_/ /_/ @
+        @@
+       @
+  ____ @
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+         @
+    ____ @
+   / __ \@
+  / /_/ /@
+ / .___/ @
+/_/      @@
+        @
+  ____ _@
+ / __ `/@
+/ /_/ / @
+\__, /  @
+  /_/   @@
+        @
+   _____@
+  / ___/@
+ / /    @
+/_/     @
+        @@
+        @
+   _____@
+  / ___/@
+ (__  ) @
+/____/  @
+        @@
+   __ @
+  / /_@
+ / __/@
+/ /_  @
+\__/  @
+      @@
+        @
+  __  __@
+ / / / /@
+/ /_/ / @
+\__,_/  @
+        @@
+       @
+ _   __@
+| | / /@
+| |/ / @
+|___/  @
+       @@
+          @
+ _      __@
+| | /| / /@
+| |/ |/ / @
+|__/|__/  @
+          @@
+        @
+   _  __@
+  | |/_/@
+ _>  <  @
+/_/|_|  @
+        @@
+         @
+   __  __@
+  / / / /@
+ / /_/ / @
+ \__, /  @
+/____/   @@
+     @
+ ____@
+/_  /@
+ / /_@
+/___/@
+     @@
+     __@
+   _/_/@
+ _/_/  @
+< <    @
+/ /    @
+\_\    @@
+     __@
+    / /@
+   / / @
+  / /  @
+ / /   @
+/_/    @@
+     _ @
+    | |@
+    / /@
+   _>_>@
+ _/_/  @
+/_/    @@
+  /\//@
+ //\/ @
+  $   @
+ $    @
+$     @
+      @@
+    _  _ @
+   (_)(_)@
+  / _ |  @
+ / __ |  @
+/_/ |_|  @
+         @@
+   _   _ @
+  (_)_(_)@
+ / __ \  @
+/ /_/ /  @
+\____/   @
+         @@
+   _   _ @
+  (_) (_)@
+ / / / / @
+/ /_/ /  @
+\____/   @
+         @@
+   _   _ @
+  (_)_(_)@
+ / __ `/ @
+/ /_/ /  @
+\__,_/   @
+         @@
+   _   _ @
+  (_)_(_)@
+ / __ \  @
+/ /_/ /  @
+\____/   @
+         @@
+   _   _ @
+  (_) (_)@
+ / / / / @
+/ /_/ /  @
+\__,_/   @
+         @@
+     ____ @
+    / __ \@
+   / / / /@
+  / /_| | @
+ / //__/  @
+/_/       @@
+160  NO-BREAK SPACE
+     $$@
+    $$ @
+   $$  @
+  $$   @
+ $$    @
+$$     @@
+161  INVERTED EXCLAMATION MARK
+    _ @
+   (_)@
+  / / @
+ / /  @
+/_/   @
+      @@
+162  CENT SIGN
+     __@
+  __/ /@
+ / ___/@
+/ /__  @
+\  _/  @
+/_/    @@
+163  POUND SIGN
+     ____ @
+    / ,__\@
+ __/ /_   @
+ _/ /___  @
+(_,____/  @
+          @@
+164  CURRENCY SIGN
+    /|___/|@
+   | __  / @
+  / /_/ /  @
+ /___  |   @
+|/   |/    @
+           @@
+165  YEN SIGN
+    ____@
+  _| / /@
+ /_  __/@
+/_  __/ @
+ /_/    @
+        @@
+166  BROKEN BAR
+     __@
+    / /@
+   /_/ @
+  __   @
+ / /   @
+/_/    @@
+167  SECTION SIGN
+     __ @
+   _/ _)@
+  / | | @
+ | || | @
+ | |_/  @
+(__/    @@
+168  DIAERESIS
+  _   _ @
+ (_) (_)@
+  $   $ @
+ $   $  @
+$   $   @
+        @@
+169  COPYRIGHT SIGN
+    ______  @
+   / _____\ @
+  / / ___/ |@
+ / / /__  / @
+|  \___/ /  @
+ \______/   @@
+170  FEMININE ORDINAL INDICATOR
+   ___ _@
+  / _ `/@
+ _\_,_/ @
+/____/  @
+ $      @
+        @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+  ____@
+ / / /@
+/ / / @
+\ \ \ @
+ \_\_\@
+      @@
+172  NOT SIGN
+       @
+ ______@
+/___  /@
+   /_/ @
+ $     @
+       @@
+173  SOFT HYPHEN
+      @
+      @
+ _____@
+/____/@
+  $   @
+      @@
+174  REGISTERED SIGN
+    ______  @
+   / ___  \ @
+  / / _ \  |@
+ / / , _/ / @
+| /_/|_| /  @
+ \______/   @@
+175  MACRON
+ ______@
+/_____/@
+  $    @
+ $     @
+$      @
+       @@
+176  DEGREE SIGN
+  ___ @
+ / _ \@
+/ // /@
+\___/ @
+ $    @
+      @@
+177  PLUS-MINUS SIGN
+      __ @
+   __/ /_@
+  /_  __/@
+ __/_/_  @
+/_____/  @
+         @@
+178  SUPERSCRIPT TWO
+   ___ @
+  |_  |@
+ / __/ @
+/____/ @
+ $     @
+       @@
+179  SUPERSCRIPT THREE
+   ____@
+  |_  /@
+ _/_ < @
+/____/ @
+ $     @
+       @@
+180  ACUTE ACCENT
+  __@
+ /_/@
+  $ @
+ $  @
+$   @
+    @@
+181  MICRO SIGN
+          @
+    __  __@
+   / / / /@
+  / /_/ / @
+ / ._,_/  @
+/_/       @@
+182  PILCROW SIGN
+  _______@
+ / _    /@
+/ (/ / / @
+\_  / /  @
+ /_/_/   @
+         @@
+183  MIDDLE DOT
+   @
+ _ @
+(_)@
+ $ @
+$  @
+   @@
+184  CEDILLA
+   @
+   @
+   @
+   @
+ _ @
+/_)@@
+185  SUPERSCRIPT ONE
+  ___@
+ <  /@
+ / / @
+/_/  @
+$    @
+     @@
+186  MASCULINE ORDINAL INDICATOR
+   ___ @
+  / _ \@
+ _\___/@
+/____/ @
+ $     @
+       @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+____  @
+\ \ \ @
+ \ \ \@
+ / / /@
+/_/_/ @
+      @@
+188  VULGAR FRACTION ONE QUARTER
+  ___   __ @
+ <  / _/_/ @
+ / /_/_/___@
+/_//_// / /@
+ /_/ /_  _/@
+      /_/  @@
+189  VULGAR FRACTION ONE HALF
+  ___   __   @
+ <  / _/_/__ @
+ / /_/_/|_  |@
+/_//_/ / __/ @
+ /_/  /____/ @
+             @@
+190  VULGAR FRACTION THREE QUARTERS
+   ____    __ @
+  |_  /  _/_/ @
+ _/_ < _/_/___@
+/____//_// / /@
+    /_/ /_  _/@
+         /_/  @@
+191  INVERTED QUESTION MARK
+    _ @
+   (_)@
+ _/ / @
+/ _/_ @
+\___/ @
+      @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+    __ @
+   _\_\@
+  / _ |@
+ / __ |@
+/_/ |_|@
+       @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+     __@
+   _/_/@
+  / _ |@
+ / __ |@
+/_/ |_|@
+       @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+     //|@
+   _|/||@
+  / _ | @
+ / __ | @
+/_/ |_| @
+        @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+     /\//@
+   _//\/ @
+  / _ |  @
+ / __ |  @
+/_/ |_|  @
+         @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+    _  _ @
+   (_)(_)@
+  / _ |  @
+ / __ |  @
+/_/ |_|  @
+         @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+    (())@
+   /   |@
+  / /| |@
+ / ___ |@
+/_/  |_|@
+        @@
+198  LATIN CAPITAL LETTER AE
+    __________@
+   /     ____/@
+  / /|  __/   @
+ / __  /___   @
+/_/ /_____/   @
+              @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+   ______@
+  / ____/@
+ / /     @
+/ /___   @
+\____/   @
+ /_)     @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+    __ @
+   _\_\@
+  / __/@
+ / _/  @
+/___/  @
+       @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+     __@
+   _/_/@
+  / __/@
+ / _/  @
+/___/  @
+       @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+     //|@
+   _|/||@
+  / __/ @
+ / _/   @
+/___/   @
+        @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+    _  _ @
+   (_)(_)@
+  / __/  @
+ / _/    @
+/___/    @
+         @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+    __ @
+   _\_\@
+  /  _/@
+ _/ /  @
+/___/  @
+       @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+     __@
+   _/_/@
+  /  _/@
+ _/ /  @
+/___/  @
+       @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+     //|@
+   _|/||@
+  /  _/ @
+ _/ /   @
+/___/   @
+        @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+    _  _ @
+   (_)(_)@
+  /  _/  @
+ _/ /    @
+/___/    @
+         @@
+208  LATIN CAPITAL LETTER ETH
+     ____ @
+    / __ \@
+ __/ /_/ /@
+/_  __/ / @
+ /_____/  @
+          @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+     /\//@
+   _//\/ @
+  / |/ / @
+ /    /  @
+/_/|_/   @
+         @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+    __ @
+  __\_\@
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+     __@
+  __/_/@
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    //|@
+  _|/||@
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+    /\//@
+  _//\/ @
+ / __ \ @
+/ /_/ / @
+\____/  @
+        @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+   _   _ @
+  (_)_(_)@
+ / __ \  @
+/ /_/ /  @
+\____/   @
+         @@
+215  MULTIPLICATION SIGN
+     @
+     @
+ /|/|@
+ > < @
+|/|/ @
+     @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   _____ @
+  / _// \@
+ / //// /@
+/ //// / @
+\_//__/  @
+         @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+    __  @
+  __\_\_@
+ / / / /@
+/ /_/ / @
+\____/  @
+        @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+     __ @
+  __/_/_@
+ / / / /@
+/ /_/ / @
+\____/  @
+        @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    //| @
+  _|/||_@
+ / / / /@
+/ /_/ / @
+\____/  @
+        @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+   _   _ @
+  (_) (_)@
+ / / / / @
+/ /_/ /  @
+\____/   @
+         @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+   __ @
+__/_/_@
+\ \/ /@
+ \  / @
+ /_/  @
+      @@
+222  LATIN CAPITAL LETTER THORN
+    __  @
+   / /_ @
+  / __ \@
+ / ____/@
+/_/     @
+        @@
+223  LATIN SMALL LETTER SHARP S
+     ____ @
+    / __ \@
+   / / / /@
+  / /_| | @
+ / //__/  @
+/_/       @@
+224  LATIN SMALL LETTER A WITH GRAVE
+    __  @
+  __\_\_@
+ / __ `/@
+/ /_/ / @
+\__,_/  @
+        @@
+225  LATIN SMALL LETTER A WITH ACUTE
+     __ @
+  __/_/_@
+ / __ `/@
+/ /_/ / @
+\__,_/  @
+        @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    //| @
+  _|/||_@
+ / __ `/@
+/ /_/ / @
+\__,_/  @
+        @@
+227  LATIN SMALL LETTER A WITH TILDE
+    /\//@
+  _//\/_@
+ / __ `/@
+/ /_/ / @
+\__,_/  @
+        @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+   _   _ @
+  (_)_(_)@
+ / __ `/ @
+/ /_/ /  @
+\__,_/   @
+         @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+     __ @
+  __(())@
+ / __ `/@
+/ /_/ / @
+\__,_/  @
+        @@
+230  LATIN SMALL LETTER AE
+           @
+  ____ ___ @
+ / __ ` _ \@
+/ /_/   __/@
+\__,_____/ @
+           @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+       @
+  _____@
+ / ___/@
+/ /__  @
+\___/  @
+/_)    @@
+232  LATIN SMALL LETTER E WITH GRAVE
+   __ @
+  _\_\@
+ / _ \@
+/  __/@
+\___/ @
+      @@
+233  LATIN SMALL LETTER E WITH ACUTE
+    __@
+  _/_/@
+ / _ \@
+/  __/@
+\___/ @
+      @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    //|@
+  _|/||@
+ / _ \ @
+/  __/ @
+\___/  @
+       @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+   _  _ @
+  (_)(_)@
+ / _ \  @
+/  __/  @
+\___/   @
+        @@
+236  LATIN SMALL LETTER I WITH GRAVE
+   __ @
+   \_\@
+  / / @
+ / /  @
+/_/   @
+      @@
+237  LATIN SMALL LETTER I WITH ACUTE
+    __@
+   /_/@
+  / / @
+ / /  @
+/_/   @
+      @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    //|@
+   |/||@
+  / /  @
+ / /   @
+/_/    @
+       @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / /   @
+ / /    @
+/_/     @
+        @@
+240  LATIN SMALL LETTER ETH
+     || @
+    =||=@
+ ___ || @
+/ __` | @
+\____/  @
+        @@
+241  LATIN SMALL LETTER N WITH TILDE
+     /\//@
+   _//\/ @
+  / __ \ @
+ / / / / @
+/_/ /_/  @
+         @@
+242  LATIN SMALL LETTER O WITH GRAVE
+    __ @
+  __\_\@
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+243  LATIN SMALL LETTER O WITH ACUTE
+     __@
+  __/_/@
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    //|@
+  _|/||@
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+245  LATIN SMALL LETTER O WITH TILDE
+    /\//@
+  _//\/ @
+ / __ \ @
+/ /_/ / @
+\____/  @
+        @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+   _   _ @
+  (_)_(_)@
+ / __ \  @
+/ /_/ /  @
+\____/   @
+         @@
+247  DIVISION SIGN
+       @
+    _  @
+ __(_)_@
+/_____/@
+ (_)   @
+       @@
+248  LATIN SMALL LETTER O WITH STROKE
+        @
+  _____ @
+ / _// \@
+/ //// /@
+\_//__/ @
+        @@
+249  LATIN SMALL LETTER U WITH GRAVE
+    __  @
+  __\_\_@
+ / / / /@
+/ /_/ / @
+\__,_/  @
+        @@
+250  LATIN SMALL LETTER U WITH ACUTE
+     __ @
+  __/_/_@
+ / / / /@
+/ /_/ / @
+\__,_/  @
+        @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    //| @
+  _|/||_@
+ / / / /@
+/ /_/ / @
+\__,_/  @
+        @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+   _   _ @
+  (_) (_)@
+ / / / / @
+/ /_/ /  @
+\__,_/   @
+         @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+      __ @
+   __/_/_@
+  / / / /@
+ / /_/ / @
+ \__, /  @
+/____/   @@
+254  LATIN SMALL LETTER THORN
+     __  @
+    / /_ @
+   / __ \@
+  / /_/ /@
+ / .___/ @
+/_/      @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+    _   _ @
+   (_) (_)@
+  / / / / @
+ / /_/ /  @
+ \__, /   @
+/____/    @@
--- /dev/null
+++ b/fonts/small.flf
@@ -1,0 +1,1097 @@
+flf2a$ 5 4 13 15 10 0 22415 96
+Small by Glenn Chappell 4/93 -- based on Standard
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+ $@
+ $@
+ $@
+ $@
+ $@@
+  _ @
+ | |@
+ |_|@
+ (_)@
+    @@
+  _ _ @
+ ( | )@
+  V V @
+   $  @
+      @@
+    _ _   @
+  _| | |_ @
+ |_  .  _|@
+ |_     _|@
+   |_|_|  @@
+     @
+  ||_@
+ (_-<@
+ / _/@
+  || @@
+  _  __ @
+ (_)/ / @
+   / /_ @
+  /_/(_)@
+        @@
+  __     @
+ / _|___ @
+ > _|_ _|@
+ \_____| @
+         @@
+  _ @
+ ( )@
+ |/ @
+  $ @
+    @@
+   __@
+  / /@
+ | | @
+ | | @
+  \_\@@
+ __  @
+ \ \ @
+  | |@
+  | |@
+ /_/ @@
+     @
+ _/\_@
+ >  <@
+  \/ @
+     @@
+    _   @
+  _| |_ @
+ |_   _|@
+   |_|  @
+        @@
+    @
+    @
+  _ @
+ ( )@
+ |/ @@
+      @
+  ___ @
+ |___|@
+   $  @
+      @@
+    @
+    @
+  _ @
+ (_)@
+    @@
+    __@
+   / /@
+  / / @
+ /_/  @
+      @@
+   __  @
+  /  \ @
+ | () |@
+  \__/ @
+       @@
+  _ @
+ / |@
+ | |@
+ |_|@
+    @@
+  ___ @
+ |_  )@
+  / / @
+ /___|@
+      @@
+  ____@
+ |__ /@
+  |_ \@
+ |___/@
+      @@
+  _ _  @
+ | | | @
+ |_  _|@
+   |_| @
+       @@
+  ___ @
+ | __|@
+ |__ \@
+ |___/@
+      @@
+   __ @
+  / / @
+ / _ \@
+ \___/@
+      @@
+  ____ @
+ |__  |@
+   / / @
+  /_/  @
+       @@
+  ___ @
+ ( _ )@
+ / _ \@
+ \___/@
+      @@
+  ___ @
+ / _ \@
+ \_, /@
+  /_/ @
+      @@
+  _ @
+ (_)@
+  _ @
+ (_)@
+    @@
+  _ @
+ (_)@
+  _ @
+ ( )@
+ |/ @@
+   __@
+  / /@
+ < < @
+  \_\@
+     @@
+      @
+  ___ @
+ |___|@
+ |___|@
+      @@
+ __  @
+ \ \ @
+  > >@
+ /_/ @
+     @@
+  ___ @
+ |__ \@
+   /_/@
+  (_) @
+      @@
+   ____  @
+  / __ \ @
+ / / _` |@
+ \ \__,_|@
+  \____/ @@
+    _   @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+  ___ @
+ | _ )@
+ | _ \@
+ |___/@
+      @@
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+       @@
+  ___  @
+ |   \ @
+ | |) |@
+ |___/ @
+       @@
+  ___ @
+ | __|@
+ | _| @
+ |___|@
+      @@
+  ___ @
+ | __|@
+ | _| @
+ |_|  @
+      @@
+   ___ @
+  / __|@
+ | (_ |@
+  \___|@
+       @@
+  _  _ @
+ | || |@
+ | __ |@
+ |_||_|@
+       @@
+  ___ @
+ |_ _|@
+  | | @
+ |___|@
+      @@
+     _ @
+  _ | |@
+ | || |@
+  \__/ @
+       @@
+  _  __@
+ | |/ /@
+ | ' < @
+ |_|\_\@
+       @@
+  _    @
+ | |   @
+ | |__ @
+ |____|@
+       @@
+  __  __ @
+ |  \/  |@
+ | |\/| |@
+ |_|  |_|@
+         @@
+  _  _ @
+ | \| |@
+ | .` |@
+ |_|\_|@
+       @@
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+  ___ @
+ | _ \@
+ |  _/@
+ |_|  @
+      @@
+   ___  @
+  / _ \ @
+ | (_) |@
+  \__\_\@
+        @@
+  ___ @
+ | _ \@
+ |   /@
+ |_|_\@
+      @@
+  ___ @
+ / __|@
+ \__ \@
+ |___/@
+      @@
+  _____ @
+ |_   _|@
+   | |  @
+   |_|  @
+        @@
+  _   _ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+ __   __@
+ \ \ / /@
+  \ V / @
+   \_/  @
+        @@
+ __      __@
+ \ \    / /@
+  \ \/\/ / @
+   \_/\_/  @
+           @@
+ __  __@
+ \ \/ /@
+  >  < @
+ /_/\_\@
+       @@
+ __   __@
+ \ \ / /@
+  \ V / @
+   |_|  @
+        @@
+  ____@
+ |_  /@
+  / / @
+ /___|@
+      @@
+  __ @
+ | _|@
+ | | @
+ | | @
+ |__|@@
+ __   @
+ \ \  @
+  \ \ @
+   \_\@
+      @@
+  __ @
+ |_ |@
+  | |@
+  | |@
+ |__|@@
+  /\ @
+ |/\|@
+   $ @
+   $ @
+     @@
+      @
+      @
+      @
+  ___ @
+ |___|@@
+  _ @
+ ( )@
+  \|@
+  $ @
+    @@
+       @
+  __ _ @
+ / _` |@
+ \__,_|@
+       @@
+  _    @
+ | |__ @
+ | '_ \@
+ |_.__/@
+       @@
+     @
+  __ @
+ / _|@
+ \__|@
+     @@
+     _ @
+  __| |@
+ / _` |@
+ \__,_|@
+       @@
+      @
+  ___ @
+ / -_)@
+ \___|@
+      @@
+   __ @
+  / _|@
+ |  _|@
+ |_|  @
+      @@
+       @
+  __ _ @
+ / _` |@
+ \__, |@
+ |___/ @@
+  _    @
+ | |_  @
+ | ' \ @
+ |_||_|@
+       @@
+  _ @
+ (_)@
+ | |@
+ |_|@
+    @@
+    _ @
+   (_)@
+   | |@
+  _/ |@
+ |__/ @@
+  _   @
+ | |__@
+ | / /@
+ |_\_\@
+      @@
+  _ @
+ | |@
+ | |@
+ |_|@
+    @@
+        @
+  _ __  @
+ | '  \ @
+ |_|_|_|@
+        @@
+       @
+  _ _  @
+ | ' \ @
+ |_||_|@
+       @@
+      @
+  ___ @
+ / _ \@
+ \___/@
+      @@
+       @
+  _ __ @
+ | '_ \@
+ | .__/@
+ |_|   @@
+       @
+  __ _ @
+ / _` |@
+ \__, |@
+    |_|@@
+      @
+  _ _ @
+ | '_|@
+ |_|  @
+      @@
+     @
+  ___@
+ (_-<@
+ /__/@
+     @@
+  _   @
+ | |_ @
+ |  _|@
+  \__|@
+      @@
+       @
+  _  _ @
+ | || |@
+  \_,_|@
+       @@
+      @
+ __ __@
+ \ V /@
+  \_/ @
+      @@
+         @
+ __ __ __@
+ \ V  V /@
+  \_/\_/ @
+         @@
+      @
+ __ __@
+ \ \ /@
+ /_\_\@
+      @@
+       @
+  _  _ @
+ | || |@
+  \_, |@
+  |__/ @@
+     @
+  ___@
+ |_ /@
+ /__|@
+     @@
+    __@
+   / /@
+ _| | @
+  | | @
+   \_\@@
+  _ @
+ | |@
+ | |@
+ | |@
+ |_|@@
+ __   @
+ \ \  @
+  | |_@
+  | | @
+ /_/  @@
+  /\/|@
+ |/\/ @
+   $  @
+   $  @
+      @@
+  _  _ @
+ (_)(_)@
+  /--\ @
+ /_/\_\@
+       @@
+  _  _ @
+ (_)(_)@
+ / __ \@
+ \____/@
+       @@
+  _   _ @
+ (_) (_)@
+ | |_| |@
+  \___/ @
+        @@
+  _  _ @
+ (_)(_)@
+ / _` |@
+ \__,_|@
+       @@
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+  \___/ @
+        @@
+  _  _ @
+ (_)(_)@
+ | || |@
+  \_,_|@
+       @@
+   ___ @
+  / _ \@
+ | |< <@
+ | ||_/@
+ |_|   @@
+160  NO-BREAK SPACE
+ $@
+ $@
+ $@
+ $@
+ $@@
+161  INVERTED EXCLAMATION MARK
+  _ @
+ (_)@
+ | |@
+ |_|@
+    @@
+162  CENT SIGN
+     @
+  || @
+ / _)@
+ \ _)@
+  || @@
+163  POUND SIGN
+    __  @
+  _/ _\ @
+ |_ _|_ @
+ (_,___|@
+        @@
+164  CURRENCY SIGN
+ /\_/\@
+ \ . /@
+ / _ \@
+ \/ \/@
+      @@
+165  YEN SIGN
+  __ __ @
+  \ V / @
+ |__ __|@
+ |__ __|@
+   |_|  @@
+166  BROKEN BAR
+  _ @
+ | |@
+ |_|@
+ | |@
+ |_|@@
+167  SECTION SIGN
+    __ @
+   / _)@
+  /\ \ @
+  \ \/ @
+ (__/  @@
+168  DIAERESIS
+  _  _ @
+ (_)(_)@
+  $  $ @
+  $  $ @
+       @@
+169  COPYRIGHT SIGN
+   ____  @
+  / __ \ @
+ / / _| \@
+ \ \__| /@
+  \____/ @@
+170  FEMININE ORDINAL INDICATOR
+  __ _ @
+ / _` |@
+ \__,_|@
+ |____|@
+       @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+   ____@
+  / / /@
+ < < < @
+  \_\_\@
+       @@
+172  NOT SIGN
+  ____ @
+ |__  |@
+    |_|@
+   $   @
+       @@
+173  SOFT HYPHEN
+     @
+  __ @
+ |__|@
+   $ @
+     @@
+174  REGISTERED SIGN
+   ____  @
+  / __ \ @
+ / | -) \@
+ \ ||\\ /@
+  \____/ @@
+175  MACRON
+  ___ @
+ |___|@
+   $  @
+   $  @
+      @@
+176  DEGREE SIGN
+  _ @
+ /.\@
+ \_/@
+  $ @
+    @@
+177  PLUS-MINUS SIGN
+    _   @
+  _| |_ @
+ |_   _|@
+  _|_|_ @
+ |_____|@@
+178  SUPERSCRIPT TWO
+  __ @
+ |_ )@
+ /__|@
+   $ @
+     @@
+179  SUPERSCRIPT THREE
+  ___@
+ |_ /@
+ |__)@
+   $ @
+     @@
+180  ACUTE ACCENT
+  __@
+ /_/@
+  $ @
+  $ @
+    @@
+181  MICRO SIGN
+       @
+  _  _ @
+ | || |@
+ | .,_|@
+ |_|   @@
+182  PILCROW SIGN
+  ____ @
+ /    |@
+ \_ | |@
+  |_|_|@
+       @@
+183  MIDDLE DOT
+    @
+  _ @
+ (_)@
+  $ @
+    @@
+184  CEDILLA
+    @
+    @
+    @
+  _ @
+ )_)@@
+185  SUPERSCRIPT ONE
+  _ @
+ / |@
+ |_|@
+  $ @
+    @@
+186  MASCULINE ORDINAL INDICATOR
+  ___ @
+ / _ \@
+ \___/@
+ |___|@
+      @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ____  @
+ \ \ \ @
+  > > >@
+ /_/_/ @
+       @@
+188  VULGAR FRACTION ONE QUARTER
+  _  __   @
+ / |/ /__ @
+ |_/ /_' |@
+  /_/  |_|@
+          @@
+189  VULGAR FRACTION ONE HALF
+  _  __  @
+ / |/ /_ @
+ |_/ /_ )@
+  /_//__|@
+         @@
+190  VULGAR FRACTION THREE QUARTERS
+  ___ __   @
+ |_ // /__ @
+ |__) /_' |@
+   /_/  |_|@
+           @@
+191  INVERTED QUESTION MARK
+   _  @
+  (_) @
+ / /_ @
+ \___|@
+      @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+  __   @
+  \_\  @
+  /--\ @
+ /_/\_\@
+       @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+    __ @
+   /_/ @
+  /--\ @
+ /_/\_\@
+       @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+   /\  @
+  |/\| @
+  /--\ @
+ /_/\_\@
+       @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+   /\/|@
+  |/\/ @
+  /--\ @
+ /_/\_\@
+       @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+  /--\ @
+ /_/\_\@
+       @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+   __  @
+  (()) @
+  /--\ @
+ /_/\_\@
+       @@
+198  LATIN CAPITAL LETTER AE
+    ____ @
+   /, __|@
+  / _ _| @
+ /_/|___|@
+         @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+   )_) @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+  __ @
+  \_\@
+ | -<@
+ |__<@
+     @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+   __@
+  /_/@
+ | -<@
+ |__<@
+     @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+  /\ @
+ |/\|@
+ | -<@
+ |__<@
+     @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+  | -< @
+  |__< @
+       @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+  __  @
+  \_\ @
+ |_ _|@
+ |___|@
+      @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+   __ @
+  /_/ @
+ |_ _|@
+ |___|@
+      @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+  //\ @
+ |/_\|@
+ |_ _|@
+ |___|@
+      @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  |_ _| @
+  |___| @
+        @@
+208  LATIN CAPITAL LETTER ETH
+   ____  @
+  | __ \ @
+ |_ _|) |@
+  |____/ @
+         @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+   /\/|@
+  |/\/ @
+ | \| |@
+ |_|\_|@
+       @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+  __   @
+  \_\_ @
+ / __ \@
+ \____/@
+       @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+    __ @
+  _/_/ @
+ / __ \@
+ \____/@
+       @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   /\  @
+  |/\| @
+ / __ \@
+ \____/@
+       @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+   /\/|@
+  |/\/ @
+ / __ \@
+ \____/@
+       @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+ / __ \@
+ \____/@
+       @@
+215  MULTIPLICATION SIGN
+     @
+ /\/\@
+ >  <@
+ \/\/@
+     @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   ____  @
+  / _//\ @
+ | (//) |@
+  \//__/ @
+         @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+   __   @
+  _\_\_ @
+ | |_| |@
+  \___/ @
+        @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+    __  @
+  _/_/_ @
+ | |_| |@
+  \___/ @
+        @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+ | |_| |@
+  \___/ @
+        @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | |_| |@
+  \___/ @
+        @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+   __ @
+ _/_/_@
+ \ V /@
+  |_| @
+      @@
+222  LATIN CAPITAL LETTER THORN
+  _   @
+ | |_ @
+ | -_)@
+ |_|  @
+      @@
+223  LATIN SMALL LETTER SHARP S
+   ___ @
+  / _ \@
+ | |< <@
+ | ||_/@
+ |_|   @@
+224  LATIN SMALL LETTER A WITH GRAVE
+  __   @
+  \_\_ @
+ / _` |@
+ \__,_|@
+       @@
+225  LATIN SMALL LETTER A WITH ACUTE
+    __ @
+  _/_/ @
+ / _` |@
+ \__,_|@
+       @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+   /\  @
+  |/\| @
+ / _` |@
+ \__,_|@
+       @@
+227  LATIN SMALL LETTER A WITH TILDE
+   /\/|@
+  |/\/ @
+ / _` |@
+ \__,_|@
+       @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+ / _` |@
+ \__,_|@
+       @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+   __  @
+  (()) @
+ / _` |@
+ \__,_|@
+       @@
+230  LATIN SMALL LETTER AE
+         @
+  __ ___ @
+ / _` -_)@
+ \__,___|@
+         @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+     @
+  __ @
+ / _|@
+ \__|@
+  )_)@@
+232  LATIN SMALL LETTER E WITH GRAVE
+  __  @
+  \_\ @
+ / -_)@
+ \___|@
+      @@
+233  LATIN SMALL LETTER E WITH ACUTE
+   __ @
+  /_/ @
+ / -_)@
+ \___|@
+      @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+  //\ @
+ |/_\|@
+ / -_)@
+ \___|@
+      @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / -_) @
+  \___| @
+        @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ __ @
+ \_\@
+ | |@
+ |_|@
+    @@
+237  LATIN SMALL LETTER I WITH ACUTE
+  __@
+ /_/@
+ | |@
+ |_|@
+    @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+  //\ @
+ |/_\|@
+  | | @
+  |_| @
+      @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+   | |  @
+   |_|  @
+        @@
+240  LATIN SMALL LETTER ETH
+  \\/\ @
+  \/\\ @
+ / _` |@
+ \___/ @
+       @@
+241  LATIN SMALL LETTER N WITH TILDE
+  /\/| @
+ |/\/  @
+ | ' \ @
+ |_||_|@
+       @@
+242  LATIN SMALL LETTER O WITH GRAVE
+  __  @
+  \_\ @
+ / _ \@
+ \___/@
+      @@
+243  LATIN SMALL LETTER O WITH ACUTE
+   __ @
+  /_/ @
+ / _ \@
+ \___/@
+      @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+  //\ @
+ |/_\|@
+ / _ \@
+ \___/@
+      @@
+245  LATIN SMALL LETTER O WITH TILDE
+  /\/|@
+ |/\/ @
+ / _ \@
+ \___/@
+      @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+  \___/ @
+        @@
+247  DIVISION SIGN
+   _  @
+  (_) @
+ |___|@
+  (_) @
+      @@
+248  LATIN SMALL LETTER O WITH STROKE
+      @
+  ___ @
+ / //\@
+ \//_/@
+      @@
+249  LATIN SMALL LETTER U WITH GRAVE
+  __   @
+  \_\_ @
+ | || |@
+  \_,_|@
+       @@
+250  LATIN SMALL LETTER U WITH ACUTE
+    __ @
+  _/_/ @
+ | || |@
+  \_,_|@
+       @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   /\  @
+  |/\| @
+ | || |@
+  \_,_|@
+       @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+ | || |@
+  \_,_|@
+       @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+    __ @
+  _/_/ @
+ | || |@
+  \_, |@
+  |__/ @@
+254  LATIN SMALL LETTER THORN
+  _    @
+ | |__ @
+ | '_ \@
+ | .__/@
+ |_|   @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+ | || |@
+  \_, |@
+  |__/ @@
--- /dev/null
+++ b/fonts/smscript.flf
@@ -1,0 +1,1097 @@
+flf2a$ 5 4 13 0 10 0 3904 96
+SmScript by Glenn Chappell 4/93 -- based on Script
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+$ $@
+$ $@
+$ $@
+$ $@
+$ $@@
+  @
+ |@
+ |@
+ o@
+  @@
+ oo@
+ ||@
+  $@
+  $@
+   @@
+      @
+ _|_|_@
+ _|_|_@
+  | | @
+      @@
+      @
+  |_|_@
+ (|_| @
+ _|_|)@
+  | | @@
+      @
+ () / @
+   /  @
+  / ()@
+      @@
+    @
+ () @
+ /\/@
+ \/\@
+    @@
+ o@
+ /@
+ $@
+ $@
+  @@
+   @
+  /@
+ | @
+ | @
+  \@@
+   @
+ \ @
+  |@
+  |@
+ / @@
+      @
+  \|/ @
+ --*--@
+  /|\ @
+      @@
+      @
+   |  @
+ --+--@
+   |  @
+      @@
+  @
+  @
+  @
+ o@
+ /@@
+     @
+     @
+ ----@
+   $ @
+     @@
+  @
+  @
+  @
+ o@
+  @@
+    @
+   /@
+  / @
+ /  @
+    @@
+   _  @
+  / \ @
+ |   |@
+  \_/ @
+      @@
+  ,@
+ /|@
+  |@
+  |@
+   @@
+  _ @
+ / )@
+  / @
+ /__@
+    @@
+ ____@
+  __/@
+  $ \@
+ \__/@
+     @@
+      @
+ |  | @
+ |__|_@
+    | @
+      @@
+  ___@
+ |__ @
+  $ \@
+ \__/@
+     @@
+   _ @
+  /_ @
+ |/ \@
+  \_/@
+     @@
+ ____@
+   $/@
+   / @
+  /  @
+     @@
+  __ @
+ (__)@
+ /  \@
+ \__/@
+     @@
+  __ @
+ /  |@
+ \_/|@
+    |@
+     @@
+  @
+ o@
+ $@
+ o@
+  @@
+  @
+ o@
+ $@
+ o@
+ /@@
+   @
+  /@
+ < @
+  \@
+   @@
+     @
+ ____@
+ ____@
+   $ @
+     @@
+   @
+ \ @
+  >@
+ / @
+   @@
+ __ @
+   )@
+  | @
+  o @
+    @@
+   ____  @
+  / __,\ @
+ | /  | |@
+ | \_/|/ @
+  \____/ @@
+   __,  @
+  /  |  @
+ |   |  @
+  \_/\_/@
+        @@
+  , _ @
+ /|/_)@
+  |  \@
+  |(_/@
+      @@
+   __$ @
+  / () @
+ |  $  @
+  \___/@
+       @@
+ $___  @
+ (|  \ @
+  |   |@
+ (\__/ @
+       @@
+  __$ @
+ / () @
+ >-$  @
+ \___/@
+      @@
+ $_____@
+ () |_$@
+   /| |@
+  (/   @
+       @@
+      @
+  () |@
+  /\/|@
+ /(_/ @
+      @@
+  ,    @
+ /|  | @
+  |--| @
+  |  |)@
+       @@
+      @
+   |\ @
+ _ |/ @
+ \_/\/@
+      @@
+     @
+  /| @
+ | | @
+  \|/@
+  (| @@
+  ,  , @
+ /|_/  @
+  |\   @
+  | \_/@
+       @@
+   $   @
+ \_|)  @
+   |   @
+  (\__/@
+       @@
+  ,_ _   @
+ /| | |  @
+  | | |  @
+  | | |_/@
+         @@
+  ,     @
+ /|/\   @
+  |  |  @
+  |  |_/@
+        @@
+   __  @
+  /\_\/@
+ |    |@
+  \__/ @
+       @@
+  , _ @
+ /|/ \@
+  |__/@
+  |  $@
+      @@
+   __    @
+  /__\   @
+ |/  \|  @
+  \__/\_/@
+         @@
+  , _  @
+ /|/ \ @
+  |__/ @
+  | \_/@
+       @@
+     @
+  () @
+  /\ @
+ /(_)@
+     @@
+ $_____@
+ () |  @
+   $|  @
+  (/   @
+       @@
+         @
+ (|   |  @
+  |   |  @
+   \_/\_/@
+         @@
+        @
+ (|  |_/@
+  |  |  @
+   \/   @
+        @@
+           @
+ (|  |  |_/@
+  |  |  |  @
+   \/ \/   @
+           @@
+        @
+ (\  /  @
+   ><   @
+ _/  \_/@
+        @@
+       @
+ (|  | @
+  |  | @
+   \/|/@
+    (| @@
+  _  @
+ / ) @
+  /  @
+ /__/@
+  (| @@
+  _@
+ | @
+ | @
+ | @
+ |_@@
+    @
+ \  @
+  \ @
+   \@
+    @@
+ _ @
+  |@
+  |@
+  |@
+ _|@@
+ /\@
+  $@
+  $@
+  $@
+   @@
+     @
+     @
+     @
+   $ @
+ ____@@
+ o@
+ \@
+ $@
+ $@
+  @@
+      @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+     @
+ |)  @
+ |/\_@
+  \/ @
+     @@
+     @
+  _  @
+ /   @
+ \__/@
+     @@
+      @
+  _|  @
+ / |  @
+ \/|_/@
+      @@
+    @
+  _ @
+ |/ @
+ |_/@
+    @@
+    @
+ |\ @
+ |/ @
+ |_/@
+ |) @@
+     @
+  _, @
+ / | @
+ \/|/@
+  (| @@
+      @
+ |)   @
+ |/\  @
+ |  |/@
+      @@
+   @
+ o @
+ | @
+ |/@
+   @@
+    @
+  o @
+  | @
+  |/@
+ (| @@
+     @
+ |)  @
+ |/) @
+ | \/@
+     @@
+    @
+ |\ @
+ |/ @
+ |_/@
+    @@
+         @
+         @
+ /|/|/|  @
+ $| | |_/@
+         @@
+       @
+       @
+ /|/|  @
+ $| |_/@
+       @@
+     @
+  _  @
+ / \_@
+ \_/ @
+     @@
+      @
+      @
+  |/\_@
+  |_/ @
+ (|   @@
+      @
+  _,  @
+ / |  @
+ \/|_/@
+   |) @@
+      @
+  ,_  @
+ /  | @
+ $  |/@
+      @@
+     @
+  ,  @
+ / \_@
+ $\/ @
+     @@
+     @
+ _|_ @
+  |  @
+  |_/@
+     @@
+       @
+       @
+ |  |  @
+ $\/|_/@
+       @@
+      @
+      @
+ |  |_@
+ $\/  @
+      @@
+         @
+         @
+ |  |  |_@
+ $\/ \/  @
+         @@
+     @
+     @
+ /\/ @
+ $/\/@
+     @@
+      @
+      @
+ |  | @
+ $\/|/@
+   (| @@
+      @
+  __  @
+ / / _@
+ $/_/ @
+   (| @@
+    @
+   /@
+ _| @
+  | @
+   \@@
+ |@
+ |@
+ |@
+ |@
+ |@@
+    @
+ \  @
+  |_@
+  | @
+ /  @@
+ /\/@
+  $ @
+  $ @
+  $ @
+    @@
+ o  o  @
+  __,  @
+ /  |  @
+ \_/\_/@
+       @@
+ o  o @
+  __  @
+ /\_\/@
+ \__/ @
+      @@
+   /\/   @
+         @
+ (|   |  @
+   \_/\_/@
+         @@
+ o o  @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+ o o @
+  _  @
+ / \_@
+ \_/ @
+     @@
+ o  o  @
+       @
+ |  |  @
+ $\/|_/@
+       @@
+  _ @
+ | \@
+ | <@
+ |_/@
+ |  @@
+160  NO-BREAK SPACE
+ $@
+ $@
+ $@
+ $@
+ $@@
+161  INVERTED EXCLAMATION MARK
+  @
+ o@
+ |@
+ |@
+  @@
+162  CENT SIGN
+      @
+  _|_ @
+ / |  @
+ \_|_/@
+   |  @@
+163  POUND SIGN
+   _  @
+ _|_` @
+  |   @
+ (\__/@
+      @@
+164  CURRENCY SIGN
+ \ _ /@
+  / \ @
+  \_/ @
+ /   \@
+      @@
+165  YEN SIGN
+ \   /@
+ _\_/_@
+ __|__@
+   |  @
+      @@
+166  BROKEN BAR
+ |@
+ |@
+  @
+ |@
+ |@@
+167  SECTION SIGN
+  _@
+ ( @
+ ()@
+ _)@
+   @@
+168  DIAERESIS
+ o o@
+ $ $@
+ $ $@
+ $ $@
+    @@
+169  COPYRIGHT SIGN
+   ____  @
+  / __ \ @
+ | / () |@
+ | \__/ |@
+  \____/ @@
+170  FEMININE ORDINAL INDICATOR
+  _, @
+ (_|_@
+ --- @
+  $  @
+     @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    @
+  //@
+ << @
+  \\@
+    @@
+172  NOT SIGN
+    @
+ __ @
+   |@
+  $ @
+    @@
+173  SOFT HYPHEN
+    @
+    @
+ ---@
+  $ @
+    @@
+174  REGISTERED SIGN
+   ____  @
+  / ,_ \ @
+ | /|_) |@
+ |  |\/ |@
+  \____/ @@
+175  MACRON
+ ____@
+   $ @
+   $ @
+   $ @
+     @@
+176  DEGREE SIGN
+ ()@
+  $@
+  $@
+  $@
+   @@
+177  PLUS-MINUS SIGN
+      @
+   |  @
+ --+--@
+ __|__@
+      @@
+178  SUPERSCRIPT TWO
+ _ @
+  )@
+ /_@
+  $@
+   @@
+179  SUPERSCRIPT THREE
+ ___@
+  _/@
+ __)@
+  $ @
+    @@
+180  ACUTE ACCENT
+ /@
+ $@
+ $@
+ $@
+  @@
+181  MICRO SIGN
+       @
+       @
+ |  |  @
+ |\/|_/@
+ |     @@
+182  PILCROW SIGN
+  ___ @
+ / | |@
+ \_| |@
+   | |@
+      @@
+183  MIDDLE DOT
+    @
+    @
+ $O$@
+  $ @
+    @@
+184  CEDILLA
+   @
+   @
+   @
+ $ @
+ _)@@
+185  SUPERSCRIPT ONE
+  ,@
+ /|@
+  |@
+  $@
+   @@
+186  MASCULINE ORDINAL INDICATOR
+  __@
+ (_)@
+ ---@
+  $ @
+    @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    @
+ \\ @
+  >>@
+ // @
+    @@
+188  VULGAR FRACTION ONE QUARTER
+  ,     @
+ /| /   @
+  |/|_|_@
+  /   | @
+        @@
+189  VULGAR FRACTION ONE HALF
+  ,    @
+ /| /_ @
+  |/  )@
+  /  /_@
+       @@
+190  VULGAR FRACTION THREE QUARTERS
+ ___     @
+  _/ /   @
+ __)/|_|_@
+   /   | @
+         @@
+191  INVERTED QUESTION MARK
+    @
+  o @
+  | @
+ (__@
+    @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+  \    @
+  __,  @
+ /  |  @
+ \_/\_/@
+       @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+   /   @
+  __,  @
+ /  |  @
+ \_/\_/@
+       @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+  /\   @
+  __,  @
+ /  |  @
+ \_/\_/@
+       @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+  /\/  @
+  __,  @
+ /  |  @
+ \_/\_/@
+       @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+ o  o  @
+  __,  @
+ /  |  @
+ \_/\_/@
+       @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+   _   @
+  (_)  @
+ /  |  @
+ \_/\_/@
+       @@
+198  LATIN CAPITAL LETTER AE
+   __,__$ @
+  /  | () @
+ |   |-$  @
+  \_/\___/@
+          @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+   __$ @
+  / () @
+ |  $  @
+  \___/@
+   _)  @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+  \   @
+  __$ @
+ <_() @
+ <___/@
+      @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+   /  @
+  __$ @
+ <_() @
+ <___/@
+      @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+  /\  @
+  __$ @
+ <_() @
+ <___/@
+      @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+ o  o @
+  __$ @
+ <_() @
+ <___/@
+      @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+   \  @
+   |\ @
+ _ |/ @
+ \_/\/@
+      @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+    / @
+   |\ @
+ _ |/ @
+ \_/\/@
+      @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+   /\ @
+   |\ @
+ _ |/ @
+ \_/\/@
+      @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+  o o @
+   |\ @
+ _ |/ @
+ \_/\/@
+      @@
+208  LATIN CAPITAL LETTER ETH
+  ___  @
+ (|  \ @
+ -|-  |@
+ (\__/ @
+       @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+  ,/\/  @
+ /|/\   @
+  |  |  @
+  |  |_/@
+        @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+  \   @
+  __  @
+ /\_\/@
+ \__/ @
+      @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+   /  @
+  __  @
+ /\_\/@
+ \__/ @
+      @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+  /\  @
+  __  @
+ /\_\/@
+ \__/ @
+      @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+  /\/ @
+  __  @
+ /\_\/@
+ \__/ @
+      @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+ o  o @
+  __  @
+ /\_\/@
+ \__/ @
+      @@
+215  MULTIPLICATION SIGN
+     @
+ $\/$@
+ $/\$@
+ $  $@
+     @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   __/ @
+  /\/\/@
+ | /  |@
+  /__/ @
+ /     @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+    \    @
+         @
+ (|   |  @
+   \_/\_/@
+         @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+    /    @
+         @
+ (|   |  @
+   \_/\_/@
+         @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    /\   @
+         @
+ (|   |  @
+   \_/\_/@
+         @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+   /\/   @
+         @
+ (|   |  @
+   \_/\_/@
+         @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+    /  @
+       @
+ (|  | @
+   \/|/@
+    (| @@
+222  LATIN CAPITAL LETTER THORN
+  ,   @
+ /|__ @
+  |__)@
+  |  $@
+      @@
+223  LATIN SMALL LETTER SHARP S
+  _ @
+ | \@
+ | <@
+ |_/@
+ |  @@
+224  LATIN SMALL LETTER A WITH GRAVE
+  \   @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+225  LATIN SMALL LETTER A WITH ACUTE
+  /   @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+  /\  @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+227  LATIN SMALL LETTER A WITH TILDE
+ /\/  @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+ o o  @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+  ()  @
+  _,  @
+ / |  @
+ \/|_/@
+      @@
+230  LATIN SMALL LETTER AE
+      @
+  _,_ @
+ / |/ @
+ \/|_/@
+      @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+     @
+  _  @
+ /   @
+ \__/@
+  _) @@
+232  LATIN SMALL LETTER E WITH GRAVE
+  \ @
+  _ @
+ |/ @
+ |_/@
+    @@
+233  LATIN SMALL LETTER E WITH ACUTE
+  / @
+  _ @
+ |/ @
+ |_/@
+    @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+ /\ @
+  _ @
+ |/ @
+ |_/@
+    @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ o o @
+  _  @
+ |/  @
+ |__/@
+     @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ \ @
+   @
+ | @
+ |/@
+   @@
+237  LATIN SMALL LETTER I WITH ACUTE
+ / @
+   @
+ | @
+ |/@
+   @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+ /\@
+   @
+ | @
+ |/@
+   @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ o o @
+     @
+ |   @
+ |__/@
+     @@
+240  LATIN SMALL LETTER ETH
+ \, @
+ '\ @
+ / |@
+ \/ @
+    @@
+241  LATIN SMALL LETTER N WITH TILDE
+  /\/  @
+       @
+ /|/|  @
+ $| |_/@
+       @@
+242  LATIN SMALL LETTER O WITH GRAVE
+  \  @
+  _  @
+ / \_@
+ \_/ @
+     @@
+243  LATIN SMALL LETTER O WITH ACUTE
+  /  @
+  _  @
+ / \_@
+ \_/ @
+     @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+  /\ @
+  _  @
+ / \_@
+ \_/ @
+     @@
+245  LATIN SMALL LETTER O WITH TILDE
+ /\/ @
+  _  @
+ / \_@
+ \_/ @
+     @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+ o o @
+  _  @
+ / \_@
+ \_/ @
+     @@
+247  DIVISION SIGN
+    @
+  O @
+ ---@
+  O @
+    @@
+248  LATIN SMALL LETTER O WITH STROKE
+      @
+  __/ @
+ / /\_@
+ \/_/ @
+ /    @@
+249  LATIN SMALL LETTER U WITH GRAVE
+  \    @
+       @
+ |  |  @
+ $\/|_/@
+       @@
+250  LATIN SMALL LETTER U WITH ACUTE
+   /   @
+       @
+ |  |  @
+ $\/|_/@
+       @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+  /\   @
+       @
+ |  |  @
+ $\/|_/@
+       @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+ o  o  @
+       @
+ |  |  @
+ $\/|_/@
+       @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+   /  @
+      @
+ |  | @
+ $\/|/@
+   (| @@
+254  LATIN SMALL LETTER THORN
+      @
+  |)  @
+  |/\_@
+  |_/ @
+ (|   @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+ o  o @
+      @
+ |  | @
+ $\/|/@
+   (| @@
--- /dev/null
+++ b/fonts/smshadow.flf
@@ -1,0 +1,899 @@
+flf2a$ 4 3 14 0 10 0 1920 96
+SmShadow by Glenn Chappell 4/93 -- based on Small
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+ $$@
+ $$@
+ $$@
+ $$@@
+  |$@
+ _|$@
+ _)$@
+    @@
+  | )$@
+ V V$ @
+      @
+      @@
+   |  |$  @
+ _ |_ |_|$@
+ _ |_ |_|$@
+  _| _|$  @@
+   |$ @
+ (_-<$@
+ _ _/$@
+  _|$ @@
+ _) /$ @
+   /$  @
+ _/ _)$@
+       @@
+   _|$   @
+   _| _|$@
+ \____|$ @
+         @@
+  )$@
+ /$ @
+    @
+    @@
+   /$@
+  |$ @
+  |$ @
+ \_\$@@
+ \ \$ @
+    |$@
+    |$@
+  _/$ @@
+ \ \ /$ @
+ _   _|$@
+ _/ _\$ @
+        @@
+    |$  @
+ __ __|$@
+   _|$  @
+        @@
+    @
+    @
+  )$@
+ /$ @@
+       @
+ ____|$@
+       @
+       @@
+    @
+    @
+ _)$@
+    @@
+    /$@
+   /$ @
+ _/$  @
+      @@
+    \$ @
+  (  |$@
+ \__/$ @
+       @@
+ _ |$@
+   |$@
+  _|$@
+     @@
+ _  )$@
+   /$ @
+ ___|$@
+      @@
+ __ /$@
+  _ \$@
+ ___/$@
+      @@
+  | |$ @
+ __ _|$@
+   _|$ @
+       @@
+  __|$@
+ __ \$@
+ ___/$@
+      @@
+   /$  @
+   _ \$@
+ \___/$@
+       @@
+ __  /$@
+    /$ @
+  _/$  @
+       @@
+   _ )$@
+   _ \$@
+ \___/$@
+       @@
+   _ \$@
+ \_  /$@
+   _/$ @
+       @@
+ _)$@
+    @
+ _)$@
+    @@
+ _)$@
+    @
+  )$@
+ /$ @@
+    /$@
+ < <$ @
+  \_\$@
+      @@
+       @
+ ____|$@
+ ____|$@
+       @@
+ \ \$ @
+  > >$@
+  _/$ @
+      @@
+ __ \$@
+   _/$@
+  _)$ @
+      @@
+   __ \$ @
+  / _` |$@
+  \__,_|$@
+ \____/$ @@
+    \$  @
+   _ \$ @
+ _/  _\$@
+        @@
+  _ )$@
+  _ \$@
+ ___/$@
+      @@
+   __|$@
+  ($   @
+ \___|$@
+       @@
+  _ \$ @
+  |  |$@
+ ___/$ @
+       @@
+  __|$@
+  _|$ @
+ ___|$@
+      @@
+  __|$@
+  _|$ @
+ _|$  @
+      @@
+   __|$@
+  (_ |$@
+ \___|$@
+       @@
+  |  |$@
+  __ |$@
+ _| _|$@
+       @@
+ _ _|$@
+   |$ @
+ ___|$@
+      @@
+     |$@
+  \  |$@
+ \__/$ @
+       @@
+  |  /$@
+  . <$ @
+ _|\_\$@
+       @@
+  |$   @
+  |$   @
+ ____|$@
+       @@
+   \  |$@
+  |\/ |$@
+ _|  _|$@
+        @@
+   \ |$@
+  .  |$@
+ _|\_|$@
+       @@
+   _ \$ @
+  (   |$@
+ \___/$ @
+        @@
+  _ \$@
+  __/$@
+ _|$  @
+      @@
+   _ \$ @
+  (   |$@
+ \__\_\$@
+        @@
+  _ \$@
+    /$@
+ _|_\$@
+      @@
+   __|$@
+ \__ \$@
+ ____/$@
+       @@
+ __ __|$@
+    |$  @
+   _|$  @
+        @@
+  |  |$@
+  |  |$@
+ \__/$ @
+       @@
+ \ \   /$@
+  \ \ /$ @
+   \_/$  @
+         @@
+ \ \      /$@
+  \ \ \  /$ @
+   \_/\_/$  @
+            @@
+ \ \  /$@
+  >  <$ @
+  _/\_\$@
+        @@
+ \ \  /$@
+  \  /$ @
+   _|$  @
+        @@
+ __  /$@
+    /$ @
+ ____|$@
+       @@
+  _|$@
+  |$ @
+  |$ @
+ __|$@@
+ \ \$  @
+  \ \$ @
+   \_\$@
+       @@
+ _ |$@
+   |$@
+   |$@
+ __|$@@
+  \$ @
+ /\|$@
+     @
+     @@
+       @
+       @
+       @
+ ____|$@@
+  )$@
+ \|$@
+    @
+    @@
+        @
+   _` |$@
+ \__,_|$@
+        @@
+  |$   @
+   _ \$@
+ _.__/$@
+       @@
+      @
+   _|$@
+ \__|$@
+      @@
+      |$@
+   _` |$@
+ \__,_|$@
+        @@
+       @
+   -_)$@
+ \___|$@
+       @@
+   _|$@
+   _|$@
+ _|$  @
+      @@
+        @
+   _` |$@
+ \__, |$@
+ ____/$ @@
+  |$   @
+    \$ @
+ _| _|$@
+       @@
+ _)$@
+  |$@
+ _|$@
+    @@
+   _)$@
+    |$@
+    |$@
+ __/$ @@
+  |$  @
+  | /$@
+ _\_\$@
+      @@
+  |$@
+  |$@
+ _|$@
+    @@
+        @
+   ` \$ @
+ _|_|_|$@
+        @@
+       @
+    \$ @
+ _| _|$@
+       @@
+       @
+   _ \$@
+ \___/$@
+       @@
+       @
+   _ \$@
+  .__/$@
+ _|$   @@
+        @
+   _` |$@
+ \__, |$@
+     _|$@@
+      @
+   _|$@
+ _|$  @
+      @@
+      @
+ (_-<$@
+ ___/$@
+      @@
+  |$  @
+   _|$@
+ \__|$@
+      @@
+       @
+  |  |$@
+ \_,_|$@
+       @@
+       @
+ \ \ /$@
+  \_/$ @
+       @@
+          @
+ \ \  \ /$@
+  \_/\_/$ @
+          @@
+       @
+ \ \ /$@
+  _\_\$@
+       @@
+       @
+  |  |$@
+ \_, |$@
+ ___/$ @@
+      @
+ _  /$@
+ ___|$@
+      @@
+    /$@
+ _ |$ @
+   |$ @
+  \_\$@@
+  |$@
+  |$@
+  |$@
+ _|$@@
+ \ \$  @
+    |_$@
+    |$ @
+  _/$  @@
+  \ |$@
+ /\/$ @
+      @
+      @@
+ _) \_)$@
+   _ \$ @
+  /  _\$@
+        @@
+ _)  _)$@
+   __ \$@
+ \____/$@
+        @@
+ _) _)$@
+  |  |$@
+ \__/$ @
+       @@
+ _)  _)$@
+   _` |$@
+ \__,_|$@
+        @@
+ _) _)$@
+   _ \$@
+ \___/$@
+       @@
+ _) _)$@
+  |  |$@
+ \_,_|$@
+       @@
+   _ \$@
+  |< <$@
+  |__/$@
+ _|$   @@
+160  NO-BREAK SPACE
+ $$@
+ $$@
+ $$@
+ $$@@
+161  INVERTED EXCLAMATION MARK
+ _)$@
+  |$@
+ _|$@
+    @@
+162  CENT SIGN
+   |$ @
+   _)$@
+ \ _)$@
+   |$ @@
+163  POUND SIGN
+    _\$ @
+ _ _|$  @
+ _,___|$@
+        @@
+164  CURRENCY SIGN
+ \ . /$@
+   _ \$@
+ \/  /$@
+       @@
+165  YEN SIGN
+ \ \ /$ @
+ __ __|$@
+ __ __|$@
+   _|$  @@
+166  BROKEN BAR
+  |$@
+ _|$@
+  |$@
+ _|$@@
+167  SECTION SIGN
+    _)$@
+  \ \$ @
+ \ \/$ @
+ __/$  @@
+168  DIAERESIS
+ _) _)$@
+       @
+       @
+       @@
+169  COPYRIGHT SIGN
+       \$ @
+     _| \$@
+ \ \__| /$@
+  \____/$ @@
+170  FEMININE ORDINAL INDICATOR
+   _` |$@
+ \__,_|$@
+ _____|$@
+        @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    / /$@
+ < < <$ @
+  \_\_\$@
+        @@
+172  NOT SIGN
+ ____ |$@
+     _|$@
+        @
+        @@
+173  SOFT HYPHEN
+      @
+ ___|$@
+      @
+      @@
+174  REGISTERED SIGN
+       \$ @
+     -) \$@
+ \  |\\ /$@
+  \____/$ @@
+175  MACRON
+ ___|$@
+      @
+      @
+      @@
+176  DEGREE SIGN
+  .\$@
+ \_/$@
+     @
+     @@
+177  PLUS-MINUS SIGN
+    |$  @
+ _   _|$@
+   _|$  @
+ _____|$@@
+178  SUPERSCRIPT TWO
+ _ )$@
+ __|$@
+     @
+     @@
+179  SUPERSCRIPT THREE
+ _ /$@
+ __)$@
+     @
+     @@
+180  ACUTE ACCENT
+ _/$@
+    @
+    @
+    @@
+181  MICRO SIGN
+       @
+  |  |$@
+  .,_|$@
+ _|$   @@
+182  PILCROW SIGN
+      |$@
+ \_ | |$@
+   _|_|$@
+        @@
+183  MIDDLE DOT
+    @
+ _)$@
+    @
+    @@
+184  CEDILLA
+    @
+    @
+    @
+ _)$@@
+185  SUPERSCRIPT ONE
+ _ |$@
+  _|$@
+     @
+     @@
+186  MASCULINE ORDINAL INDICATOR
+   _ \$@
+ \___/$@
+ ____|$@
+       @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ \ \ \$ @
+  > > >$@
+  _/_/$ @
+        @@
+188  VULGAR FRACTION ONE QUARTER
+ _ |  /$   @
+  _| /_' |$@
+   _/   _|$@
+           @@
+189  VULGAR FRACTION ONE HALF
+ _ |  /$  @
+  _| /_ )$@
+   _/ __|$@
+          @@
+190  VULGAR FRACTION THREE QUARTERS
+ _ /  /$   @
+ __) /_' |$@
+   _/   _|$@
+           @@
+191  INVERTED QUESTION MARK
+   _)$ @
+   /$  @
+ \___|$@
+       @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+ \_\$  @
+  --\$ @
+ _/\_\$@
+       @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+   _/$ @
+  --\$ @
+ _/\_\$@
+       @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+  /\\$ @
+  --\$ @
+ _/\_\$@
+       @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+ / _/$ @
+  --\$ @
+ _/\_\$@
+       @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+ _) \_)$@
+   _ \$ @
+  /  _\$@
+        @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+   ( )$ @
+   _ \$ @
+ _/  _\$@
+        @@
+198  LATIN CAPITAL LETTER AE
+   , __|$@
+   _ _|$ @
+ _/ ___|$@
+         @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+     |$@
+  ($   @
+ \___|$@
+   _)$ @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+ \_\$@
+  -<$@
+ __<$@
+     @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+  _/$@
+  -<$@
+ __<$@
+     @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ /\\$@
+  -<$@
+ __<$@
+     @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+ _) _)$@
+   -<$ @
+  __<$ @
+       @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+ \_\$ @
+ _ _|$@
+ ___|$@
+      @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+  _/$ @
+ _ _|$@
+ ___|$@
+      @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ /\\$ @
+ _ _|$@
+ ___|$@
+      @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+ _)  _)$@
+  _ _|$ @
+  ___|$ @
+        @@
+208  LATIN CAPITAL LETTER ETH
+   _ \$ @
+ _ _| |$@
+  ___/$ @
+        @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+  / _/$@
+   \ |$@
+ _|\_|$@
+       @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+  \_\$  @
+   __ \$@
+ \____/$@
+        @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+    _/$ @
+   __ \$@
+ \____/$@
+        @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   /\\$ @
+   __ \$@
+ \____/$@
+        @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+  / _/$ @
+   __ \$@
+ \____/$@
+        @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+ _)  _)$@
+   __ \$@
+ \____/$@
+        @@
+215  MULTIPLICATION SIGN
+  \ \$@
+ ,  '$@
+ \/\/$@
+      @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   _ /\$ @
+  ( /  |$@
+ \_/__/$ @
+         @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+ \_\$  @
+  |  |$@
+ \__/$ @
+       @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+   _/$ @
+  |  |$@
+ \__/$ @
+       @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+  /\\$ @
+  |  |$@
+ \__/$ @
+       @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+ _) _)$@
+  |  |$@
+ \__/$ @
+       @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+   _/$ @
+ \ \ /$@
+   _|$ @
+       @@
+222  LATIN CAPITAL LETTER THORN
+  |$  @
+  -_)$@
+ _|$  @
+      @@
+223  LATIN SMALL LETTER SHARP S
+   _ \$@
+  |< <$@
+  |__/$@
+ _|$   @@
+224  LATIN SMALL LETTER A WITH GRAVE
+  \_\$  @
+   _` |$@
+ \__,_|$@
+        @@
+225  LATIN SMALL LETTER A WITH ACUTE
+    _/$ @
+   _` |$@
+ \__,_|$@
+        @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+   /\\$ @
+   _` |$@
+ \__,_|$@
+        @@
+227  LATIN SMALL LETTER A WITH TILDE
+  / _/$ @
+   _` |$@
+ \__,_|$@
+        @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+ _)  _)$@
+   _` |$@
+ \__,_|$@
+        @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+   ( )$ @
+   _` |$@
+ \__,_|$@
+        @@
+230  LATIN SMALL LETTER AE
+          @
+   _` -_)$@
+ \__,___|$@
+          @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+      @
+   _|$@
+ \__|$@
+   _)$@@
+232  LATIN SMALL LETTER E WITH GRAVE
+  \_\$ @
+   -_)$@
+ \___|$@
+       @@
+233  LATIN SMALL LETTER E WITH ACUTE
+   _/$ @
+   -_)$@
+ \___|$@
+       @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+  /\\$ @
+   -_)$@
+ \___|$@
+       @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ _)  _)$@
+   -_)$ @
+ \___|$ @
+        @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ \_\$@
+   |$@
+  _|$@
+     @@
+237  LATIN SMALL LETTER I WITH ACUTE
+ _/$@
+  |$@
+ _|$@
+    @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+ /\\$@
+  |$ @
+ _|$ @
+     @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ _)  _)$@
+    |$  @
+   _|$  @
+        @@
+240  LATIN SMALL LETTER ETH
+   , \'$@
+   _` |$@
+ \___/$ @
+        @@
+241  LATIN SMALL LETTER N WITH TILDE
+ / _/$ @
+  ' \$ @
+ _| _|$@
+       @@
+242  LATIN SMALL LETTER O WITH GRAVE
+  \_\$ @
+   _ \$@
+ \___/$@
+       @@
+243  LATIN SMALL LETTER O WITH ACUTE
+   _/$ @
+   _ \$@
+ \___/$@
+       @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+  /\\$ @
+   _ \$@
+ \___/$@
+       @@
+245  LATIN SMALL LETTER O WITH TILDE
+  / _/$@
+   _ \$@
+ \___/$@
+       @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+ _) _)$@
+   _ \$@
+ \___/$@
+       @@
+247  DIVISION SIGN
+  _)$ @
+ ___|$@
+  _)$ @
+      @@
+248  LATIN SMALL LETTER O WITH STROKE
+       @
+    /\$@
+ \_/_/$@
+       @@
+249  LATIN SMALL LETTER U WITH GRAVE
+ \_\$  @
+  |  |$@
+ \_,_|$@
+       @@
+250  LATIN SMALL LETTER U WITH ACUTE
+   _/$ @
+  |  |$@
+ \_,_|$@
+       @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+  /\\$ @
+  |  |$@
+ \_,_|$@
+       @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+ _) _)$@
+  |  |$@
+ \_,_|$@
+       @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+   _/$ @
+  |  |$@
+ \_, |$@
+ ___/$ @@
+254  LATIN SMALL LETTER THORN
+  |$   @
+  '_ \$@
+  .__/$@
+ _|$   @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+ _) _)$@
+  |  |$@
+ \_, |$@
+ ___/$ @@
--- /dev/null
+++ b/fonts/smslant.flf
@@ -1,0 +1,1097 @@
+flf2a$ 5 4 14 15 10 0 22415 96
+SmSlant by Glenn Chappell 6/93 - based on Small & Slant
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+
+    $@
+   $ @
+  $  @
+ $   @
+$    @@
+   __@
+  / /@
+ /_/ @
+(_)  @
+     @@
+ _ _ @
+( | )@
+|/|/ @
+$    @
+     @@
+     ____ @
+  __/ / /_@
+ /_  . __/@
+/_    __/ @
+ /_/_/    @@
+     @
+  _//@
+ (_-<@
+/ __/@
+//   @@
+ _   __@
+(_)_/_/@
+ _/_/_ @
+/_/ (_)@
+       @@
+  ____   @
+ / __/___@
+ > _/_ _/@
+|_____/  @
+         @@
+ _ @
+( )@
+|/ @
+$  @
+   @@
+    __@
+  _/_/@
+ / /  @
+/ /   @
+|_|   @@
+    _ @
+   | |@
+   / /@
+ _/_/ @
+/_/   @@
+    @
+ _/|@
+> _<@
+|/  @
+    @@
+    __ @
+ __/ /_@
+/_  __/@
+ /_/   @
+       @@
+   @
+   @
+ _ @
+( )@
+|/ @@
+     @
+ ____@
+/___/@
+ $   @
+     @@
+   @
+   @
+ _ @
+(_)@
+   @@
+     __@
+   _/_/@
+ _/_/  @
+/_/    @
+       @@
+  ___ @
+ / _ \@
+/ // /@
+\___/ @
+      @@
+  ___@
+ <  /@
+ / / @
+/_/  @
+     @@
+   ___ @
+  |_  |@
+ / __/ @
+/____/ @
+       @@
+   ____@
+  |_  /@
+ _/_ < @
+/____/ @
+       @@
+  ____@
+ / / /@
+/_  _/@
+ /_/  @
+      @@
+   ____@
+  / __/@
+ /__ \ @
+/____/ @
+       @@
+  ____@
+ / __/@
+/ _ \ @
+\___/ @
+      @@
+ ____@
+/_  /@
+ / / @
+/_/  @
+     @@
+  ___ @
+ ( _ )@
+/ _  |@
+\___/ @
+      @@
+  ___ @
+ / _ \@
+ \_, /@
+/___/ @
+      @@
+   _ @
+  (_)@
+ _   @
+(_)  @
+     @@
+   _ @
+  (_)@
+ _   @
+( )  @
+|/   @@
+  __@
+ / /@
+< < @
+ \_\@
+    @@
+      @
+  ____@
+ /___/@
+/___/ @
+      @@
+__  @
+\ \ @
+ > >@
+/_/ @
+    @@
+ ___ @
+/__ \@
+ /__/@
+(_)  @
+     @@
+  _____ @
+ / ___ \@
+/ / _ `/@
+\ \_,_/ @
+ \___/  @@
+   ___ @
+  / _ |@
+ / __ |@
+/_/ |_|@
+       @@
+   ___ @
+  / _ )@
+ / _  |@
+/____/ @
+       @@
+  _____@
+ / ___/@
+/ /__  @
+\___/  @
+       @@
+   ___ @
+  / _ \@
+ / // /@
+/____/ @
+       @@
+   ____@
+  / __/@
+ / _/  @
+/___/  @
+       @@
+   ____@
+  / __/@
+ / _/  @
+/_/    @
+       @@
+  _____@
+ / ___/@
+/ (_ / @
+\___/  @
+       @@
+   __ __@
+  / // /@
+ / _  / @
+/_//_/  @
+        @@
+   ____@
+  /  _/@
+ _/ /  @
+/___/  @
+       @@
+     __@
+ __ / /@
+/ // / @
+\___/  @
+       @@
+   __ __@
+  / //_/@
+ / ,<   @
+/_/|_|  @
+        @@
+   __ @
+  / / @
+ / /__@
+/____/@
+      @@
+   __  ___@
+  /  |/  /@
+ / /|_/ / @
+/_/  /_/  @
+          @@
+   _  __@
+  / |/ /@
+ /    / @
+/_/|_/  @
+        @@
+  ____ @
+ / __ \@
+/ /_/ /@
+\____/ @
+       @@
+   ___ @
+  / _ \@
+ / ___/@
+/_/    @
+       @@
+  ____ @
+ / __ \@
+/ /_/ /@
+\___\_\@
+       @@
+   ___ @
+  / _ \@
+ / , _/@
+/_/|_| @
+       @@
+   ____@
+  / __/@
+ _\ \  @
+/___/  @
+       @@
+ ______@
+/_  __/@
+ / /   @
+/_/    @
+       @@
+  __  __@
+ / / / /@
+/ /_/ / @
+\____/  @
+        @@
+  _   __@
+ | | / /@
+ | |/ / @
+ |___/  @
+        @@
+  _      __@
+ | | /| / /@
+ | |/ |/ / @
+ |__/|__/  @
+           @@
+   _  __@
+  | |/_/@
+ _>  <  @
+/_/|_|  @
+        @@
+ __  __@
+ \ \/ /@
+  \  / @
+  /_/  @
+       @@
+  ____@
+ /_  /@
+  / /_@
+ /___/@
+      @@
+    ___@
+   / _/@
+  / /  @
+ / /   @
+/__/   @@
+__   @
+\ \  @
+ \ \ @
+  \_\@
+     @@
+    ___@
+   /  /@
+   / / @
+ _/ /  @
+/__/   @@
+ //|@
+|/||@
+ $  @
+$   @
+    @@
+     @
+     @
+     @
+ ____@
+/___/@@
+ _ @
+( )@
+ V @
+$  @
+   @@
+      @
+ ___ _@
+/ _ `/@
+\_,_/ @
+      @@
+   __ @
+  / / @
+ / _ \@
+/_.__/@
+      @@
+     @
+ ____@
+/ __/@
+\__/ @
+     @@
+     __@
+ ___/ /@
+/ _  / @
+\_,_/  @
+       @@
+     @
+ ___ @
+/ -_)@
+\__/ @
+     @@
+   ___@
+  / _/@
+ / _/ @
+/_/   @
+      @@
+       @
+  ___ _@
+ / _ `/@
+ \_, / @
+/___/  @@
+   __ @
+  / / @
+ / _ \@
+/_//_/@
+      @@
+   _ @
+  (_)@
+ / / @
+/_/  @
+     @@
+      _ @
+     (_)@
+    / / @
+ __/ /  @
+|___/   @@
+   __  @
+  / /__@
+ /  '_/@
+/_/\_\ @
+       @@
+   __@
+  / /@
+ / / @
+/_/  @
+     @@
+       @
+  __ _ @
+ /  ' \@
+/_/_/_/@
+       @@
+      @
+  ___ @
+ / _ \@
+/_//_/@
+      @@
+     @
+ ___ @
+/ _ \@
+\___/@
+     @@
+       @
+   ___ @
+  / _ \@
+ / .__/@
+/_/    @@
+      @
+ ___ _@
+/ _ `/@
+\_, / @
+ /_/  @@
+      @
+  ____@
+ / __/@
+/_/   @
+      @@
+     @
+  ___@
+ (_-<@
+/___/@
+     @@
+  __ @
+ / /_@
+/ __/@
+\__/ @
+     @@
+      @
+ __ __@
+/ // /@
+\_,_/ @
+      @@
+      @
+ _  __@
+| |/ /@
+|___/ @
+      @@
+        @
+ _    __@
+| |/|/ /@
+|__,__/ @
+        @@
+      @
+ __ __@
+ \ \ /@
+/_\_\ @
+      @@
+       @
+  __ __@
+ / // /@
+ \_, / @
+/___/  @@
+    @
+ ___@
+/_ /@
+/__/@
+    @@
+    __@
+  _/_/@
+_/ /  @
+/ /   @
+\_\   @@
+    __@
+   / /@
+  / / @
+ / /  @
+/_/   @@
+   __  @
+   \ \ @
+   / /_@
+ _/_/  @
+/_/    @@
+ /\//@
+//\/ @
+ $   @
+$    @
+     @@
+   _  _ @
+  (_)(_)@
+ / - |  @
+/_/|_|  @
+        @@
+  _   _ @
+ (_)_(_)@
+/ __ \  @
+\____/  @
+        @@
+  _   _ @
+ (_) (_)@
+/ /_/ / @
+\____/  @
+        @@
+  _  _ @
+ (_)(_)@
+/ _ `/ @
+\_,_/  @
+       @@
+  _  _ @
+ (_)(_)@
+/ _ \  @
+\___/  @
+       @@
+  _  _ @
+ (_)(_)@
+/ // / @
+\_,_/  @
+       @@
+    ____ @
+   / _  )@
+  / /< < @
+ / //__/ @
+/_/      @@
+160  NO-BREAK SPACE
+    $@
+   $ @
+  $  @
+ $   @
+$    @@
+161  INVERTED EXCLAMATION MARK
+   _ @
+  (_)@
+ / / @
+/_/  @
+     @@
+162  CENT SIGN
+     @
+ __//@
+/ __/@
+\ _/ @
+//   @@
+163  POUND SIGN
+     __ @
+  __/__|@
+ /_ _/_ @
+(_,___/ @
+        @@
+164  CURRENCY SIGN
+   /|_/|@
+  | . / @
+ /_  |  @
+|/ |/   @
+        @@
+165  YEN SIGN
+    ____@
+  _| / /@
+ /_  __/@
+/_  __/ @
+ /_/    @@
+166  BROKEN BAR
+    __@
+   / /@
+  /_/ @
+ / /  @
+/_/   @@
+167  SECTION SIGN
+     __ @
+   _/ _)@
+  / | | @
+ | |_/  @
+(__/    @@
+168  DIAERESIS
+ _   _ @
+(_) (_)@
+ $   $ @
+$   $  @
+       @@
+169  COPYRIGHT SIGN
+   ____  @
+  / ___\ @
+ / / _/ |@
+| |__/ / @
+ \____/  @@
+170  FEMININE ORDINAL INDICATOR
+   ___ _@
+  / _ `/@
+ _\_,_/ @
+/____/  @
+        @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+  ____@
+ / / /@
+< < < @
+ \_\_\@
+      @@
+172  NOT SIGN
+     @
+ ____@
+/_  /@
+ /_/ @
+     @@
+173  SOFT HYPHEN
+    @
+ ___@
+/__/@
+ $  @
+    @@
+174  REGISTERED SIGN
+   ____  @
+  / __ \ @
+ / / -) |@
+| //\\ / @
+ \____/  @@
+175  MACRON
+ ____@
+/___/@
+ $   @
+$    @
+     @@
+176  DEGREE SIGN
+  __ @
+ /. |@
+|__/ @
+ $   @
+     @@
+177  PLUS-MINUS SIGN
+      __ @
+   __/ /_@
+  /_  __/@
+ __/_/_  @
+/_____/  @@
+178  SUPERSCRIPT TWO
+  __ @
+ |_ )@
+/__| @
+ $   @
+     @@
+179  SUPERSCRIPT THREE
+  ___@
+ |_ /@
+/__) @
+ $   @
+     @@
+180  ACUTE ACCENT
+ __@
+/_/@
+ $ @
+$  @
+   @@
+181  MICRO SIGN
+        @
+   __ __@
+  / // /@
+ / .,_/ @
+/_/     @@
+182  PILCROW SIGN
+  _____@
+ /    /@
+|_ / / @
+/_/_/  @
+       @@
+183  MIDDLE DOT
+   @
+ _ @
+(_)@
+$  @
+   @@
+184  CEDILLA
+   @
+   @
+   @
+ _ @
+/_)@@
+185  SUPERSCRIPT ONE
+  __@
+ < /@
+/_/ @
+$   @
+    @@
+186  MASCULINE ORDINAL INDICATOR
+   ___ @
+  / _ \@
+ _\___/@
+/____/ @
+       @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+____  @
+\ \ \ @
+ > > >@
+/_/_/ @
+      @@
+188  VULGAR FRACTION ONE QUARTER
+  __  __   @
+ < /_/_/___@
+/_//_//_' /@
+ /_/   /_/ @
+           @@
+189  VULGAR FRACTION ONE HALF
+  __  __  @
+ < /_/_/_ @
+/_//_/|_ )@
+ /_/ /__| @
+          @@
+190  VULGAR FRACTION THREE QUARTERS
+  ___  __   @
+ |_ /_/_/___@
+/__)/_//_' /@
+  /_/   /_/ @
+            @@
+191  INVERTED QUESTION MARK
+   _ @
+ _(_)@
+/ _/_@
+\___/@
+     @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+   __ @
+  _\_\@
+ / - |@
+/_/|_|@
+      @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+    __@
+  _/_/@
+ / - |@
+/_/|_|@
+      @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    //|@
+  _|/||@
+ / - | @
+/_/|_| @
+       @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+    /\//@
+  _//\/ @
+ / - |  @
+/_/|_|  @
+        @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+   _  _ @
+  (_)(_)@
+ / - |  @
+/_/|_|  @
+        @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+   (())@
+  / _ |@
+ / __ |@
+/_/ |_|@
+       @@
+198  LATIN CAPITAL LETTER AE
+   _______@
+  / _  __/@
+ / _  _/  @
+/_//___/  @
+          @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+  _____@
+ / ___/@
+/ /__  @
+\___/  @
+/_)    @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+  __ @
+  \_\@
+ / -<@
+/__< @
+     @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+    __@
+  _/_/@
+ / -< @
+/__<  @
+      @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+   //|@
+  |/||@
+ / -< @
+/__<  @
+      @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+ / -<  @
+/__<   @
+       @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+   __  @
+  _\_\ @
+ /_ __/@
+/____/ @
+       @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+     __@
+  __/_/@
+ /_ __/@
+/____/ @
+       @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    //|@
+  _|/||@
+ /_ __/@
+/____/ @
+       @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+   _  _ @
+  (_)(_)@
+ /_ __/ @
+/____/  @
+        @@
+208  LATIN CAPITAL LETTER ETH
+   ____ @
+ _/ __ \@
+/_ _// /@
+/_____/ @
+        @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+     /\//@
+  __//\/ @
+ /  |/ / @
+/_/|__/  @
+         @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+  __  @
+ _\_\ @
+/ __ \@
+\____/@
+      @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+    __@
+ __/_/@
+/ __ \@
+\____/@
+      @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   //|@
+ _|/||@
+/ __ \@
+\____/@
+      @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+   /\//@
+ _//\/ @
+/ __ \ @
+\____/ @
+       @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+/ __ \  @
+\____/  @
+        @@
+215  MULTIPLICATION SIGN
+     @
+ /|/|@
+ > < @
+|/|/ @
+     @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+  _____ @
+ / _// \@
+/ //// /@
+\_//__/ @
+        @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+   __  @
+ __\_\ @
+/ /_/ /@
+\____/ @
+       @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+     __@
+ __ /_/@
+/ /_/ /@
+\____/ @
+       @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    //|@
+ __|/||@
+/ /_/ /@
+\____/ @
+       @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+/ /_/ / @
+\____/  @
+        @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+   __@
+__/_/@
+\ V /@
+ /_/ @
+     @@
+222  LATIN CAPITAL LETTER THORN
+   __ @
+  / / @
+ / -_)@
+/_/   @
+      @@
+223  LATIN SMALL LETTER SHARP S
+    ____ @
+   / _  )@
+  / /< < @
+ / //__/ @
+/_/      @@
+224  LATIN SMALL LETTER A WITH GRAVE
+  __  @
+ _\_\_@
+/ _ `/@
+\_,_/ @
+      @@
+225  LATIN SMALL LETTER A WITH ACUTE
+    __@
+ __/_/@
+/ _ `/@
+\_,_/ @
+      @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+   //|@
+ _|/||@
+/ _ `/@
+\_,_/ @
+      @@
+227  LATIN SMALL LETTER A WITH TILDE
+   /\//@
+ _//\/ @
+/ _ `/ @
+\_,_/  @
+       @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+/ _ `/ @
+\_,_/  @
+       @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+   __ @
+ _(())@
+/ _ `/@
+\_,_/ @
+      @@
+230  LATIN SMALL LETTER AE
+         @
+ ___ ___ @
+/ _ ` -_)@
+\_,____/ @
+         @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+     @
+ ____@
+/ __/@
+\__/ @
+/_)  @@
+232  LATIN SMALL LETTER E WITH GRAVE
+  __ @
+ _\_\@
+/ -_)@
+\__/ @
+     @@
+233  LATIN SMALL LETTER E WITH ACUTE
+   __@
+ _/_/@
+/ -_)@
+\__/ @
+     @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+  //|@
+ |/||@
+/ -_)@
+\__/ @
+     @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+ _  _ @
+(_)(_)@
+/ -_) @
+\__/  @
+      @@
+236  LATIN SMALL LETTER I WITH GRAVE
+  __ @
+  \_\@
+ / / @
+/_/  @
+     @@
+237  LATIN SMALL LETTER I WITH ACUTE
+   __@
+  /_/@
+ / / @
+/_/  @
+     @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+   //|@
+  |/||@
+ / /  @
+/_/   @
+      @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+ _   _ @
+(_)_(_)@
+ / /   @
+/_/    @
+       @@
+240  LATIN SMALL LETTER ETH
+   _||_@
+ __ || @
+/ _` | @
+\___/  @
+       @@
+241  LATIN SMALL LETTER N WITH TILDE
+    /\//@
+  _//\/ @
+ / _ \  @
+/_//_/  @
+        @@
+242  LATIN SMALL LETTER O WITH GRAVE
+  __ @
+ _\_\@
+/ _ \@
+\___/@
+     @@
+243  LATIN SMALL LETTER O WITH ACUTE
+   __@
+ _/_/@
+/ _ \@
+\___/@
+     @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+   //|@
+ _|/||@
+/ _ \ @
+\___/ @
+      @@
+245  LATIN SMALL LETTER O WITH TILDE
+   /\//@
+ _//\/ @
+/ _ \  @
+\___/  @
+       @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+/ _ \  @
+\___/  @
+       @@
+247  DIVISION SIGN
+   _ @
+ _(_)@
+/___/@
+(_)  @
+     @@
+248  LATIN SMALL LETTER O WITH STROKE
+     @
+ ___ @
+/ //\@
+\//_/@
+     @@
+249  LATIN SMALL LETTER U WITH GRAVE
+   __ @
+ __\_\@
+/ // /@
+\_,_/ @
+      @@
+250  LATIN SMALL LETTER U WITH ACUTE
+    __@
+ __/_/@
+/ // /@
+\_,_/ @
+      @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   //|@
+ _|/||@
+/ // /@
+\_,_/ @
+      @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+  _  _ @
+ (_)(_)@
+/ // / @
+\_,_/  @
+       @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+     __@
+  __/_/@
+ / // /@
+ \_, / @
+/___/  @@
+254  LATIN SMALL LETTER THORN
+    __ @
+   / / @
+  / _ \@
+ / .__/@
+/_/    @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+   _  _ @
+  (_)(_)@
+ / // / @
+ \_, /  @
+/___/   @@
--- /dev/null
+++ b/fonts/standard.flf
@@ -1,0 +1,2227 @@
+flf2a$ 6 5 16 15 11 0 24463 229
+Standard by Glenn Chappell & Ian Chai 3/93 -- based on Frank's .sig
+Includes ISO Latin-1
+figlet release 2.1 -- 12 Aug 1994
+Modified for figlet 2.2 by John Cowan <cowan@ccil.org>
+  to add Latin-{2,3,4,5} support (Unicode U+0100-017F).
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
+supported by FIGlet and FIGWin.  May also be slightly modified for better use
+of new full-width/kern/smush alternatives, but default output is NOT changed.
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@@
+  _ @
+ | |@
+ | |@
+ |_|@
+ (_)@
+    @@
+  _ _ @
+ ( | )@
+  V V @
+   $  @
+   $  @
+      @@
+    _  _   @
+  _| || |_ @
+ |_  ..  _|@
+ |_      _|@
+   |_||_|  @
+           @@
+   _  @
+  | | @
+ / __)@
+ \__ \@
+ (   /@
+  |_| @@
+  _  __@
+ (_)/ /@
+   / / @
+  / /_ @
+ /_/(_)@
+       @@
+   ___   @
+  ( _ )  @
+  / _ \/\@
+ | (_>  <@
+  \___/\/@
+         @@
+  _ @
+ ( )@
+ |/ @
+  $ @
+  $ @
+    @@
+   __@
+  / /@
+ | | @
+ | | @
+ | | @
+  \_\@@
+ __  @
+ \ \ @
+  | |@
+  | |@
+  | |@
+ /_/ @@
+       @
+ __/\__@
+ \    /@
+ /_  _\@
+   \/  @
+       @@
+        @
+    _   @
+  _| |_ @
+ |_   _|@
+   |_|  @
+        @@
+    @
+    @
+    @
+  _ @
+ ( )@
+ |/ @@
+        @
+        @
+  _____ @
+ |_____|@
+    $   @
+        @@
+    @
+    @
+    @
+  _ @
+ (_)@
+    @@
+     __@
+    / /@
+   / / @
+  / /  @
+ /_/   @
+       @@
+   ___  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+  _ @
+ / |@
+ | |@
+ | |@
+ |_|@
+    @@
+  ____  @
+ |___ \ @
+   __) |@
+  / __/ @
+ |_____|@
+        @@
+  _____ @
+ |___ / @
+   |_ \ @
+  ___) |@
+ |____/ @
+        @@
+  _  _   @
+ | || |  @
+ | || |_ @
+ |__   _|@
+    |_|  @
+         @@
+  ____  @
+ | ___| @
+ |___ \ @
+  ___) |@
+ |____/ @
+        @@
+   __   @
+  / /_  @
+ | '_ \ @
+ | (_) |@
+  \___/ @
+        @@
+  _____ @
+ |___  |@
+    / / @
+   / /  @
+  /_/   @
+        @@
+   ___  @
+  ( _ ) @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+   ___  @
+  / _ \ @
+ | (_) |@
+  \__, |@
+    /_/ @
+        @@
+    @
+  _ @
+ (_)@
+  _ @
+ (_)@
+    @@
+    @
+  _ @
+ (_)@
+  _ @
+ ( )@
+ |/ @@
+   __@
+  / /@
+ / / @
+ \ \ @
+  \_\@
+     @@
+        @
+  _____ @
+ |_____|@
+ |_____|@
+    $   @
+        @@
+ __  @
+ \ \ @
+  \ \@
+  / /@
+ /_/ @
+     @@
+  ___ @
+ |__ \@
+   / /@
+  |_| @
+  (_) @
+      @@
+    ____  @
+   / __ \ @
+  / / _` |@
+ | | (_| |@
+  \ \__,_|@
+   \____/ @@
+     _    @
+    / \   @
+   / _ \  @
+  / ___ \ @
+ /_/   \_\@
+          @@
+  ____  @
+ | __ ) @
+ |  _ \ @
+ | |_) |@
+ |____/ @
+        @@
+   ____ @
+  / ___|@
+ | |    @
+ | |___ @
+  \____|@
+        @@
+  ____  @
+ |  _ \ @
+ | | | |@
+ | |_| |@
+ |____/ @
+        @@
+  _____ @
+ | ____|@
+ |  _|  @
+ | |___ @
+ |_____|@
+        @@
+  _____ @
+ |  ___|@
+ | |_   @
+ |  _|  @
+ |_|    @
+        @@
+   ____ @
+  / ___|@
+ | |  _ @
+ | |_| |@
+  \____|@
+        @@
+  _   _ @
+ | | | |@
+ | |_| |@
+ |  _  |@
+ |_| |_|@
+        @@
+  ___ @
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @@
+      _ @
+     | |@
+  _  | |@
+ | |_| |@
+  \___/ @
+        @@
+  _  __@
+ | |/ /@
+ | ' / @
+ | . \ @
+ |_|\_\@
+       @@
+  _     @
+ | |    @
+ | |    @
+ | |___ @
+ |_____|@
+        @@
+  __  __ @
+ |  \/  |@
+ | |\/| |@
+ | |  | |@
+ |_|  |_|@
+         @@
+  _   _ @
+ | \ | |@
+ |  \| |@
+ | |\  |@
+ |_| \_|@
+        @@
+   ___  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+  ____  @
+ |  _ \ @
+ | |_) |@
+ |  __/ @
+ |_|    @
+        @@
+   ___  @
+  / _ \ @
+ | | | |@
+ | |_| |@
+  \__\_\@
+        @@
+  ____  @
+ |  _ \ @
+ | |_) |@
+ |  _ < @
+ |_| \_\@
+        @@
+  ____  @
+ / ___| @
+ \___ \ @
+  ___) |@
+ |____/ @
+        @@
+  _____ @
+ |_   _|@
+   | |  @
+   | |  @
+   |_|  @
+        @@
+  _   _ @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+ __     __@
+ \ \   / /@
+  \ \ / / @
+   \ V /  @
+    \_/   @
+          @@
+ __        __@
+ \ \      / /@
+  \ \ /\ / / @
+   \ V  V /  @
+    \_/\_/   @
+             @@
+ __  __@
+ \ \/ /@
+  \  / @
+  /  \ @
+ /_/\_\@
+       @@
+ __   __@
+ \ \ / /@
+  \ V / @
+   | |  @
+   |_|  @
+        @@
+  _____@
+ |__  /@
+   / / @
+  / /_ @
+ /____|@
+       @@
+  __ @
+ | _|@
+ | | @
+ | | @
+ | | @
+ |__|@@
+ __    @
+ \ \   @
+  \ \  @
+   \ \ @
+    \_\@
+       @@
+  __ @
+ |_ |@
+  | |@
+  | |@
+  | |@
+ |__|@@
+  /\ @
+ |/\|@
+   $ @
+   $ @
+   $ @
+     @@
+        @
+        @
+        @
+        @
+  _____ @
+ |_____|@@
+  _ @
+ ( )@
+  \|@
+  $ @
+  $ @
+    @@
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+  _     @
+ | |__  @
+ | '_ \ @
+ | |_) |@
+ |_.__/ @
+        @@
+       @
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+       @@
+      _ @
+   __| |@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+       @
+   ___ @
+  / _ \@
+ |  __/@
+  \___|@
+       @@
+   __ @
+  / _|@
+ | |_ @
+ |  _|@
+ |_|  @
+      @@
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+  |___/ @@
+  _     @
+ | |__  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+  _ @
+ (_)@
+ | |@
+ | |@
+ |_|@
+    @@
+    _ @
+   (_)@
+   | |@
+   | |@
+  _/ |@
+ |__/ @@
+  _    @
+ | | __@
+ | |/ /@
+ |   < @
+ |_|\_\@
+       @@
+  _ @
+ | |@
+ | |@
+ | |@
+ |_|@
+    @@
+            @
+  _ __ ___  @
+ | '_ ` _ \ @
+ | | | | | |@
+ |_| |_| |_|@
+            @@
+        @
+  _ __  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+        @
+   ___  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+        @
+  _ __  @
+ | '_ \ @
+ | |_) |@
+ | .__/ @
+ |_|    @@
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+     |_|@@
+       @
+  _ __ @
+ | '__|@
+ | |   @
+ |_|   @
+       @@
+      @
+  ___ @
+ / __|@
+ \__ \@
+ |___/@
+      @@
+  _   @
+ | |_ @
+ | __|@
+ | |_ @
+  \__|@
+      @@
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+        @
+ __   __@
+ \ \ / /@
+  \ V / @
+   \_/  @
+        @@
+           @
+ __      __@
+ \ \ /\ / /@
+  \ V  V / @
+   \_/\_/  @
+           @@
+       @
+ __  __@
+ \ \/ /@
+  >  < @
+ /_/\_\@
+       @@
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__, |@
+  |___/ @@
+      @
+  ____@
+ |_  /@
+  / / @
+ /___|@
+      @@
+    __@
+   / /@
+  | | @
+ < <  @
+  | | @
+   \_\@@
+  _ @
+ | |@
+ | |@
+ | |@
+ | |@
+ |_|@@
+ __   @
+ \ \  @
+  | | @
+   > >@
+  | | @
+ /_/  @@
+  /\/|@
+ |/\/ @
+   $  @
+   $  @
+   $  @
+      @@
+  _   _ @
+ (_)_(_)@
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+  _   _ @
+ (_)_(_)@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+   ___ @
+  / _ \@
+ | |/ /@
+ | |\ \@
+ | ||_/@
+ |_|   @@
+160  NO-BREAK SPACE
+ $@
+ $@
+ $@
+ $@
+ $@
+ $@@
+161  INVERTED EXCLAMATION MARK
+  _ @
+ (_)@
+ | |@
+ | |@
+ |_|@
+    @@
+162  CENT SIGN
+    _  @
+   | | @
+  / __)@
+ | (__ @
+  \   )@
+   |_| @@
+163  POUND SIGN
+    ___  @
+   / ,_\ @
+ _| |_   @
+  | |___ @
+ (_,____|@
+         @@
+164  CURRENCY SIGN
+ /\___/\@
+ \  _  /@
+ | (_) |@
+ / ___ \@
+ \/   \/@
+        @@
+165  YEN SIGN
+  __ __ @
+  \ V / @
+ |__ __|@
+ |__ __|@
+   |_|  @
+        @@
+166  BROKEN BAR
+  _ @
+ | |@
+ |_|@
+  _ @
+ | |@
+ |_|@@
+167  SECTION SIGN
+    __ @
+  _/ _)@
+ / \ \ @
+ \ \\ \@
+  \ \_/@
+ (__/  @@
+168  DIAERESIS
+  _   _ @
+ (_) (_)@
+  $   $ @
+  $   $ @
+  $   $ @
+        @@
+169  COPYRIGHT SIGN
+    _____   @
+   / ___ \  @
+  / / __| \ @
+ | | (__   |@
+  \ \___| / @
+   \_____/  @@
+170  FEMININE ORDINAL INDICATOR
+  __ _ @
+ / _` |@
+ \__,_|@
+ |____|@
+    $  @
+       @@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+   ____@
+  / / /@
+ / / / @
+ \ \ \ @
+  \_\_\@
+       @@
+172  NOT SIGN
+        @
+  _____ @
+ |___  |@
+     |_|@
+    $   @
+        @@
+173  SOFT HYPHEN
+       @
+       @
+  ____ @
+ |____|@
+    $  @
+       @@
+174  REGISTERED SIGN
+    _____   @
+   / ___ \  @
+  / | _ \ \ @
+ |  |   /  |@
+  \ |_|_\ / @
+   \_____/  @@
+175  MACRON
+  _____ @
+ |_____|@
+    $   @
+    $   @
+    $   @
+        @@
+176  DEGREE SIGN
+   __  @
+  /  \ @
+ | () |@
+  \__/ @
+    $  @
+       @@
+177  PLUS-MINUS SIGN
+    _   @
+  _| |_ @
+ |_   _|@
+  _|_|_ @
+ |_____|@
+        @@
+178  SUPERSCRIPT TWO
+  ___ @
+ |_  )@
+  / / @
+ /___|@
+   $  @
+      @@
+179  SUPERSCRIPT THREE
+  ____@
+ |__ /@
+  |_ \@
+ |___/@
+   $  @
+      @@
+180  ACUTE ACCENT
+  __@
+ /_/@
+  $ @
+  $ @
+  $ @
+    @@
+181  MICRO SIGN
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+ | ._,_|@
+ |_|    @@
+182  PILCROW SIGN
+   _____ @
+  /     |@
+ | (| | |@
+  \__ | |@
+    |_|_|@
+         @@
+183  MIDDLE DOT
+    @
+  _ @
+ (_)@
+  $ @
+  $ @
+    @@
+184  CEDILLA
+    @
+    @
+    @
+    @
+  _ @
+ )_)@@
+185  SUPERSCRIPT ONE
+  _ @
+ / |@
+ | |@
+ |_|@
+  $ @
+    @@
+186  MASCULINE ORDINAL INDICATOR
+  ___ @
+ / _ \@
+ \___/@
+ |___|@
+   $  @
+      @@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ____  @
+ \ \ \ @
+  \ \ \@
+  / / /@
+ /_/_/ @
+       @@
+188  VULGAR FRACTION ONE QUARTER
+  _   __    @
+ / | / / _  @
+ | |/ / | | @
+ |_/ /|_  _|@
+  /_/   |_| @
+            @@
+189  VULGAR FRACTION ONE HALF
+  _   __   @
+ / | / /__ @
+ | |/ /_  )@
+ |_/ / / / @
+  /_/ /___|@
+           @@
+190  VULGAR FRACTION THREE QUARTERS
+  ____  __    @
+ |__ / / / _  @
+  |_ \/ / | | @
+ |___/ /|_  _|@
+    /_/   |_| @
+              @@
+191  INVERTED QUESTION MARK
+   _  @
+  (_) @
+  | | @
+ / /_ @
+ \___|@
+      @@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+   __   @
+   \_\  @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+    __  @
+   /_/  @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+   //\  @
+  |/_\| @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+195  LATIN CAPITAL LETTER A WITH TILDE
+   /\/| @
+  |/\/  @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+    _   @
+   (o)  @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+198  LATIN CAPITAL LETTER AE
+     ______ @
+    /  ____|@
+   / _  _|  @
+  / __ |___ @
+ /_/ |_____|@
+            @@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+   ____ @
+  / ___|@
+ | |    @
+ | |___ @
+  \____|@
+    )_) @@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+   __   @
+  _\_\_ @
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+    __  @
+  _/_/_ @
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+   //\  @
+  |/_\| @
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+  __  @
+  \_\ @
+ |_ _|@
+  | | @
+ |___|@
+      @@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+   __ @
+  /_/ @
+ |_ _|@
+  | | @
+ |___|@
+      @@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+  //\ @
+ |/_\|@
+ |_ _|@
+  | | @
+ |___|@
+      @@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  |_ _| @
+   | |  @
+  |___| @
+        @@
+208  LATIN CAPITAL LETTER ETH
+    ____  @
+   |  _ \ @
+  _| |_| |@
+ |__ __| |@
+   |____/ @
+          @@
+209  LATIN CAPITAL LETTER N WITH TILDE
+   /\/|@
+  |/\/ @
+ | \| |@
+ | .` |@
+ |_|\_|@
+       @@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+   __   @
+   \_\  @
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+    __  @
+   /_/  @
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+   //\  @
+  |/_\| @
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+213  LATIN CAPITAL LETTER O WITH TILDE
+   /\/| @
+  |/\/  @
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+215  MULTIPLICATION SIGN
+     @
+     @
+ /\/\@
+ >  <@
+ \/\/@
+     @@
+216  LATIN CAPITAL LETTER O WITH STROKE
+   ____ @
+  / _// @
+ | |// |@
+ | //| |@
+  //__/ @
+        @@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+   __   @
+  _\_\_ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+    __  @
+  _/_/_ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+    __  @
+ __/_/__@
+ \ \ / /@
+  \ V / @
+   |_|  @
+        @@
+222  LATIN CAPITAL LETTER THORN
+  _     @
+ | |___ @
+ |  __ \@
+ |  ___/@
+ |_|    @
+        @@
+223  LATIN SMALL LETTER SHARP S
+   ___ @
+  / _ \@
+ | |/ /@
+ | |\ \@
+ | ||_/@
+ |_|   @@
+224  LATIN SMALL LETTER A WITH GRAVE
+   __   @
+   \_\_ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+225  LATIN SMALL LETTER A WITH ACUTE
+    __  @
+   /_/_ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+   //\  @
+  |/_\| @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+227  LATIN SMALL LETTER A WITH TILDE
+   /\/| @
+  |/\/_ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+    __  @
+   (()) @
+  / _ '|@
+ | (_| |@
+  \__,_|@
+        @@
+230  LATIN SMALL LETTER AE
+           @
+   __ ____ @
+  / _`  _ \@
+ | (_|  __/@
+  \__,____|@
+           @@
+231  LATIN SMALL LETTER C WITH CEDILLA
+       @
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+   )_) @@
+232  LATIN SMALL LETTER E WITH GRAVE
+   __  @
+   \_\ @
+  / _ \@
+ |  __/@
+  \___|@
+       @@
+233  LATIN SMALL LETTER E WITH ACUTE
+    __ @
+   /_/ @
+  / _ \@
+ |  __/@
+  \___|@
+       @@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+   //\ @
+  |/_\|@
+  / _ \@
+ |  __/@
+  \___|@
+       @@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ |  __/ @
+  \___| @
+        @@
+236  LATIN SMALL LETTER I WITH GRAVE
+ __ @
+ \_\@
+ | |@
+ | |@
+ |_|@
+    @@
+237  LATIN SMALL LETTER I WITH ACUTE
+  __@
+ /_/@
+ | |@
+ | |@
+ |_|@
+    @@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+  //\ @
+ |/_\|@
+  | | @
+  | | @
+  |_| @
+      @@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+   | |  @
+   | |  @
+   |_|  @
+        @@
+240  LATIN SMALL LETTER ETH
+   /\/\ @
+   >  < @
+  _\/\ |@
+ / __` |@
+ \____/ @
+        @@
+241  LATIN SMALL LETTER N WITH TILDE
+   /\/| @
+  |/\/  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+242  LATIN SMALL LETTER O WITH GRAVE
+   __   @
+   \_\  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+243  LATIN SMALL LETTER O WITH ACUTE
+    __  @
+   /_/  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+244  LATIN SMALL LETTER O WITH CIRCUMFLEX
+   //\  @
+  |/_\| @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+245  LATIN SMALL LETTER O WITH TILDE
+   /\/| @
+  |/\/  @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+246  LATIN SMALL LETTER O WITH DIAERESIS
+  _   _ @
+ (_)_(_)@
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+247  DIVISION SIGN
+        @
+    _   @
+  _(_)_ @
+ |_____|@
+   (_)  @
+        @@
+248  LATIN SMALL LETTER O WITH STROKE
+         @
+   ____  @
+  / _//\ @
+ | (//) |@
+  \//__/ @
+         @@
+249  LATIN SMALL LETTER U WITH GRAVE
+   __   @
+  _\_\_ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+250  LATIN SMALL LETTER U WITH ACUTE
+    __  @
+  _/_/_ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+251  LATIN SMALL LETTER U WITH CIRCUMFLEX
+   //\  @
+  |/ \| @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+252  LATIN SMALL LETTER U WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+253  LATIN SMALL LETTER Y WITH ACUTE
+    __  @
+  _/_/_ @
+ | | | |@
+ | |_| |@
+  \__, |@
+  |___/ @@
+254  LATIN SMALL LETTER THORN
+  _     @
+ | |__  @
+ | '_ \ @
+ | |_) |@
+ | .__/ @
+ |_|    @@
+255  LATIN SMALL LETTER Y WITH DIAERESIS
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | |_| |@
+  \__, |@
+  |___/ @@
+0x0100  LATIN CAPITAL LETTER A WITH MACRON
+   ____ @
+  /___/ @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+0x0101  LATIN SMALL LETTER A WITH MACRON
+    ___ @
+   /_ _/@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+0x0102  LATIN CAPITAL LETTER A WITH BREVE
+  _   _ @
+  \\_// @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+        @@
+0x0103  LATIN SMALL LETTER A WITH BREVE
+   \_/  @
+   ___  @
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+0x0104  LATIN CAPITAL LETTER A WITH OGONEK
+        @
+    _   @
+   /_\  @
+  / _ \ @
+ /_/ \_\@
+     (_(@@
+0x0105  LATIN SMALL LETTER A WITH OGONEK
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__,_|@
+     (_(@@
+0x0106  LATIN CAPITAL LETTER C WITH ACUTE
+     __ @
+   _/_/ @
+  / ___|@
+ | |___ @
+  \____|@
+        @@
+0x0107  LATIN SMALL LETTER C WITH ACUTE
+    __ @
+   /__/@
+  / __|@
+ | (__ @
+  \___|@
+       @@
+0x0108  LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+     /\ @
+   _//\\@
+  / ___|@
+ | |___ @
+  \____|@
+        @@
+0x0109  LATIN SMALL LETTER C WITH CIRCUMFLEX
+    /\ @
+   /_\ @
+  / __|@
+ | (__ @
+  \___|@
+       @@
+0x010A  LATIN CAPITAL LETTER C WITH DOT ABOVE
+    []  @
+   ____ @
+  / ___|@
+ | |___ @
+  \____|@
+        @@
+0x010B  LATIN SMALL LETTER C WITH DOT ABOVE
+   []  @
+   ___ @
+  / __|@
+ | (__ @
+  \___|@
+       @@
+0x010C  LATIN CAPITAL LETTER C WITH CARON
+   \\// @
+   _\/_ @
+  / ___|@
+ | |___ @
+  \____|@
+        @@
+0x010D  LATIN SMALL LETTER C WITH CARON
+   \\//@
+   _\/ @
+  / __|@
+ | (__ @
+  \___|@
+       @@
+0x010E  LATIN CAPITAL LETTER D WITH CARON
+   \\// @
+  __\/  @
+ |  _ \ @
+ | |_| |@
+ |____/ @
+        @@
+0x010F  LATIN SMALL LETTER D WITH CARON
+  \/  _ @
+   __| |@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+0x0110  LATIN CAPITAL LETTER D WITH STROKE
+   ____   @
+  |_ __ \ @
+ /| |/ | |@
+ /|_|/_| |@
+  |_____/ @
+          @@
+0x0111  LATIN SMALL LETTER D WITH STROKE
+    ---|@
+   __| |@
+  / _` |@
+ | (_| |@
+  \__,_|@
+        @@
+0x0112  LATIN CAPITAL LETTER E WITH MACRON
+   ____ @
+  /___/ @
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+0x0113  LATIN SMALL LETTER E WITH MACRON
+    ____@
+   /_ _/@
+  / _ \ @
+ |  __/ @
+  \___| @
+        @@
+0x0114  LATIN CAPITAL LETTER E WITH BREVE
+  _   _ @
+  \\_// @
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+0x0115  LATIN SMALL LETTER E WITH BREVE
+  \\  //@
+    --  @
+  / _ \ @
+ |  __/ @
+  \___| @
+        @@
+0x0116  LATIN CAPITAL LETTER E WITH DOT ABOVE
+    []  @
+  _____ @
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+0x0117  LATIN SMALL LETTER E WITH DOT ABOVE
+    [] @
+    __ @
+  / _ \@
+ |  __/@
+  \___|@
+       @@
+0x0118  LATIN CAPITAL LETTER E WITH OGONEK
+        @
+  _____ @
+ | ____|@
+ |  _|_ @
+ |_____|@
+    (__(@@
+0x0119  LATIN SMALL LETTER E WITH OGONEK
+       @
+   ___ @
+  / _ \@
+ |  __/@
+  \___|@
+    (_(@@
+0x011A  LATIN CAPITAL LETTER E WITH CARON
+   \\// @
+  __\/_ @
+ | ____|@
+ |  _|_ @
+ |_____|@
+        @@
+0x011B  LATIN SMALL LETTER E WITH CARON
+   \\//@
+    \/ @
+  / _ \@
+ |  __/@
+  \___|@
+       @@
+0x011C  LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+   _/\_ @
+  / ___|@
+ | |  _ @
+ | |_| |@
+  \____|@
+        @@
+0x011D  LATIN SMALL LETTER G WITH CIRCUMFLEX
+     /\ @
+   _/_ \@
+  / _` |@
+ | (_| |@
+  \__, |@
+  |___/ @@
+0x011E  LATIN CAPITAL LETTER G WITH BREVE
+   _\/_ @
+  / ___|@
+ | |  _ @
+ | |_| |@
+  \____|@
+        @@
+0x011F  LATIN SMALL LETTER G WITH BREVE
+  \___/ @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+  |___/ @@
+0x0120  LATIN CAPITAL LETTER G WITH DOT ABOVE
+   _[]_ @
+  / ___|@
+ | |  _ @
+ | |_| |@
+  \____|@
+        @@
+0x0121  LATIN SMALL LETTER G WITH DOT ABOVE
+   []   @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+  |___/ @@
+0x0122  LATIN CAPITAL LETTER G WITH CEDILLA
+   ____ @
+  / ___|@
+ | |  _ @
+ | |_| |@
+  \____|@
+   )__) @@
+0x0123  LATIN SMALL LETTER G WITH CEDILLA
+        @
+   __ _ @
+  / _` |@
+ | (_| |@
+  \__, |@
+  |_))))@@
+0x0124  LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+  _/ \_ @
+ | / \ |@
+ | |_| |@
+ |  _  |@
+ |_| |_|@
+        @@
+0x0125  LATIN SMALL LETTER H WITH CIRCUMFLEX
+  _  /\ @
+ | |//\ @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+0x0126  LATIN CAPITAL LETTER H WITH STROKE
+  _   _ @
+ | |=| |@
+ | |_| |@
+ |  _  |@
+ |_| |_|@
+        @@
+0x0127  LATIN SMALL LETTER H WITH STROKE
+  _     @
+ |=|__  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+0x0128  LATIN CAPITAL LETTER I WITH TILDE
+  /\//@
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @@
+0x0129  LATIN SMALL LETTER I WITH TILDE
+    @
+ /\/@
+ | |@
+ | |@
+ |_|@
+    @@
+0x012A  LATIN CAPITAL LETTER I WITH MACRON
+ /___/@
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @@
+0x012B  LATIN SMALL LETTER I WITH MACRON
+  ____@
+ /___/@
+  | | @
+  | | @
+  |_| @
+      @@
+0x012C  LATIN CAPITAL LETTER I WITH BREVE
+  \__/@
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @@
+0x012D  LATIN SMALL LETTER I WITH BREVE
+    @
+ \_/@
+ | |@
+ | |@
+ |_|@
+    @@
+0x012E  LATIN CAPITAL LETTER I WITH OGONEK
+  ___ @
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+  (__(@@
+0x012F  LATIN SMALL LETTER I WITH OGONEK
+  _  @
+ (_) @
+ | | @
+ | | @
+ |_|_@
+  (_(@@
+0x0130  LATIN CAPITAL LETTER I WITH DOT ABOVE
+  _[] @
+ |_ _|@
+  | | @
+  | | @
+ |___|@
+      @@
+0x0131  LATIN SMALL LETTER DOTLESS I
+    @
+  _ @
+ | |@
+ | |@
+ |_|@
+    @@
+0x0132  LATIN CAPITAL LIGATURE IJ
+  ___  _ @
+ |_ _|| |@
+  | | | |@
+  | |_| |@
+ |__|__/ @
+         @@
+0x0133  LATIN SMALL LIGATURE IJ
+  _   _ @
+ (_) (_)@
+ | | | |@
+ | | | |@
+ |_|_/ |@
+   |__/ @@
+0x0134  LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+      /\ @
+     /_\|@
+  _  | | @
+ | |_| | @
+  \___/  @
+         @@
+0x0135  LATIN SMALL LETTER J WITH CIRCUMFLEX
+    /\@
+   /_\@
+   | |@
+   | |@
+  _/ |@
+ |__/ @@
+0x0136  LATIN CAPITAL LETTER K WITH CEDILLA
+  _  _  @
+ | |/ / @
+ | ' /  @
+ | . \  @
+ |_|\_\ @
+    )__)@@
+0x0137  LATIN SMALL LETTER K WITH CEDILLA
+  _    @
+ | | __@
+ | |/ /@
+ |   < @
+ |_|\_\@
+    )_)@@
+0x0138  LATIN SMALL LETTER KRA
+       @
+  _ __ @
+ | |/ \@
+ |   < @
+ |_|\_\@
+       @@
+0x0139  LATIN CAPITAL LETTER L WITH ACUTE
+  _   //@
+ | | // @
+ | |    @
+ | |___ @
+ |_____|@
+        @@
+0x013A  LATIN SMALL LETTER L WITH ACUTE
+  //@
+ | |@
+ | |@
+ | |@
+ |_|@
+    @@
+0x013B  LATIN CAPITAL LETTER L WITH CEDILLA
+  _     @
+ | |    @
+ | |    @
+ | |___ @
+ |_____|@
+    )__)@@
+0x013C  LATIN SMALL LETTER L WITH CEDILLA
+  _   @
+ | |  @
+ | |  @
+ | |  @
+ |_|  @
+   )_)@@
+0x013D  LATIN CAPITAL LETTER L WITH CARON
+  _ \\//@
+ | | \/ @
+ | |    @
+ | |___ @
+ |_____|@
+        @@
+0x013E  LATIN SMALL LETTER L WITH CARON
+  _ \\//@
+ | | \/ @
+ | |    @
+ | |    @
+ |_|    @
+        @@
+0x013F  LATIN CAPITAL LETTER L WITH MIDDLE DOT
+  _     @
+ | |    @
+ | | [] @
+ | |___ @
+ |_____|@
+        @@
+0x0140  LATIN SMALL LETTER L WITH MIDDLE DOT
+  _    @
+ | |   @
+ | | []@
+ | |   @
+ |_|   @
+       @@
+0x0141  LATIN CAPITAL LETTER L WITH STROKE
+  __    @
+ | //   @
+ |//|   @
+ // |__ @
+ |_____|@
+        @@
+0x0142  LATIN SMALL LETTER L WITH STROKE
+  _ @
+ | |@
+ |//@
+ //|@
+ |_|@
+    @@
+0x0143  LATIN CAPITAL LETTER N WITH ACUTE
+  _/ /_ @
+ | \ | |@
+ |  \| |@
+ | |\  |@
+ |_| \_|@
+        @@
+0x0144  LATIN SMALL LETTER N WITH ACUTE
+     _  @
+  _ /_/ @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+0x0145  LATIN CAPITAL LETTER N WITH CEDILLA
+  _   _ @
+ | \ | |@
+ |  \| |@
+ | |\  |@
+ |_| \_|@
+ )_)    @@
+0x0146  LATIN SMALL LETTER N WITH CEDILLA
+        @
+  _ __  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+ )_)    @@
+0x0147  LATIN CAPITAL LETTER N WITH CARON
+  _\/ _ @
+ | \ | |@
+ |  \| |@
+ | |\  |@
+ |_| \_|@
+        @@
+0x0148  LATIN SMALL LETTER N WITH CARON
+  \\//  @
+  _\/_  @
+ | '_ \ @
+ | | | |@
+ |_| |_|@
+        @@
+0x0149  LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+          @
+  _  __   @
+ ( )| '_\ @
+ |/| | | |@
+   |_| |_|@
+          @@
+0x014A  LATIN CAPITAL LETTER ENG
+  _   _ @
+ | \ | |@
+ |  \| |@
+ | |\  |@
+ |_| \ |@
+     )_)@@
+0x014B  LATIN SMALL LETTER ENG
+  _ __  @
+ | '_ \ @
+ | | | |@
+ |_| | |@
+     | |@
+    |__ @@
+0x014C  LATIN CAPITAL LETTER O WITH MACRON
+   ____ @
+  /_ _/ @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+0x014D  LATIN SMALL LETTER O WITH MACRON
+   ____ @
+  /_ _/ @
+  / _ \ @
+ | (_) |@
+  \___/ @
+        @@
+0x014E  LATIN CAPITAL LETTER O WITH BREVE
+  \   / @
+   _-_  @
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+0x014F  LATIN SMALL LETTER O WITH BREVE
+  \   / @
+   _-_  @
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+0x0150  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    ___ @
+   /_/_/@
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+0x0151  LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    ___ @
+   /_/_/@
+  / _ \ @
+ | |_| |@
+  \___/ @
+        @@
+0x0152  LATIN CAPITAL LIGATURE OE
+   ___  ___ @
+  / _ \| __|@
+ | | | |  | @
+ | |_| | |__@
+  \___/|____@
+            @@
+0x0153  LATIN SMALL LIGATURE OE
+             @
+   ___   ___ @
+  / _ \ / _ \@
+ | (_) |  __/@
+  \___/ \___|@
+             @@
+0x0154  LATIN CAPITAL LETTER R WITH ACUTE
+  _/_/  @
+ |  _ \ @
+ | |_) |@
+ |  _ < @
+ |_| \_\@
+        @@
+0x0155  LATIN SMALL LETTER R WITH ACUTE
+     __@
+  _ /_/@
+ | '__|@
+ | |   @
+ |_|   @
+       @@
+0x0156  LATIN CAPITAL LETTER R WITH CEDILLA
+  ____  @
+ |  _ \ @
+ | |_) |@
+ |  _ < @
+ |_| \_\@
+ )_)    @@
+0x0157  LATIN SMALL LETTER R WITH CEDILLA
+       @
+  _ __ @
+ | '__|@
+ | |   @
+ |_|   @
+   )_) @@
+0x0158  LATIN CAPITAL LETTER R WITH CARON
+  _\_/  @
+ |  _ \ @
+ | |_) |@
+ |  _ < @
+ |_| \_\@
+        @@
+0x0159  LATIN SMALL LETTER R WITH CARON
+  \\// @
+  _\/_ @
+ | '__|@
+ | |   @
+ |_|   @
+       @@
+0x015A  LATIN CAPITAL LETTER S WITH ACUTE
+  _/_/  @
+ / ___| @
+ \___ \ @
+  ___) |@
+ |____/ @
+        @@
+0x015B  LATIN SMALL LETTER S WITH ACUTE
+    __@
+  _/_/@
+ / __|@
+ \__ \@
+ |___/@
+      @@
+0x015C  LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+  _/\_  @
+ / ___| @
+ \___ \ @
+  ___) |@
+ |____/ @
+        @@
+0x015D  LATIN SMALL LETTER S WITH CIRCUMFLEX
+      @
+  /_\_@
+ / __|@
+ \__ \@
+ |___/@
+      @@
+0x015E  LATIN CAPITAL LETTER S WITH CEDILLA
+  ____  @
+ / ___| @
+ \___ \ @
+  ___) |@
+ |____/ @
+    )__)@@
+0x015F  LATIN SMALL LETTER S WITH CEDILLA
+      @
+  ___ @
+ / __|@
+ \__ \@
+ |___/@
+   )_)@@
+0x0160  LATIN CAPITAL LETTER S WITH CARON
+  _\_/  @
+ / ___| @
+ \___ \ @
+  ___) |@
+ |____/ @
+        @@
+0x0161  LATIN SMALL LETTER S WITH CARON
+  \\//@
+  _\/ @
+ / __|@
+ \__ \@
+ |___/@
+      @@
+0x0162  LATIN CAPITAL LETTER T WITH CEDILLA
+  _____ @
+ |_   _|@
+   | |  @
+   | |  @
+   |_|  @
+    )__)@@
+0x0163  LATIN SMALL LETTER T WITH CEDILLA
+  _   @
+ | |_ @
+ | __|@
+ | |_ @
+  \__|@
+   )_)@@
+0x0164  LATIN CAPITAL LETTER T WITH CARON
+  _____ @
+ |_   _|@
+   | |  @
+   | |  @
+   |_|  @
+        @@
+0x0165  LATIN SMALL LETTER T WITH CARON
+  \/  @
+ | |_ @
+ | __|@
+ | |_ @
+  \__|@
+      @@
+0x0166  LATIN CAPITAL LETTER T WITH STROKE
+  _____ @
+ |_   _|@
+   | |  @
+  -|-|- @
+   |_|  @
+        @@
+0x0167  LATIN SMALL LETTER T WITH STROKE
+  _   @
+ | |_ @
+ | __|@
+ |-|_ @
+  \__|@
+      @@
+0x0168  LATIN CAPITAL LETTER U WITH TILDE
+        @
+  _/\/_ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+0x0169  LATIN SMALL LETTER U WITH TILDE
+        @
+  _/\/_ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+0x016A  LATIN CAPITAL LETTER U WITH MACRON
+   ____ @
+  /__ _/@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+0x016B  LATIN SMALL LETTER U WITH MACRON
+   ____ @
+  / _  /@
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+0x016C  LATIN CAPITAL LETTER U WITH BREVE
+        @
+   \_/_ @
+ | | | |@
+ | |_| |@
+  \____|@
+        @@
+0x016D  LATIN SMALL LETTER U WITH BREVE
+        @
+   \_/_ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+0x016E  LATIN CAPITAL LETTER U WITH RING ABOVE
+    O   @
+  __  _ @
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+0x016F  LATIN SMALL LETTER U WITH RING ABOVE
+    O   @
+  __ __ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+0x0170  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+   -- --@
+  /_//_/@
+ | | | |@
+ | |_| |@
+  \___/ @
+        @@
+0x0171  LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    ____@
+  _/_/_/@
+ | | | |@
+ | |_| |@
+  \__,_|@
+        @@
+0x0172  LATIN CAPITAL LETTER U WITH OGONEK
+  _   _ @
+ | | | |@
+ | | | |@
+ | |_| |@
+  \___/ @
+    (__(@@
+0x0173  LATIN SMALL LETTER U WITH OGONEK
+        @
+  _   _ @
+ | | | |@
+ | |_| |@
+  \__,_|@
+     (_(@@
+0x0174  LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+ __    /\  __@
+ \ \  //\\/ /@
+  \ \ /\ / / @
+   \ V  V /  @
+    \_/\_/   @
+             @@
+0x0175  LATIN SMALL LETTER W WITH CIRCUMFLEX
+      /\   @
+ __  //\\__@
+ \ \ /\ / /@
+  \ V  V / @
+   \_/\_/  @
+           @@
+0x0176  LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+    /\  @
+ __//\\ @
+ \ \ / /@
+  \ V / @
+   |_|  @
+        @@
+0x0177  LATIN SMALL LETTER Y WITH CIRCUMFLEX
+    /\  @
+   //\\ @
+ | | | |@
+ | |_| |@
+  \__, |@
+  |___/ @@
+0x0178  LATIN CAPITAL LETTER Y WITH DIAERESIS
+  []  []@
+ __    _@
+ \ \ / /@
+  \ V / @
+   |_|  @
+        @@
+0x0179  LATIN CAPITAL LETTER Z WITH ACUTE
+  __/_/@
+ |__  /@
+   / / @
+  / /_ @
+ /____|@
+       @@
+0x017A  LATIN SMALL LETTER Z WITH ACUTE
+    _ @
+  _/_/@
+ |_  /@
+  / / @
+ /___|@
+      @@
+0x017B  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+  __[]_@
+ |__  /@
+   / / @
+  / /_ @
+ /____|@
+       @@
+0x017C  LATIN SMALL LETTER Z WITH DOT ABOVE
+   [] @
+  ____@
+ |_  /@
+  / / @
+ /___|@
+      @@
+0x017D  LATIN CAPITAL LETTER Z WITH CARON
+  _\_/_@
+ |__  /@
+   / / @
+  / /_ @
+ /____|@
+       @@
+0x017E  LATIN SMALL LETTER Z WITH CARON
+  \\//@
+  _\/_@
+ |_  /@
+  / / @
+ /___|@
+      @@
+0x017F  LATIN SMALL LETTER LONG S
+     __ @
+    / _|@
+ |-| |  @
+ |-| |  @
+   |_|  @
+        @@
+0x02C7  CARON
+ \\//@
+  \/ @
+    $@
+    $@
+    $@
+    $@@
+0x02D8  BREVE
+ \\_//@
+  \_/ @
+     $@
+     $@
+     $@
+     $@@
+0x02D9  DOT ABOVE
+ []@
+  $@
+  $@
+  $@
+  $@
+  $@@
+0x02DB  OGONEK
+    $@
+    $@
+    $@
+    $@
+    $@
+ )_) @@
+0x02DD  DOUBLE ACUTE ACCENT
+  _ _ @
+ /_/_/@
+     $@
+     $@
+     $@
+     $@@
--- /dev/null
+++ b/fonts/term.flf
@@ -1,0 +1,600 @@
+flf2a 1 1 2 -1 13 0 0 242
+Terminal by Glenn Chappell 4/93
+Includes characters 128-255
+Enhanced for Latin-2,3,4 by John Cowan <cowan@ccil.org>
+Latin character sets supported only if your screen font does
+figlet release 2.2 -- November 1996
+Permission is hereby given to modify this font, as long as the
+modifier's name is placed on a comment line.
+
+Double-checked by Paul Burton <solution@earthlink.net> 12/96.  Added the new
+parameter supported by FIGlet and FIGWin.  Unlike all other FIGfonts, this one
+is intended to produce output exactly the same as the input unless a control
+file is used.  Therefore it produces the SAME output for smush, kern or fit.
+  
+@
+!@
+"@
+#@
+$@
+%@
+&@
+'@
+(@
+)@
+*@
++@
+,@
+-@
+.@
+/@
+0@
+1@
+2@
+3@
+4@
+5@
+6@
+7@
+8@
+9@
+:@
+;@
+<@
+=@
+>@
+?@
+@#
+A@
+B@
+C@
+D@
+E@
+F@
+G@
+H@
+I@
+J@
+K@
+L@
+M@
+N@
+O@
+P@
+Q@
+R@
+S@
+T@
+U@
+V@
+W@
+X@
+Y@
+Z@
+[@
+\@
+]@
+^@
+_@
+`@
+a@
+b@
+c@
+d@
+e@
+f@
+g@
+h@
+i@
+j@
+k@
+l@
+m@
+n@
+o@
+p@
+q@
+r@
+s@
+t@
+u@
+v@
+w@
+x@
+y@
+z@
+{@
+|@
+}@
+~@
+�@
+�@
+�@
+�@
+++�@
+128
+�@
+129
+�@
+130
+�@
+131
+�@
+132
+�@
+133
+�@
+134
+�@
+135
+�@
+136
+�@
+137
+�@
+138
+�@
+139
+�@
+140
+�@
+141
+�@
+142
+�@
+143
+�@
+144
+�@
+145
+�@
+146
+�@
+147
+�@
+148
+�@
+149
+�@
+150
+�@
+151
+�@
+152
+�@
+153
+�@
+154
+�@
+155
+�@
+156
+�@
+157
+�@
+158
+�@
+159
+�@
+160  NO-BREAK SPACE
+�@
+161  INVERTED EXCLAMATION MARK
+�@
+162  CENT SIGN
+�@
+163  POUND SIGN
+�@
+164  CURRENCY SIGN
+�@
+165  YEN SIGN
+�@
+166  BROKEN BAR
+�@
+167  SECTION SIGN
+�@
+168  DIAERESIS
+�@
+169  COPYRIGHT SIGN
+�@
+170  FEMININE ORDINAL INDICATOR
+�@
+171  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+�@
+172  NOT SIGN
+�@
+173  SOFT HYPHEN
+�@
+174  REGISTERED SIGN
+�@
+175  MACRON
+�@
+176  DEGREE SIGN
+�@
+177  PLUS-MINUS SIGN
+�@
+178  SUPERSCRIPT TWO
+�@
+179  SUPERSCRIPT THREE
+�@
+180  ACUTE ACCENT
+�@
+181  MICRO SIGN
+�@
+182  PILCROW SIGN
+�@
+183  MIDDLE DOT
+�@
+184  CEDILLA
+�@
+185  SUPERSCRIPT ONE
+�@
+186  MASCULINE ORDINAL INDICATOR
+�@
+187  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+�@
+188  VULGAR FRACTION ONE QUARTER
+�@
+189  VULGAR FRACTION ONE HALF
+�@
+190  VULGAR FRACTION THREE QUARTERS
+�@
+191  INVERTED QUESTION MARK
+�@
+192  LATIN CAPITAL LETTER A WITH GRAVE
+�@
+193  LATIN CAPITAL LETTER A WITH ACUTE
+�@
+194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+�@
+195  LATIN CAPITAL LETTER A WITH TILDE
+�@
+196  LATIN CAPITAL LETTER A WITH DIAERESIS
+�@
+197  LATIN CAPITAL LETTER A WITH RING ABOVE
+�@
+198  LATIN CAPITAL LETTER AE
+�@
+199  LATIN CAPITAL LETTER C WITH CEDILLA
+�@
+200  LATIN CAPITAL LETTER E WITH GRAVE
+�@
+201  LATIN CAPITAL LETTER E WITH ACUTE
+�@
+202  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+�@
+203  LATIN CAPITAL LETTER E WITH DIAERESIS
+�@
+204  LATIN CAPITAL LETTER I WITH GRAVE
+�@
+205  LATIN CAPITAL LETTER I WITH ACUTE
+�@
+206  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+�@
+207  LATIN CAPITAL LETTER I WITH DIAERESIS
+�@
+208  LATIN CAPITAL LETTER ETH
+�@
+209  LATIN CAPITAL LETTER N WITH TILDE
+�@
+210  LATIN CAPITAL LETTER O WITH GRAVE
+�@
+211  LATIN CAPITAL LETTER O WITH ACUTE
+�@
+212  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+�@
+213  LATIN CAPITAL LETTER O WITH TILDE
+�@
+214  LATIN CAPITAL LETTER O WITH DIAERESIS
+�@
+215  MULTIPLICATION SIGN
+�@
+216  LATIN CAPITAL LETTER O WITH STROKE
+�@
+217  LATIN CAPITAL LETTER U WITH GRAVE
+�@
+218  LATIN CAPITAL LETTER U WITH ACUTE
+�@
+219  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+�@
+220  LATIN CAPITAL LETTER U WITH DIAERESIS
+�@
+221  LATIN CAPITAL LETTER Y WITH ACUTE
+�@
+222  LATIN CAPITAL LETTER THORN
+�@
+223  LATIN SMALL LETTER SHARP S
+�@
+224  LATIN SMALL LETTER A WITH GRAVE
+�@
+225  LATIN SMALL LETTER A WITH ACUTE
+�@
+226  LATIN SMALL LETTER A WITH CIRCUMFLEX
+�@
+227  LATIN SMALL LETTER A WITH TILDE
+�@
+228  LATIN SMALL LETTER A WITH DIAERESIS
+�@
+229  LATIN SMALL LETTER A WITH RING ABOVE
+�@
+230  LATIN SMALL LETTER AE
+�@
+231  LATIN SMALL LETTER C WITH CEDILLA
+�@
+232  LATIN SMALL LETTER E WITH GRAVE
+�@
+233  LATIN SMALL LETTER E WITH ACUTE
+�@
+234  LATIN SMALL LETTER E WITH CIRCUMFLEX
+�@
+235  LATIN SMALL LETTER E WITH DIAERESIS
+�@
+236  LATIN SMALL LETTER I WITH GRAVE
+�@
+237  LATIN SMALL LETTER I WITH ACUTE
+�@
+238  LATIN SMALL LETTER I WITH CIRCUMFLEX
+�@
+239  LATIN SMALL LETTER I WITH DIAERESIS
+�@
+240  LATIN SMALL LETTER ETH
++241  LATIN SMALL LETTER N WITH TILDE
++242  LATIN SMALL LETTER O WITH GRAVE
++243  LATIN SMALL LETTER O WITH ACUTE
++244  LATIN SMALL LETTER O WITH CIRCUMFLEX
++245  LATIN SMALL LETTER O WITH TILDE
++246  LATIN SMALL LETTER O WITH DIAERESIS
++247  DIVISION SIGN
++248  LATIN SMALL LETTER O WITH STROKE
++249  LATIN SMALL LETTER U WITH GRAVE
++250  LATIN SMALL LETTER U WITH ACUTE
++251  LATIN SMALL LETTER U WITH CIRCUMFLEX
++252  LATIN SMALL LETTER U WITH DIAERESIS
++253  LATIN SMALL LETTER Y WITH ACUTE
++254  LATIN SMALL LETTER THORN
++255  LATIN SMALL LETTER Y WITH DIAERESIS
++0x0100  LATIN CAPITAL LETTER A WITH MACRON
+�@
+0x0101  LATIN SMALL LETTER A WITH MACRON
+�@
+0x0102  LATIN CAPITAL LETTER A WITH BREVE
+�@
+0x0103  LATIN SMALL LETTER A WITH BREVE
+�@
+0x0104  LATIN CAPITAL LETTER A WITH OGONEK
+�@
+0x0105  LATIN SMALL LETTER A WITH OGONEK
+�@
+0x0106  LATIN CAPITAL LETTER C WITH ACUTE
+�@
+0x0107  LATIN SMALL LETTER C WITH ACUTE
+�@
+0x0108  LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+�@
+0x0109  LATIN SMALL LETTER C WITH CIRCUMFLEX
+�@
+0x010A  LATIN CAPITAL LETTER C WITH DOT ABOVE
+�@
+0x010B  LATIN SMALL LETTER C WITH DOT ABOVE
+�@
+0x010C  LATIN CAPITAL LETTER C WITH CARON
+�@
+0x010D  LATIN SMALL LETTER C WITH CARON
+�@
+0x010E  LATIN CAPITAL LETTER D WITH CARON
+�@
+0x010F  LATIN SMALL LETTER D WITH CARON
+�@
+0x0110  LATIN CAPITAL LETTER D WITH STROKE
+�@
+0x0111  LATIN SMALL LETTER D WITH STROKE
++0x0112  LATIN CAPITAL LETTER E WITH MACRON
+�@
+0x0113  LATIN SMALL LETTER E WITH MACRON
+�@
+0x0116  LATIN CAPITAL LETTER E WITH DOT ABOVE
+�@
+0x0117  LATIN SMALL LETTER E WITH DOT ABOVE
+�@
+0x0118  LATIN CAPITAL LETTER E WITH OGONEK
+�@
+0x0119  LATIN SMALL LETTER E WITH OGONEK
+�@
+0x011A  LATIN CAPITAL LETTER E WITH CARON
+�@
+0x011B  LATIN SMALL LETTER E WITH CARON
+�@
+0x011C  LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+�@
+0x011D  LATIN SMALL LETTER G WITH CIRCUMFLEX
++0x011E  LATIN CAPITAL LETTER G WITH BREVE
+�@
+0x011F  LATIN SMALL LETTER G WITH BREVE
+�@
+0x0120  LATIN CAPITAL LETTER G WITH DOT ABOVE
+�@
+0x0121  LATIN SMALL LETTER G WITH DOT ABOVE
++0x0122  LATIN CAPITAL LETTER G WITH CEDILLA
+�@
+0x0123  LATIN SMALL LETTER G WITH CEDILLA
+�@
+0x0124  LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+�@
+0x0125  LATIN SMALL LETTER H WITH CIRCUMFLEX
+�@
+0x0126  LATIN CAPITAL LETTER H WITH STROKE
+�@
+0x0127  LATIN SMALL LETTER H WITH STROKE
+�@
+0x0128  LATIN CAPITAL LETTER I WITH TILDE
+�@
+0x0129  LATIN SMALL LETTER I WITH TILDE
+�@
+0x012A  LATIN CAPITAL LETTER I WITH MACRON
+�@
+0x012B  LATIN SMALL LETTER I WITH MACRON
+�@
+0x012E  LATIN CAPITAL LETTER I WITH OGONEK
+�@
+0x012F  LATIN SMALL LETTER I WITH OGONEK
+�@
+0x0130  LATIN CAPITAL LETTER I WITH DOT ABOVE
+�@
+0x0131  LATIN SMALL LETTER DOTLESS I
+�@
+0x0134  LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+�@
+0x0135  LATIN SMALL LETTER J WITH CIRCUMFLEX
+�@
+0x0136  LATIN CAPITAL LETTER K WITH CEDILLA
+�@
+0x0137  LATIN SMALL LETTER K WITH CEDILLA
++0x0138  LATIN SMALL LETTER KRA
+�@
+0x0139  LATIN CAPITAL LETTER L WITH ACUTE
+�@
+0x013A  LATIN SMALL LETTER L WITH ACUTE
+�@
+0x013B  LATIN CAPITAL LETTER L WITH CEDILLA
+�@
+0x013C  LATIN SMALL LETTER L WITH CEDILLA
+�@
+0x013D  LATIN CAPITAL LETTER L WITH CARON
+�@
+0x013E  LATIN SMALL LETTER L WITH CARON
+�@
+0x0141  LATIN CAPITAL LETTER L WITH STROKE
+�@
+0x0142  LATIN SMALL LETTER L WITH STROKE
+�@
+0x0143  LATIN CAPITAL LETTER N WITH ACUTE
+�@
+0x0144  LATIN SMALL LETTER N WITH ACUTE
++0x0145  LATIN CAPITAL LETTER N WITH CEDILLA
+�@
+0x0146  LATIN SMALL LETTER N WITH CEDILLA
++0x0147  LATIN CAPITAL LETTER N WITH CARON
+�@
+0x0148  LATIN SMALL LETTER N WITH CARON
++0x014A  LATIN CAPITAL LETTER ENG
+�@
+0x014B  LATIN SMALL LETTER ENG
+�@
+0x014C  LATIN CAPITAL LETTER O WITH MACRON
+�@
+0x014D  LATIN SMALL LETTER O WITH MACRON
++0x0150  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+�@
+0x0151  LATIN SMALL LETTER O WITH DOUBLE ACUTE
++0x0154  LATIN CAPITAL LETTER R WITH ACUTE
+�@
+0x0155  LATIN SMALL LETTER R WITH ACUTE
+�@
+0x0156  LATIN CAPITAL LETTER R WITH CEDILLA
+�@
+0x0157  LATIN SMALL LETTER R WITH CEDILLA
+�@
+0x0158  LATIN CAPITAL LETTER R WITH CARON
+�@
+0x0159  LATIN SMALL LETTER R WITH CARON
++0x015A  LATIN CAPITAL LETTER S WITH ACUTE
+�@
+0x015B  LATIN SMALL LETTER S WITH ACUTE
+�@
+0x015C  LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+�@
+0x015D  LATIN SMALL LETTER S WITH CIRCUMFLEX
++0x015E  LATIN CAPITAL LETTER S WITH CEDILLA
+�@
+0x015F  LATIN SMALL LETTER S WITH CEDILLA
+�@
+0x0160  LATIN CAPITAL LETTER S WITH CARON
+�@
+0x0161  LATIN SMALL LETTER S WITH CARON
+�@
+0x0162  LATIN CAPITAL LETTER T WITH CEDILLA
+�@
+0x0163  LATIN SMALL LETTER T WITH CEDILLA
++0x0164  LATIN CAPITAL LETTER T WITH CARON
+�@
+0x0165  LATIN SMALL LETTER T WITH CARON
+�@
+0x0166  LATIN CAPITAL LETTER T WITH STROKE
+�@
+0x0167  LATIN SMALL LETTER T WITH STROKE
+�@
+0x0168  LATIN CAPITAL LETTER U WITH TILDE
+�@
+0x0169  LATIN SMALL LETTER U WITH TILDE
++0x016A  LATIN CAPITAL LETTER U WITH MACRON
+�@
+0x016B  LATIN SMALL LETTER U WITH MACRON
++0x016C  LATIN CAPITAL LETTER U WITH BREVE
+�@
+0x016D  LATIN SMALL LETTER U WITH BREVE
++0x016E  LATIN CAPITAL LETTER U WITH RING ABOVE
+�@
+0x016F  LATIN SMALL LETTER U WITH RING ABOVE
++0x0170  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+�@
+0x0171  LATIN SMALL LETTER U WITH DOUBLE ACUTE
++0x0172  LATIN CAPITAL LETTER U WITH OGONEK
+�@
+0x0173  LATIN SMALL LETTER U WITH OGONEK
++0x0179  LATIN CAPITAL LETTER Z WITH ACUTE
+�@
+0x017A  LATIN SMALL LETTER Z WITH ACUTE
+�@
+0x017B  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+�@
+0x017C  LATIN SMALL LETTER Z WITH DOT ABOVE
+�@
+0x017D  LATIN CAPITAL LETTER Z WITH CARON
+�@
+0x017E  LATIN SMALL LETTER Z WITH CARON
+�@
+0x02C7  CARON
+�@
+0x02D8  BREVE
+�@
+0x02D9  DOT ABOVE
++0x02DB  OGONEK
+�@
+0x02DD  DOUBLE ACUTE ACCENT
+�@
--- /dev/null
+++ b/fonts/upper.flc
@@ -1,0 +1,193 @@
+flc2a
+# Upper by Glenn Chappell <ggc@uiuc.edu> 1/94
+# Converts lower-case to upper-case.
+# Modified to support all of Unicode by John Cowan <cowan@ccil.org> 10/96
+# figlet release 2.2 -- November 1996
+#
+# This is a figlet controlfile.
+#
+# Explanation of first line:
+#   flc2 - "magic number" for file identification
+#   a    - should always be `a', for now
+#
+# File body:
+#   The first character of any line is the "command" for that line.
+#   Possible figlet 2.1 commands are as follows:
+#   `#' - comment, continues until end-of-line
+#   `t' - translate, a not-so-fancy version of the Unix "tr" command
+#   `f' - freeze, treat further lines as if they were in a new file
+#
+# The following lines convert lower-case to upper-case.
+#
+# Standard letters:
+t a-z A-Z
+#
+# figlet Deutsch characters (obsolete in 2.2 and later):
+t \-252-\-250 \-255-\-253
+#
+# ISO Latin-1 accented letters:
+t \224-\246 \192-\214
+t \248-\254 \216-\222
+# Note: Latin-1 has no upper-case Y umlaut, so map to "Y".
+# But remove the following line for Unicode fonts.
+t \255 Y
+# This is the proper Unicode mapping, and does no harm for non-Unicode fonts.
+t \255 \0x0178
+# Latin Extended A (Latin-2,3,4,5) accented letters:
+t \0x01\0x01 \0x0100
+t \0x0103 \0x0102
+t \0x0105 \0x0104
+t \0x0107 \0x0106
+t \0x0109 \0x0108
+t \0x010B \0x010A
+t \0x010D \0x010C
+t \0x010F \0x010E
+t \0x01\0x01 \0x0100
+t \0x0103 \0x0102
+t \0x0105 \0x0104
+t \0x0117 \0x0116
+t \0x0119 \0x0118
+t \0x011B \0x011A
+t \0x011D \0x011C
+t \0x011F \0x011E
+t \0x01\0x01 \0x0100
+t \0x0103 \0x0102
+t \0x0105 \0x0104
+t \0x0127 \0x0126
+t \0x0129 \0x0128
+t \0x012B \0x012A
+t \0x012D \0x012C
+t \0x012F \0x012E
+t \0x0131 I
+t \0x0133 \0x0132
+t \0x0135 \0x0134
+t \0x0137 \0x0136
+t \0x0138 K
+t \0x013A \0x0139
+t \0x013C \0x013B
+t \0x013E \0x013D
+t \0x0140 \0x013F
+t \0x0142 \0x0141
+t \0x0144 \0x0143
+t \0x0146 \0x0145
+t \0x0148 \0x0147
+t \0x0149 N
+t \0x014B \0x014A
+t \0x014D \0x014C
+t \0x014F \0x014E
+t \0x0151 \0x0150
+t \0x0153 \0x0152
+t \0x0155 \0x0154
+t \0x0157 \0x0156
+t \0x0159 \0x0158
+t \0x015B \0x015A
+t \0x015D \0x015C
+t \0x015F \0x015E
+t \0x0161 \0x0160
+t \0x0163 \0x0162
+t \0x0165 \0x0164
+t \0x0167 \0x0166
+t \0x0169 \0x0168
+t \0x016B \0x016A
+t \0x016D \0x016C
+t \0x016F \0x016E
+t \0x0171 \0x0170
+t \0x0173 \0x0172
+t \0x0175 \0x0174
+t \0x0177 \0x0176
+t \0x017A \0x0179
+t \0x017C \0x017B
+t \0x017E \0x017D
+t \0x017F S
+# Greek letters:
+\0x037A \0x0399
+\0x0390 \0x0399
+\0x03AC \0x0386
+\0x03AD \0x0388
+\0x03AE \0x0389
+\0x03AF \0x038A
+\0x03B0 \0x03AB
+\0x03B1-\0x03C1 \0x0391-\0x03A1
+\0x03C2 \0x03A3
+\0x03C3-\0x03CB \0x03A3-\0x03AB
+\0x03CC \0x038C
+\0x03CD \0x038E
+\0x03CE \0x038F
+\0x03E3 \0x03E2
+\0x03E5 \0x03E4
+\0x03E7 \0x03E6
+\0x03E9 \0x03E8
+\0x03EB \0x03EA
+\0x03ED \0x03EC
+\0x03EF \0x03ED
+# Cyrillic letters:
+\0x0430-\0x044F \0x0410-\0x042F
+\0x0451-\0x045F \0x0401-\0x040F
+\0x0461 \0x0460
+\0x0463 \0x0461
+\0x0465 \0x0464
+\0x0467 \0x0466
+\0x0469 \0x0468
+\0x046B \0x046A
+\0x046D \0x046C
+\0x046F \0x046E
+\0x0471 \0x0470
+\0x0473 \0x0471
+\0x0475 \0x0474
+\0x0477 \0x0476
+\0x0479 \0x0478
+\0x047B \0x047A
+\0x047D \0x047C
+\0x047F \0x047E
+\0x0481 \0x0480
+\0x0491 \0x0490
+\0x0493 \0x0491
+\0x0495 \0x0494
+\0x0497 \0x0496
+\0x0499 \0x0498
+\0x049B \0x049A
+\0x049D \0x049C
+\0x049F \0x049E
+\0x04A1 \0x04A0
+\0x04A3 \0x04A1
+\0x04A5 \0x04A4
+\0x04A7 \0x04A6
+\0x04A9 \0x04A8
+\0x04AB \0x04AA
+\0x04AD \0x04AC
+\0x04AF \0x04AE
+\0x04B1 \0x04B0
+\0x04B3 \0x04B1
+\0x04B5 \0x04B4
+\0x04B7 \0x04B6
+\0x04B9 \0x04B8
+\0x04BB \0x04BA
+\0x04BD \0x04BC
+\0x04BF \0x04BE
+\0x04C2 \0x04C1
+\0x04C4 \0x04C3
+\0x04C8 \0x04C7
+\0x04CC \0x04CB
+\0x04D1 \0x04D0
+\0x04D3 \0x04D2
+\0x04D5 \0x04D4
+\0x04D7 \0x04D6
+\0x04D9 \0x04D8
+\0x04DB \0x04DA
+\0x04DD \0x04DC
+\0x04DF \0x04DE
+\0x04E1 \0x04E0
+\0x04E3 \0x04E2
+\0x04E5 \0x04E4
+\0x04E7 \0x04E6
+\0x04E9 \0x04E8
+\0x04EB \0x04EA
+\0x04ED \0x04EC
+\0x04EF \0x04EE
+\0x04F1 \0x04F0
+\0x04F3 \0x04F2
+\0x04F5 \0x04F4
+\0x04F7 \0x04F6
+\0x04F9 \0x04F8
+# Armenian letters:
+\0x0561-\0x0586 \0x0531-\0x0556
--- /dev/null
+++ b/fonts/ushebrew.flc
@@ -1,0 +1,33 @@
+flc2a
+# implements a natural mapping from the U.S. keyboard
+# to Hebrew characters in the Ivrit font.
+# Note that capital letters remain unchanged.
+
+t a \0x05d0
+t b \0x05d1
+t g \0x05d2
+t d \0x05d3
+t h \0x05d4
+t v \0x05d5
+t z \0x05d6
+t c \0x05d7
+t t \0x05d8
+t y \0x05d9
+t k \0x05db
+t f \0x05da
+t l \0x05dc
+t m \0x05de
+t o \0x05dd
+t n \0x05e0
+t i \0x05df
+t e \0x05e1
+t _ \0x05e2
+t p \0x05e4
+t u \0x05e3
+t j \0x05e6
+t w \0x05e5
+t q \0x05e7
+t r \0x05e8
+t s \0x05e9
+t x \0x05ea
+t ~ \-3
--- /dev/null
+++ b/fonts/uskata.flc
@@ -1,0 +1,53 @@
+flc2a
+# Maps the upper and lower case alphabet (A-Z and a-v) into the
+# 48 basic katakana Unicodes.  Can be used with any Unicode katakana
+# font, such as Banner.
+t A \0x30A2
+t B \0x30A4
+t C \0x30A6
+t D \0x30A8
+t E \0x30AA
+t F \0x30AB
+t G \0x30AD
+t H \0x30AF
+t I \0x30B1
+t J \0x30B3
+t K \0x30B5
+t L \0x30B7
+t M \0x30B9
+t N \0x30BB
+t O \0x30BD
+t P \0x30BF
+t Q \0x30C1
+t R \0x30C4
+t S \0x30C6
+t T \0x30C8
+t U \0x30CA
+t V \0x30CB
+t W \0x30CC
+t X \0x30CD
+t Y \0x30CE
+t Z \0x30CF
+t a \0x30D2
+t b \0x30D5
+t c \0x30D8
+t d \0x30DB
+t e \0x30DE
+t f \0x30DF
+t g \0x30E0
+t h \0x30E1
+t i \0x30E2
+t j \0x30E4
+t k \0x30E6
+t l \0x30E8
+t m \0x30F1
+t n \0x30E9
+t o \0x30EA
+t p \0x30EB
+t q \0x30EC
+t r \0x30ED
+t s \0x30EF
+t t \0x30F0
+t u \0x30F2
+t v \0x30F3
+t ~ \-4
--- /dev/null
+++ b/fonts/utf8.flc
@@ -1,0 +1,4 @@
+flc2a
+# Set UTF-8 input mode (an 8-bit encoding of Unicode that preserves ASCII)
+# Meaningful only to FIGlet 2.2 beta 4 or better
+u
--- /dev/null
+++ b/getopt.c
@@ -1,0 +1,106 @@
+/*
+ * *    @(#)getopt.c    2.3 (smail) 5/30/87 
+ */
+
+/*
+ * Here's something you've all been waiting for:  the AT&T public domain
+ * source for getopt(3).  It is the code which was given out at the 1985
+ * UNIFORUM conference in Dallas. I obtained it by electronic mail directly
+ * from AT&T.  The people there assure me that it is indeed in the public
+ * domain. 
+ *
+ * There is no manual page. That is because the one they gave out at UNIFORUM
+ * was slightly different from the current System V Release 2 manual page. 
+ * The difference apparently involved a note about the famous rules 5 and 6,
+ * recommending using white space between an option and its first argument,
+ * and not grouping options that have arguments. Getopt itself is currently
+ * lenient about both of these things White space is allowed, but not
+ * mandatory, and the last option in a group can have an argument.  That
+ * particular version of the man page evidently has no official existence,
+ * and my source at AT&T did not send a copy. The current SVR2 man page
+ * reflects the actual behavior of this getopt. However, I am not about to
+ * post a copy of anything licensed by AT&T. 
+ */
+
+#include <u.h>
+#include <libc.h>
+
+#ifdef BSD
+ #include <strings.h>
+#else
+ #define index strchr
+#endif
+
+/* LINTLIBRARY */
+#ifndef NULL
+#define NULL    0
+#endif
+
+#define EOF    (-1)
+#define ERR(s, c)    if(opterr){\
+    extern int write(int, void *, long);\
+    char errbuf[2];\
+    errbuf[0] = (char)c; errbuf[1] = '\n';\
+    (void) write(2, argv[0], strlen(argv[0]));\
+    (void) write(2, s, strlen(s));\
+    (void) write(2, errbuf, 2);}
+
+extern char    *index();
+
+int             opterr = 1;
+int             optind = 1;
+int             optopt;
+char           *optarg;
+
+int getopt(int argc, char *argv[], char *opts)
+{
+      static int      sp = 1;
+      register int    c;
+      register char  *cp;
+
+      if (sp == 1)
+      {
+            if (optind >= argc || argv[optind][0] != '-' ||
+                  argv[optind][1] == '\0')
+                        return (EOF);
+            else if (strcmp(argv[optind], "--") == 0)
+            {
+                  optind++;
+                  return (EOF);
+            }
+      }
+      optopt = c = argv[optind][sp];
+      if (c == ':' || (cp = index(opts, c)) == NULL)
+      {
+            ERR(": illegal option -- ", c);
+            if (argv[optind][++sp] == '\0')
+            {
+                  optind++;
+                  sp = 1;
+            }
+            return ('?');
+      }
+      if (*++cp == ':')
+      {
+            if (argv[optind][sp + 1] != '\0')
+                  optarg = &argv[optind++][sp + 1];
+            else if (++optind >= argc)
+            {
+                  ERR(": option requires an argument -- ", c);
+                  sp = 1;
+                  return ('?');
+            }
+            else  optarg = argv[optind++];
+            sp = 1;
+      }
+      else
+      {
+            if (argv[optind][++sp] == '\0')
+            {
+                  sp = 1;
+                  optind++;
+            }
+            optarg = NULL;
+      }
+      return (c);
+}
--- /dev/null
+++ b/inflate.c
@@ -1,0 +1,1318 @@
+/*
+ * inflate.c -  inflate decompression routine
+ *
+ * Version 1.1
+ */
+
+/*
+ * Copyright (c) 1995, Edward B. Hamrick
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that
+ *
+ * (i)  the above copyright notice and the text in this "C" comment block
+ *      appear in all copies of the software and related documentation, and
+ *
+ * (ii) any modifications to this source file must be sent, via e-mail
+ *      to the copyright owner (currently hamrick@primenet.com) within 
+ *      30 days of such modification.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL EDWARD B. HAMRICK BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * inflate.c is based on the public-domain (non-copyrighted) version
+ * written by Mark Adler, version c14o, 23 August 1994.  It has been 
+ * modified to be reentrant, more portable, and to be data driven.
+ */
+
+/*
+ * 1) All file i/o is done externally to these routines
+ * 2) Routines are symmetrical so inflate can feed into deflate
+ * 3) Routines can be easily integrated into wide range of applications
+ * 4) Routines are very portable, and use only ANSI C
+ * 5) No #defines in inflate.h to conflict with external #defines
+ * 6) No external routines need be called by these routines
+ * 7) Buffers are owned by the calling routine
+ * 8) No static non-constant variables are allowed
+ */
+
+/*
+ * Note that for each call to InflatePutBuffer, there will be
+ * 0 or more calls to (*putbuffer_ptr).  Before InflatePutBuffer
+ * returns, it will have output as much uncompressed data as
+ * is possible.
+ */
+
+#ifdef MEMCPY
+#include <mem.h>
+#endif
+
+#include "inflate.h"
+
+/*
+ * Macros for constants
+ */
+
+#ifndef NULL
+#define NULL ((void *) 0)
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef WINDOWSIZE
+#define WINDOWSIZE 0x8000
+#endif
+
+#ifndef WINDOWMASK
+#define WINDOWMASK 0x7fff
+#endif
+
+#ifndef BUFFERSIZE
+#define BUFFERSIZE 0x4000
+#endif
+
+#ifndef BUFFERMASK
+#define BUFFERMASK 0x3fff
+#endif
+
+#ifndef INFLATESTATETYPE
+#define INFLATESTATETYPE   0xabcdabcdL
+#endif
+
+/*
+ * typedefs
+ */
+
+typedef unsigned long  ulg;
+typedef unsigned short ush;
+typedef unsigned char  uch;
+
+/* Structure to hold state for inflating zip files */
+struct InflateState {
+
+  unsigned long  runtimetypeid1;             /* to detect run-time errors  */
+  int            errorencountered;           /* error encountered flag     */
+
+  /* Decoding state */
+  int            state;                      /* -1 -> need block type      */
+                                             /*  0 -> need stored setup    */
+                                             /*  1 -> need fixed setup     */
+                                             /*  2 -> need dynamic setup   */
+                                             /* 10 -> need stored data     */
+                                             /* 11 -> need fixed data      */
+                                             /* 12 -> need dynamic data    */
+
+/* State for decoding fixed & dynamic data */
+  struct huft   *tl;                         /* literal/length decoder tbl */
+  struct huft   *td;                         /* distance decoder table     */
+  int            bl;                         /* bits decoded by tl         */
+  int            bd;                         /* bits decoded by td         */
+
+  /* State for decoding stored data */
+  unsigned int   storelength;
+
+  /* State to keep track that last block has been encountered */
+  int            lastblock;                  /* current block is last      */
+
+  /* Input buffer state (circular) */
+  ulg            bb;                         /* input buffer bits          */
+  unsigned int   bk;                         /* input buffer count of bits */
+  unsigned int   bp;                         /* input buffer pointer       */
+  unsigned int   bs;                         /* input buffer size          */
+  unsigned char  buffer[BUFFERSIZE];         /* input buffer data          */
+
+  /* Storage for try/catch */
+  ulg            catch_bb;                   /* bit buffer                 */
+  unsigned int   catch_bk;                   /* bits in bit buffer         */
+  unsigned int   catch_bp;                   /* buffer pointer             */
+  unsigned int   catch_bs;                   /* buffer size                */
+
+  /* Output window state (circular) */
+  unsigned int   wp;                         /* output window pointer      */
+  unsigned int   wf;                         /* output window flush-from   */
+  unsigned char  window[WINDOWSIZE];         /* output window data         */
+
+  /* Application state */
+  void          *AppState;                   /* opaque ptr for callout     */
+
+  /* pointers to call-outs */
+  int (*putbuffer_ptr)(                      /* returns 0 on success       */
+    void *AppState,                          /* opaque ptr from Initialize */
+    unsigned char *buffer,                   /* buffer to put              */
+    long length                              /* length of buffer           */
+  );
+
+  void *(*malloc_ptr)(long length);          /* utility routine            */
+
+  void (*free_ptr)(void *buffer);            /* utility routine            */
+
+  unsigned long  runtimetypeid2;             /* to detect run-time errors  */
+};
+
+/*
+ * Error handling macro
+ */
+
+#define ERROREXIT(is) {(is)->errorencountered = TRUE; return TRUE;}
+
+/*
+ * Macros for handling data in the input buffer
+ *
+ * Note that the NEEDBITS and DUMPBITS macros
+ * need to be bracketed by the TRY/CATCH macros
+ *
+ * The usage is:
+ *
+ *      TRY
+ *      {
+ *        NEEDBITS(j)
+ *        x = b & mask_bits[j];
+ *        DUMPBITS(j)
+ *      }
+ *      CATCH_BEGIN
+ *        cleanup code
+ *      CATCH_END
+ *
+ * Note that there can only be one TRY/CATCH pair per routine
+ * because of the use of goto in the implementation of the macros.
+ *
+ * NEEDBITS makes sure that b has at least j bits in it, and
+ * DUMPBITS removes the bits from b.  The macros use the variable k
+ * for the number of bits in b.  Normally, b and k are register
+ * variables for speed, and are initialized at the beginning of a
+ * routine that uses these macros from a global bit buffer and count.
+ *
+ * In order to not ask for more bits than there are in the compressed
+ * stream, the Huffman tables are constructed to only ask for just
+ * enough bits to make up the end-of-block code (value 256).  Then no
+ * bytes need to be "returned" to the buffer at the end of the last
+ * block.  See the huft_build() routine.
+ */
+
+#define TRY              \
+  is->catch_bb = b;      \
+  is->catch_bk = k;      \
+  is->catch_bp = is->bp; \
+  is->catch_bs = is->bs;
+
+#define CATCH_BEGIN      \
+  goto cleanup_done;     \
+  cleanup:               \
+  b      = is->catch_bb; \
+  k      = is->catch_bk; \
+  is->bb = b;            \
+  is->bk = k;            \
+  is->bp = is->catch_bp; \
+  is->bs = is->catch_bs;
+
+#define CATCH_END \
+  cleanup_done: ;
+
+#define NEEDBITS(n)                                      \
+{                                                        \
+  while (k < (n))                                        \
+  {                                                      \
+    if (is->bs <= 0)                                     \
+    {                                                    \
+      goto cleanup;                                      \
+    }                                                    \
+    b |= ((ulg) (is->buffer[is->bp & BUFFERMASK])) << k; \
+    is->bs--;                                            \
+    is->bp++;                                            \
+    k += 8;                                              \
+  }                                                      \
+}
+
+#define DUMPBITS(n) \
+{                   \
+  b >>= (n);        \
+  k -= (n);         \
+}
+
+/*
+ * Macro for flushing the output window to the putbuffer callout.
+ *
+ * Note that the window is always flushed when it fills to 32K,
+ * and before returning to the application.
+ */
+
+#define FLUSHWINDOW(w, now)                               \
+if ((now && (is->wp > is->wf)) || ((w) >= WINDOWSIZE))    \
+{                                                         \
+  is->wp = (w);                                           \
+  if ((*(is->putbuffer_ptr))                              \
+        (is->AppState, is->window+is->wf, is->wp-is->wf)) \
+    ERROREXIT(is);                                        \
+  is->wp &= WINDOWMASK;                                   \
+  is->wf  = is->wp;                                       \
+  (w) = is->wp;                                           \
+}
+
+/*
+ * Inflate deflated (PKZIP's method 8 compressed) data.  The compression
+ * method searches for as much of the current string of bytes (up to a
+ * length of 258) in the previous 32K bytes.  If it doesn't find any
+ * matches (of at least length 3), it codes the next byte.  Otherwise, it
+ * codes the length of the matched string and its distance backwards from
+ * the current position.  There is a single Huffman code that codes both
+ * single bytes (called "literals") and match lengths.  A second Huffman
+ * code codes the distance information, which follows a length code.  Each
+ * length or distance code actually represents a base value and a number
+ * of "extra" (sometimes zero) bits to get to add to the base value.  At
+ * the end of each deflated block is a special end-of-block (EOB) literal/
+ * length code.  The decoding process is basically: get a literal/length
+ * code; if EOB then done; if a literal, emit the decoded byte; if a
+ * length then get the distance and emit the referred-to bytes from the
+ * sliding window of previously emitted data.
+ *
+ * There are (currently) three kinds of inflate blocks: stored, fixed, and
+ * dynamic.  The compressor outputs a chunk of data at a time and decides
+ * which method to use on a chunk-by-chunk basis.  A chunk might typically
+ * be 32K to 64K, uncompressed.  If the chunk is uncompressible, then the
+ * "stored" method is used.  In this case, the bytes are simply stored as
+ * is, eight bits per byte, with none of the above coding.  The bytes are
+ * preceded by a count, since there is no longer an EOB code.
+ *
+ * If the data is compressible, then either the fixed or dynamic methods
+ * are used.  In the dynamic method, the compressed data is preceded by
+ * an encoding of the literal/length and distance Huffman codes that are
+ * to be used to decode this block.  The representation is itself Huffman
+ * coded, and so is preceded by a description of that code.  These code
+ * descriptions take up a little space, and so for small blocks, there is
+ * a predefined set of codes, called the fixed codes.  The fixed method is
+ * used if the block ends up smaller that way (usually for quite small
+ * chunks); otherwise the dynamic method is used.  In the latter case, the
+ * codes are customized to the probabilities in the current block and so
+ * can code it much better than the pre-determined fixed codes can.
+ *
+ * The Huffman codes themselves are decoded using a mutli-level table
+ * lookup, in order to maximize the speed of decoding plus the speed of
+ * building the decoding tables.  See the comments below that precede the
+ * lbits and dbits tuning parameters.
+ */
+
+/*
+ * Notes beyond the 1.93a appnote.txt:
+ *
+ * 1. Distance pointers never point before the beginning of the output
+ *    stream.
+ * 2. Distance pointers can point back across blocks, up to 32k away.
+ * 3. There is an implied maximum of 7 bits for the bit length table and
+ *    15 bits for the actual data.
+ * 4. If only one code exists, then it is encoded using one bit.  (Zero
+ *    would be more efficient, but perhaps a little confusing.)  If two
+ *    codes exist, they are coded using one bit each (0 and 1).
+ * 5. There is no way of sending zero distance codes--a dummy must be
+ *    sent if there are none.  (History: a pre 2.0 version of PKZIP would
+ *    store blocks with no distance codes, but this was discovered to be
+ *    too harsh a criterion.)  Valid only for 1.93a.  2.04c does allow
+ *    zero distance codes, which is sent as one code of zero bits in
+ *    length.
+ * 6. There are up to 286 literal/length codes.  Code 256 represents the
+ *    end-of-block.  Note however that the static length tree defines
+ *    288 codes just to fill out the Huffman codes.  Codes 286 and 287
+ *    cannot be used though, since there is no length base or extra bits
+ *    defined for them.  Similarly, there are up to 30 distance codes.
+ *    However, static trees define 32 codes (all 5 bits) to fill out the
+ *    Huffman codes, but the last two had better not show up in the data.
+ * 7. Unzip can check dynamic Huffman blocks for complete code sets.
+ *    The exception is that a single code would not be complete (see #4).
+ * 8. The five bits following the block type is really the number of
+ *    literal codes sent minus 257.
+ * 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
+ *    (1+6+6).  Therefore, to output three times the length, you output
+ *    three codes (1+1+1), whereas to output four times the same length,
+ *    you only need two codes (1+3).  Hmm.
+ *10. In the tree reconstruction algorithm, Code = Code + Increment
+ *    only if BitLength(i) is not zero.  (Pretty obvious.)
+ *11. Correction: 4 Bits: # of Bit Length codes - 4     (4 - 19)
+ *12. Note: length code 284 can represent 227-258, but length code 285
+ *    really is 258.  The last length deserves its own, short code
+ *    since it gets used a lot in very redundant files.  The length
+ *    258 is special since 258 - 3 (the min match length) is 255.
+ *13. The literal/length and distance code bit lengths are read as a
+ *    single stream of lengths.  It is possible (and advantageous) for
+ *    a repeat code (16, 17, or 18) to go across the boundary between
+ *    the two sets of lengths.
+ */
+
+/*
+ * Huffman code lookup table entry--this entry is four bytes for machines
+ * that have 16-bit pointers (e.g. PC's in the small or medium model).
+ * Valid extra bits are 0..13.  e == 15 is EOB (end of block), e == 16
+ * means that v is a literal, 16 < e < 32 means that v is a pointer to
+ * the next table, which codes e - 16 bits, and lastly e == 99 indicates
+ * an unused code.  If a code with e == 99 is looked up, this implies an
+ * error in the data.
+ */
+
+struct huft {
+  uch e;                /* number of extra bits or operation */
+  uch b;                /* number of bits in this code or subcode */
+  union {
+    ush n;              /* literal, length base, or distance base */
+    struct huft *t;     /* pointer to next level of table */
+  } v;
+};
+
+/*
+ * Tables for deflate from PKZIP's appnote.txt.
+ */
+
+static const unsigned border[] = { /* Order of the bit length code lengths */
+        16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
+
+static const ush cplens[] = {      /* Copy lengths for literal codes 257..285 */
+        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
+        /* note: see note #13 above about the 258 in this list. */
+
+static const ush cplext[] = {      /* Extra bits for literal codes 257..285 */
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
+        3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99}; /* 99==invalid */
+
+static const ush cpdist[] = {      /* Copy offsets for distance codes 0..29 */
+        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+        8193, 12289, 16385, 24577};
+
+static const ush cpdext[] = {      /* Extra bits for distance codes */
+        0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
+        7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
+        12, 12, 13, 13};
+
+/*
+ * Constants for run-time computation of mask
+ */
+
+static const ush mask_bits[] = {
+    0x0000,
+    0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
+    0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
+};
+
+/*
+ * Huffman code decoding is performed using a multi-level table lookup.
+ * The fastest way to decode is to simply build a lookup table whose
+ * size is determined by the longest code.  However, the time it takes
+ * to build this table can also be a factor if the data being decoded
+ * is not very long.  The most common codes are necessarily the
+ * shortest codes, so those codes dominate the decoding time, and hence
+ * the speed.  The idea is you can have a shorter table that decodes the
+ * shorter, more probable codes, and then point to subsidiary tables for
+ * the longer codes.  The time it costs to decode the longer codes is
+ * then traded against the time it takes to make longer tables.
+ *
+ * This results of this trade are in the variables lbits and dbits
+ * below.  lbits is the number of bits the first level table for literal/
+ * length codes can decode in one step, and dbits is the same thing for
+ * the distance codes.  Subsequent tables are also less than or equal to
+ * those sizes.  These values may be adjusted either when all of the
+ * codes are shorter than that, in which case the longest code length in
+ * bits is used, or when the shortest code is *longer* than the requested
+ * table size, in which case the length of the shortest code in bits is
+ * used.
+ *
+ * There are two different values for the two tables, since they code a
+ * different number of possibilities each.  The literal/length table
+ * codes 286 possible values, or in a flat code, a little over eight
+ * bits.  The distance table codes 30 possible values, or a little less
+ * than five bits, flat.  The optimum values for speed end up being
+ * about one bit more than those, so lbits is 8+1 and dbits is 5+1.
+ * The optimum values may differ though from machine to machine, and
+ * possibly even between compilers.  Your mileage may vary.
+ */
+
+static const int lbits = 9;  /* bits in base literal/length lookup table */
+static const int dbits = 6;  /* bits in base distance lookup table */
+
+/* If BMAX needs to be larger than 16, then h and x[] should be ulg. */
+#define BMAX 16         /* maximum bit length of any code (16 for explode) */
+#define N_MAX 288       /* maximum number of codes in any set */
+
+/*
+ * Free the malloc'ed tables built by huft_build(), which makes a linked
+ * list of the tables it made, with the links in a dummy first entry of
+ * each table.
+ */
+
+static int huft_free(
+  struct InflateState *is, /* Inflate state */
+  struct huft *t           /* table to free */
+)
+{
+  struct huft *p, *q;
+
+  /* Go through linked list, freeing from the malloced (t[-1]) address. */
+  p = t;
+  while (p != (struct huft *)NULL)
+  {
+    q = (--p)->v.t;
+    (*is->free_ptr)((char*)p);
+    p = q;
+  }
+  return 0;
+}
+
+/*
+ * Given a list of code lengths and a maximum table size, make a set of
+ * tables to decode that set of codes.  Return zero on success, one if
+ * the given code set is incomplete (the tables are still built in this
+ * case), two if the input is invalid (all zero length codes or an
+ * oversubscribed set of lengths), and three if not enough memory.
+ * The code with value 256 is special, and the tables are constructed
+ * so that no bits beyond that code are fetched when that code is
+ * decoded.
+ */
+
+static int huft_build(
+  struct InflateState *is, /* Inflate state */
+  unsigned *b,             /* code lengths in bits (all assumed <= BMAX) */
+  unsigned n,              /* number of codes (assumed <= N_MAX) */
+  unsigned s,              /* number of simple-valued codes (0..s-1) */
+  const ush *d,            /* list of base values for non-simple codes */
+  const ush *e,            /* list of extra bits for non-simple codes */
+  struct huft **t,         /* result: starting table */
+  int *m                   /* maximum lookup bits, returns actual */
+)
+{
+  unsigned a;                   /* counter for codes of length k */
+  unsigned c[BMAX+1];           /* bit length count table */
+  unsigned el;                  /* length of EOB code (value 256) */
+  unsigned f;                   /* i repeats in table every f entries */
+  int g;                        /* maximum code length */
+  int h;                        /* table level */
+  unsigned i;                   /* counter, current code */
+  unsigned j;                   /* counter */
+  int k;                        /* number of bits in current code */
+  int lx[BMAX+1];               /* memory for l[-1..BMAX-1] */
+  int *l = lx+1;                /* stack of bits per table */
+  unsigned *p;                  /* pointer into c[], b[], or v[] */
+  struct huft *q;               /* points to current table */
+  struct huft r;                /* table entry for structure assignment */
+  struct huft *u[BMAX];         /* table stack */
+  unsigned v[N_MAX];            /* values in order of bit length */
+  int w;                        /* bits before this table == (l * h) */
+  unsigned x[BMAX+1];           /* bit offsets, then code stack */
+  unsigned *xp;                 /* pointer into x */
+  int y;                        /* number of dummy codes added */
+  unsigned z;                   /* number of entries in current table */
+
+  /* clear the bit length count table */
+  for (i=0; i<(BMAX+1); i++)
+  {
+    c[i] = 0;
+  }
+
+  /* Generate counts for each bit length */
+  el = n > 256 ? b[256] : BMAX; /* set length of EOB code, if any */
+  p = b;  i = n;
+  do {
+    c[*p]++; p++;               /* assume all entries <= BMAX */
+  } while (--i);
+  if (c[0] == n)                /* null input--all zero length codes */
+  {
+    *t = (struct huft *)NULL;
+    *m = 0;
+    return 0;
+  }
+
+  /* Find minimum and maximum length, bound *m by those */
+  for (j = 1; j <= BMAX; j++)
+    if (c[j])
+      break;
+  k = j;                        /* minimum code length */
+  if ((unsigned)*m < j)
+    *m = j;
+  for (i = BMAX; i; i--)
+    if (c[i])
+      break;
+  g = i;                        /* maximum code length */
+  if ((unsigned)*m > i)
+    *m = i;
+
+  /* Adjust last length count to fill out codes, if needed */
+  for (y = 1 << j; j < i; j++, y <<= 1)
+    if ((y -= c[j]) < 0)
+      return 2;                 /* bad input: more codes than bits */
+  if ((y -= c[i]) < 0)
+    return 2;
+  c[i] += y;
+
+  /* Generate starting offsets into the value table for each length */
+  x[1] = j = 0;
+  p = c + 1;  xp = x + 2;
+  while (--i) {                 /* note that i == g from above */
+    *xp++ = (j += *p++);
+  }
+
+  /* Make a table of values in order of bit lengths */
+  p = b;  i = 0;
+  do {
+    if ((j = *p++) != 0)
+      v[x[j]++] = i;
+  } while (++i < n);
+
+  /* Generate the Huffman codes and for each, make the table entries */
+  x[0] = i = 0;                 /* first Huffman code is zero */
+  p = v;                        /* grab values in bit order */
+  h = -1;                       /* no tables yet--level -1 */
+  w = l[-1] = 0;                /* no bits decoded yet */
+  u[0] = (struct huft *)NULL;   /* just to keep compilers happy */
+  q = (struct huft *)NULL;      /* ditto */
+  z = 0;                        /* ditto */
+
+  /* go through the bit lengths (k already is bits in shortest code) */
+  for (; k <= g; k++)
+  {
+    a = c[k];
+    while (a--)
+    {
+      /* here i is the Huffman code of length k bits for value *p */
+      /* make tables up to required level */
+      while (k > w + l[h])
+      {
+        w += l[h++];            /* add bits already decoded */
+
+        /* compute minimum size table less than or equal to *m bits */
+        z = (z = g - w) > (unsigned)*m ? *m : z;        /* upper limit */
+        if ((f = 1 << (j = k - w)) > a + 1)     /* try a k-w bit table */
+        {                       /* too few codes for k-w bit table */
+          f -= a + 1;           /* deduct codes from patterns left */
+          xp = c + k;
+          while (++j < z)       /* try smaller tables up to z bits */
+          {
+            if ((f <<= 1) <= *++xp)
+              break;            /* enough codes to use up j bits */
+            f -= *xp;           /* else deduct codes from patterns */
+          }
+        }
+        if ((unsigned)w + j > el && (unsigned)w < el)
+          j = el - w;           /* make EOB code end at table */
+        z = 1 << j;             /* table entries for j-bit table */
+        l[h] = j;               /* set table size in stack */
+
+        /* allocate and link in new table */
+        if ((q = (struct huft *)
+                   ((*is->malloc_ptr)((z + 1)*sizeof(struct huft)))) ==
+                 (struct huft *)NULL)
+        {
+          if (h)
+            huft_free(is, u[0]);
+          return 3;             /* not enough memory */
+        }
+        *t = q + 1;             /* link to list for huft_free() */
+        *(t = &(q->v.t)) = (struct huft *)NULL;
+        u[h] = ++q;             /* table starts after link */
+
+        /* connect to last table, if there is one */
+        if (h)
+        {
+          x[h] = i;             /* save pattern for backing up */
+          r.b = (uch)l[h-1];    /* bits to dump before this table */
+          r.e = (uch)(16 + j);  /* bits in this table */
+          r.v.t = q;            /* pointer to this table */
+          j = (i & ((1 << w) - 1)) >> (w - l[h-1]);
+          u[h-1][j] = r;        /* connect to last table */
+        }
+      }
+
+      /* set up table entry in r */
+      r.b = (uch)(k - w);
+      if (p >= v + n)
+        r.e = 99;               /* out of values--invalid code */
+      else if (*p < s)
+      {
+        r.e = (uch)(*p < 256 ? 16 : 15);    /* 256 is end-of-block code */
+        r.v.n = (ush) *p++;                 /* simple code is just the value */
+      }
+      else
+      {
+        r.e = (uch)e[*p - s];   /* non-simple--look up in lists */
+        r.v.n = d[*p++ - s];
+      }
+
+      /* fill code-like entries with r */
+      f = 1 << (k - w);
+      for (j = i >> w; j < z; j += f)
+        q[j] = r;
+
+      /* backwards increment the k-bit code i */
+      for (j = 1 << (k - 1); i & j; j >>= 1)
+        i ^= j;
+      i ^= j;
+
+      /* backup over finished tables */
+      while ((i & ((1 << w) - 1)) != x[h])
+        w -= l[--h];            /* don't need to update q */
+    }
+  }
+
+  /* return actual size of base table */
+  *m = l[0];
+
+  /* Return true (1) if we were given an incomplete table */
+  return y != 0 && g != 1;
+}
+
+/*
+ * inflate (decompress) the codes in a stored (uncompressed) block.
+ * Return an error code or zero if it all goes ok.
+ */
+
+static int inflate_stored(
+  struct InflateState *is  /* Inflate state */
+)
+{
+  ulg b;                /* bit buffer */
+  unsigned k;           /* number of bits in bit buffer */
+  unsigned w;           /* current window position */
+
+  /* make local copies of state */
+  b = is->bb;           /* initialize bit buffer */
+  k = is->bk;           /* initialize bit count */
+  w = is->wp;           /* initialize window position */
+
+  /*
+   * Note that this code knows that NEEDBITS jumps to cleanup
+   */
+
+  while (is->storelength > 0)  /* do until end of block */
+  {
+    NEEDBITS(8)
+    is->window[w++] = (uch) b;
+    DUMPBITS(8)
+    FLUSHWINDOW(w, FALSE);
+    is->storelength--;
+  }
+
+  cleanup:
+
+  /* restore the state from the locals */
+  is->bb = b;              /* restore bit buffer */
+  is->bk = k;              /* restore bit count */
+  is->wp = w;              /* restore window pointer */
+
+  if (is->storelength > 0)
+    return -1;
+  else
+    return 0;
+}
+
+static int inflate_codes(
+  struct InflateState *is, /* Inflate state */
+  struct huft *tl,         /* literal/length decoder table */
+  struct huft *td,         /* distance decoder table */
+  int bl,                  /* number of bits decoded by tl[] */
+  int bd                   /* number of bits decoded by td[] */
+)
+{
+  unsigned e;           /* table entry flag/number of extra bits */
+  unsigned n, d;        /* length and index for copy */
+  unsigned w;           /* current window position */
+  struct huft *t;       /* pointer to table entry */
+  unsigned ml, md;      /* masks for bl and bd bits */
+  ulg b;                /* bit buffer */
+  unsigned k;           /* number of bits in bit buffer */
+
+  /* make local copies of state */
+  b = is->bb;           /* initialize bit buffer */
+  k = is->bk;           /* initialize bit count */
+  w = is->wp;           /* initialize window position */
+
+  /* inflate the coded data */
+  ml = mask_bits[bl];           /* precompute masks for speed */
+  md = mask_bits[bd];
+  for (;;)                      /* do until end of block */
+  {
+    TRY
+    {
+      NEEDBITS((unsigned)bl)
+      if ((e = (t = tl + ((unsigned)b & ml))->e) > 16)
+        do {
+          if (e == 99)
+            return 1;
+          DUMPBITS(t->b)
+          e -= 16;
+          NEEDBITS(e)
+        } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16);
+      DUMPBITS(t->b)
+
+      if (e == 16)                /* it's a literal */
+      {
+        is->window[w++] = (uch)t->v.n;
+        FLUSHWINDOW(w, FALSE);
+      }
+      else if (e == 15)           /* it's an EOB */
+      {
+        break;
+      }
+      else                        /* it's a length */
+      {
+        /* get length of block to copy */
+        NEEDBITS(e)
+        n = t->v.n + ((unsigned)b & mask_bits[e]);
+        DUMPBITS(e);
+
+        /* decode distance of block to copy */
+        NEEDBITS((unsigned)bd)
+        if ((e = (t = td + ((unsigned)b & md))->e) > 16)
+          do {
+            if (e == 99)
+              return 1;
+            DUMPBITS(t->b)
+            e -= 16;
+            NEEDBITS(e)
+          } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16);
+        DUMPBITS(t->b)
+        NEEDBITS(e)
+        d = w - t->v.n - ((unsigned)b & mask_bits[e]);
+        DUMPBITS(e)
+
+        /* do the copy */
+        do {
+          n -= (e = ((e = WINDOWSIZE - ((d &= WINDOWMASK) > w ? d : w)) > n)
+                    ? n : e
+               );
+#ifdef MEMCPY
+          if (w - d >= e)         /* (this test assumes unsigned comparison) */
+          {
+            memcpy(is->window + w, is->window + d, e);
+            w += e;
+            d += e;
+          }
+          else                      /* do it slow to avoid memcpy() overlap */
+#endif /* MEMCPY */
+            do {
+              is->window[w++] = is->window[d++];
+            } while (--e);
+          FLUSHWINDOW(w, FALSE);
+        } while (n);
+      }
+    }
+    CATCH_BEGIN
+      is->wp = w;          /* restore window pointer */
+      return -1;
+    CATCH_END
+  }
+
+  /* restore the state from the locals */
+  is->bb = b;              /* restore bit buffer */
+  is->bk = k;              /* restore bit count */
+  is->wp = w;              /* restore window pointer */
+
+  /* done */
+  return 0;
+}
+
+/*
+ * "decompress" an inflated type 0 (stored) block.
+ */
+
+static int inflate_stored_setup(
+  struct InflateState *is  /* Inflate state */
+)
+{
+  unsigned n;           /* number of bytes in block */
+  ulg b;                /* bit buffer */
+  unsigned k;           /* number of bits in bit buffer */
+
+  /* make local copies of state */
+  b = is->bb;           /* initialize bit buffer */
+  k = is->bk;           /* initialize bit count */
+
+  TRY
+  {
+    /* go to byte boundary */
+    n = k & 7;
+    DUMPBITS(n);
+
+    /* get the length and its complement */
+    NEEDBITS(16)
+    n = ((unsigned)b & 0xffff);
+    DUMPBITS(16)
+    NEEDBITS(16)
+    if (n != (unsigned)((~b) & 0xffff))
+      return 1;                   /* error in compressed data */
+    DUMPBITS(16)
+  }
+  CATCH_BEGIN
+    return -1;
+  CATCH_END
+
+  /* Save store state for this block */
+  is->storelength = n;
+
+  /* restore the state from the locals */
+  is->bb = b;              /* restore bit buffer */
+  is->bk = k;              /* restore bit count */
+  
+  return 0;
+}
+
+/*
+ * decompress an inflated type 1 (fixed Huffman codes) block.  We should
+ * either replace this with a custom decoder, or at least precompute the
+ * Huffman tables.
+ */
+
+static int inflate_fixed_setup(
+  struct InflateState *is  /* Inflate state */
+)
+{
+  int i;                /* temporary variable */
+  struct huft *tl;      /* literal/length code table */
+  struct huft *td;      /* distance code table */
+  int bl;               /* lookup bits for tl */
+  int bd;               /* lookup bits for td */
+  unsigned l[288];      /* length list for huft_build */
+
+  /* set up literal table */
+  for (i = 0; i < 144; i++)
+    l[i] = 8;
+  for (; i < 256; i++)
+    l[i] = 9;
+  for (; i < 280; i++)
+    l[i] = 7;
+  for (; i < 288; i++)          /* make a complete, but wrong code set */
+    l[i] = 8;
+  bl = 7;
+  if ((i = huft_build(is, l, 288, 257, cplens, cplext, &tl, &bl)) != 0)
+    return i;
+
+  /* set up distance table */
+  for (i = 0; i < 30; i++)      /* make an incomplete code set */
+    l[i] = 5;
+  bd = 5;
+  if ((i = huft_build(is, l, 30, 0, cpdist, cpdext, &td, &bd)) > 1)
+  {
+    huft_free(is, tl);
+    return i;
+  }
+
+  /* Save inflate state for this block */
+  is->tl = tl;
+  is->td = td;
+  is->bl = bl;
+  is->bd = bd;
+
+  return 0;
+}
+
+/*
+ * decompress an inflated type 2 (dynamic Huffman codes) block.
+ */
+
+#define PKZIP_BUG_WORKAROUND
+
+static int inflate_dynamic_setup(
+  struct InflateState *is  /* Inflate state */
+)
+{
+  int i;                /* temporary variables */
+  unsigned j;
+  unsigned l;           /* last length */
+  unsigned m;           /* mask for bit lengths table */
+  unsigned n;           /* number of lengths to get */
+  struct huft *tl;      /* literal/length code table */
+  struct huft *td;      /* distance code table */
+  int bl;               /* lookup bits for tl */
+  int bd;               /* lookup bits for td */
+  unsigned nb;          /* number of bit length codes */
+  unsigned nl;          /* number of literal/length codes */
+  unsigned nd;          /* number of distance codes */
+#ifdef PKZIP_BUG_WORKAROUND
+  unsigned ll[288+32];  /* literal/length and distance code lengths */
+#else
+  unsigned ll[286+30];  /* literal/length and distance code lengths */
+#endif
+  ulg b;                /* bit buffer */
+  unsigned k;           /* number of bits in bit buffer */
+
+  /* make local copies of state */
+  b = is->bb;           /* initialize bit buffer */
+  k = is->bk;           /* initialize bit count */
+
+  /* initialize tl for cleanup */
+  tl = NULL;
+
+  TRY
+  {
+    /* read in table lengths */
+    NEEDBITS(5)
+    nl = 257 + ((unsigned)b & 0x1f);      /* number of literal/length codes */
+    DUMPBITS(5)
+    NEEDBITS(5)
+    nd = 1 + ((unsigned)b & 0x1f);        /* number of distance codes */
+    DUMPBITS(5)
+    NEEDBITS(4)
+    nb = 4 + ((unsigned)b & 0xf);         /* number of bit length codes */
+    DUMPBITS(4)
+#ifdef PKZIP_BUG_WORKAROUND
+    if (nl > 288 || nd > 32)
+#else
+    if (nl > 286 || nd > 30)
+#endif
+      return 1;                   /* bad lengths */
+
+    /* read in bit-length-code lengths */
+    for (j = 0; j < 19; j++) ll[j] = 0;
+    for (j = 0; j < nb; j++)
+    {
+      NEEDBITS(3)
+      ll[border[j]] = (unsigned)b & 7;
+      DUMPBITS(3)
+    }
+
+    /* build decoding table for trees--single level, 7 bit lookup */
+    bl = 7;
+    if ((i = huft_build(is, ll, 19, 19, NULL, NULL, &tl, &bl)) != 0)
+    {
+      if (i == 1)
+        huft_free(is, tl);
+      return i;                   /* incomplete code set */
+    }
+
+    /* read in literal and distance code lengths */
+    n = nl + nd;
+    m = mask_bits[bl];
+    i = l = 0;
+    while ((unsigned)i < n)
+    {
+      NEEDBITS((unsigned)bl)
+      j = (td = tl + ((unsigned)b & m))->b;
+      DUMPBITS(j)
+      j = td->v.n;
+      if (j < 16)                 /* length of code in bits (0..15) */
+        ll[i++] = l = j;          /* save last length in l */
+      else if (j == 16)           /* repeat last length 3 to 6 times */
+      {
+        NEEDBITS(2)
+        j = 3 + ((unsigned)b & 3);
+        DUMPBITS(2)
+        if ((unsigned)i + j > n)
+          return 1;
+        while (j--)
+          ll[i++] = l;
+      }
+      else if (j == 17)           /* 3 to 10 zero length codes */
+      {
+        NEEDBITS(3)
+        j = 3 + ((unsigned)b & 7);
+        DUMPBITS(3)
+        if ((unsigned)i + j > n)
+          return 1;
+        while (j--)
+          ll[i++] = 0;
+        l = 0;
+      }
+      else                        /* j == 18: 11 to 138 zero length codes */
+      {
+        NEEDBITS(7)
+        j = 11 + ((unsigned)b & 0x7f);
+        DUMPBITS(7)
+        if ((unsigned)i + j > n)
+          return 1;
+        while (j--)
+          ll[i++] = 0;
+        l = 0;
+      }
+    }
+
+    /* free decoding table for trees */
+    huft_free(is, tl);
+  }
+  CATCH_BEGIN
+    if (tl) huft_free(is, tl);
+    return -1;
+  CATCH_END
+
+  /* restore the state from the locals */
+  is->bb = b;              /* restore bit buffer */
+  is->bk = k;              /* restore bit count */
+
+  /* build the decoding tables for literal/length and distance codes */
+  bl = lbits;
+  if ((i = huft_build(is, ll, nl, 257, cplens, cplext, &tl, &bl)) != 0)
+  {
+    if (i == 1) {
+      /* incomplete literal tree */
+      huft_free(is, tl);
+    }
+    return i;                   /* incomplete code set */
+  }
+  bd = dbits;
+  if ((i = huft_build(is, ll + nl, nd, 0, cpdist, cpdext, &td, &bd)) != 0)
+  {
+    if (i == 1) {
+      /* incomplete distance tree */
+#ifdef PKZIP_BUG_WORKAROUND
+    }
+#else
+      huft_free(is, td);
+    }
+    huft_free(is, tl);
+    return i;                   /* incomplete code set */
+#endif
+  }
+
+  /* Save inflate state for this block */
+  is->tl = tl;
+  is->td = td;
+  is->bl = bl;
+  is->bd = bd;
+
+  return 0;
+}
+
+/* Routine to initialize inflate decompression */
+void *InflateInitialize(                      /* returns InflateState       */
+  void *AppState,                             /* for passing to putbuffer   */
+  int (*putbuffer_ptr)(                       /* returns 0 on success       */
+    void *AppState,                           /* opaque ptr from Initialize */
+    unsigned char *buffer,                    /* buffer to put              */
+    long length                               /* length of buffer           */
+  ),
+  void *(*malloc_ptr)(long length),           /* utility routine            */
+  void (*free_ptr)(void *buffer)              /* utility routine            */
+)
+{
+  struct InflateState *is;
+
+  /* Do some argument checking */
+  if ((!putbuffer_ptr) || (!malloc_ptr) || (!free_ptr)) return NULL;
+
+  /* Allocate the InflateState memory area */
+  is = (struct InflateState *) (*malloc_ptr)(sizeof(struct InflateState));
+  if (!is) return NULL;
+
+  /* Set up the initial values of the inflate state */
+  is->runtimetypeid1   = INFLATESTATETYPE;
+  is->errorencountered = FALSE;
+
+  is->bb               = 0;
+  is->bk               = 0;
+  is->bp               = 0;
+  is->bs               = 0;
+
+  is->wp               = 0;
+  is->wf               = 0;
+
+  is->state            = -1;
+  is->lastblock        = FALSE;
+
+  is->AppState         = AppState;
+
+  is->putbuffer_ptr    = putbuffer_ptr;
+  is->malloc_ptr       = malloc_ptr;
+  is->free_ptr         = free_ptr;
+
+  is->runtimetypeid2   = INFLATESTATETYPE;
+
+  /* Return this state info to the caller */
+  return is;
+}
+
+/* Call-in routine to put a buffer into inflate decompression */
+int InflatePutBuffer(                         /* returns 0 on success       */
+  void *InflateState,                         /* opaque ptr from Initialize */
+  unsigned char *buffer,                      /* buffer to put              */
+  long length                                 /* length of buffer           */
+)
+{
+  struct InflateState *is;
+
+  int beginstate;
+
+  /* Get (and check) the InflateState structure */
+  is = (struct InflateState *) InflateState;
+  if (!is || (is->runtimetypeid1 != INFLATESTATETYPE)
+          || (is->runtimetypeid2 != INFLATESTATETYPE)) return TRUE;
+  if (is->errorencountered) return TRUE;
+
+  do
+  {
+    int size, i;
+    
+
+    if ((is->state == -1) && (is->lastblock)) break;
+
+    /* Save the beginning state */
+    beginstate = is->state;
+
+    /* Push as much as possible into input buffer */
+    size = BUFFERSIZE - is->bs;
+    if (size > length) size = (int) length;
+    i = is->bp + is->bs;
+
+    while (size-- > 0)
+    {
+      is->buffer[i++ & BUFFERMASK] = *buffer;
+      is->bs++;
+      buffer++;
+      length--;
+    }
+
+    /* Process some more data */
+    if (is->state == -1)
+    {
+      int e;                /* last block flag */
+      unsigned t;           /* block type */
+
+      ulg b;                /* bit buffer */
+      unsigned k;           /* number of bits in bit buffer */
+
+      /* make local copies of state */
+      b = is->bb;           /* initialize bit buffer */
+      k = is->bk;           /* initialize bit count */
+
+      TRY
+      {
+        /* read in last block bit */
+        NEEDBITS(1)
+        e = (int)b & 1;
+        DUMPBITS(1)
+
+        /* read in block type */
+        NEEDBITS(2)
+        t = (unsigned)b & 3;
+        DUMPBITS(2)
+
+        if (t <= 2)
+        {
+          is->state     = t;
+          is->lastblock = e;
+        }
+        else
+        {
+          ERROREXIT(is);
+        }
+      }
+      CATCH_BEGIN
+      CATCH_END
+        
+      /* restore the state from the locals */
+      is->bb = b;              /* restore bit buffer */
+      is->bk = k;              /* restore bit count */
+    }
+    else if (is->state == 0)
+    {
+      int ret;
+
+      ret = inflate_stored_setup(is);
+
+      if (ret > 0)
+        ERROREXIT(is);
+
+      if (ret == 0) is->state += 10;
+    }
+    else if (is->state == 1)
+    {
+      int ret;
+
+      ret = inflate_fixed_setup(is);
+
+      if (ret > 0)
+        ERROREXIT(is);
+
+      if (ret == 0) is->state += 10;
+    }
+    else if (is->state == 2)
+    {
+      int ret;
+
+      ret = inflate_dynamic_setup(is);
+      
+      if (ret > 0)
+        ERROREXIT(is);
+
+      if (ret == 0) is->state += 10;
+    }
+    else if (is->state == 10)
+    {
+      int ret;
+
+      ret = inflate_stored(is);
+
+      if (ret > 0)
+        ERROREXIT(is);
+
+      if (ret == 0)
+      {
+        is->state = -1;
+      }
+    }
+    else if ((is->state == 11) ||
+             (is->state == 12)    )
+    {
+      int ret;
+
+      ret = inflate_codes(is, is->tl, is->td, is->bl, is->bd);
+
+      if (ret > 0)
+        ERROREXIT(is);
+
+      if (ret == 0)
+      {
+        /* free the decoding tables */
+        huft_free(is, is->tl);
+        huft_free(is, is->td);
+        is->state = -1;
+      }
+    }
+    else
+    {
+      ERROREXIT(is);
+    }
+  }
+  while (length || (is->state != beginstate));
+  
+  FLUSHWINDOW(is->wp, TRUE);
+
+  return is->errorencountered;
+}
+
+/* Routine to terminate inflate decompression */
+int InflateTerminate(                         /* returns 0 on success       */
+  void *InflateState                          /* opaque ptr from Initialize */
+)
+{
+  int err;
+  void (*free_ptr)(void *buffer);
+
+  struct InflateState *is;
+
+  /* Get (and check) the InflateState structure */
+  is = (struct InflateState *) InflateState;
+  if (!is || (is->runtimetypeid1 != INFLATESTATETYPE)
+          || (is->runtimetypeid2 != INFLATESTATETYPE)) return TRUE;
+
+  /* save the error return */
+  err = is->errorencountered || (is->bs > 0)
+                             || (is->state != -1)
+                             || (!is->lastblock);
+
+  /* save the address of the free routine */
+  free_ptr = is->free_ptr;
+
+  /* Deallocate everything */
+  (*free_ptr)(is);
+
+  return err;
+}
--- /dev/null
+++ b/inflate.h
@@ -1,0 +1,87 @@
+/*
+ * inflate.h -  inflate decompression routine
+ *
+ * Version 1.1
+ */
+
+/*
+ * Copyright (c) 1995, Edward B. Hamrick
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that
+ *
+ * (i)  the above copyright notice and the text in this "C" comment block
+ *      appear in all copies of the software and related documentation, and
+ *
+ * (ii) any modifications to this source file must be sent, via e-mail
+ *      to the copyright owner (currently hamrick@primenet.com) within 
+ *      30 days of such modification.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL EDWARD B. HAMRICK BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * 1) All file i/o is done externally to these routines
+ * 2) Routines are symmetrical so inflate can feed into deflate
+ * 3) Routines can be easily integrated into wide range of applications
+ * 4) Routines are very portable, and use only ANSI C
+ * 5) No #defines in inflate.h to conflict with external #defines
+ * 6) No external routines need be called by these routines
+ * 7) Buffers are owned by the calling routine
+ * 8) No static non-constant variables are allowed
+ */
+
+/*
+ * Note that for each call to InflatePutBuffer, there will be
+ * 0 or more calls to (*putbuffer_ptr).  All except the last
+ * call to (*putbuffer_ptr) will be with 32768 bytes, although
+ * this behaviour may change in the future.  Before InflatePutBuffer
+ * returns, it will have output as much uncompressed data as
+ * is possible.
+ */
+
+#ifndef __INFLATE_H
+#define __INFLATE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Routine to initialize inflate decompression */
+void *InflateInitialize(                      /* returns InflateState       */
+  void *AppState,                             /* for passing to putbuffer   */
+  int (*putbuffer_ptr)(                       /* returns 0 on success       */
+    void *AppState,                           /* opaque ptr from Initialize */
+    unsigned char *buffer,                    /* buffer to put              */
+    long length                               /* length of buffer           */
+  ),
+  void *(*malloc_ptr)(long length),           /* utility routine            */
+  void (*free_ptr)(void *buffer)              /* utility routine            */
+);
+
+/* Call-in routine to put a buffer into inflate decompression */
+int InflatePutBuffer(                         /* returns 0 on success       */
+  void *InflateState,                         /* opaque ptr from Initialize */
+  unsigned char *buffer,                      /* buffer to put              */
+  long length                                 /* length of buffer           */
+);
+
+/* Routine to terminate inflate decompression */
+int InflateTerminate(                         /* returns 0 on success       */
+  void *InflateState                          /* opaque ptr from Initialize */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+++ b/mkfile
@@ -1,0 +1,57 @@
+# mkfile for figlet version 2.2.2 under Plan 9
+# by Lee Duhem(lee.duhem@gmail.com), February 2007
+
+< /$objtype/mkfile
+
+CFLAGS =
+LDFLAGS =
+
+BIN = /$objtype/bin/games/figlet
+
+# Where figlet will search first for fonts (the ".flf" files).
+DEFAULTFONTDIR = "$BIN/fonts"
+#DEFAULTFONTDIR = "fonts"
+
+# The filename of the font to be used if no other is specified
+# (standard.flf is recommended, but any other can be used).
+# This font file should reside in the directory specified by
+# DEFAULTFONTDIR.
+DEFAULTFONTFILE = "standard.flf"
+
+###
+
+# meta-rules
+%.$O: %.c
+	$CC $CFLAGS $prereq
+
+###
+
+SOURCES = figlet.c zipio.c crc.c inflate.c getopt.c
+
+all:V: figlet chkfont
+
+figlet: ${SOURCES:%.c=%.$O}
+	$LD $LDFLAGS -o $target $prereq
+
+figlet.$O: figlet.c
+	$CC $CFLAGS \
+		-DDEFAULTFONTDIR'='$DEFAULTFONTDIR  \
+		-DDEFAULTFONTFILE'='$DEFAULTFONTFILE \
+		$prereq
+
+chkfont: chkfont.$O
+	$LD $LDFLAGS -o $target $prereq
+
+clean:V:
+	rm -f *.$O figlet chkfont
+
+install:V: all
+	mkdir -p $BIN/fonts
+	for(p in figlet chkfont figlist showfigfonts){
+		cp $p $BIN
+		chmod 755 $BIN/$p
+	}
+	cp fonts/* $BIN/fonts
+	chmod 644 $BIN/fonts/*
+	cp figlet.man /sys/man/1/figlet
+	chmod 644 /sys/man/1/figlet
--- /dev/null
+++ b/showfigfonts
@@ -1,0 +1,67 @@
+#!/bin/rc
+# showfigfonts by Glenn Chappell <ggc@uiuc.edu>
+# figlet release 2.1.1 -- 25 Aug 1994
+# Based on showfigfonts by Greg Galperin <grg@ai.mit.edu>, Nov 1993.
+#
+# adapted for Rc by Lee Duhem <lee.duhem@gmail.com>
+# February 2007
+#
+# Prints a list of available figlet fonts, along with a sample of each
+# font.  If directory is given, lists fonts in that directory; otherwise
+# uses the default font directory.  If word is given, prints that word
+# in each font; otherwise prints the font name.
+#
+# Usage: showfigfonts [ -d directory ] [ word ]
+
+# Set up $path so figlet can be found
+path=(. /bin /bin/games /bin/games/figlet)
+
+# Get figlet version
+FIGLETVERSION=`{figlet -I1 >[2]/dev/null}
+if(test -z $FIGLETVERSION)
+  FIGLETVERSION=20000
+
+USAGE='Usage: '^ `{basename $0} ^'[ -d directory ] [ word ]'
+WORD=''
+
+if(~ $1 -d){
+  switch($#*){
+    case 2
+      FONTDIR=$2
+    case 3
+      FONTDIR=$2
+      WORD=$3
+    case *
+      echo $USAGE
+      exit usage
+  }
+}
+if not {
+  if(test $#* -ge 1)
+    WORD=$1
+
+  if(test $FIGLETVERSION -lt 20100){
+    # figlet 2.0
+    FONTDIR=`{eval figlet -F | sed -e '1d' -e '3,$d' -e 's/Font directory://'}
+  }
+  if not {
+    # figlet 2.1 or later
+    FONTDIR=`{figlet -I2}
+  }
+}
+
+SAVEDIR=`{pwd}
+cd $FONTDIR
+FONTLIST=`{eval ls *.flf | sed 's/\.flf$//'}
+cd $SAVEDIR
+
+if(test -n $WORD)
+  for(F in $FONTLIST){
+    echo $F:
+    echo $WORD | figlet -d $FONTDIR -f $F
+  }
+if not 
+  for(F in $FONTLIST){
+    echo $F:
+    echo $F | figlet -d $FONTDIR -f $F
+  }
--- /dev/null
+++ b/zipio.c
@@ -1,0 +1,814 @@
+/*
+ * zipio.c - stdio emulation library for reading zip files
+ *
+ * Version 1.1.1
+ */
+
+/*
+ * Copyright (c) 1995, Edward B. Hamrick
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that
+ *
+ * (i)  the above copyright notice and the text in this "C" comment block
+ *      appear in all copies of the software and related documentation, and
+ *
+ * (ii) any modifications to this source file must be sent, via e-mail
+ *      to the copyright owner (currently hamrick@primenet.com) within 
+ *      30 days of such modification.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL EDWARD B. HAMRICK BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * Changes from 1.1 to 1.1.1:
+ * Changed "z*" functions to "Z*" to avoid namespace pollution.
+ * Added "zungetc" macro.
+ * Added definitions of SEEK_SET, SEEK_CUR, SEEK_END for the Posixly challenged
+ * John Cowan <cowan@ccil.org>
+ */
+
+/*
+ * Refer to zipio.h for a description of this package.
+ */
+
+/*
+ * The .zip file header is described below.  It consists of
+ * 30 fixed bytes, followed by two variable length fields
+ * whose length is contained in the first 30 bytes.  After this
+ * header, the data is stored (in deflate format if the compression
+ * method is 8).
+ *
+ * The crc-32 field is the crc on the uncompressed data.
+ *
+ * .zip file header:
+ *
+ *      local file header signature     4 bytes  (0x04034b50)
+ *      version needed to extract       2 bytes
+ *      general purpose bit flag        2 bytes
+ *      compression method              2 bytes
+ *      last mod file time              2 bytes
+ *      last mod file date              2 bytes
+ *      crc-32                          4 bytes
+ *      compressed size                 4 bytes
+ *      uncompressed size               4 bytes
+ *      filename length                 2 bytes
+ *      extra field length              2 bytes
+ *
+ *      filename (variable size)
+ *      extra field (variable size)
+ *
+ * These fields are described in more detail in appnote.txt
+ * in the pkzip 1.93 distribution.
+ */
+
+#include <u.h>
+#include <libc.h>
+#include <stdio.h>
+#ifdef MEMCPY
+#include <mem.h>
+#endif
+
+#include "zipio.h"
+#include "inflate.h"
+#include "crc.h"
+
+/*
+ * Macros for constants
+ */
+
+#ifndef NULL
+#define NULL ((void *) 0)
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef ZIPSIGNATURE
+#define ZIPSIGNATURE     0x04034b50L
+#endif
+
+#ifndef SEEK_SET
+#define SEEK_SET	0
+#endif
+
+#ifndef SEEK_CUR
+#define SEEK_CUR	1
+#endif
+
+#ifndef SEEK_END
+#define SEEK_END	2
+#endif
+
+
+/* 
+ * Buffer size macros
+ *
+ * The following constants are optimized for large-model
+ * (but not flat model) Windows with virtual memory.  It 
+ * will work fine on unix and flat model Windows as well.  
+ *
+ * The constant BUFFERTHRESHOLD determines when memory
+ * buffering changes to file buffering.
+ *
+ * Assumptions:
+ *
+ *   1) INPBUFSIZE + OUTBUFSIZE + sizeof(void *) * PTRBUFSIZE + delta < 64K
+ *
+ *   2) OUTBUFSIZE = 32K * N (related to inflate's 32K window size)
+ *
+ *   2) Max in-memory file size is OUTBUFSIZE * PTRBUFSIZE
+ *      which is 64 MBytes by default (32K * 2K).
+ *
+ */
+
+#ifndef BUFFERTHRESHOLD
+#define BUFFERTHRESHOLD            (256 * 1024L)
+#endif
+
+#ifndef INPBUFSIZE
+#define INPBUFSIZE                 (  8 * 1024 )
+#endif
+
+#ifndef PTRBUFSIZE
+#define PTRBUFSIZE                 (  2 * 1024 )
+#endif
+
+#ifndef OUTBUFSIZE
+#define OUTBUFSIZE ((unsigned int) ( 32 * 1024L))
+#endif
+
+#define MAXFILESIZE (OUTBUFSIZE * (long) PTRBUFSIZE)
+
+/*
+ * Macro for short-hand reference to ZipioState (from ZFILE *)
+ */
+
+#define ZS ((struct ZipioState *) stream)
+
+/*
+ * Macro to manipulate Zgetc() cache
+ */
+
+#define CACHEINIT                                 \
+  zs->ptr = NULL;                                 \
+  zs->len = 0;
+
+#define CACHEUPDATE                               \
+  if (ZS->ptr)                                    \
+  {                                               \
+    ZS->fileposition &= ~((long) (OUTBUFSIZE-1)); \
+    ZS->fileposition += ZS->ptr - ZS->getbuf;     \
+    ZS->ptr = NULL;                               \
+  }                                               \
+  ZS->len = 0;
+
+/*
+ * Macros for run-time type identification
+ */
+
+#ifndef RUNTIMEENABLE
+#define ZIPIOSTATETYPE   0x0110f00fL
+#define RUNTIMEINIT                                             \
+  zs->runtimetypeid1   = ZIPIOSTATETYPE;                        \
+  zs->runtimetypeid2   = ZIPIOSTATETYPE;
+
+#define RUNTIMECHECK                                            \
+  if (!ZS || (ZS->runtimetypeid1 != ZIPIOSTATETYPE)             \
+          || (ZS->runtimetypeid2 != ZIPIOSTATETYPE)) return -1;
+#else
+#define RUNTIMEINIT
+#define RUNTIMECHECK
+#endif
+
+/*
+ * Macros for converting bytes to unsigned integers
+ */
+
+#define GETUINT4(ptr, i4)                                               \
+  {                                                                     \
+    i4 = (((unsigned long) *(((unsigned char *) (ptr)) + 0))      ) |   \
+         (((unsigned long) *(((unsigned char *) (ptr)) + 1)) <<  8) |   \
+         (((unsigned long) *(((unsigned char *) (ptr)) + 2)) << 16) |   \
+         (((unsigned long) *(((unsigned char *) (ptr)) + 3)) << 24)   ; \
+  }
+
+#define GETUINT2(ptr, i2)                                               \
+  {                                                                     \
+    i2 = (((unsigned  int) *(((unsigned char *) (ptr)) + 0))      ) |   \
+         (((unsigned  int) *(((unsigned char *) (ptr)) + 1)) <<  8)   ; \
+  }
+
+/* Structure to hold state for decoding zip files */
+struct ZipioState {
+
+  /* Fields overlaid with ZFILE structure */
+  int            len;                        /* length of Zgetc cache      */
+  unsigned char *ptr;                        /* pointer to Zgetc cache     */
+
+  /* Fields invisible to users of ZFILE structure */
+
+  unsigned long  runtimetypeid1;             /* to detect run-time errors  */
+  int            errorencountered;           /* error encountered flag     */
+
+  /* Buffering state */
+  unsigned char  inpbuf[INPBUFSIZE];         /* inp buffer from zip file   */
+  unsigned char *ptrbuf[PTRBUFSIZE];         /* pointers to in-memory bufs */
+
+  unsigned char  getbuf[OUTBUFSIZE];         /* buffer for use by Zgetc    */
+  long           getoff;                     /* starting offset of getbuf  */
+
+  FILE          *tmpfil;                     /* file ptr to temp file      */
+
+  /* Amount of input data inflated */
+  unsigned long  inpinf;
+  unsigned long  outinf;
+
+  /* Zip file header */
+  unsigned long  sign;     /* local file header signature (0x04034b50) */
+  unsigned int   vers;     /* version needed to extract       2 bytes  */
+  unsigned int   flag;     /* general purpose bit flag        2 bytes  */
+  unsigned int   comp;     /* compression method              2 bytes  */
+  unsigned int   mtim;     /* last mod file time              2 bytes  */
+  unsigned int   mdat;     /* last mod file date              2 bytes  */
+  unsigned long  crc3;     /* crc-32                          4 bytes  */
+  unsigned long  csiz;     /* compressed size                 4 bytes  */
+  unsigned long  usiz;     /* uncompressed size               4 bytes  */
+  unsigned int   flen;     /* filename length                 2 bytes  */
+  unsigned int   elen;     /* extra field length              2 bytes  */
+
+  /* Application state */
+  FILE          *OpenFile;                   /* currently open file        */
+
+  void          *inflatestate;               /* current state for inflate  */
+
+  unsigned long  fileposition;               /* current file position      */
+
+  unsigned long  filecrc;                    /* current crc                */
+
+  unsigned long  runtimetypeid2;             /* to detect run-time errors  */
+};
+
+/*
+ * Utility routines to handle uncompressed file buffers
+ */
+
+/* Initialize buffering */
+static void BufferInitialize(
+  struct ZipioState *zs,
+  int doinflate
+)
+{
+  zs->getoff = -1;
+  zs->tmpfil = NULL;
+
+  /*
+   * If not inflating, use the input file
+   */
+
+  if (!doinflate)
+  {
+    zs->tmpfil = zs->OpenFile;
+
+    /* Get the uncompressed file size */
+    fseek(zs->tmpfil, 0, SEEK_END);
+    zs->usiz = ftell(zs->tmpfil);
+    zs->outinf = zs->usiz;
+
+    /* Start at the beginning */
+    fseek(zs->tmpfil, 0, SEEK_SET);
+  }
+
+  /* If there's no file open, see if it's big enough for temp file */
+  if (!zs->tmpfil)
+  {
+    if (zs->usiz >= BUFFERTHRESHOLD)
+      zs->tmpfil = tmpfile();
+  }
+
+  /* If there's no file open, then use memory buffering */
+  if (!zs->tmpfil)
+  {
+    int i;
+
+    for (i=0; i<PTRBUFSIZE; i++)
+      zs->ptrbuf[i] = NULL;
+  }
+}
+
+/* pump data till length bytes of file are inflated or error encountered */
+static int BufferPump(struct ZipioState *zs, long length)
+{
+  ulong inplen, ret;
+
+  /* Check to see if the length is valid */
+  if (length > zs->usiz) return TRUE;
+
+  /* Loop till enough data is pumped */
+  while (!zs->errorencountered && (zs->outinf < length))
+  {
+    /* Compute how much data to read */
+    if ((zs->csiz - zs->inpinf) < INPBUFSIZE)
+      inplen = (ulong) (zs->csiz - zs->inpinf);
+    else
+      inplen = INPBUFSIZE;
+
+    if (inplen <= 0) return TRUE;
+
+    /* Read some data from the file */
+    ret = fread(zs->inpbuf, 1, inplen, zs->OpenFile);
+    if (ret != inplen) return TRUE;
+
+    /* Update how much data has been read from the file */
+    zs->inpinf += inplen;
+
+    /* Pump this data into the decompressor */
+    if (InflatePutBuffer(zs->inflatestate, zs->inpbuf, inplen)) return TRUE;
+  }
+
+  return FALSE;
+}
+
+/* Read from the buffer */
+static int BufferRead(
+  struct ZipioState *zs,
+  long offset,
+  unsigned char *buffer,
+  long length
+)
+{
+  /*
+   * Make sure enough bytes have been inflated
+   * Note that the correction for reading past EOF has to
+   * be done before calling this routine
+   */
+
+  if (BufferPump(zs, offset+length)) return TRUE;
+
+  /* If using file buffering, just get the data from the file */
+  if (zs->tmpfil)
+  {
+    if (fseek(zs->tmpfil, offset, SEEK_SET)) return TRUE;
+    if (fread(buffer, 1, length, zs->tmpfil) != length) return TRUE;
+  }
+  /* If no temp file, use memory buffering */
+  else
+  {
+    unsigned int i;
+    unsigned int off, len;
+    unsigned char *ptr;
+
+    long           tmpoff;
+    unsigned char *tmpbuf;
+    long           tmplen;
+
+    /* Save copies of offset, buffer and length for the loop */
+    tmpoff = offset;
+    tmpbuf = buffer;
+    tmplen = length;
+
+    /* Validate the transfer */
+    if (tmpoff+tmplen > MAXFILESIZE) return TRUE;
+
+    /* Loop till done */
+    while (tmplen)
+    {
+      /* Get a pointer to the next block */
+      i = (unsigned int) (tmpoff / OUTBUFSIZE);
+      ptr = zs->ptrbuf[i];
+      if (!ptr) return TRUE;
+
+      /* Get the offset,length for this block */
+      off = (unsigned int) (tmpoff & (OUTBUFSIZE-1));
+      len = OUTBUFSIZE - off;
+      if (len > tmplen) len = (unsigned int) tmplen;
+
+      /* Get the starting pointer for the transfer */
+      ptr += off;
+
+      /* Copy the data for this block */
+#ifdef MEMCPY
+      memcpy(tmpbuf, ptr, len);
+#else
+      for (i=0; i<len; i++)
+        tmpbuf[i] = ptr[i];
+#endif
+
+      /* Update the offset, buffer, and length */
+      tmpoff += len;
+      tmpbuf += len;
+      tmplen -= len;
+    }
+  }
+
+  /* return success */
+  return FALSE;
+}
+
+/* Append to the buffer */
+static int BufferAppend(
+  struct ZipioState *zs,
+  unsigned char *buffer,
+  long length
+)
+{
+  /* If using file buffering, just append the data from the file */
+  if (zs->tmpfil)
+  {
+    if (fseek(zs->tmpfil, zs->outinf, SEEK_SET)) return TRUE;
+    if (fwrite(buffer, 1, length, zs->tmpfil) != length) return TRUE;
+  }
+  /* If no temp file, use memory buffering */
+  else
+  {
+    unsigned int i;
+    unsigned int off, len;
+    unsigned char *ptr;
+
+    long           tmpoff;
+    unsigned char *tmpbuf;
+    long           tmplen;
+
+    /* Save copies of outinf, buffer and length for the loop */
+    tmpoff = zs->outinf;
+    tmpbuf = buffer;
+    tmplen = length;
+
+    /* Validate the transfer */
+    if (tmpoff+tmplen > MAXFILESIZE) return TRUE;
+
+    /* Loop till done */
+    while (tmplen)
+    {
+      /* Get a pointer to the next block */
+      i = (unsigned int) (tmpoff / OUTBUFSIZE);
+      ptr = zs->ptrbuf[i];
+      if (!ptr)
+      {
+        ptr = (unsigned char *) malloc(OUTBUFSIZE);
+        if (!ptr) return TRUE;
+        zs->ptrbuf[i] = ptr;
+      }
+
+      /* Get the offset,length for this block */
+      off = (unsigned int) (tmpoff & (OUTBUFSIZE-1));
+      len = OUTBUFSIZE - off;
+      if (len > tmplen) len = (unsigned int) tmplen;
+
+      /* Get the starting pointer for the transfer */
+      ptr += off;
+
+      /* Copy the data for this block */
+#ifdef MEMCPY
+      memcpy(ptr, tmpbuf, len);
+#else
+      for (i=0; i<len; i++)
+        ptr[i] = tmpbuf[i];
+#endif
+
+      /* Update the offset, buffer, and length */
+      tmpoff += len;
+      tmpbuf += len;
+      tmplen -= len;
+    }
+  }
+
+  /* Update the output buffer length */
+  zs->outinf += length;
+
+  /* return success */
+  return FALSE;
+}
+
+/* Terminate buffering */
+static void BufferTerminate(
+  struct ZipioState *zs
+)
+{
+  /* If reading directly from the uncompressed file, just mark with NULL */
+  if (zs->tmpfil == zs->OpenFile)
+  {
+    zs->tmpfil = NULL;
+  }
+  /* If using the a temporary file, close it */
+  else if (zs->tmpfil)
+  {
+    fclose(zs->tmpfil);
+    zs->tmpfil = NULL;
+  }
+  /* If doing memory buffering, free the buffers */
+  else
+  {
+    int i;
+
+    for (i=0; i<PTRBUFSIZE; i++)
+      if (zs->ptrbuf[i]) free(zs->ptrbuf[i]);
+  }
+}
+
+/*
+ * callout routines for InflateInitialize
+ */
+
+static int inflate_putbuffer(             /* returns 0 on success       */
+    void *stream,                         /* opaque ptr from Initialize */
+    unsigned char *buffer,                /* buffer to put              */
+    long length                           /* length of buffer           */
+)
+{
+  RUNTIMECHECK;
+
+  /* If the write will go past the end of file, return an error */
+  if (ZS->outinf + length > ZS->usiz) return TRUE;
+
+  /* Update the CRC */
+  ZS->filecrc = CrcUpdate(ZS->filecrc, buffer, length);
+
+  /* Append to the buffer */
+  if (BufferAppend(ZS, buffer, length)) return TRUE;
+
+  /* Return success */
+  return FALSE;
+}
+
+static void *inflate_malloc(long length)
+{
+  return malloc((ulong) length);
+}
+
+static void inflate_free(void *buffer)
+{
+  free(buffer);
+}
+
+ZFILE *Zopen(const char *path, const char *mode)
+{
+  struct ZipioState *zs;
+
+  long inplen;
+
+  /* Allocate the ZipioState memory area */
+  zs = (struct ZipioState *) malloc(sizeof(struct ZipioState));
+  if (!zs) return NULL;
+
+  /* Set up the initial values of the inflate state */
+
+  CACHEINIT;
+
+  RUNTIMEINIT;
+
+  zs->errorencountered = FALSE;
+
+  zs->inpinf           = 0;
+  zs->outinf           = 0;
+
+  zs->fileposition     = 0;
+
+  zs->filecrc          = 0xffffffffL;
+
+  /* Open the real file */
+  zs->OpenFile = fopen(path, mode);
+  if (!zs->OpenFile)
+  {
+    free(zs);
+    return NULL;
+  }
+
+  /* Read the first input buffer */
+  if ((inplen = (long) fread(zs->inpbuf, 1, INPBUFSIZE, zs->OpenFile)) >= 30)
+  {
+    GETUINT4(zs->inpbuf+ 0, zs->sign);
+    GETUINT2(zs->inpbuf+ 4, zs->vers);
+    GETUINT2(zs->inpbuf+ 6, zs->flag);
+    GETUINT2(zs->inpbuf+ 8, zs->comp);
+    GETUINT2(zs->inpbuf+10, zs->mtim);
+    GETUINT2(zs->inpbuf+12, zs->mdat);
+    GETUINT4(zs->inpbuf+14, zs->crc3);
+    GETUINT4(zs->inpbuf+18, zs->csiz);
+    GETUINT4(zs->inpbuf+22, zs->usiz);
+    GETUINT2(zs->inpbuf+26, zs->flen);
+    GETUINT2(zs->inpbuf+28, zs->elen);
+
+#ifdef PRINTZIPHEADER
+    fprintf(stderr, "local file header signature  hex %8lx\n", zs->sign);
+    fprintf(stderr, "version needed to extract        %8d\n" , zs->vers);
+    fprintf(stderr, "general purpose bit flag     hex %8x\n" , zs->flag);
+    fprintf(stderr, "compression method               %8d\n" , zs->comp);
+    fprintf(stderr, "last mod file time               %8d\n" , zs->mtim);
+    fprintf(stderr, "last mod file date               %8d\n" , zs->mdat);
+    fprintf(stderr, "crc-32                       hex %8lx\n", zs->crc3);
+    fprintf(stderr, "compressed size                  %8ld\n", zs->csiz);
+    fprintf(stderr, "uncompressed size                %8ld\n", zs->usiz);
+    fprintf(stderr, "filename length                  %8d\n" , zs->flen);
+    fprintf(stderr, "extra field length               %8d\n" , zs->elen);
+#endif
+  }
+  else
+  {
+    zs->sign = 0;
+  }
+
+  /*
+   * If the file isn't a zip file, set up to read it normally
+   */
+  if ((zs->sign   !=             ZIPSIGNATURE) ||
+      (zs->flag   &                         1) ||
+      (zs->comp   !=                        8) ||
+      (inplen     <= 30 + zs->flen + zs->elen)    )
+  {
+    /* Initialize buffering */
+    BufferInitialize(zs, FALSE);
+
+    zs->inflatestate = NULL;
+  }
+  else
+  {
+    /* Initialize buffering */
+    BufferInitialize(zs, TRUE);
+
+    zs->inflatestate = InflateInitialize(
+                         (void *) zs,
+                         inflate_putbuffer,
+                         inflate_malloc,
+                         inflate_free
+                       );
+
+    if (InflatePutBuffer(zs->inflatestate,
+                         zs->inpbuf+30+zs->flen+zs->elen,
+                             inplen-30-zs->flen-zs->elen
+                        )
+       )
+      zs->errorencountered = TRUE;
+
+    zs->inpinf += inplen-30-zs->flen-zs->elen;
+  }
+
+  /* Return this state info to the caller */
+  return (ZFILE *) zs;
+}
+
+int _Zgetc(ZFILE *stream)
+{
+  long offset, length;
+
+  int off;
+
+  RUNTIMECHECK;
+
+  if (ZS->errorencountered) return -1;
+
+  CACHEUPDATE;
+
+  /* If already at EOF, return */
+  if (ZS->fileposition >= ZS->usiz) return -1;
+
+  /* If data isn't in current outbuf, get it */
+  offset = ZS->fileposition & ~((long) (OUTBUFSIZE-1));
+  if (ZS->getoff != offset)
+  {
+    length = ZS->usiz - offset;
+    if (length > OUTBUFSIZE) length = OUTBUFSIZE;
+
+    if (BufferRead(ZS, offset, ZS->getbuf, length)) return -1;
+
+    ZS->getoff = offset;
+  }
+
+  /* Set up the cache */
+  off = (int) (ZS->fileposition & (OUTBUFSIZE-1));
+  ZS->len = (int) (length - off);
+  ZS->ptr = ZS->getbuf    + off;
+
+  /* Return the character */
+           ZS->len--;
+  return *(ZS->ptr++);
+}
+
+long Zread(void *ptr, long size, long n, ZFILE *stream)
+{
+  long           length;
+
+  RUNTIMECHECK;
+
+  if (ZS->errorencountered) return 0;
+
+  CACHEUPDATE;
+
+  /* Compute the length requested */
+  length = size * (long) n;
+
+  /* Adjust the length to account for premature EOF */
+  if (ZS->fileposition+length > ZS->usiz)
+    length = ZS->usiz - ZS->fileposition;
+
+  /* If the length is zero, then just return an EOF error */
+  if (length <= 0) return 0;
+
+  /* Make the length a multiple of size */
+  length /= size;
+  length *= size;
+
+  /* If the length is zero, then just return an EOF error */
+  if (length <= 0) return 0;
+
+  /* Read from the buffer */
+  if (BufferRead(ZS, ZS->fileposition, (unsigned char *) ptr, length))
+    return 0;
+
+  /* Update the file position */
+  ZS->fileposition += length;
+
+  /* Return the number of items transferred */
+  return (length / size);
+}
+
+int Zseek(ZFILE *stream, long offset, int whence)
+{
+  long newoffset;
+
+  RUNTIMECHECK;
+
+  if (ZS->errorencountered) return -1;
+
+  CACHEUPDATE;
+
+  if (whence == SEEK_SET)
+  {
+    newoffset = offset;
+  }
+  else if (whence == SEEK_CUR)
+  {
+    newoffset = ZS->fileposition + offset;
+  }
+  else if (whence == SEEK_END)
+  {
+    newoffset = ZS->fileposition + ZS->usiz;
+  }
+  else
+  {
+    return -1;
+  }
+
+  if ((newoffset < 0) || (newoffset > ZS->usiz)) return -1;
+
+  ZS->fileposition = newoffset;
+
+  return 0;
+}
+
+long Ztell(ZFILE *stream)
+{
+  RUNTIMECHECK;
+
+  if (ZS->errorencountered) return -1;
+
+  CACHEUPDATE;
+
+  return ZS->fileposition;
+}
+
+int Zclose(ZFILE *stream)
+{
+  int ret;
+
+  RUNTIMECHECK;
+
+  CACHEUPDATE;
+
+  /* terminate the inflate routines, and check for errors */
+  if (ZS->inflatestate)
+  {
+    if (InflateTerminate(ZS->inflatestate))
+      ZS->errorencountered = TRUE;
+
+    /* Check that the CRC is OK */
+    if (ZS->filecrc != (ZS->crc3 ^ 0xffffffffL))
+      ZS->errorencountered = TRUE;
+  }
+
+  /* save the final error status */
+  ret = ZS->errorencountered;
+
+  /* terminate the buffering */
+  BufferTerminate(ZS);
+
+  /* free the ZipioState structure */
+  free(ZS);
+
+  /* return the final error status */
+  return ret;
+}
--- /dev/null
+++ b/zipio.h
@@ -1,0 +1,101 @@
+/*
+ * zipio.h - stdio emulation library for reading zip files
+ *
+ * Version 1.1.1
+ */
+
+/*
+ * Copyright (c) 1995, Edward B. Hamrick
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that
+ *
+ * (i)  the above copyright notice and the text in this "C" comment block
+ *      appear in all copies of the software and related documentation, and
+ *
+ * (ii) any modifications to this source file must be sent, via e-mail
+ *      to the copyright owner (currently hamrick@primenet.com) within 
+ *      30 days of such modification.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL EDWARD B. HAMRICK BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * Changes from 1.1 to 1.1.1:
+ * Changed "z*" functions to "Z*" to avoid namespace pollution.
+ * Added "zungetc" macro.
+ * John Cowan <cowan@ccil.org>
+ */
+
+/*
+ * This library of routines has the same calling sequence as
+ * the stdio.h routines for reading files.  If these routines
+ * detect that they are reading from a zip file, they transparently
+ * unzip the file and make the application think they're reading
+ * from the uncompressed file.
+ *
+ * Note that this library is designed to work for zip files that
+ * use the deflate compression method, and to read the first file
+ * within the zip archive.
+ *
+ * There are a number of tunable parameters in the reference
+ * implementation relating to in-memory decompression and the
+ * use of temporary files.
+ *
+ * Particular care was taken to make the Zgetc() macro work
+ * as efficiently as possible.  When reading an uncompressed
+ * file with Zgetc(), it has exactly the same performance as
+ * when using getc().  WHen reading a compressed file with
+ * Zgetc(), it has the same performance as fread().  The total
+ * CPU overhead for decompression is about 50 cycles per byte.
+ *
+ * The Zungetc() macro is quite limited.  It ignores the character
+ * specified for pushback, and essentially just forces the last
+ * character read to be re-read.  This is essential when parsing
+ * numbers and such.  (1.1.1)
+ *
+ * There are a few stdio routines that aren't represented here, but
+ * they can be layered on top of these routines if needed.
+ */
+
+#ifndef __ZIPIO_H
+#define __ZIPIO_H
+
+typedef struct {
+  int            len;
+  unsigned char *ptr;
+} ZFILE;
+
+#define Zgetc(f)                   \
+  ((--((f)->len) >= 0)             \
+    ? (unsigned char)(*(f)->ptr++) \
+    : _Zgetc (f))
+
+#define Zungetc(c,f) \
+  ((f)->ptr--, (f)->len++, (c))
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ZFILE  *Zopen(const char *path, const char *mode);
+int    _Zgetc(ZFILE *stream);
+long  Zread(void *ptr, long size, long n, ZFILE *stream);
+int     Zseek(ZFILE *stream, long offset, int whence);
+long    Ztell(ZFILE *stream);
+int     Zclose(ZFILE *stream);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif